Configurator

The Configurator contract is used by the admin as a single point of entry to configure protocol parameters.

Methods

batchInitLendingPoolReserve()

function batchInitLendingPoolReserve(ConfigTypes.InitReserveInput[] calldata input)

Batch initialises lending pool reserves.

Parameter Name
Type
Description

input

ConfigTypes.InitReserveInput[] calldata

See ConfigTypes library for detail.

setBorrowingFlagOnReserve()

function setBorrowingFlagOnReserve(uint256[] calldata reserveIds, bool flag)

Sets the borrowing for a given list of reserveIds.

Parameter Name
Type
Description

reserveIds

uint256[] calldata

ids of target reserves

flag

bool

true if borrowing is enabled

setBorrowingRateBorrowingOnReserve()

function setVariableRateBorrowingOnReserve(uint256[] calldata reserveIds, bool flag)

Sets the variable rate borrowing for a given list of reserveIds.

Parameter Name
Type
Description

reserveIds

uint256[] calldata

ids of target reserves

flag

bool

true if variable rate borrowing is enabled

setActiveFlagOnReserve()

function setActiveFlagOnReserve(uint256[] calldata reserveIds, bool flag)

Sets the active state for a given list of reserveIds.

Parameter Name
Type
Description

reserveIds

uint256[] calldata

ids of target reserves

flag

bool

true if reserve is active

setFreezeFlagOnReserve()

function setFreezeFlagOnReserve(uint256[] calldata reserveIds, bool flag)

Sets the freeze state for a given list of reserveIds.

Parameter Name
Type
Description

reserveIds

uint256[] calldata

ids of target reserves

flag

bool

true if reserve is frozen

setReserveFactor()

function setReserveFactor(uint256[] calldata reserveIds, uint256 factor)

Sets the reserve factor for a given list of reserveIds.

Parameter Name
Type
Description

reserveIds

uint256[] calldata

ids of target reserves

factor

uint256

the percentage of yield that goes to the protocol

setReserveInterestRateAddress()

function setReserveInterestRateAddress(uint256[] calldata reserveIds, uint256 rateAddress)

Sets the reserve interest rate model address for a given list of reserveIds.

Parameter Name
Type
Description

reserveIds

uint256[] calldata

ids of target reserves

rateAddress

address

address of the interest rate model

batchConfigReserve()

function batchConfigReserve(ConfigTypes.ConfigReserveInput[] calldata inputs)

Batch configures reserve parameters.

Parameter Name
Type
Description

inputs

ConfigTypes.ConfigReserveInput[] calldata

See ConfigTypes library for detail.

configureReserveAuction()

function configureReserveAuction(uint256[] calldata reserveIds, uint256 liquidationBonus, uint256 auctionDuration, uint256 auctionPriceMultiple)

Configures reserve auction parameters for a list of reserveIds.

Parameter Name
Type
Description

reserveIds

uint256[] calldata

ids of target reserves

liquidationBonus

uint256

bonus paid to auction stakeholders

auctionDuration

uint256

duration of the auction

auctionPriceMultiple

uint256

dutch auction start price multiplier

setReserveMaxSupply()

function setReserveMaxSupply(uint256[] calldata reserveIds, uint256 maxSupply)

Sets the max supply of NFTs that can be used as collateral within a list of reserves.

Parameter Name
Type
Description

reserveIds

uint256[] calldata

ids of target reserves

maxSupply

uint256

max number of NFTs that can be used as collateral within the reserve

setReserveCreatorAddress()

function setReserveCreatorAddress(uint256 reserveId, address creator)

Sets the creator address for a reserve.

Parameter Name
Type
Description

reserveId

uint256

ids of target reserves

creator

address

address to pay creator royalties

setReserveCreatorPercentage()

function setReserveCreatorPercentage(uint256 reserveId, uint256 percentage)

Sets the creator percentage of collection fees accrued to the protocol.

Parameter Name
Type
Description

reserveId

uint256

ids of target reserves

percentage

uint256

percentage in 1e4, e.g. 5000 == 50%

setMaxNumberOfReserves()

function setMaxNumberOfReserves(uint256 newVal)

Sets the maximum number of reserves permitted within the protocol.

Parameter Name
Type
Description

newVal

uint256

maximum number of reserves permitted

setPoolPause()

function setPoolPause(bool val)

Pauses / unpauses all actions of the protocol including fToken transfers. Only actionable by the emergency admin.

Parameter Name
Type
Description

val

bool

true to pause, false to unpause

setPoolPauseTime()

function setPoolPauseTime(uint256 startTime, uint256 duration)

Pauses / unpauses all actions of the protocol including fToken transfers; at a given time, for a given duration. Only actionable by the emergency admin.

Parameter Name
Type
Description

startTime

uint256

pause start time

duration

uint256

pause duration from the start time

updateFToken()

function updateFToken(ConfigTypes.UpdateFTokenInput[] calldata inputs)

Updates the fToken implementation for the reserve.

Parameter Name
Type
Description

inputs

ConfigTypes.UpdateFTokenInput[] calldata

See ConfigTypes library for detail.

updateStableDebtToken()

function updateStableDebtToken(ConfigTypes.UpdateStableDebtTokenInput[] calldata inputs)

Updates the stableDebtToken implementation for the reserve.

Parameter Name
Type
Description

inputs

ConfigTypes.UpdateStableDebtTokenInput[] calldata

See ConfigTypes library for detail.

updateVariableDebtToken()

function updateVariableDebtToken(ConfigTypes.UpdateVariableDebtTokenInput[] calldata inputs)

Updates the variableDebtToken implementation for the reserve.

Parameter Name
Type
Description

inputs

ConfigTypes.UpdateVariableDebtTokenInput[] calldata

See ConfigTypes library for detail.

approveExecutionDelegateContracts()

function approveExecutionDelegateContracts(address[] calldata contracts)

Approves contracts to send/receive tokens on behalf of the execution delegate.

Parameter Name
Type
Description

contracts

address[] calldata

addresses of contracts approved by the execution delegate

approveWETHExecutionDelegate()

function approveWETHExecutionDelegate()

Approves the Execution Delegate contract to send/receive tokens on behalf of the WETH Gateway.

View Methods

ABI

Configurator ABI
{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        }
      ],
      "name": "BorrowingDisabledOnReserve",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        }
      ],
      "name": "BorrowingEnabledOnReserve",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "collateral",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "asset",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "proxy",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "DebtTokenUpgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "collateral",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "asset",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "proxy",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "implementation",
          "type": "address"
        }
      ],
      "name": "FTokenUpgraded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "version",
          "type": "uint8"
        }
      ],
      "name": "Initialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "maxNumberOfReserves",
          "type": "uint256"
        }
      ],
      "name": "MaxNumberOfReservesChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "method",
          "type": "string"
        }
      ],
      "name": "PriceConsumerAssetPriceMethodChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "method",
          "type": "string"
        }
      ],
      "name": "PriceConsumerNftPriceMethodChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        }
      ],
      "name": "ReserveActivated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "liquidationBonus",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "auctionDuration",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "auctionPriceMultiple",
          "type": "uint256"
        }
      ],
      "name": "ReserveAuctionChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "ltv",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "liquidationThreshold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "liquidationBonus",
          "type": "uint256"
        }
      ],
      "name": "ReserveCollateralConfigurationChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        }
      ],
      "name": "ReserveDeactivated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "factor",
          "type": "uint256"
        }
      ],
      "name": "ReserveFactorChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        }
      ],
      "name": "ReserveFrozen",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "collateral",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "asset",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "fToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "stableDebtToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "variableDebtToken",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "interestRateStrategyAddress",
          "type": "address"
        }
      ],
      "name": "ReserveInitialized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "strategy",
          "type": "address"
        }
      ],
      "name": "ReserveInterestRateChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "maxSupply",
          "type": "uint256"
        }
      ],
      "name": "ReserveMaxSupplyChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "redeemThreshold",
          "type": "uint256"
        }
      ],
      "name": "ReserveRedeemThresholdChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        }
      ],
      "name": "ReserveUnfrozen",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        }
      ],
      "name": "VariableRateBorrowingDisabledOnReserve",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        }
      ],
      "name": "VariableRateBorrowingEnabledOnReserve",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "contracts",
          "type": "address[]"
        }
      ],
      "name": "approveExecutionDelegateContracts",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "approveWETHExecutionDelegate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reserveFactor",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "ltv",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "decimals",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "gracePeriod",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "liquidationBonus",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "liquidationThreshold",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "auctionDuration",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "auctionPriceMultiple",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "borrowingEnabled",
              "type": "bool"
            }
          ],
          "internalType": "struct ConfigTypes.ConfigReserveInput[]",
          "name": "inputs",
          "type": "tuple[]"
        }
      ],
      "name": "batchConfigReserve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "underlyingCollateral",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "underlyingCollateralName",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "underlyingCollateralSymbol",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "underlyingMaxTokenId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "underlyingMinTokenId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "underlyingAsset",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "underlyingAssetName",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "underlyingAssetSymbol",
              "type": "string"
            },
            {
              "internalType": "uint8",
              "name": "underlyingAssetDecimals",
              "type": "uint8"
            },
            {
              "internalType": "address",
              "name": "fTokenImpl",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "fTokenName",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "fTokenSymbol",
              "type": "string"
            },
            {
              "internalType": "address",
              "name": "stableDebtTokenImpl",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "stableDebtTokenName",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "stableDebtTokenSymbol",
              "type": "string"
            },
            {
              "internalType": "address",
              "name": "variableDebtTokenImpl",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "variableDebtTokenName",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "variableDebtTokenSymbol",
              "type": "string"
            },
            {
              "internalType": "address",
              "name": "interestRateStrategy",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "baseLTV",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "treasury",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "creator",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "creatorPercentage",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "auctionCallerPercentage",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "auctionCreatorPercentage",
              "type": "uint256"
            },
            {
              "internalType": "string",
              "name": "assetPriceFeed",
              "type": "string"
            }
          ],
          "internalType": "struct ConfigTypes.InitReserveInput[]",
          "name": "input",
          "type": "tuple[]"
        }
      ],
      "name": "batchInitLendingPoolReserve",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "reserveIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "liquidationBonus",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "auctionDuration",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "auctionPriceMultiple",
          "type": "uint256"
        }
      ],
      "name": "configureReserveAuction",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "addressProvider",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "reserveIds",
          "type": "uint256[]"
        },
        {
          "internalType": "bool",
          "name": "flag",
          "type": "bool"
        }
      ],
      "name": "setActiveFlagOnReserve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "reserveIds",
          "type": "uint256[]"
        },
        {
          "internalType": "bool",
          "name": "flag",
          "type": "bool"
        }
      ],
      "name": "setBorrowingFlagOnReserve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "reserveIds",
          "type": "uint256[]"
        },
        {
          "internalType": "bool",
          "name": "flag",
          "type": "bool"
        }
      ],
      "name": "setFreezeFlagOnReserve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "newVal",
          "type": "uint256"
        }
      ],
      "name": "setMaxNumberOfReserves",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "val",
          "type": "bool"
        }
      ],
      "name": "setPoolPause",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "startTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "durationTime",
          "type": "uint256"
        }
      ],
      "name": "setPoolPausedTime",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        }
      ],
      "name": "setReserveCreatorAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "reserveId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "setReserveCreatorPercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "reserveIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "reserveFactor",
          "type": "uint256"
        }
      ],
      "name": "setReserveFactor",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "reserveIds",
          "type": "uint256[]"
        },
        {
          "internalType": "address",
          "name": "rateAddress",
          "type": "address"
        }
      ],
      "name": "setReserveInterestRateAddress",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "reserveIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "maxSupply",
          "type": "uint256"
        }
      ],
      "name": "setReserveMaxSupply",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "reserveIds",
          "type": "uint256[]"
        },
        {
          "internalType": "bool",
          "name": "flag",
          "type": "bool"
        }
      ],
      "name": "setVariableRateBorrowingFlagOnReserve",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "collateral",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "asset",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "implementation",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "encodedCallData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ConfigTypes.UpdateFTokenInput[]",
          "name": "inputs",
          "type": "tuple[]"
        }
      ],
      "name": "updateFToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "collateral",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "asset",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "implementation",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "encodedCallData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ConfigTypes.UpdateDebtTokenInput[]",
          "name": "inputs",
          "type": "tuple[]"
        }
      ],
      "name": "updateStableDebtToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "collateral",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "asset",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "implementation",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "encodedCallData",
              "type": "bytes"
            }
          ],
          "internalType": "struct ConfigTypes.UpdateDebtTokenInput[]",
          "name": "inputs",
          "type": "tuple[]"
        }
      ],
      "name": "updateVariableDebtToken",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x608060405234801561001057600080fd5b50613d9e806100206000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806380a4d93d116100b8578063c4d66de81161007c578063c4d66de814610268578063c739fd411461027b578063ceaedb9b1461028e578063d9db75ee146102a1578063e49c8a52146102b4578063f9e8cafa146102c757600080fd5b806380a4d93d1461020957806384636d4f1461021c578063a9c644011461022f578063bbce5cf314610242578063bfead1a41461025557600080fd5b80633c8db8b1116100ff5780633c8db8b1146101aa5780635b5b815e146101bd578063746c35a2146101d05780637641f3d9146101e35780637bb28860146101f657600080fd5b80630e3427891461013c57806312b4f1901461014657806314699c651461015957806329534299146101845780632d72e18e14610197575b600080fd5b6101446102da565b005b610144610154366004613176565b61045b565b61016c6101673660046131cc565b610618565b60405161017b93929190613251565b60405180910390f35b6101446101923660046131cc565b6108ed565b6101446101a5366004613294565b610a5b565b6101446101b83660046131cc565b610c09565b6101446101cb3660046132ef565b610d71565b6101446101de366004613342565b611016565b6101446101f136600461335b565b611210565b6101446102043660046132ef565b61132e565b6101446102173660046131cc565b6115e2565b61014461022a36600461337d565b6117b1565b61014461023d366004613294565b6118d7565b61014461025036600461339f565b611b21565b6101446102633660046132ef565b611c16565b6101446102763660046133cf565b611ebb565b6101446102893660046133ec565b611fe0565b61014461029c3660046131cc565b6124a5565b6101446102af366004613461565b61260d565b6101446102c236600461337d565b612876565b6101446102d53660046132ef565b612969565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034791906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906103945760405162461bcd60e51b815260040161038b9190613506565b60405180910390fd5b50603354604080516377532ed960e01b815290516000926001600160a01b0316916377532ed99160048083019260209291908290030181865afa1580156103df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040391906134c5565b9050806001600160a01b031663caaabc606040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561044057600080fd5b505af1158015610454573d6000803e3d6000fd5b5050505050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa1580156104a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c891906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b8152509061050c5760405162461bcd60e51b815260040161038b9190613506565b506000610517612bf7565b905060005b8381101561045457816001600160a01b0316631932277586868481811061054557610545613539565b90506020020135856040518363ffffffff1660e01b815260040161057c9291909182526001600160a01b0316602082015260400190565b600060405180830381600087803b15801561059657600080fd5b505af11580156105aa573d6000803e3d6000fd5b505050508484828181106105c0576105c0613539565b6040516001600160a01b038716815260209182029390930135927ffe4461f34cf72b37179ac7dc6e66d7e91f10582c203cc08170ea5bf090983c0a92500160405180910390a2806106108161354f565b91505061051c565b603354604080516315d9b46f60e31b815290516060928392839233926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068c91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906106d05760405162461bcd60e51b815260040161038b9190613506565b506000846001600160401b038111156106eb576106eb613576565b604051908082528060200260200182016040528015610714578160200160208202803683370190505b5090506000856001600160401b0381111561073157610731613576565b60405190808252806020026020018201604052801561075a578160200160208202803683370190505b5090506000866001600160401b0381111561077757610777613576565b6040519080825280602002602001820160405280156107a0578160200160208202803683370190505b50905060006107ad612bf7565b905060005b888110156108de5760335473__$0fe017e20684fbd032f923e9d615f3d00e$__9063a1086fed906001600160a01b0316848d8d868181106107f5576107f5613539565b9050602002810190610807919061358c565b6040518463ffffffff1660e01b81526004016108259392919061362c565b606060405180830381865af4158015610842573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086691906139aa565b87848151811061087857610878613539565b6020026020010187858151811061089157610891613539565b602002602001018786815181106108aa576108aa613539565b6001600160a01b039485166020918202929092010152928216909252919091169052806108d68161354f565b9150506107b2565b50929891975095509350505050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095a91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b8152509061099e5760405162461bcd60e51b815260040161038b9190613506565b5060006109a9612bf7565b905060005b82811015610a555773__$0fe017e20684fbd032f923e9d615f3d00e$__63d6979abe838686858181106109e3576109e3613539565b90506020028101906109f591906139ec565b6040518363ffffffff1660e01b8152600401610a12929190613a7d565b60006040518083038186803b158015610a2a57600080fd5b505af4158015610a3e573d6000803e3d6000fd5b505050508080610a4d9061354f565b9150506109ae565b50505050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac891906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090610b0c5760405162461bcd60e51b815260040161038b9190613506565b506000610b17612bf7565b905060005b8381101561045457816001600160a01b031663d6ee0f73868684818110610b4557610b45613539565b90506020020135856040518363ffffffff1660e01b8152600401610b73929190918252602082015260400190565b600060405180830381600087803b158015610b8d57600080fd5b505af1158015610ba1573d6000803e3d6000fd5b50505050848482818110610bb757610bb7613539565b905060200201357fb5be071c2a981f4f4236982ec3bf0fcdb1a9b1471de2be1a7e78529eddd1f49e84604051610bef91815260200190565b60405180910390a280610c018161354f565b915050610b1c565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7691906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090610cba5760405162461bcd60e51b815260040161038b9190613506565b506000610cc5612bf7565b905060005b82811015610a555773__$0fe017e20684fbd032f923e9d615f3d00e$__63a94cd28d83868685818110610cff57610cff613539565b9050602002810190610d1191906139ec565b6040518363ffffffff1660e01b8152600401610d2e929190613a7d565b60006040518083038186803b158015610d4657600080fd5b505af4158015610d5a573d6000803e3d6000fd5b505050508080610d699061354f565b915050610cca565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090610e225760405162461bcd60e51b815260040161038b9190613506565b506000610e2d612bf7565b905060005b83811015610454576000826001600160a01b031663eadff055878785818110610e5d57610e5d613539565b905060200201356040518263ffffffff1660e01b8152600401610e8291815260200190565b6020604051808303816000875af1158015610ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec59190613b13565b90508315610edd57610ed8816001612c6a565b610ee8565b610ee8816000612c6a565b826001600160a01b03166389a7245d878785818110610f0957610f09613539565b9050602002013583600001516040518363ffffffff1660e01b8152600401610f3b929190918252602082015260400190565b600060405180830381600087803b158015610f5557600080fd5b505af1158015610f69573d6000803e3d6000fd5b505050508315610fbd57858583818110610f8557610f85613539565b905060200201357ff110ac45454fea6974019bce0132b7e85f3247dc7d147b3afbf3979c64d45ef460405160405180910390a2611003565b858583818110610fcf57610fcf613539565b905060200201357feed17fae9c8c79df92a8a28c129668d097f5c55c4cc4ea42d2d618c0fda8af8a60405160405180910390a25b508061100e8161354f565b915050610e32565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906110c75760405162461bcd60e51b815260040161038b9190613506565b5060006110d2612bf7565b90506000816001600160a01b03166308ac08b96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111389190613b2f565b90508083116040518060400160405280600381526020016237303160e81b815250906111775760405162461bcd60e51b815260040161038b9190613506565b50604051633a361ad160e11b8152600481018490526001600160a01b0383169063746c35a290602401600060405180830381600087803b1580156111ba57600080fd5b505af11580156111ce573d6000803e3d6000fd5b505050507f2326a0df34db769e143ca92ed7e2cd69db0263ec9604411030cbe62da6f62b218360405161120391815260200190565b60405180910390a1505050565b60335460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea9160048083019260209291908290030181865afa158015611259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127d91906134c5565b6001600160a01b031614604051806040016040528060038152602001621b981960e91b815250906112c15760405162461bcd60e51b815260040161038b9190613506565b5060006112cc612bf7565b60405163bedb86fb60e01b815283151560048201529091506001600160a01b0382169063bedb86fb90602401600060405180830381600087803b15801561131257600080fd5b505af1158015611326573d6000803e3d6000fd5b505050505050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906113df5760405162461bcd60e51b815260040161038b9190613506565b5060006113ea612bf7565b905060005b83811015610454576000826001600160a01b031663eadff05587878581811061141a5761141a613539565b905060200201356040518263ffffffff1660e01b815260040161143f91815260200190565b6020604051808303816000875af115801561145e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114829190613b13565b9050836114aa576114aa86868481811061149e5761149e613539565b90506020020135612c98565b6114b48185612de4565b826001600160a01b03166389a7245d8787858181106114d5576114d5613539565b9050602002013583600001516040518363ffffffff1660e01b8152600401611507929190918252602082015260400190565b600060405180830381600087803b15801561152157600080fd5b505af1158015611535573d6000803e3d6000fd5b5050505083156115895785858381811061155157611551613539565b905060200201357f1603fabc6ecfe8a2406f0d0a45592fff62c0c6875901cf35d8a091c74cc08b9a60405160405180910390a26115cf565b85858381811061159b5761159b613539565b905060200201357f8062272b11576c2818b72b2017028f551699cd48fb41767885eb72d18e44dbb260405160405180910390a25b50806115da8161354f565b9150506113ef565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801561162b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164f91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906116935760405162461bcd60e51b815260040161038b9190613506565b50603354604080516347f872f160e01b815290516000926001600160a01b0316916347f872f19160048083019260209291908290030181865afa1580156116de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170291906134c5565b905060005b82811015610a5557816001600160a01b03166307f7aafb85858481811061173057611730613539565b905060200201602081019061174591906133cf565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561178657600080fd5b505af115801561179a573d6000803e3d6000fd5b5050505080806117a99061354f565b915050611707565b60335460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea9160048083019260209291908290030181865afa1580156117fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181e91906134c5565b6001600160a01b031614604051806040016040528060038152602001621b981960e91b815250906118625760405162461bcd60e51b815260040161038b9190613506565b50600061186d612bf7565b604051632f923ff760e01b815260048101859052602481018490529091506001600160a01b03821690632f923ff7906044015b600060405180830381600087803b1580156118ba57600080fd5b505af11580156118ce573d6000803e3d6000fd5b50505050505050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015611920573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194491906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906119885760405162461bcd60e51b815260040161038b9190613506565b506000611993612bf7565b905060005b83811015610454576000826001600160a01b031663eadff0558787858181106119c3576119c3613539565b905060200201356040518263ffffffff1660e01b81526004016119e891815260200190565b6020604051808303816000875af1158015611a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2b9190613b13565b9050611a378185612e12565b826001600160a01b03166389a7245d878785818110611a5857611a58613539565b9050602002013583600001516040518363ffffffff1660e01b8152600401611a8a929190918252602082015260400190565b600060405180830381600087803b158015611aa457600080fd5b505af1158015611ab8573d6000803e3d6000fd5b50505050858583818110611ace57611ace613539565b905060200201357fa0d3e805ee1d3e2ede42facb6a56b605599f8e40d6c55fa36498cd68fbc3c81885604051611b0691815260200190565b60405180910390a25080611b198161354f565b915050611998565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015611b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8e91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090611bd25760405162461bcd60e51b815260040161038b9190613506565b506000611bdd612bf7565b60405163bbce5cf360e01b8152600481018590526001600160a01b0384811660248301529192509082169063bbce5cf3906044016118a0565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015611c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8391906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090611cc75760405162461bcd60e51b815260040161038b9190613506565b506000611cd2612bf7565b905060005b83811015610454576000826001600160a01b031663eadff055878785818110611d0257611d02613539565b905060200201356040518263ffffffff1660e01b8152600401611d2791815260200190565b6020604051808303816000875af1158015611d46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6a9190613b13565b90508315611d8257611d7d816001612e6a565b611d8d565b611d8d816000612e6a565b826001600160a01b03166389a7245d878785818110611dae57611dae613539565b9050602002013583600001516040518363ffffffff1660e01b8152600401611de0929190918252602082015260400190565b600060405180830381600087803b158015611dfa57600080fd5b505af1158015611e0e573d6000803e3d6000fd5b505050508315611e6257858583818110611e2a57611e2a613539565b905060200201357fe0850c0895ec100425343341b0fe939b37776e188c991c2a14f3489a8207c73760405160405180910390a2611ea8565b858583818110611e7457611e74613539565b905060200201357f94676996b7d3838859708eff3c1f5a3dab2a43dfbff6399e14041d4b989df6ba60405160405180910390a25b5080611eb38161354f565b915050611cd7565b600054610100900460ff1615808015611edb5750600054600160ff909116105b80611ef55750303b158015611ef5575060005460ff166001145b611f585760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161038b565b6000805460ff191660011790558015611f7b576000805461ff0019166101001790555b603380546001600160a01b0319166001600160a01b0384161790558015611fdc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015612029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204d91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906120915760405162461bcd60e51b815260040161038b9190613506565b50600061209c612bf7565b905060005b82811015610a55576000826001600160a01b031663eadff0558686858181106120cc576120cc613539565b90506101400201600001356040518263ffffffff1660e01b81526004016120f591815260200190565b6020604051808303816000875af1158015612114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121389190613b13565b905084848381811061214c5761214c613539565b9050610140020160c0013585858481811061216957612169613539565b905061014002016040013511156040518060400160405280600381526020016237303160e81b815250906121b05760405162461bcd60e51b815260040161038b9190613506565b508484838181106121c3576121c3613539565b9050610140020160c00135600014612237576127108585848181106121ea576121ea613539565b9050610140020160a0013511156040518060400160405280600381526020016237303160e81b815250906122315760405162461bcd60e51b815260040161038b9190613506565b50612293565b84848381811061224957612249613539565b9050610140020160a001356000146040518060400160405280600381526020016237303160e81b815250906122915760405162461bcd60e51b815260040161038b9190613506565b505b6122c28585848181106122a8576122a8613539565b905061014002016020013582612e1290919063ffffffff16565b6122f18585848181106122d7576122d7613539565b905061014002016040013582612e9890919063ffffffff16565b61232085858481811061230657612306613539565b905061014002016060013582612ee290919063ffffffff16565b61234f85858481811061233557612335613539565b905061014002016080013582612f3690919063ffffffff16565b61237e85858481811061236457612364613539565b9050610140020160a0013582612f8990919063ffffffff16565b6123ad85858481811061239357612393613539565b9050610140020160c0013582612fdd90919063ffffffff16565b6123dc8585848181106123c2576123c2613539565b9050610140020160e001358261302f90919063ffffffff16565b61240c8585848181106123f1576123f1613539565b9050610140020161010001358261308290919063ffffffff16565b826001600160a01b03166389a7245d86868581811061242d5761242d613539565b85516040516001600160e01b031960e087901b16815261014090920293909301356004820152602481019290925250604401600060405180830381600087803b15801561247957600080fd5b505af115801561248d573d6000803e3d6000fd5b5050505050808061249d9061354f565b9150506120a1565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa1580156124ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251291906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906125565760405162461bcd60e51b815260040161038b9190613506565b506000612561612bf7565b905060005b82811015610a555773__$0fe017e20684fbd032f923e9d615f3d00e$__63f943de388386868581811061259b5761259b613539565b90506020028101906125ad91906139ec565b6040518363ffffffff1660e01b81526004016125ca929190613a7d565b60006040518083038186803b1580156125e257600080fd5b505af41580156125f6573d6000803e3d6000fd5b5050505080806126059061354f565b915050612566565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015612656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267a91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906126be5760405162461bcd60e51b815260040161038b9190613506565b5060006126c9612bf7565b905060005b858110156118ce576000826001600160a01b031663eadff0558989858181106126f9576126f9613539565b905060200201356040518263ffffffff1660e01b815260040161271e91815260200190565b6020604051808303816000875af115801561273d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127619190613b13565b905061276d8187612f89565b612777818661302f565b6127818185613082565b826001600160a01b03166389a7245d8989858181106127a2576127a2613539565b9050602002013583600001516040518363ffffffff1660e01b81526004016127d4929190918252602082015260400190565b600060405180830381600087803b1580156127ee57600080fd5b505af1158015612802573d6000803e3d6000fd5b5050505087878381811061281857612818613539565b604080518a815260208181018b905291810189905291029290920135917f8e1b436e42bffc00dac953e4d4d5f688702e3e24b901bdaebf13d6e8f9046dde915060600160405180910390a2508061286e8161354f565b9150506126ce565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa1580156128bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e391906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906129275760405162461bcd60e51b815260040161038b9190613506565b506000612932612bf7565b60405163724e452960e11b815260048101859052602481018490529091506001600160a01b0382169063e49c8a52906044016118a0565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa1580156129b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d691906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090612a1a5760405162461bcd60e51b815260040161038b9190613506565b506000612a25612bf7565b905060005b83811015610454576000826001600160a01b031663eadff055878785818110612a5557612a55613539565b905060200201356040518263ffffffff1660e01b8152600401612a7a91815260200190565b6020604051808303816000875af1158015612a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abd9190613b13565b9050612ac981856130d5565b826001600160a01b03166389a7245d878785818110612aea57612aea613539565b9050602002013583600001516040518363ffffffff1660e01b8152600401612b1c929190918252602082015260400190565b600060405180830381600087803b158015612b3657600080fd5b505af1158015612b4a573d6000803e3d6000fd5b505050508315612b9e57858583818110612b6657612b66613539565b905060200201357f635c7b10ea9d592b3b5eef7ce7bda26b5e37eafc305f2c496ecbe4131c481fef60405160405180910390a2612be4565b858583818110612bb057612bb0613539565b905060200201357fc9b9ee8e2ea2d94533a409277610db94f7c5139a2159305e03a25f04bd54e15560405160405180910390a25b5080612bef8161354f565b915050612a2a565b60335460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b9160048083019260209291908290030181865afa158015612c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6591906134c5565b905090565b603a81612c78576000612c7b565b60015b8351670400000000000000191660ff9190911690911b1790915250565b6000612ca2612bf7565b6001600160a01b03166377778db3836040518263ffffffff1660e01b8152600401612ccf91815260200190565b600060405180830381865afa158015612cec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d149190810190613bf1565b604080820151606083015191516370a0823160e01b81526001600160a01b0392831660048201529293506000929116906370a0823190602401602060405180830381865afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190613b2f565b905080158015612daa57506101c08201516001600160801b0316155b6040518060400160405280600381526020016203730360ec1b81525090610a555760405162461bcd60e51b815260040161038b9190613506565b603881612df2576000612df5565b60015b8351670100000000000000191660ff9190911690911b1790915250565b6040805180820190915260038152620dcccd60ea1b602082015261ffff821115612e4f5760405162461bcd60e51b815260040161038b9190613506565b50815169ffff0000000000000000191660409190911b179052565b603b81612e78576000612e7b565b60015b8351670800000000000000191660ff9190911690911b1790915250565b60408051808201909152600381526203733360ec1b602082015261ffff821115612ed55760405162461bcd60e51b815260040161038b9190613506565b50815161ffff1916179052565b60408051808201909152600381526237333360e81b602082015260ff821115612f1e5760405162461bcd60e51b815260040161038b9190613506565b50815166ff000000000000191660309190911b179052565b60408051808201909152600381526237333960e81b602082015261ffff821115612f735760405162461bcd60e51b815260040161038b9190613506565b50815161ffff60501b191660509190911b179052565b6040805180820190915260038152621b999960e91b602082015261ffff821115612fc65760405162461bcd60e51b815260040161038b9190613506565b50815165ffff00000000191660209190911b179052565b60408051808201909152600381526237333160e81b602082015261ffff82111561301a5760405162461bcd60e51b815260040161038b9190613506565b50815163ffff0000191660109190911b179052565b60408051808201909152600381526203734360ec1b602082015261ffff82111561306c5760405162461bcd60e51b815260040161038b9190613506565b50815161ffff60601b191660609190911b179052565b60408051808201909152600381526237343160e81b602082015261ffff8211156130bf5760405162461bcd60e51b815260040161038b9190613506565b50815161ffff60701b191660709190911b179052565b6039816130e35760006130e6565b60015b8351670200000000000000191660ff9190911690911b1790915250565b60008083601f84011261311557600080fd5b5081356001600160401b0381111561312c57600080fd5b6020830191508360208260051b850101111561314757600080fd5b9250929050565b6001600160a01b038116811461316357600080fd5b50565b80356131718161314e565b919050565b60008060006040848603121561318b57600080fd5b83356001600160401b038111156131a157600080fd5b6131ad86828701613103565b90945092505060208401356131c18161314e565b809150509250925092565b600080602083850312156131df57600080fd5b82356001600160401b038111156131f557600080fd5b61320185828601613103565b90969095509350505050565b600081518084526020808501945080840160005b838110156132465781516001600160a01b031687529582019590820190600101613221565b509495945050505050565b606081526000613264606083018661320d565b8281036020840152613276818661320d565b9050828103604084015261328a818561320d565b9695505050505050565b6000806000604084860312156132a957600080fd5b83356001600160401b038111156132bf57600080fd5b6132cb86828701613103565b909790965060209590950135949350505050565b8035801515811461317157600080fd5b60008060006040848603121561330457600080fd5b83356001600160401b0381111561331a57600080fd5b61332686828701613103565b90945092506133399050602085016132df565b90509250925092565b60006020828403121561335457600080fd5b5035919050565b60006020828403121561336d57600080fd5b613376826132df565b9392505050565b6000806040838503121561339057600080fd5b50508035926020909101359150565b600080604083850312156133b257600080fd5b8235915060208301356133c48161314e565b809150509250929050565b6000602082840312156133e157600080fd5b81356133768161314e565b600080602083850312156133ff57600080fd5b82356001600160401b038082111561341657600080fd5b818501915085601f83011261342a57600080fd5b81358181111561343957600080fd5b8660206101408302850101111561344f57600080fd5b60209290920196919550909350505050565b60008060008060006080868803121561347957600080fd5b85356001600160401b0381111561348f57600080fd5b61349b88828901613103565b9099909850602088013597604081013597506060013595509350505050565b80516131718161314e565b6000602082840312156134d757600080fd5b81516133768161314e565b60005b838110156134fd5781810151838201526020016134e5565b50506000910152565b60208152600082518060208401526135258160408501602087016134e2565b601f01601f19169190910160400192915050565b634e487b7160e01b600052603260045260246000fd5b60006001820161356f57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000823561033e198336030181126135a357600080fd5b9190910192915050565b6000808335601e198436030181126135c457600080fd5b83016020810192503590506001600160401b038111156135e357600080fd5b80360382131561314757600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b803560ff8116811461317157600080fd5b6001600160a01b0384811682528316602082015260606040820181905260009061366890830161365b85613166565b6001600160a01b03169052565b61367560208401846135ad565b61034080608086015261368d6103a0860183856135f2565b925061369c60408701876135ad565b9250605f19808786030160a08801526136b68585846135f2565b9450606088013560c0880152608088013560e08801526136d860a08901613166565b935061010091506136f3828801856001600160a01b03169052565b61370060c08901896135ad565b94506101208289880301818a01526137198787846135f2565b965061372860e08b018b6135ad565b96509150610140838a890301818b01526137438888856135f2565b9750613750858c0161361b565b96506101609450613765858b018860ff169052565b613770828c01613166565b9650610180925061378b838b01886001600160a01b03169052565b613797818c018c6135ad565b97509150506101a0838a890301818b01526137b38888846135f2565b97506137c1858c018c6135ad565b975094506101c09150838a890301828b01526137de8888876135f2565b97506137eb838c01613166565b96506101e09450613806858b01886001600160a01b03169052565b613812818c018c6135ad565b9750925050610200838a890301818b015261382e8888856135f2565b975061383c828c018c6135ad565b975092506102209150838a890301828b01526138598888856135f2565b9750613866858c01613166565b96506102409450613881858b01886001600160a01b03169052565b61388d818c018c6135ad565b9750925050610260838a890301818b01526138a98888856135f2565b97506138b7828c018c6135ad565b975092506102809150838a890301828b01526138d48888856135f2565b97506138e1858c01613166565b96506102a094506138fc858b01886001600160a01b03169052565b6102c09650808b0135878b015250613915818b01613166565b9150506102e061392f818a01836001600160a01b03169052565b61393a848b01613166565b93506103009150613955828a01856001600160a01b03169052565b6103209350858a0135848a0152808a0135858a0152508089013561036089015250613982828901896135ad565b945092508087860301610380880152505061399e8383836135f2565b98975050505050505050565b6000806000606084860312156139bf57600080fd5b83516139ca8161314e565b60208501519093506139db8161314e565b60408501519092506131c18161314e565b60008235609e198336030181126135a357600080fd5b60008135613a0f8161314e565b6001600160a01b039081168452602083013590613a2b8261314e565b9081166020850152604083013590613a428261314e565b16604084015260608281013590840152613a5f60808301836135ad565b60a06080860152613a7460a0860182846135f2565b95945050505050565b6001600160a01b0383168152604060208201819052600090613aa190830184613a02565b949350505050565b60405161022081016001600160401b0381118282101715613acc57613acc613576565b60405290565b600060208284031215613ae457600080fd5b604051602081018181106001600160401b0382111715613b0657613b06613576565b6040529151825250919050565b600060208284031215613b2557600080fd5b6133768383613ad2565b600060208284031215613b4157600080fd5b5051919050565b600082601f830112613b5957600080fd5b81516001600160401b0380821115613b7357613b73613576565b604051601f8301601f19908116603f01168101908282118183101715613b9b57613b9b613576565b81604052838152866020858801011115613bb457600080fd5b61328a8460208301602089016134e2565b80516001600160801b038116811461317157600080fd5b805164ffffffffff8116811461317157600080fd5b600060208284031215613c0357600080fd5b81516001600160401b0380821115613c1a57600080fd5b908301906102208286031215613c2f57600080fd5b613c37613aa9565b613c418684613ad2565b8152613c4f602084016134ba565b6020820152613c60604084016134ba565b6040820152613c71606084016134ba565b6060820152613c82608084016134ba565b6080820152613c9360a084016134ba565b60a0820152613ca460c084016134ba565b60c082015260e083015182811115613cbb57600080fd5b613cc787828601613b48565b60e08301525061010083810151908201526101208084015190820152610140808401519082015261016080840151908201526101809150613d09828401613bc5565b828201526101a09150613d1d828401613bc5565b828201526101c09150613d31828401613bc5565b828201526101e09150613d45828401613bc5565b828201526102009150613d59828401613bdc565b9181019190915294935050505056fea2646970667358221220443c707800b1d1402f5c079794c5cf0abacadaa4af2e15b507ef55675933de3264736f6c63430008100033",
    "sourceMap": "1621:14220:132:-:0;;;;;;;;;;;;;;;;;;;",
    "linkReferences": {
      "src/protocol/libraries/logic/ConfiguratorLogic.sol": {
        "ConfiguratorLogic": [
          {
            "start": 2015,
            "length": 20
          },
          {
            "start": 2520,
            "length": 20
          },
          {
            "start": 3316,
            "length": 20
          },
          {
            "start": 9616,
            "length": 20
          }
        ]
      }
    }
  },
  "deployedBytecode": {
    "object": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c806380a4d93d116100b8578063c4d66de81161007c578063c4d66de814610268578063c739fd411461027b578063ceaedb9b1461028e578063d9db75ee146102a1578063e49c8a52146102b4578063f9e8cafa146102c757600080fd5b806380a4d93d1461020957806384636d4f1461021c578063a9c644011461022f578063bbce5cf314610242578063bfead1a41461025557600080fd5b80633c8db8b1116100ff5780633c8db8b1146101aa5780635b5b815e146101bd578063746c35a2146101d05780637641f3d9146101e35780637bb28860146101f657600080fd5b80630e3427891461013c57806312b4f1901461014657806314699c651461015957806329534299146101845780632d72e18e14610197575b600080fd5b6101446102da565b005b610144610154366004613176565b61045b565b61016c6101673660046131cc565b610618565b60405161017b93929190613251565b60405180910390f35b6101446101923660046131cc565b6108ed565b6101446101a5366004613294565b610a5b565b6101446101b83660046131cc565b610c09565b6101446101cb3660046132ef565b610d71565b6101446101de366004613342565b611016565b6101446101f136600461335b565b611210565b6101446102043660046132ef565b61132e565b6101446102173660046131cc565b6115e2565b61014461022a36600461337d565b6117b1565b61014461023d366004613294565b6118d7565b61014461025036600461339f565b611b21565b6101446102633660046132ef565b611c16565b6101446102763660046133cf565b611ebb565b6101446102893660046133ec565b611fe0565b61014461029c3660046131cc565b6124a5565b6101446102af366004613461565b61260d565b6101446102c236600461337d565b612876565b6101446102d53660046132ef565b612969565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610323573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034791906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906103945760405162461bcd60e51b815260040161038b9190613506565b60405180910390fd5b50603354604080516377532ed960e01b815290516000926001600160a01b0316916377532ed99160048083019260209291908290030181865afa1580156103df573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061040391906134c5565b9050806001600160a01b031663caaabc606040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561044057600080fd5b505af1158015610454573d6000803e3d6000fd5b5050505050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa1580156104a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104c891906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b8152509061050c5760405162461bcd60e51b815260040161038b9190613506565b506000610517612bf7565b905060005b8381101561045457816001600160a01b0316631932277586868481811061054557610545613539565b90506020020135856040518363ffffffff1660e01b815260040161057c9291909182526001600160a01b0316602082015260400190565b600060405180830381600087803b15801561059657600080fd5b505af11580156105aa573d6000803e3d6000fd5b505050508484828181106105c0576105c0613539565b6040516001600160a01b038716815260209182029390930135927ffe4461f34cf72b37179ac7dc6e66d7e91f10582c203cc08170ea5bf090983c0a92500160405180910390a2806106108161354f565b91505061051c565b603354604080516315d9b46f60e31b815290516060928392839233926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610668573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068c91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906106d05760405162461bcd60e51b815260040161038b9190613506565b506000846001600160401b038111156106eb576106eb613576565b604051908082528060200260200182016040528015610714578160200160208202803683370190505b5090506000856001600160401b0381111561073157610731613576565b60405190808252806020026020018201604052801561075a578160200160208202803683370190505b5090506000866001600160401b0381111561077757610777613576565b6040519080825280602002602001820160405280156107a0578160200160208202803683370190505b50905060006107ad612bf7565b905060005b888110156108de5760335473__$0fe017e20684fbd032f923e9d615f3d00e$__9063a1086fed906001600160a01b0316848d8d868181106107f5576107f5613539565b9050602002810190610807919061358c565b6040518463ffffffff1660e01b81526004016108259392919061362c565b606060405180830381865af4158015610842573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086691906139aa565b87848151811061087857610878613539565b6020026020010187858151811061089157610891613539565b602002602001018786815181106108aa576108aa613539565b6001600160a01b039485166020918202929092010152928216909252919091169052806108d68161354f565b9150506107b2565b50929891975095509350505050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095a91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b8152509061099e5760405162461bcd60e51b815260040161038b9190613506565b5060006109a9612bf7565b905060005b82811015610a555773__$0fe017e20684fbd032f923e9d615f3d00e$__63d6979abe838686858181106109e3576109e3613539565b90506020028101906109f591906139ec565b6040518363ffffffff1660e01b8152600401610a12929190613a7d565b60006040518083038186803b158015610a2a57600080fd5b505af4158015610a3e573d6000803e3d6000fd5b505050508080610a4d9061354f565b9150506109ae565b50505050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610aa4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac891906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090610b0c5760405162461bcd60e51b815260040161038b9190613506565b506000610b17612bf7565b905060005b8381101561045457816001600160a01b031663d6ee0f73868684818110610b4557610b45613539565b90506020020135856040518363ffffffff1660e01b8152600401610b73929190918252602082015260400190565b600060405180830381600087803b158015610b8d57600080fd5b505af1158015610ba1573d6000803e3d6000fd5b50505050848482818110610bb757610bb7613539565b905060200201357fb5be071c2a981f4f4236982ec3bf0fcdb1a9b1471de2be1a7e78529eddd1f49e84604051610bef91815260200190565b60405180910390a280610c018161354f565b915050610b1c565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610c52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7691906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090610cba5760405162461bcd60e51b815260040161038b9190613506565b506000610cc5612bf7565b905060005b82811015610a555773__$0fe017e20684fbd032f923e9d615f3d00e$__63a94cd28d83868685818110610cff57610cff613539565b9050602002810190610d1191906139ec565b6040518363ffffffff1660e01b8152600401610d2e929190613a7d565b60006040518083038186803b158015610d4657600080fd5b505af4158015610d5a573d6000803e3d6000fd5b505050508080610d699061354f565b915050610cca565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090610e225760405162461bcd60e51b815260040161038b9190613506565b506000610e2d612bf7565b905060005b83811015610454576000826001600160a01b031663eadff055878785818110610e5d57610e5d613539565b905060200201356040518263ffffffff1660e01b8152600401610e8291815260200190565b6020604051808303816000875af1158015610ea1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec59190613b13565b90508315610edd57610ed8816001612c6a565b610ee8565b610ee8816000612c6a565b826001600160a01b03166389a7245d878785818110610f0957610f09613539565b9050602002013583600001516040518363ffffffff1660e01b8152600401610f3b929190918252602082015260400190565b600060405180830381600087803b158015610f5557600080fd5b505af1158015610f69573d6000803e3d6000fd5b505050508315610fbd57858583818110610f8557610f85613539565b905060200201357ff110ac45454fea6974019bce0132b7e85f3247dc7d147b3afbf3979c64d45ef460405160405180910390a2611003565b858583818110610fcf57610fcf613539565b905060200201357feed17fae9c8c79df92a8a28c129668d097f5c55c4cc4ea42d2d618c0fda8af8a60405160405180910390a25b508061100e8161354f565b915050610e32565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801561105f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061108391906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906110c75760405162461bcd60e51b815260040161038b9190613506565b5060006110d2612bf7565b90506000816001600160a01b03166308ac08b96040518163ffffffff1660e01b8152600401602060405180830381865afa158015611114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111389190613b2f565b90508083116040518060400160405280600381526020016237303160e81b815250906111775760405162461bcd60e51b815260040161038b9190613506565b50604051633a361ad160e11b8152600481018490526001600160a01b0383169063746c35a290602401600060405180830381600087803b1580156111ba57600080fd5b505af11580156111ce573d6000803e3d6000fd5b505050507f2326a0df34db769e143ca92ed7e2cd69db0263ec9604411030cbe62da6f62b218360405161120391815260200190565b60405180910390a1505050565b60335460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea9160048083019260209291908290030181865afa158015611259573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061127d91906134c5565b6001600160a01b031614604051806040016040528060038152602001621b981960e91b815250906112c15760405162461bcd60e51b815260040161038b9190613506565b5060006112cc612bf7565b60405163bedb86fb60e01b815283151560048201529091506001600160a01b0382169063bedb86fb90602401600060405180830381600087803b15801561131257600080fd5b505af1158015611326573d6000803e3d6000fd5b505050505050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015611377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139b91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906113df5760405162461bcd60e51b815260040161038b9190613506565b5060006113ea612bf7565b905060005b83811015610454576000826001600160a01b031663eadff05587878581811061141a5761141a613539565b905060200201356040518263ffffffff1660e01b815260040161143f91815260200190565b6020604051808303816000875af115801561145e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114829190613b13565b9050836114aa576114aa86868481811061149e5761149e613539565b90506020020135612c98565b6114b48185612de4565b826001600160a01b03166389a7245d8787858181106114d5576114d5613539565b9050602002013583600001516040518363ffffffff1660e01b8152600401611507929190918252602082015260400190565b600060405180830381600087803b15801561152157600080fd5b505af1158015611535573d6000803e3d6000fd5b5050505083156115895785858381811061155157611551613539565b905060200201357f1603fabc6ecfe8a2406f0d0a45592fff62c0c6875901cf35d8a091c74cc08b9a60405160405180910390a26115cf565b85858381811061159b5761159b613539565b905060200201357f8062272b11576c2818b72b2017028f551699cd48fb41767885eb72d18e44dbb260405160405180910390a25b50806115da8161354f565b9150506113ef565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa15801561162b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061164f91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906116935760405162461bcd60e51b815260040161038b9190613506565b50603354604080516347f872f160e01b815290516000926001600160a01b0316916347f872f19160048083019260209291908290030181865afa1580156116de573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170291906134c5565b905060005b82811015610a5557816001600160a01b03166307f7aafb85858481811061173057611730613539565b905060200201602081019061174591906133cf565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401600060405180830381600087803b15801561178657600080fd5b505af115801561179a573d6000803e3d6000fd5b5050505080806117a99061354f565b915050611707565b60335460408051636ee554f560e11b8152905133926001600160a01b03169163ddcaa9ea9160048083019260209291908290030181865afa1580156117fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061181e91906134c5565b6001600160a01b031614604051806040016040528060038152602001621b981960e91b815250906118625760405162461bcd60e51b815260040161038b9190613506565b50600061186d612bf7565b604051632f923ff760e01b815260048101859052602481018490529091506001600160a01b03821690632f923ff7906044015b600060405180830381600087803b1580156118ba57600080fd5b505af11580156118ce573d6000803e3d6000fd5b50505050505050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015611920573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194491906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906119885760405162461bcd60e51b815260040161038b9190613506565b506000611993612bf7565b905060005b83811015610454576000826001600160a01b031663eadff0558787858181106119c3576119c3613539565b905060200201356040518263ffffffff1660e01b81526004016119e891815260200190565b6020604051808303816000875af1158015611a07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2b9190613b13565b9050611a378185612e12565b826001600160a01b03166389a7245d878785818110611a5857611a58613539565b9050602002013583600001516040518363ffffffff1660e01b8152600401611a8a929190918252602082015260400190565b600060405180830381600087803b158015611aa457600080fd5b505af1158015611ab8573d6000803e3d6000fd5b50505050858583818110611ace57611ace613539565b905060200201357fa0d3e805ee1d3e2ede42facb6a56b605599f8e40d6c55fa36498cd68fbc3c81885604051611b0691815260200190565b60405180910390a25080611b198161354f565b915050611998565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015611b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8e91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090611bd25760405162461bcd60e51b815260040161038b9190613506565b506000611bdd612bf7565b60405163bbce5cf360e01b8152600481018590526001600160a01b0384811660248301529192509082169063bbce5cf3906044016118a0565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015611c5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c8391906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090611cc75760405162461bcd60e51b815260040161038b9190613506565b506000611cd2612bf7565b905060005b83811015610454576000826001600160a01b031663eadff055878785818110611d0257611d02613539565b905060200201356040518263ffffffff1660e01b8152600401611d2791815260200190565b6020604051808303816000875af1158015611d46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d6a9190613b13565b90508315611d8257611d7d816001612e6a565b611d8d565b611d8d816000612e6a565b826001600160a01b03166389a7245d878785818110611dae57611dae613539565b9050602002013583600001516040518363ffffffff1660e01b8152600401611de0929190918252602082015260400190565b600060405180830381600087803b158015611dfa57600080fd5b505af1158015611e0e573d6000803e3d6000fd5b505050508315611e6257858583818110611e2a57611e2a613539565b905060200201357fe0850c0895ec100425343341b0fe939b37776e188c991c2a14f3489a8207c73760405160405180910390a2611ea8565b858583818110611e7457611e74613539565b905060200201357f94676996b7d3838859708eff3c1f5a3dab2a43dfbff6399e14041d4b989df6ba60405160405180910390a25b5080611eb38161354f565b915050611cd7565b600054610100900460ff1615808015611edb5750600054600160ff909116105b80611ef55750303b158015611ef5575060005460ff166001145b611f585760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161038b565b6000805460ff191660011790558015611f7b576000805461ff0019166101001790555b603380546001600160a01b0319166001600160a01b0384161790558015611fdc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015612029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061204d91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906120915760405162461bcd60e51b815260040161038b9190613506565b50600061209c612bf7565b905060005b82811015610a55576000826001600160a01b031663eadff0558686858181106120cc576120cc613539565b90506101400201600001356040518263ffffffff1660e01b81526004016120f591815260200190565b6020604051808303816000875af1158015612114573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121389190613b13565b905084848381811061214c5761214c613539565b9050610140020160c0013585858481811061216957612169613539565b905061014002016040013511156040518060400160405280600381526020016237303160e81b815250906121b05760405162461bcd60e51b815260040161038b9190613506565b508484838181106121c3576121c3613539565b9050610140020160c00135600014612237576127108585848181106121ea576121ea613539565b9050610140020160a0013511156040518060400160405280600381526020016237303160e81b815250906122315760405162461bcd60e51b815260040161038b9190613506565b50612293565b84848381811061224957612249613539565b9050610140020160a001356000146040518060400160405280600381526020016237303160e81b815250906122915760405162461bcd60e51b815260040161038b9190613506565b505b6122c28585848181106122a8576122a8613539565b905061014002016020013582612e1290919063ffffffff16565b6122f18585848181106122d7576122d7613539565b905061014002016040013582612e9890919063ffffffff16565b61232085858481811061230657612306613539565b905061014002016060013582612ee290919063ffffffff16565b61234f85858481811061233557612335613539565b905061014002016080013582612f3690919063ffffffff16565b61237e85858481811061236457612364613539565b9050610140020160a0013582612f8990919063ffffffff16565b6123ad85858481811061239357612393613539565b9050610140020160c0013582612fdd90919063ffffffff16565b6123dc8585848181106123c2576123c2613539565b9050610140020160e001358261302f90919063ffffffff16565b61240c8585848181106123f1576123f1613539565b9050610140020161010001358261308290919063ffffffff16565b826001600160a01b03166389a7245d86868581811061242d5761242d613539565b85516040516001600160e01b031960e087901b16815261014090920293909301356004820152602481019290925250604401600060405180830381600087803b15801561247957600080fd5b505af115801561248d573d6000803e3d6000fd5b5050505050808061249d9061354f565b9150506120a1565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa1580156124ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251291906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906125565760405162461bcd60e51b815260040161038b9190613506565b506000612561612bf7565b905060005b82811015610a555773__$0fe017e20684fbd032f923e9d615f3d00e$__63f943de388386868581811061259b5761259b613539565b90506020028101906125ad91906139ec565b6040518363ffffffff1660e01b81526004016125ca929190613a7d565b60006040518083038186803b1580156125e257600080fd5b505af41580156125f6573d6000803e3d6000fd5b5050505080806126059061354f565b915050612566565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa158015612656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267a91906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906126be5760405162461bcd60e51b815260040161038b9190613506565b5060006126c9612bf7565b905060005b858110156118ce576000826001600160a01b031663eadff0558989858181106126f9576126f9613539565b905060200201356040518263ffffffff1660e01b815260040161271e91815260200190565b6020604051808303816000875af115801561273d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127619190613b13565b905061276d8187612f89565b612777818661302f565b6127818185613082565b826001600160a01b03166389a7245d8989858181106127a2576127a2613539565b9050602002013583600001516040518363ffffffff1660e01b81526004016127d4929190918252602082015260400190565b600060405180830381600087803b1580156127ee57600080fd5b505af1158015612802573d6000803e3d6000fd5b5050505087878381811061281857612818613539565b604080518a815260208181018b905291810189905291029290920135917f8e1b436e42bffc00dac953e4d4d5f688702e3e24b901bdaebf13d6e8f9046dde915060600160405180910390a2508061286e8161354f565b9150506126ce565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa1580156128bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e391906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b815250906129275760405162461bcd60e51b815260040161038b9190613506565b506000612932612bf7565b60405163724e452960e11b815260048101859052602481018490529091506001600160a01b0382169063e49c8a52906044016118a0565b603354604080516315d9b46f60e31b8152905133926001600160a01b03169163aecda3789160048083019260209291908290030181865afa1580156129b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129d691906134c5565b6001600160a01b0316146040518060400160405280600381526020016203130360ec1b81525090612a1a5760405162461bcd60e51b815260040161038b9190613506565b506000612a25612bf7565b905060005b83811015610454576000826001600160a01b031663eadff055878785818110612a5557612a55613539565b905060200201356040518263ffffffff1660e01b8152600401612a7a91815260200190565b6020604051808303816000875af1158015612a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abd9190613b13565b9050612ac981856130d5565b826001600160a01b03166389a7245d878785818110612aea57612aea613539565b9050602002013583600001516040518363ffffffff1660e01b8152600401612b1c929190918252602082015260400190565b600060405180830381600087803b158015612b3657600080fd5b505af1158015612b4a573d6000803e3d6000fd5b505050508315612b9e57858583818110612b6657612b66613539565b905060200201357f635c7b10ea9d592b3b5eef7ce7bda26b5e37eafc305f2c496ecbe4131c481fef60405160405180910390a2612be4565b858583818110612bb057612bb0613539565b905060200201357fc9b9ee8e2ea2d94533a409277610db94f7c5139a2159305e03a25f04bd54e15560405160405180910390a25b5080612bef8161354f565b915050612a2a565b60335460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b9160048083019260209291908290030181865afa158015612c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c6591906134c5565b905090565b603a81612c78576000612c7b565b60015b8351670400000000000000191660ff9190911690911b1790915250565b6000612ca2612bf7565b6001600160a01b03166377778db3836040518263ffffffff1660e01b8152600401612ccf91815260200190565b600060405180830381865afa158015612cec573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d149190810190613bf1565b604080820151606083015191516370a0823160e01b81526001600160a01b0392831660048201529293506000929116906370a0823190602401602060405180830381865afa158015612d6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d8e9190613b2f565b905080158015612daa57506101c08201516001600160801b0316155b6040518060400160405280600381526020016203730360ec1b81525090610a555760405162461bcd60e51b815260040161038b9190613506565b603881612df2576000612df5565b60015b8351670100000000000000191660ff9190911690911b1790915250565b6040805180820190915260038152620dcccd60ea1b602082015261ffff821115612e4f5760405162461bcd60e51b815260040161038b9190613506565b50815169ffff0000000000000000191660409190911b179052565b603b81612e78576000612e7b565b60015b8351670800000000000000191660ff9190911690911b1790915250565b60408051808201909152600381526203733360ec1b602082015261ffff821115612ed55760405162461bcd60e51b815260040161038b9190613506565b50815161ffff1916179052565b60408051808201909152600381526237333360e81b602082015260ff821115612f1e5760405162461bcd60e51b815260040161038b9190613506565b50815166ff000000000000191660309190911b179052565b60408051808201909152600381526237333960e81b602082015261ffff821115612f735760405162461bcd60e51b815260040161038b9190613506565b50815161ffff60501b191660509190911b179052565b6040805180820190915260038152621b999960e91b602082015261ffff821115612fc65760405162461bcd60e51b815260040161038b9190613506565b50815165ffff00000000191660209190911b179052565b60408051808201909152600381526237333160e81b602082015261ffff82111561301a5760405162461bcd60e51b815260040161038b9190613506565b50815163ffff0000191660109190911b179052565b60408051808201909152600381526203734360ec1b602082015261ffff82111561306c5760405162461bcd60e51b815260040161038b9190613506565b50815161ffff60601b191660609190911b179052565b60408051808201909152600381526237343160e81b602082015261ffff8211156130bf5760405162461bcd60e51b815260040161038b9190613506565b50815161ffff60701b191660709190911b179052565b6039816130e35760006130e6565b60015b8351670200000000000000191660ff9190911690911b1790915250565b60008083601f84011261311557600080fd5b5081356001600160401b0381111561312c57600080fd5b6020830191508360208260051b850101111561314757600080fd5b9250929050565b6001600160a01b038116811461316357600080fd5b50565b80356131718161314e565b919050565b60008060006040848603121561318b57600080fd5b83356001600160401b038111156131a157600080fd5b6131ad86828701613103565b90945092505060208401356131c18161314e565b809150509250925092565b600080602083850312156131df57600080fd5b82356001600160401b038111156131f557600080fd5b61320185828601613103565b90969095509350505050565b600081518084526020808501945080840160005b838110156132465781516001600160a01b031687529582019590820190600101613221565b509495945050505050565b606081526000613264606083018661320d565b8281036020840152613276818661320d565b9050828103604084015261328a818561320d565b9695505050505050565b6000806000604084860312156132a957600080fd5b83356001600160401b038111156132bf57600080fd5b6132cb86828701613103565b909790965060209590950135949350505050565b8035801515811461317157600080fd5b60008060006040848603121561330457600080fd5b83356001600160401b0381111561331a57600080fd5b61332686828701613103565b90945092506133399050602085016132df565b90509250925092565b60006020828403121561335457600080fd5b5035919050565b60006020828403121561336d57600080fd5b613376826132df565b9392505050565b6000806040838503121561339057600080fd5b50508035926020909101359150565b600080604083850312156133b257600080fd5b8235915060208301356133c48161314e565b809150509250929050565b6000602082840312156133e157600080fd5b81356133768161314e565b600080602083850312156133ff57600080fd5b82356001600160401b038082111561341657600080fd5b818501915085601f83011261342a57600080fd5b81358181111561343957600080fd5b8660206101408302850101111561344f57600080fd5b60209290920196919550909350505050565b60008060008060006080868803121561347957600080fd5b85356001600160401b0381111561348f57600080fd5b61349b88828901613103565b9099909850602088013597604081013597506060013595509350505050565b80516131718161314e565b6000602082840312156134d757600080fd5b81516133768161314e565b60005b838110156134fd5781810151838201526020016134e5565b50506000910152565b60208152600082518060208401526135258160408501602087016134e2565b601f01601f19169190910160400192915050565b634e487b7160e01b600052603260045260246000fd5b60006001820161356f57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6000823561033e198336030181126135a357600080fd5b9190910192915050565b6000808335601e198436030181126135c457600080fd5b83016020810192503590506001600160401b038111156135e357600080fd5b80360382131561314757600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b803560ff8116811461317157600080fd5b6001600160a01b0384811682528316602082015260606040820181905260009061366890830161365b85613166565b6001600160a01b03169052565b61367560208401846135ad565b61034080608086015261368d6103a0860183856135f2565b925061369c60408701876135ad565b9250605f19808786030160a08801526136b68585846135f2565b9450606088013560c0880152608088013560e08801526136d860a08901613166565b935061010091506136f3828801856001600160a01b03169052565b61370060c08901896135ad565b94506101208289880301818a01526137198787846135f2565b965061372860e08b018b6135ad565b96509150610140838a890301818b01526137438888856135f2565b9750613750858c0161361b565b96506101609450613765858b018860ff169052565b613770828c01613166565b9650610180925061378b838b01886001600160a01b03169052565b613797818c018c6135ad565b97509150506101a0838a890301818b01526137b38888846135f2565b97506137c1858c018c6135ad565b975094506101c09150838a890301828b01526137de8888876135f2565b97506137eb838c01613166565b96506101e09450613806858b01886001600160a01b03169052565b613812818c018c6135ad565b9750925050610200838a890301818b015261382e8888856135f2565b975061383c828c018c6135ad565b975092506102209150838a890301828b01526138598888856135f2565b9750613866858c01613166565b96506102409450613881858b01886001600160a01b03169052565b61388d818c018c6135ad565b9750925050610260838a890301818b01526138a98888856135f2565b97506138b7828c018c6135ad565b975092506102809150838a890301828b01526138d48888856135f2565b97506138e1858c01613166565b96506102a094506138fc858b01886001600160a01b03169052565b6102c09650808b0135878b015250613915818b01613166565b9150506102e061392f818a01836001600160a01b03169052565b61393a848b01613166565b93506103009150613955828a01856001600160a01b03169052565b6103209350858a0135848a0152808a0135858a0152508089013561036089015250613982828901896135ad565b945092508087860301610380880152505061399e8383836135f2565b98975050505050505050565b6000806000606084860312156139bf57600080fd5b83516139ca8161314e565b60208501519093506139db8161314e565b60408501519092506131c18161314e565b60008235609e198336030181126135a357600080fd5b60008135613a0f8161314e565b6001600160a01b039081168452602083013590613a2b8261314e565b9081166020850152604083013590613a428261314e565b16604084015260608281013590840152613a5f60808301836135ad565b60a06080860152613a7460a0860182846135f2565b95945050505050565b6001600160a01b0383168152604060208201819052600090613aa190830184613a02565b949350505050565b60405161022081016001600160401b0381118282101715613acc57613acc613576565b60405290565b600060208284031215613ae457600080fd5b604051602081018181106001600160401b0382111715613b0657613b06613576565b6040529151825250919050565b600060208284031215613b2557600080fd5b6133768383613ad2565b600060208284031215613b4157600080fd5b5051919050565b600082601f830112613b5957600080fd5b81516001600160401b0380821115613b7357613b73613576565b604051601f8301601f19908116603f01168101908282118183101715613b9b57613b9b613576565b81604052838152866020858801011115613bb457600080fd5b61328a8460208301602089016134e2565b80516001600160801b038116811461317157600080fd5b805164ffffffffff8116811461317157600080fd5b600060208284031215613c0357600080fd5b81516001600160401b0380821115613c1a57600080fd5b908301906102208286031215613c2f57600080fd5b613c37613aa9565b613c418684613ad2565b8152613c4f602084016134ba565b6020820152613c60604084016134ba565b6040820152613c71606084016134ba565b6060820152613c82608084016134ba565b6080820152613c9360a084016134ba565b60a0820152613ca460c084016134ba565b60c082015260e083015182811115613cbb57600080fd5b613cc787828601613b48565b60e08301525061010083810151908201526101208084015190820152610140808401519082015261016080840151908201526101809150613d09828401613bc5565b828201526101a09150613d1d828401613bc5565b828201526101c09150613d31828401613bc5565b828201526101e09150613d45828401613bc5565b828201526102009150613d59828401613bdc565b9181019190915294935050505056fea2646970667358221220443c707800b1d1402f5c079794c5cf0abacadaa4af2e15b507ef55675933de3264736f6c63430008100033",
    "sourceMap": "1621:14220:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15095:207;;;:::i;:::-;;7651:397;;;;;;:::i;:::-;;:::i;2327:803::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13986:320;;;;;;:::i;:::-;;:::i;11341:427::-;;;;;;:::i;:::-;;:::i;13586:299::-;;;;;;:::i;:::-;;:::i;3138:894::-;;;;;;:::i;:::-;;:::i;12521:401::-;;;;;;:::i;:::-;;:::i;13113:157::-;;;;;;:::i;:::-;;:::i;5002:839::-;;;;;;:::i;:::-;;:::i;14732:355::-;;;;;;:::i;:::-;;:::i;13278:218::-;;;;;;:::i;:::-;;:::i;6780:659::-;;;;;;:::i;:::-;;:::i;11912:221::-;;;;;;:::i;:::-;;:::i;4040:954::-;;;;;;:::i;:::-;;:::i;1869:135::-;;;;;;:::i;:::-;;:::i;8056:1998::-;;;;;;:::i;:::-;;:::i;14400:324::-;;;;;;:::i;:::-;;:::i;10404:929::-;;;;;;:::i;:::-;;:::i;12280:233::-;;;;;;:::i;:::-;;:::i;5849:734::-;;;;;;:::i;:::-;;:::i;15095:207::-;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;15209:16:132::1;::::0;:33:::1;::::0;;-1:-1:-1;;;15209:33:132;;;;15169:24:::1;::::0;-1:-1:-1;;;;;15209:16:132::1;::::0;:31:::1;::::0;:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:33:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15169:74;;15254:11;-1:-1:-1::0;;;;;15254:38:132::1;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15158:144;15095:207::o:0;7651:397::-;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;7776:23:::1;7802:17;:15;:17::i;:::-;7776:43;;7835:9;7830:211;7850:21:::0;;::::1;7830:211;;;7889:10;-1:-1:-1::0;;;;;7889:40:132::1;;7930:10;;7941:1;7930:13;;;;;;;:::i;:::-;;;;;;;7945:11;7889:68;;;;;;;;;;;;;;;9423:25:187::0;;;-1:-1:-1;;;;;9484:32:187;9479:2;9464:18;;9457:60;9411:2;9396:18;;9249:274;7889:68:132::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8002:10;;8013:1;8002:13;;;;;;;:::i;:::-;7975:54;::::0;-1:-1:-1;;;;;9692:32:187;;9674:51;;8002:13:132::1;::::0;;::::1;::::0;;;::::1;;::::0;7975:54:::1;::::0;-1:-1:-1;9647:18:187;7975:54:132::1;;;;;;;7873:3:::0;::::1;::::0;::::1;:::i;:::-;;;;7830:211;;2327:803:::0;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;2501:16;;;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;-1:-1:-1;2609:25:132::1;2651:5:::0;-1:-1:-1;;;;;2637:27:132;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;2637:27:132::1;-1:-1:-1::0;2609:55:132;-1:-1:-1;2675:26:132::1;2718:5:::0;-1:-1:-1;;;;;2704:27:132;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;2704:27:132::1;-1:-1:-1::0;2675:56:132;-1:-1:-1;2742:26:132::1;2785:5:::0;-1:-1:-1;;;;;2771:27:132;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;2771:27:132::1;;2742:56;;2819:23;2845:17;:15;:17::i;:::-;2819:43;;2878:9;2873:190;2893:16:::0;;::::1;2873:190;;;3012:16;::::0;2975:17:::1;::::0;:36:::1;::::0;-1:-1:-1;;;;;3012:16:132::1;3030:10:::0;3042:5;;3048:1;3042:8;;::::1;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;2975:76;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2932:8;2941:1;2932:11;;;;;;;;:::i;:::-;;;;;;2945:9;2955:1;2945:12;;;;;;;;:::i;:::-;;;;;;2959:9;2969:1;2959:12;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;2931:120:132;;::::1;2959:12;::::0;;::::1;::::0;;;;;2931:120;;;::::1;::::0;;;;;;::::1;::::0;;2911:3;::::1;::::0;::::1;:::i;:::-;;;;2873:190;;;-1:-1:-1::0;3091:8:132;;3101:9;;-1:-1:-1;3101:9:132;-1:-1:-1;2327:803:132;-1:-1:-1;;;;2327:803:132:o;13986:320::-;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;14103:23:::1;14129:17;:15;:17::i;:::-;14103:43;;14164:9;14159:140;14179:17:::0;;::::1;14159:140;;;14218:17;:46;14265:10;14277:6;;14284:1;14277:9;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;14218:69;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14198:3;;;;;:::i;:::-;;;;14159:140;;;;14092:214;13986:320:::0;;:::o;11341:427::-;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;11505:23:::1;11531:17;:15;:17::i;:::-;11505:43;;11564:9;11559:202;11579:21:::0;;::::1;11559:202;;;11622:10;-1:-1:-1::0;;;;;11622:30:132::1;;11653:10;;11664:1;11653:13;;;;;;;:::i;:::-;;;;;;;11668:9;11622:56;;;;;;;;;;;;;;;19090:25:187::0;;;19146:2;19131:18;;19124:34;19078:2;19063:18;;18916:248;11622:56:132::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11724:10;;11735:1;11724:13;;;;;;;:::i;:::-;;;;;;;11700:49;11739:9;11700:49;;;;19315:25:187::0;;19303:2;19288:18;;19169:177;11700:49:132::1;;;;;;;;11602:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11559:202;;13586:299:::0;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;13691:23:::1;13717:17;:15;:17::i;:::-;13691:43;;13752:9;13747:131;13767:17:::0;;::::1;13747:131;;;13806:17;:37;13844:10;13856:6;;13863:1;13856:9;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;13806:60;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13786:3;;;;;:::i;:::-;;;;13747:131;;3138:894:::0;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;3300:23:::1;3326:17;:15;:17::i;:::-;3300:43;;3359:9;3354:671;3374:21:::0;;::::1;3354:671;;;3417:54;3474:10;-1:-1:-1::0;;;;;3474:34:132::1;;3527:10;;3538:1;3527:13;;;;;;;:::i;:::-;;;;;;;3474:81;;;;;;;;;;;;;19315:25:187::0;;19303:2;19288:18;;19169:177;3474:81:132::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3417:138;;3574:4;3570:165;;;3599:39;:13:::0;3633:4:::1;3599:33;:39::i;:::-;3570:165;;;3679:40;:13:::0;3713:5:::1;3679:33;:40::i;:::-;3751:10;-1:-1:-1::0;;;;;3751:34:132::1;;3786:10;;3797:1;3786:13;;;;;;;:::i;:::-;;;;;;;3801;:18;;;3751:69;;;;;;;;;;;;;;;19090:25:187::0;;;19146:2;19131:18;;19124:34;19078:2;19063:18;;18916:248;3751:69:132::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3841:4;3837:177;;;3897:10;;3908:1;3897:13;;;;;;;:::i;:::-;;;;;;;3871:40;;;;;;;;;;3837:177;;;3984:10;;3995:1;3984:13;;;;;;;:::i;:::-;;;;;;;3957:41;;;;;;;;;;3837:177;-1:-1:-1::0;3397:3:132;::::1;::::0;::::1;:::i;:::-;;;;3354:671;;12521:401:::0;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;12603:23:::1;12629:17;:15;:17::i;:::-;12603:43;;12689:14;12706:10;-1:-1:-1::0;;;;;12706:33:132::1;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12689:52;;12769:6;12760;:15;12777:32;;;;;;;;;;;;;-1:-1:-1::0;;;12777:32:132::1;;::::0;12752:58:::1;;;;;-1:-1:-1::0;;;12752:58:132::1;;;;;;;;:::i;:::-;-1:-1:-1::0;12821:41:132::1;::::0;-1:-1:-1;;;12821:41:132;;::::1;::::0;::::1;19315:25:187::0;;;-1:-1:-1;;;;;12821:33:132;::::1;::::0;::::1;::::0;19288:18:187;;12821:41:132::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12880:34;12907:6;12880:34;;;;19315:25:187::0;;19303:2;19288:18;;19169:177;12880:34:132::1;;;;;;;;12592:330;;12521:401:::0;:::o;13113:157::-;2207:16;;:36;;;-1:-1:-1;;;2207:36:132;;;;929:10:33;;-1:-1:-1;;;;;2207:16:132;;:34;;:36;;;;;;;;;;;;;;:16;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2207:52:132;;2261:37;;;;;;;;;;;;;-1:-1:-1;;;2261:37:132;;;2199:100;;;;;-1:-1:-1;;;2199:100:132;;;;;;;;:::i;:::-;;13184:23:::1;13210:17;:15;:17::i;:::-;13238:24;::::0;-1:-1:-1;;;13238:24:132;;21455:14:187;;21448:22;13238:24:132::1;::::0;::::1;21430:41:187::0;13184:43:132;;-1:-1:-1;;;;;;13238:19:132;::::1;::::0;::::1;::::0;21403:18:187;;13238:24:132::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13173:97;13113:157:::0;:::o;5002:839::-;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;5161:23:::1;5187:17;:15;:17::i;:::-;5161:43;;5220:9;5215:619;5235:21:::0;;::::1;5215:619;;;5278:54;5335:10;-1:-1:-1::0;;;;;5335:34:132::1;;5388:10;;5399:1;5388:13;;;;;;;:::i;:::-;;;;;;;5335:81;;;;;;;;;;;;;19315:25:187::0;;19303:2;19288:18;;19169:177;5335:81:132::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5278:138;;5438:4;5433:85;;5463:39;5488:10;;5499:1;5488:13;;;;;;;:::i;:::-;;;;;;;5463:24;:39::i;:::-;5532:29;:13:::0;5556:4;5532:23:::1;:29::i;:::-;5576:10;-1:-1:-1::0;;;;;5576:34:132::1;;5611:10;;5622:1;5611:13;;;;;;;:::i;:::-;;;;;;;5626;:18;;;5576:69;;;;;;;;;;;;;;;19090:25:187::0;;;19146:2;19131:18;;19124:34;19078:2;19063:18;;18916:248;5576:69:132::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5666:4;5662:161;;;5714:10;;5725:1;5714:13;;;;;;;:::i;:::-;;;;;;;5697:31;;;;;;;;;;5662:161;;;5793:10;;5804:1;5793:13;;;;;;;:::i;:::-;;;;;;;5774:33;;;;;;;;;;5662:161;-1:-1:-1::0;5258:3:132;::::1;::::0;::::1;:::i;:::-;;;;5215:619;;14732:355:::0;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;-1:-1:-1;14897:16:132::1;::::0;:39:::1;::::0;;-1:-1:-1;;;14897:39:132;;;;14839:36:::1;::::0;-1:-1:-1;;;;;14897:16:132::1;::::0;:37:::1;::::0;:39:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:39:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14839:98;;14963:9;14958:121;14978:20:::0;;::::1;14958:121;;;15020:17;-1:-1:-1::0;;;;;15020:33:132::1;;15054:9;;15064:1;15054:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;15020:47;::::0;-1:-1:-1;;;;;;15020:47:132::1;::::0;;;;;;-1:-1:-1;;;;;9692:32:187;;;15020:47:132::1;::::0;::::1;9674:51:187::0;9647:18;;15020:47:132::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;15000:3;;;;;:::i;:::-;;;;14958:121;;13278:218:::0;2207:16;;:36;;;-1:-1:-1;;;2207:36:132;;;;929:10:33;;-1:-1:-1;;;;;2207:16:132;;:34;;:36;;;;;;;;;;;;;;:16;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2207:52:132;;2261:37;;;;;;;;;;;;;-1:-1:-1;;;2261:37:132;;;2199:100;;;;;-1:-1:-1;;;2199:100:132;;;;;;;;:::i;:::-;;13385:23:::1;13411:17;:15;:17::i;:::-;13439:49;::::0;-1:-1:-1;;;13439:49:132;;::::1;::::0;::::1;19090:25:187::0;;;19131:18;;;19124:34;;;13385:43:132;;-1:-1:-1;;;;;;13439:24:132;::::1;::::0;::::1;::::0;19063:18:187;;13439:49:132::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13374:122;13278:218:::0;;:::o;6780:659::-;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;6945:23:::1;6971:17;:15;:17::i;:::-;6945:43;;7004:9;6999:433;7019:21:::0;;::::1;6999:433;;;7062:54;7119:10;-1:-1:-1::0;;;;;7119:34:132::1;;7172:10;;7183:1;7172:13;;;;;;;:::i;:::-;;;;;;;7119:81;;;;;;;;;;;;;19315:25:187::0;;19303:2;19288:18;;19169:177;7119:81:132::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7062:138:::0;-1:-1:-1;7217:45:132::1;7062:138:::0;7248:13;7217:30:::1;:45::i;:::-;7279:10;-1:-1:-1::0;;;;;7279:34:132::1;;7314:10;;7325:1;7314:13;;;;;;;:::i;:::-;;;;;;;7329;:18;;;7279:69;;;;;;;;;;;;;;;19090:25:187::0;;;19146:2;19131:18;;19124:34;19078:2;19063:18;;18916:248;7279:69:132::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7391:10;;7402:1;7391:13;;;;;;;:::i;:::-;;;;;;;7370:50;7406:13;7370:50;;;;19315:25:187::0;;19303:2;19288:18;;19169:177;7370:50:132::1;;;;;;;;-1:-1:-1::0;7042:3:132;::::1;::::0;::::1;:::i;:::-;;;;6999:433;;11912:221:::0;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;12016:23:::1;12042:17;:15;:17::i;:::-;12070:55;::::0;-1:-1:-1;;;12070:55:132;;::::1;::::0;::::1;9423:25:187::0;;;-1:-1:-1;;;;;9484:32:187;;;9464:18;;;9457:60;12016:43:132;;-1:-1:-1;12070:35:132;;::::1;::::0;::::1;::::0;9396:18:187;;12070:55:132::1;9249:274:187::0;4040:954:132;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;4214:23:::1;4240:17;:15;:17::i;:::-;4214:43;;4273:9;4268:719;4288:21:::0;;::::1;4268:719;;;4331:54;4388:10;-1:-1:-1::0;;;;;4388:34:132::1;;4441:10;;4452:1;4441:13;;;;;;;:::i;:::-;;;;;;;4388:81;;;;;;;;;;;;;19315:25:187::0;;19303:2;19288:18;;19169:177;4388:81:132::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4331:138;;4488:4;4484:189;;;4513:51;:13:::0;4559:4:::1;4513:45;:51::i;:::-;4484:189;;;4605:52;:13:::0;4651:5:::1;4605:45;:52::i;:::-;4689:10;-1:-1:-1::0;;;;;4689:34:132::1;;4724:10;;4735:1;4724:13;;;;;;;:::i;:::-;;;;;;;4739;:18;;;4689:69;;;;;;;;;;;;;;;19090:25:187::0;;;19146:2;19131:18;;19124:34;19078:2;19063:18;;18916:248;4689:69:132::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4779:4;4775:201;;;4847:10;;4858:1;4847:13;;;;;;;:::i;:::-;;;;;;;4809:52;;;;;;;;;;4775:201;;;4946:10;;4957:1;4946:13;;;;;;;:::i;:::-;;;;;;;4907:53;;;;;;;;;;4775:201;-1:-1:-1::0;4311:3:132;::::1;::::0;::::1;:::i;:::-;;;;4268:719;;1869:135:::0;3268:19:18;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:18;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:18;1476:19:32;:23;;;3376:66:18;;-1:-1:-1;3425:12:18;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:18;;21684:2:187;3314:201:18;;;21666:21:187;21723:2;21703:18;;;21696:30;21762:34;21742:18;;;21735:62;-1:-1:-1;;;21813:18:187;;;21806:44;21867:19;;3314:201:18;21482:410:187;3314:201:18;3525:12;:16;;-1:-1:-1;;3525:16:18;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:18;;;;;3551:65;1944:16:132::1;:52:::0;;-1:-1:-1;;;;;;1944:52:132::1;-1:-1:-1::0;;;;;1944:52:132;::::1;;::::0;;3636:99:18;;;;3686:5;3670:21;;-1:-1:-1;;3670:21:18;;;3710:14;;-1:-1:-1;22049:36:187;;3710:14:18;;22037:2:187;22022:18;3710:14:18;;;;;;;3636:99;3258:483;1869:135:132;:::o;8056:1998::-;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;8168:23:::1;8194:17;:15;:17::i;:::-;8168:43;;8227:9;8222:1825;8242:17:::0;;::::1;8222:1825;;;8281:54;8338:10;-1:-1:-1::0;;;;;8338:34:132::1;;8391:6;;8398:1;8391:9;;;;;;;:::i;:::-;;;;;;:19;;;8338:87;;;;;;;;;;;;;19315:25:187::0;;19303:2;19288:18;;19169:177;8338:87:132::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8281:144;;8683:6;;8690:1;8683:9;;;;;;;:::i;:::-;;;;;;:30;;;8666:6;;8673:1;8666:9;;;;;;;:::i;:::-;;;;;;:13;;;:47;;8715:32;;;;;;;;;;;;;-1:-1:-1::0;;;8715:32:132::1;;::::0;8658:90:::1;;;;;-1:-1:-1::0;;;8658:90:132::1;;;;;;;;:::i;:::-;;8769:6;;8776:1;8769:9;;;;;;;:::i;:::-;;;;;;:30;;;8803:1;8769:35;8765:371;;470:3:145;8908:6:132;;8915:1;8908:9;;;;;;;:::i;:::-;;;;;;:26;;;:62;;8972:32;;;;;;;;;;;;;-1:-1:-1::0;;;8972:32:132::1;;::::0;8900:105:::1;;;;;-1:-1:-1::0;;;8900:105:132::1;;;;;;;;:::i;:::-;;8765:371;;;9054:6;;9061:1;9054:9;;;;;;;:::i;:::-;;;;;;:26;;;9084:1;9054:31;9087:32;;;;;;;;;;;;;-1:-1:-1::0;;;9087:32:132::1;;::::0;9046:74:::1;;;;;-1:-1:-1::0;;;9046:74:132::1;;;;;;;;:::i;:::-;;8765:371;9183:55;9214:6;;9221:1;9214:9;;;;;;;:::i;:::-;;;;;;:23;;;9183:13;:30;;:55;;;;:::i;:::-;9289:35;9310:6;;9317:1;9310:9;;;;;;;:::i;:::-;;;;;;:13;;;9289;:20;;:35;;;;:::i;:::-;9370:45;9396:6;;9403:1;9396:9;;;;;;;:::i;:::-;;;;;;:18;;;9370:13;:25;;:45;;;;:::i;:::-;9474:51;9503:6;;9510:1;9503:9;;;;;;;:::i;:::-;;;;;;:21;;;9474:13;:28;;:51;;;;:::i;:::-;9541:61;9575:6;;9582:1;9575:9;;;;;;;:::i;:::-;;;;;;:26;;;9541:13;:33;;:61;;;;:::i;:::-;9618:69;9656:6;;9663:1;9656:9;;;;;;;:::i;:::-;;;;;;:30;;;9618:13;:37;;:69;;;;:::i;:::-;9735:59;9768:6;;9775:1;9768:9;;;;;;;:::i;:::-;;;;;;:25;;;9735:13;:32;;:59;;;;:::i;:::-;9810:69;9848:6;;9855:1;9848:9;;;;;;;:::i;:::-;;;;;;:30;;;9810:13;:37;;:69;;;;:::i;:::-;9960:10;-1:-1:-1::0;;;;;9960:34:132::1;;9995:6;;10002:1;9995:9;;;;;;;:::i;:::-;10016:18:::0;;9960:75:::1;::::0;-1:-1:-1;;;;;;9960:75:132::1;::::0;;;;;;9995:9:::1;::::0;;::::1;::::0;;;::::1;:19;9960:75;::::0;::::1;19090:25:187::0;19131:18;;;19124:34;;;;-1:-1:-1;19063:18:187;;9960:75:132::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8266:1781;8261:3;;;;;:::i;:::-;;;;8222:1825;;14400:324:::0;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;14519:23:::1;14545:17;:15;:17::i;:::-;14519:43;;14580:9;14575:142;14595:17:::0;;::::1;14575:142;;;14634:17;:48;14683:10;14695:6;;14702:1;14695:9;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;14634:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14614:3;;;;;:::i;:::-;;;;14575:142;;10404:929:::0;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;10652:23:::1;10678:17;:15;:17::i;:::-;10652:43;;10711:9;10706:620;10726:21:::0;;::::1;10706:620;;;10769:54;10826:10;-1:-1:-1::0;;;;;10826:34:132::1;;10879:10;;10890:1;10879:13;;;;;;;:::i;:::-;;;;;;;10826:81;;;;;;;;;;;;;19315:25:187::0;;19303:2;19288:18;;19169:177;10826:81:132::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10769:138:::0;-1:-1:-1;10924:51:132::1;10769:138:::0;10958:16;10924:33:::1;:51::i;:::-;10990:49;:13:::0;11023:15;10990:32:::1;:49::i;:::-;11054:59;:13:::0;11092:20;11054:37:::1;:59::i;:::-;11130:10;-1:-1:-1::0;;;;;11130:34:132::1;;11165:10;;11176:1;11165:13;;;;;;;:::i;:::-;;;;;;;11180;:18;;;11130:69;;;;;;;;;;;;;;;19090:25:187::0;;;19146:2;19131:18;;19124:34;19078:2;19063:18;;18916:248;11130:69:132::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11243:10;;11254:1;11243:13;;;;;;;:::i;:::-;11221:93;::::0;;22298:25:187;;;11243:13:132::1;22339:18:187::0;;;22332:34;;;22382:18;;;22375:34;;;11243:13:132;::::1;::::0;;;::::1;;::::0;11221:93:::1;::::0;-1:-1:-1;22286:2:187;22271:18;11221:93:132::1;;;;;;;-1:-1:-1::0;10749:3:132;::::1;::::0;::::1;:::i;:::-;;;;10706:620;;12280:233:::0;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;12390:23:::1;12416:17;:15;:17::i;:::-;12444:61;::::0;-1:-1:-1;;;12444:61:132;;::::1;::::0;::::1;19090:25:187::0;;;19131:18;;;19124:34;;;12390:43:132;;-1:-1:-1;;;;;;12444:38:132;::::1;::::0;::::1;::::0;19063:18:187;;12444:61:132::1;18916:248:187::0;5849:734:132;2054:16;;:31;;;-1:-1:-1;;;2054:31:132;;;;929:10:33;;-1:-1:-1;;;;;2054:16:132;;:29;;:31;;;;;;;;;;;;;;:16;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2054:47:132;;2103:28;;;;;;;;;;;;;-1:-1:-1;;;2103:28:132;;;2046:86;;;;;-1:-1:-1;;;2046:86:132;;;;;;;;:::i;:::-;;6008:23:::1;6034:17;:15;:17::i;:::-;6008:43;;6067:9;6062:514;6082:21:::0;;::::1;6062:514;;;6125:54;6182:10;-1:-1:-1::0;;;;;6182:34:132::1;;6235:10;;6246:1;6235:13;;;;;;;:::i;:::-;;;;;;;6182:81;;;;;;;;;;;;;19315:25:187::0;;19303:2;19288:18;;19169:177;6182:81:132::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6125:138:::0;-1:-1:-1;6280:29:132::1;6125:138:::0;6304:4;6280:23:::1;:29::i;:::-;6324:10;-1:-1:-1::0;;;;;6324:34:132::1;;6359:10;;6370:1;6359:13;;;;;;;:::i;:::-;;;;;;;6374;:18;;;6324:69;;;;;;;;;;;;;;;19090:25:187::0;;;19146:2;19131:18;;19124:34;19078:2;19063:18;;18916:248;6324:69:132::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6414:4;6410:155;;;6459:10;;6470:1;6459:13;;;;;;;:::i;:::-;;;;;;;6445:28;;;;;;;;;;6410:155;;;6535:10;;6546:1;6535:13;;;;;;;:::i;:::-;;;;;;;6519:30;;;;;;;;;;6410:155;-1:-1:-1::0;6105:3:132;::::1;::::0;::::1;:::i;:::-;;;;6062:514;;15701:137:::0;15796:16;;:33;;;-1:-1:-1;;;15796:33:132;;;;15751:12;;-1:-1:-1;;;;;15796:16:132;;:31;;:33;;;;;;;;;;;;;;:16;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15776:54;;15701:137;:::o;7648:224:134:-;2410:2;7810:7;:15;;7824:1;7810:15;;;7820:1;7810:15;7771:9;;-1:-1:-1;;7771:26:134;7802:24;;;;;:64;;;7770:97;7758:109;;;-1:-1:-1;7648:224:134:o;15310:383:132:-;15388:32;15423:17;:15;:17::i;:::-;-1:-1:-1;;;;;15423:28:132;;15452:9;15423:39;;;;;;;;;;;;;19315:25:187;;19303:2;19288:18;;19169:177;15423:39:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15423:39:132;;;;;;;;;;;;:::i;:::-;15522:13;;;;;15547:21;;;;15504:65;;-1:-1:-1;;;15504:65:132;;-1:-1:-1;;;;;9692:32:187;;;15504:65:132;;;9674:51:187;15388:74:132;;-1:-1:-1;15475:26:132;;15504:42;;;;;9647:18:187;;15504:65:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15475:94;-1:-1:-1;15590:23:132;;:60;;;;-1:-1:-1;15617:28:132;;;;-1:-1:-1;;;;;15617:33:132;;15590:60;15652:34;;;;;;;;;;;;;-1:-1:-1;;;15652:34:132;;;15582:105;;;;;-1:-1:-1;;;15582:105:132;;;;;;;;:::i;6345:201:134:-;2294:2;6493:6;:14;;6506:1;6493:14;;;6502:1;6493:14;6457:9;;-1:-1:-1;;6457:23:134;6485;;;;;:55;;;6456:85;6444:97;;;-1:-1:-1;6345:201:134:o;9165:312::-;9332:32;;;;;;;;;;;;-1:-1:-1;;;9332:32:134;;;;2980:5;9289:41;;;9281:84;;;;-1:-1:-1;;;9281:84:134;;;;;;;;:::i;:::-;-1:-1:-1;9385:9:134;;-1:-1:-1;;9385:31:134;2540:2;9421:50;;;;9384:88;9372:100;;9165:312::o;8395:266::-;2481:2;8590:7;:15;;8604:1;8590:15;;;8600:1;8590:15;8536:9;;-1:-1:-1;;8536:35:134;8582:24;;;;;:73;;;8535:121;8517:139;;;-1:-1:-1;8395:266:134:o;3271:200::-;3397:21;;;;;;;;;;;;-1:-1:-1;;;3397:21:134;;;;2766:5;3375:20;;;3367:52;;;;-1:-1:-1;;;3367:52:134;;;;;;;;:::i;:::-;-1:-1:-1;3439:9:134;;-1:-1:-1;;3439:20:134;3438:28;3426:40;;3271:200::o;5574:276::-;5720:26;;;;;;;;;;;;-1:-1:-1;;;5720:26:134;;;;2929:3;5688:30;;;5680:67;;;;-1:-1:-1;;;5680:67:134;;;;;;;;:::i;:::-;-1:-1:-1;5767:9:134;;-1:-1:-1;;5767:25:134;2240:2;5797:47;;;;5766:79;5754:91;;5574:276::o;10319:290::-;10472:30;;;;;;;;;;;;-1:-1:-1;;;10472:30:134;;;;3025:5;10439:31;;;10431:72;;;;-1:-1:-1;;;10431:72:134;;;;;;;;:::i;:::-;-1:-1:-1;10523:9:134;;-1:-1:-1;;;;10523:29:134;2597:2;10557:46;;;;10522:82;10510:94;;10319:290::o;4767:295::-;4924:27;;;;;;;;;;;;-1:-1:-1;;;4924:27:134;;;;2882:5;4886:36;;;4878:74;;;;-1:-1:-1;;;4878:74:134;;;;;;;;:::i;:::-;-1:-1:-1;4972:9:134;;-1:-1:-1;;4972:34:134;2179:2;5011:45;;;;4971:86;4959:98;;4767:295::o;3913:327::-;4086:31;;;;;;;;;;;;-1:-1:-1;;;4086:31:134;;;;2826:5;4040:44;;;4032:86;;;;-1:-1:-1;;;4032:86:134;;;;;;;;:::i;:::-;-1:-1:-1;4138:9:134;;-1:-1:-1;;4138:38:134;2117:2;4181:53;;;;4137:98;4125:110;;3913:327::o;11147:322::-;11316:34;;;;;;;;;;;;-1:-1:-1;;;11316:34:134;;;;3074:5;11275:39;;;11267:84;;;;-1:-1:-1;;;11267:84:134;;;;;;;;:::i;:::-;-1:-1:-1;11371:9:134;;-1:-1:-1;;;;11371:33:134;2658:2;11409:54;;;;11370:94;11358:106;;11147:322::o;12022:366::-;12212:40;;;;;;;;;;;;-1:-1:-1;;;12212:40:134;;;;3129:5;12160:50;;;12152:101;;;;-1:-1:-1;;;12152:101:134;;;;;;;;:::i;:::-;-1:-1:-1;12273:9:134;;-1:-1:-1;;;;12273:39:134;2725:3;12317:65;;;;12272:111;12260:123;;12022:366::o;6971:201::-;2348:2;7119:6;:14;;7132:1;7119:14;;;7128:1;7119:14;7083:9;;-1:-1:-1;;7083:23:134;7111;;;;;:55;;;7082:85;7070:97;;;-1:-1:-1;6971:201:134:o;14:367:187:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:187;;-1:-1:-1;;;;;214:30:187;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:131::-;-1:-1:-1;;;;;461:31:187;;451:42;;441:70;;507:1;504;497:12;441:70;386:131;:::o;522:134::-;590:20;;619:31;590:20;619:31;:::i;:::-;522:134;;;:::o;661:572::-;756:6;764;772;825:2;813:9;804:7;800:23;796:32;793:52;;;841:1;838;831:12;793:52;881:9;868:23;-1:-1:-1;;;;;906:6:187;903:30;900:50;;;946:1;943;936:12;900:50;985:70;1047:7;1038:6;1027:9;1023:22;985:70;:::i;:::-;1074:8;;-1:-1:-1;959:96:187;-1:-1:-1;;1159:2:187;1144:18;;1131:32;1172:31;1131:32;1172:31;:::i;:::-;1222:5;1212:15;;;661:572;;;;;:::o;1238:474::-;1361:6;1369;1422:2;1410:9;1401:7;1397:23;1393:32;1390:52;;;1438:1;1435;1428:12;1390:52;1478:9;1465:23;-1:-1:-1;;;;;1503:6:187;1500:30;1497:50;;;1543:1;1540;1533:12;1497:50;1582:70;1644:7;1635:6;1624:9;1620:22;1582:70;:::i;:::-;1671:8;;1556:96;;-1:-1:-1;1238:474:187;-1:-1:-1;;;;1238:474:187:o;1826:461::-;1879:3;1917:5;1911:12;1944:6;1939:3;1932:19;1970:4;1999:2;1994:3;1990:12;1983:19;;2036:2;2029:5;2025:14;2057:1;2067:195;2081:6;2078:1;2075:13;2067:195;;;2146:13;;-1:-1:-1;;;;;2142:39:187;2130:52;;2202:12;;;;2237:15;;;;2178:1;2096:9;2067:195;;;-1:-1:-1;2278:3:187;;1826:461;-1:-1:-1;;;;;1826:461:187:o;2292:669::-;2627:2;2616:9;2609:21;2590:4;2653:56;2705:2;2694:9;2690:18;2682:6;2653:56;:::i;:::-;2757:9;2749:6;2745:22;2740:2;2729:9;2725:18;2718:50;2791:44;2828:6;2820;2791:44;:::i;:::-;2777:58;;2883:9;2875:6;2871:22;2866:2;2855:9;2851:18;2844:50;2911:44;2948:6;2940;2911:44;:::i;:::-;2903:52;2292:669;-1:-1:-1;;;;;;2292:669:187:o;3449:505::-;3544:6;3552;3560;3613:2;3601:9;3592:7;3588:23;3584:32;3581:52;;;3629:1;3626;3619:12;3581:52;3669:9;3656:23;-1:-1:-1;;;;;3694:6:187;3691:30;3688:50;;;3734:1;3731;3724:12;3688:50;3773:70;3835:7;3826:6;3815:9;3811:22;3773:70;:::i;:::-;3862:8;;3747:96;;-1:-1:-1;3944:2:187;3929:18;;;;3916:32;;3449:505;-1:-1:-1;;;;3449:505:187:o;4439:160::-;4504:20;;4560:13;;4553:21;4543:32;;4533:60;;4589:1;4586;4579:12;4604:505;4696:6;4704;4712;4765:2;4753:9;4744:7;4740:23;4736:32;4733:52;;;4781:1;4778;4771:12;4733:52;4821:9;4808:23;-1:-1:-1;;;;;4846:6:187;4843:30;4840:50;;;4886:1;4883;4876:12;4840:50;4925:70;4987:7;4978:6;4967:9;4963:22;4925:70;:::i;:::-;5014:8;;-1:-1:-1;4899:96:187;-1:-1:-1;5068:35:187;;-1:-1:-1;5099:2:187;5084:18;;5068:35;:::i;:::-;5058:45;;4604:505;;;;;:::o;5114:180::-;5173:6;5226:2;5214:9;5205:7;5201:23;5197:32;5194:52;;;5242:1;5239;5232:12;5194:52;-1:-1:-1;5265:23:187;;5114:180;-1:-1:-1;5114:180:187:o;5299:::-;5355:6;5408:2;5396:9;5387:7;5383:23;5379:32;5376:52;;;5424:1;5421;5414:12;5376:52;5447:26;5463:9;5447:26;:::i;:::-;5437:36;5299:180;-1:-1:-1;;;5299:180:187:o;5926:248::-;5994:6;6002;6055:2;6043:9;6034:7;6030:23;6026:32;6023:52;;;6071:1;6068;6061:12;6023:52;-1:-1:-1;;6094:23:187;;;6164:2;6149:18;;;6136:32;;-1:-1:-1;5926:248:187:o;6179:315::-;6247:6;6255;6308:2;6296:9;6287:7;6283:23;6279:32;6276:52;;;6324:1;6321;6314:12;6276:52;6360:9;6347:23;6337:33;;6420:2;6409:9;6405:18;6392:32;6433:31;6458:5;6433:31;:::i;:::-;6483:5;6473:15;;;6179:315;;;;;:::o;6499:247::-;6558:6;6611:2;6599:9;6590:7;6586:23;6582:32;6579:52;;;6627:1;6624;6617:12;6579:52;6666:9;6653:23;6685:31;6710:5;6685:31;:::i;6751:659::-;6876:6;6884;6937:2;6925:9;6916:7;6912:23;6908:32;6905:52;;;6953:1;6950;6943:12;6905:52;6993:9;6980:23;-1:-1:-1;;;;;7063:2:187;7055:6;7052:14;7049:34;;;7079:1;7076;7069:12;7049:34;7117:6;7106:9;7102:22;7092:32;;7162:7;7155:4;7151:2;7147:13;7143:27;7133:55;;7184:1;7181;7174:12;7133:55;7224:2;7211:16;7250:2;7242:6;7239:14;7236:34;;;7266:1;7263;7256:12;7236:34;7324:7;7319:2;7309:6;7301;7297:19;7293:2;7289:28;7285:37;7282:50;7279:70;;;7345:1;7342;7335:12;7279:70;7376:2;7368:11;;;;;7398:6;;-1:-1:-1;6751:659:187;;-1:-1:-1;;;;6751:659:187:o;7415:642::-;7528:6;7536;7544;7552;7560;7613:3;7601:9;7592:7;7588:23;7584:33;7581:53;;;7630:1;7627;7620:12;7581:53;7670:9;7657:23;-1:-1:-1;;;;;7695:6:187;7692:30;7689:50;;;7735:1;7732;7725:12;7689:50;7774:70;7836:7;7827:6;7816:9;7812:22;7774:70;:::i;:::-;7863:8;;7748:96;;-1:-1:-1;7945:2:187;7930:18;;7917:32;;7996:2;7981:18;;7968:32;;-1:-1:-1;8047:2:187;8032:18;8019:32;;-1:-1:-1;7415:642:187;-1:-1:-1;;;;7415:642:187:o;8062:138::-;8141:13;;8163:31;8141:13;8163:31;:::i;8205:251::-;8275:6;8328:2;8316:9;8307:7;8303:23;8299:32;8296:52;;;8344:1;8341;8334:12;8296:52;8376:9;8370:16;8395:31;8420:5;8395:31;:::i;8461:250::-;8546:1;8556:113;8570:6;8567:1;8564:13;8556:113;;;8646:11;;;8640:18;8627:11;;;8620:39;8592:2;8585:10;8556:113;;;-1:-1:-1;;8703:1:187;8685:16;;8678:27;8461:250::o;8716:396::-;8865:2;8854:9;8847:21;8828:4;8897:6;8891:13;8940:6;8935:2;8924:9;8920:18;8913:34;8956:79;9028:6;9023:2;9012:9;9008:18;9003:2;8995:6;8991:15;8956:79;:::i;:::-;9096:2;9075:15;-1:-1:-1;;9071:29:187;9056:45;;;;9103:2;9052:54;;8716:396;-1:-1:-1;;8716:396:187:o;9117:127::-;9178:10;9173:3;9169:20;9166:1;9159:31;9209:4;9206:1;9199:15;9233:4;9230:1;9223:15;9736:232;9775:3;9796:17;;;9793:140;;9855:10;9850:3;9846:20;9843:1;9836:31;9890:4;9887:1;9880:15;9918:4;9915:1;9908:15;9793:140;-1:-1:-1;9960:1:187;9949:13;;9736:232::o;9973:127::-;10034:10;10029:3;10025:20;10022:1;10015:31;10065:4;10062:1;10055:15;10089:4;10086:1;10079:15;10105:335;10208:4;10266:11;10253:25;10360:3;10356:8;10345;10329:14;10325:29;10321:44;10301:18;10297:69;10287:97;;10380:1;10377;10370:12;10287:97;10401:33;;;;;10105:335;-1:-1:-1;;10105:335:187:o;10445:501::-;10504:5;10511:6;10571:3;10558:17;10657:2;10653:7;10642:8;10626:14;10622:29;10618:43;10598:18;10594:68;10584:96;;10676:1;10673;10666:12;10584:96;10704:33;;10808:4;10795:18;;;-1:-1:-1;10756:21:187;;-1:-1:-1;;;;;;10825:30:187;;10822:50;;;10868:1;10865;10858:12;10822:50;10915:6;10899:14;10895:27;10888:5;10884:39;10881:59;;;10936:1;10933;10926:12;10951:267;11040:6;11035:3;11028:19;11092:6;11085:5;11078:4;11073:3;11069:14;11056:43;-1:-1:-1;11144:1:187;11119:16;;;11137:4;11115:27;;;11108:38;;;;11200:2;11179:15;;;-1:-1:-1;;11175:29:187;11166:39;;;11162:50;;10951:267::o;11223:156::-;11289:20;;11349:4;11338:16;;11328:27;;11318:55;;11369:1;11366;11359:12;11464:5309;-1:-1:-1;;;;;11815:15:187;;;11797:34;;11867:15;;11862:2;11847:18;;11840:43;11919:2;11914;11899:18;;11892:30;;;11740:4;;11931:66;;11978:18;;11950:26;11969:6;11950:26;:::i;:::-;-1:-1:-1;;;;;1783:31:187;1771:44;;1717:104;11931:66;12040:56;12092:2;12084:6;12080:15;12072:6;12040:56;:::i;:::-;12115:6;12158:2;12152:3;12141:9;12137:19;12130:31;12184:75;12254:3;12243:9;12239:19;12225:12;12211;12184:75;:::i;:::-;12170:89;;12306:56;12358:2;12350:6;12346:15;12338:6;12306:56;:::i;:::-;12268:94;;12385:2;12381:7;12453:2;12441:9;12433:6;12429:22;12425:31;12419:3;12408:9;12404:19;12397:60;12480:66;12539:6;12523:14;12507;12480:66;:::i;:::-;12466:80;;12608:2;12600:6;12596:15;12583:29;12577:3;12566:9;12562:19;12555:58;12675:3;12667:6;12663:16;12650:30;12644:3;12633:9;12629:19;12622:59;12712:36;12743:3;12735:6;12731:16;12712:36;:::i;:::-;12690:58;;12767:3;12757:13;;12779:54;12829:2;12818:9;12814:18;12798:14;-1:-1:-1;;;;;1783:31:187;1771:44;;1717:104;12779:54;12880:57;12932:3;12924:6;12920:16;12912:6;12880:57;:::i;:::-;12842:95;;12956:3;13023:2;13011:9;13003:6;12999:22;12995:31;12990:2;12979:9;12975:18;12968:59;13050:66;13109:6;13093:14;13077;13050:66;:::i;:::-;13036:80;;13163:57;13215:3;13207:6;13203:16;13195:6;13163:57;:::i;:::-;13125:95;;;;13239:3;13306:2;13294:9;13286:6;13282:22;13278:31;13273:2;13262:9;13258:18;13251:59;13333:66;13392:6;13376:14;13360;13333:66;:::i;:::-;13319:80;;13430:33;13459:2;13451:6;13447:15;13430:33;:::i;:::-;13408:55;;13482:3;13472:13;;13494:52;13542:2;13531:9;13527:18;13511:14;11451:4;11440:16;11428:29;;11384:75;13494:52;13577:35;13608:2;13600:6;13596:15;13577:35;:::i;:::-;13555:57;;13631:3;13621:13;;13643:54;13693:2;13682:9;13678:18;13662:14;-1:-1:-1;;;;;1783:31:187;1771:44;;1717:104;13643:54;13744:56;13796:2;13788:6;13784:15;13776:6;13744:56;:::i;:::-;13706:94;;;;;13819:3;13886:2;13874:9;13866:6;13862:22;13858:31;13853:2;13842:9;13838:18;13831:59;13913:66;13972:6;13956:14;13940;13913:66;:::i;:::-;13899:80;;14026:56;14078:2;14070:6;14066:15;14058:6;14026:56;:::i;:::-;13988:94;;;;14102:3;14091:14;;14170:2;14158:9;14150:6;14146:22;14142:31;14136:3;14125:9;14121:19;14114:60;14197:66;14256:6;14240:14;14224;14197:66;:::i;:::-;14183:80;;14294:35;14325:2;14317:6;14313:15;14294:35;:::i;:::-;14272:57;;14349:3;14338:14;;14361:55;14411:3;14400:9;14396:19;14380:14;-1:-1:-1;;;;;1783:31:187;1771:44;;1717:104;14361:55;14464:56;14516:2;14508:6;14504:15;14496:6;14464:56;:::i;:::-;14425:95;;;;;14540:3;14608:2;14596:9;14588:6;14584:22;14580:31;14574:3;14563:9;14559:19;14552:60;14635:67;14695:6;14679:14;14662:15;14635:67;:::i;:::-;14621:81;;14750:57;14802:3;14794:6;14790:16;14782:6;14750:57;:::i;:::-;14711:96;;;;14827:3;14816:14;;14895:2;14883:9;14875:6;14871:22;14867:31;14861:3;14850:9;14846:19;14839:60;14922:67;14982:6;14966:14;14949:15;14922:67;:::i;:::-;14908:81;;15021:36;15052:3;15044:6;15040:16;15021:36;:::i;:::-;14998:59;;15077:3;15066:14;;15089:56;15140:3;15129:9;15125:19;15108:15;-1:-1:-1;;;;;1783:31:187;1771:44;;1717:104;15089:56;15193:57;15245:3;15237:6;15233:16;15225:6;15193:57;:::i;:::-;15154:96;;;;;15270:3;15338:2;15326:9;15318:6;15314:22;15310:31;15304:3;15293:9;15289:19;15282:60;15365:67;15425:6;15409:14;15392:15;15365:67;:::i;:::-;15351:81;;15480:57;15532:3;15524:6;15520:16;15512:6;15480:57;:::i;:::-;15441:96;;;;15557:3;15546:14;;15625:2;15613:9;15605:6;15601:22;15597:31;15591:3;15580:9;15576:19;15569:60;15653:67;15713:6;15697:14;15680:15;15653:67;:::i;:::-;15638:82;;15752:36;15783:3;15775:6;15771:16;15752:36;:::i;:::-;15729:59;;15808:3;15797:14;;15820:56;15871:3;15860:9;15856:19;15839:15;-1:-1:-1;;;;;1783:31:187;1771:44;;1717:104;15820:56;15896:3;15885:14;;15961:3;15953:6;15949:16;15936:30;15930:3;15919:9;15915:19;15908:59;;15999:36;16030:3;16022:6;16018:16;15999:36;:::i;:::-;15976:59;;;16055:3;16067:56;16118:3;16107:9;16103:19;16086:15;-1:-1:-1;;;;;1783:31:187;1771:44;;1717:104;16067:56;16155:36;16186:3;16178:6;16174:16;16155:36;:::i;:::-;16132:59;;16211:3;16200:14;;16223:56;16274:3;16263:9;16259:19;16242:15;-1:-1:-1;;;;;1783:31:187;1771:44;;1717:104;16223:56;16299:3;16288:14;;16364:3;16356:6;16352:16;16339:30;16333:3;16322:9;16318:19;16311:59;16431:3;16423:6;16419:16;16406:30;16401:2;16390:9;16386:18;16379:58;;16499:3;16491:6;16487:16;16474:30;16468:3;16457:9;16453:19;16446:59;;16554:57;16606:3;16598:6;16594:16;16586:6;16554:57;:::i;:::-;16514:97;;;;16677:2;16665:9;16656:7;16652:23;16648:32;16642:3;16631:9;16627:19;16620:61;;;16698:69;16759:7;16742:15;16725;16698:69;:::i;:::-;16690:77;11464:5309;-1:-1:-1;;;;;;;;11464:5309:187:o;16778:519::-;16866:6;16874;16882;16935:2;16923:9;16914:7;16910:23;16906:32;16903:52;;;16951:1;16948;16941:12;16903:52;16983:9;16977:16;17002:31;17027:5;17002:31;:::i;:::-;17102:2;17087:18;;17081:25;17052:5;;-1:-1:-1;17115:33:187;17081:25;17115:33;:::i;:::-;17219:2;17204:18;;17198:25;17167:7;;-1:-1:-1;17232:33:187;17198:25;17232:33;:::i;17302:339::-;17409:4;17467:11;17454:25;17561:3;17557:8;17546;17530:14;17526:29;17522:44;17502:18;17498:69;17488:97;;17581:1;17578;17571:12;17646:823;17718:3;17764:5;17751:19;17779:33;17804:7;17779:33;:::i;:::-;-1:-1:-1;;;;;17871:16:187;;;17859:29;;17936:4;17925:16;;17912:30;;17951:33;17912:30;17951:33;:::i;:::-;18016:16;;;18009:4;18000:14;;17993:40;18081:4;18070:16;;18057:30;;18096:33;18057:30;18096:33;:::i;:::-;18161:16;18154:4;18145:14;;18138:40;18234:4;18223:16;;;18210:30;18194:14;;;18187:54;18284:56;18334:4;18323:16;;18227:5;18284:56;:::i;:::-;18372:4;18365;18360:3;18356:14;18349:28;18393:70;18457:4;18452:3;18448:14;18434:12;18420;18393:70;:::i;:::-;18386:77;17646:823;-1:-1:-1;;;;;17646:823:187:o;18474:437::-;-1:-1:-1;;;;;18741:32:187;;18723:51;;18810:2;18805;18790:18;;18783:30;;;-1:-1:-1;;18830:75:187;;18886:18;;18878:6;18830:75;:::i;:::-;18822:83;18474:437;-1:-1:-1;;;;18474:437:187:o;20128:250::-;20195:2;20189:9;20237:6;20225:19;;-1:-1:-1;;;;;20259:34:187;;20295:22;;;20256:62;20253:88;;;20321:18;;:::i;:::-;20357:2;20350:22;20128:250;:::o;20383:426::-;20464:5;20512:4;20500:9;20495:3;20491:19;20487:30;20484:50;;;20530:1;20527;20520:12;20484:50;20563:2;20557:9;20605:4;20597:6;20593:17;20676:6;20664:10;20661:22;-1:-1:-1;;;;;20628:10:187;20625:34;20622:62;20619:88;;;20687:18;;:::i;:::-;20723:2;20716:22;20786:16;;20771:32;;-1:-1:-1;20756:6:187;20383:426;-1:-1:-1;20383:426:187:o;20814:282::-;20926:6;20979:2;20967:9;20958:7;20954:23;20950:32;20947:52;;;20995:1;20992;20985:12;20947:52;21018:72;21082:7;21071:9;21018:72;:::i;21101:184::-;21171:6;21224:2;21212:9;21203:7;21199:23;21195:32;21192:52;;;21240:1;21237;21230:12;21192:52;-1:-1:-1;21263:16:187;;21101:184;-1:-1:-1;21101:184:187:o;22420:699::-;22474:5;22527:3;22520:4;22512:6;22508:17;22504:27;22494:55;;22545:1;22542;22535:12;22494:55;22574:6;22568:13;-1:-1:-1;;;;;22637:2:187;22633;22630:10;22627:36;;;22643:18;;:::i;:::-;22718:2;22712:9;22686:2;22772:13;;-1:-1:-1;;22768:22:187;;;22792:2;22764:31;22760:40;22748:53;;;22816:18;;;22836:22;;;22813:46;22810:72;;;22862:18;;:::i;:::-;22902:10;22898:2;22891:22;22937:2;22929:6;22922:18;22983:3;22976:4;22971:2;22963:6;22959:15;22955:26;22952:35;22949:55;;;23000:1;22997;22990:12;22949:55;23013:76;23086:2;23079:4;23071:6;23067:17;23060:4;23052:6;23048:17;23013:76;:::i;23124:192::-;23203:13;;-1:-1:-1;;;;;23245:46:187;;23235:57;;23225:85;;23306:1;23303;23296:12;23321:169;23399:13;;23452:12;23441:24;;23431:35;;23421:63;;23480:1;23477;23470:12;23495:1962;23591:6;23644:2;23632:9;23623:7;23619:23;23615:32;23612:52;;;23660:1;23657;23650:12;23612:52;23693:9;23687:16;-1:-1:-1;;;;;23763:2:187;23755:6;23752:14;23749:34;;;23779:1;23776;23769:12;23749:34;23802:22;;;;23858:6;23840:16;;;23836:29;23833:49;;;23878:1;23875;23868:12;23833:49;23904:17;;:::i;:::-;23944:65;24001:7;23997:2;23944:65;:::i;:::-;23937:5;23930:80;24042:42;24080:2;24076;24072:11;24042:42;:::i;:::-;24037:2;24030:5;24026:14;24019:66;24117:42;24155:2;24151;24147:11;24117:42;:::i;:::-;24112:2;24105:5;24101:14;24094:66;24192:42;24230:2;24226;24222:11;24192:42;:::i;:::-;24187:2;24180:5;24176:14;24169:66;24268:43;24306:3;24302:2;24298:12;24268:43;:::i;:::-;24262:3;24255:5;24251:15;24244:68;24345:43;24383:3;24379:2;24375:12;24345:43;:::i;:::-;24339:3;24332:5;24328:15;24321:68;24422:43;24460:3;24456:2;24452:12;24422:43;:::i;:::-;24416:3;24409:5;24405:15;24398:68;24505:3;24501:2;24497:12;24491:19;24535:2;24525:8;24522:16;24519:36;;;24551:1;24548;24541:12;24519:36;24588:56;24636:7;24625:8;24621:2;24617:17;24588:56;:::i;:::-;24582:3;24571:15;;24564:81;-1:-1:-1;24664:3:187;24705:11;;;24699:18;24683:14;;;24676:42;24737:3;24778:11;;;24772:18;24756:14;;;24749:42;24810:3;24851:11;;;24845:18;24829:14;;;24822:42;24883:3;24924:11;;;24918:18;24902:14;;;24895:42;24956:3;;-1:-1:-1;24991:42:187;25021:11;;;24991:42;:::i;:::-;24986:2;24979:5;24975:14;24968:66;25053:3;25043:13;;25088:42;25126:2;25122;25118:11;25088:42;:::i;:::-;25083:2;25076:5;25072:14;25065:66;25150:3;25140:13;;25185:42;25223:2;25219;25215:11;25185:42;:::i;:::-;25180:2;25173:5;25169:14;25162:66;25248:3;25237:14;;25284:43;25322:3;25318:2;25314:12;25284:43;:::i;:::-;25278:3;25271:5;25267:15;25260:68;25348:3;25337:14;;25384:42;25421:3;25417:2;25413:12;25384:42;:::i;:::-;25367:15;;;25360:67;;;;25371:5;23495:1962;-1:-1:-1;;;;23495:1962:187:o",
    "linkReferences": {
      "src/protocol/libraries/logic/ConfiguratorLogic.sol": {
        "ConfiguratorLogic": [
          {
            "start": 1983,
            "length": 20
          },
          {
            "start": 2488,
            "length": 20
          },
          {
            "start": 3284,
            "length": 20
          },
          {
            "start": 9584,
            "length": 20
          }
        ]
      }
    }
  },
  "methodIdentifiers": {
    "approveExecutionDelegateContracts(address[])": "80a4d93d",
    "approveWETHExecutionDelegate()": "0e342789",
    "batchConfigReserve((uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,bool)[])": "c739fd41",
    "batchInitLendingPoolReserve((address,string,string,uint256,uint256,address,string,string,uint8,address,string,string,address,string,string,address,string,string,address,uint256,address,address,uint256,uint256,uint256,string)[])": "14699c65",
    "configureReserveAuction(uint256[],uint256,uint256,uint256)": "d9db75ee",
    "initialize(address)": "c4d66de8",
    "setActiveFlagOnReserve(uint256[],bool)": "7bb28860",
    "setBorrowingFlagOnReserve(uint256[],bool)": "5b5b815e",
    "setFreezeFlagOnReserve(uint256[],bool)": "f9e8cafa",
    "setMaxNumberOfReserves(uint256)": "746c35a2",
    "setPoolPause(bool)": "7641f3d9",
    "setPoolPausedTime(uint256,uint256)": "84636d4f",
    "setReserveCreatorAddress(uint256,address)": "bbce5cf3",
    "setReserveCreatorPercentage(uint256,uint256)": "e49c8a52",
    "setReserveFactor(uint256[],uint256)": "a9c64401",
    "setReserveInterestRateAddress(uint256[],address)": "12b4f190",
    "setReserveMaxSupply(uint256[],uint256)": "2d72e18e",
    "setVariableRateBorrowingFlagOnReserve(uint256[],bool)": "bfead1a4",
    "updateFToken((address,address,address,uint256,bytes)[])": "3c8db8b1",
    "updateStableDebtToken((address,address,address,uint256,bytes)[])": "29534299",
    "updateVariableDebtToken((address,address,address,uint256,bytes)[])": "ceaedb9b"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"BorrowingDisabledOnReserve\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"BorrowingEnabledOnReserve\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"DebtTokenUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"proxy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"FTokenUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxNumberOfReserves\",\"type\":\"uint256\"}],\"name\":\"MaxNumberOfReservesChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"}],\"name\":\"PriceConsumerAssetPriceMethodChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"method\",\"type\":\"string\"}],\"name\":\"PriceConsumerNftPriceMethodChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"ReserveActivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"liquidationBonus\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"auctionDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"auctionPriceMultiple\",\"type\":\"uint256\"}],\"name\":\"ReserveAuctionChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"ltv\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"liquidationThreshold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"liquidationBonus\",\"type\":\"uint256\"}],\"name\":\"ReserveCollateralConfigurationChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"ReserveDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"factor\",\"type\":\"uint256\"}],\"name\":\"ReserveFactorChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"ReserveFrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"stableDebtToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"variableDebtToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"interestRateStrategyAddress\",\"type\":\"address\"}],\"name\":\"ReserveInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"ReserveInterestRateChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"}],\"name\":\"ReserveMaxSupplyChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"redeemThreshold\",\"type\":\"uint256\"}],\"name\":\"ReserveRedeemThresholdChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"ReserveUnfrozen\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"VariableRateBorrowingDisabledOnReserve\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"}],\"name\":\"VariableRateBorrowingEnabledOnReserve\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"contracts\",\"type\":\"address[]\"}],\"name\":\"approveExecutionDelegateContracts\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"approveWETHExecutionDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserveFactor\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ltv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"gracePeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationBonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"liquidationThreshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auctionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auctionPriceMultiple\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"borrowingEnabled\",\"type\":\"bool\"}],\"internalType\":\"struct ConfigTypes.ConfigReserveInput[]\",\"name\":\"inputs\",\"type\":\"tuple[]\"}],\"name\":\"batchConfigReserve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"underlyingCollateral\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"underlyingCollateralName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"underlyingCollateralSymbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"underlyingMaxTokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"underlyingMinTokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"underlyingAsset\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"underlyingAssetName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"underlyingAssetSymbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"underlyingAssetDecimals\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"fTokenImpl\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"fTokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"fTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"stableDebtTokenImpl\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"stableDebtTokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"stableDebtTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"variableDebtTokenImpl\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"variableDebtTokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"variableDebtTokenSymbol\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"interestRateStrategy\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"baseLTV\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"creatorPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auctionCallerPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auctionCreatorPercentage\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"assetPriceFeed\",\"type\":\"string\"}],\"internalType\":\"struct ConfigTypes.InitReserveInput[]\",\"name\":\"input\",\"type\":\"tuple[]\"}],\"name\":\"batchInitLendingPoolReserve\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"liquidationBonus\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auctionDuration\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auctionPriceMultiple\",\"type\":\"uint256\"}],\"name\":\"configureReserveAuction\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addressProvider\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"setActiveFlagOnReserve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"setBorrowingFlagOnReserve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"setFreezeFlagOnReserve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newVal\",\"type\":\"uint256\"}],\"name\":\"setMaxNumberOfReserves\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"val\",\"type\":\"bool\"}],\"name\":\"setPoolPause\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"durationTime\",\"type\":\"uint256\"}],\"name\":\"setPoolPausedTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"name\":\"setReserveCreatorAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"name\":\"setReserveCreatorPercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"reserveFactor\",\"type\":\"uint256\"}],\"name\":\"setReserveFactor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"address\",\"name\":\"rateAddress\",\"type\":\"address\"}],\"name\":\"setReserveInterestRateAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"maxSupply\",\"type\":\"uint256\"}],\"name\":\"setReserveMaxSupply\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"reserveIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bool\",\"name\":\"flag\",\"type\":\"bool\"}],\"name\":\"setVariableRateBorrowingFlagOnReserve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct ConfigTypes.UpdateFTokenInput[]\",\"name\":\"inputs\",\"type\":\"tuple[]\"}],\"name\":\"updateFToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct ConfigTypes.UpdateDebtTokenInput[]\",\"name\":\"inputs\",\"type\":\"tuple[]\"}],\"name\":\"updateStableDebtToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"asset\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"reserveId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"encodedCallData\",\"type\":\"bytes\"}],\"internalType\":\"struct ConfigTypes.UpdateDebtTokenInput[]\",\"name\":\"inputs\",\"type\":\"tuple[]\"}],\"name\":\"updateVariableDebtToken\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"FluidNFT\",\"details\":\"Implements the confiurations mehtods for the FluidNFT protocol.\",\"kind\":\"dev\",\"methods\":{\"configureReserveAuction(uint256[],uint256,uint256,uint256)\":{\"details\":\"Configures the Reserve auction parameters\",\"params\":{\"auctionDuration\":\"The duration of the auction\",\"auctionPriceMultiple\":\"The dutch auction start price multiplier*\",\"liquidationBonus\":\"The bonus received by the protocol on liquidating this asset.\",\"reserveIds\":\"Reserve ids\"}},\"setPoolPause(bool)\":{\"details\":\"pauses or unpauses all the actions of the protocol, including fToken transfers\",\"params\":{\"val\":\"true if protocol needs to be paused, false otherwise*\"}},\"setReserveCreatorAddress(uint256,address)\":{\"details\":\"Updates the reserve creator address within the fToken contract via the lendingPool (proxy admin)\"},\"setReserveCreatorPercentage(uint256,uint256)\":{\"details\":\"Updates the reserve creator percentage within the fToken contract via the lendingPool (proxy admin)\"},\"setReserveFactor(uint256[],uint256)\":{\"details\":\"Updates the reserve factor of a reserve\",\"params\":{\"reserveFactor\":\"The new reserve factor of the reserve*\",\"reserveIds\":\"The ids of the reserves\"}},\"setReserveInterestRateAddress(uint256[],address)\":{\"details\":\"Sets the interest rate strategy of a reserve\",\"params\":{\"rateAddress\":\"The new address of the interest strategy contract*\",\"reserveIds\":\"The ids of the reserves\"}},\"updateFToken((address,address,address,uint256,bytes)[])\":{\"details\":\"Updates the fToken implementation for the reserve*\"},\"updateStableDebtToken((address,address,address,uint256,bytes)[])\":{\"details\":\"Updates the stable debt token implementation for the reserve*\"},\"updateVariableDebtToken((address,address,address,uint256,bytes)[])\":{\"details\":\"Updates the debt token implementation for the reserve*\"}},\"title\":\"Configuration contract for the FluidNFT protocol.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/protocol/governance/Configurator.sol\":\"Configurator\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x4e733d3164f73f461eaf9d8087a7ad1ea180bdc8ba0d3d61b0e1ae16d8e63dff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75b47c3aeca7b66ea6752f8be020ec5c1c502de6ec9065272dae23d3a52196e2\",\"dweb:/ipfs/QmUebPMHv16tYKFh5BmBQkMfRFb5b8UZ2RgVwdjxCeufVF\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol\":{\"keccak256\":\"0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d\",\"dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8\",\"dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol\":{\"keccak256\":\"0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1\",\"dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4\",\"dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B\"]},\"src/interfaces/IAddressProvider.sol\":{\"keccak256\":\"0x6730abfcd8770e3279dad6137bf619ab98ee8b049e6dd85d2fbe87ba6224fde8\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://9b7d1588eab025b049f858ab2f329be7fec220198d956b9b61bf0b9bddc5761a\",\"dweb:/ipfs/QmTaFkYSUfWmbpsyE2TKC1QvP6eTDggZ72ZWodBhydqt5X\"]},\"src/interfaces/ICollateralManager.sol\":{\"keccak256\":\"0xdcb90cae810d15c23e0606ef3d9b30feec7d35e956082b88c1f35c5d6caf6438\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://c45a3cf14add38004018f32987cab971436cfd2e679eea71f2383f845bd68647\",\"dweb:/ipfs/QmPd9df3JmDFMHnhreYWw8tjmRGEQAtERnqj2YREXB5aP5\"]},\"src/interfaces/IConfigurator.sol\":{\"keccak256\":\"0x39a8045982269f806b611033dc74b844a26faa5376dabe26a8e0eaeb2b457ed2\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://2e61c2b8df0daed7e900d2dcd89ae94a8a60d1b5551038d46726bf2c195102c8\",\"dweb:/ipfs/QmPwJzTcem2d72YbmySWJXLnHazpWQqmpXmnmmGZsT1Cwg\"]},\"src/interfaces/IExecutionDelegate.sol\":{\"keccak256\":\"0x9def180c3c45c492a967182aac61849fc1a77ca9f958abd3f27b689b01e61401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf406e8af1c9fa6373a66615022cd5c7edc41c169c46d660d5383df6647d3a5d\",\"dweb:/ipfs/QmRz7aDGbabWAw3BGFV2kbSmehGizSz3f7W87k6VXR3ggR\"]},\"src/interfaces/IFToken.sol\":{\"keccak256\":\"0x4c3ebc83c05720c9257d1b6b4930b647c08ba766b76928622a4c91c4a541a718\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://920cb41d52a659b88030fc3cf84fe5a87cc42f0c6e5c83a691c4732f84906689\",\"dweb:/ipfs/Qma657T4np5eBNono5yBXxE71jfT1TRDDkCPpH3kfw3SxM\"]},\"src/interfaces/IInitializableDebtToken.sol\":{\"keccak256\":\"0x29bcf86201c67f90d1620b5da4a0de05c611bf1fb15afeb6d2b30a70ec8aebca\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://e17c25e400ac37f1cd29b9cfdba2d4bc34aa6e0c705a619acf0c69f9136150d6\",\"dweb:/ipfs/QmTcNqEpq8UbZf6o6AgwJVjuNbrNbsZWfRMhQnuZArJQ6Q\"]},\"src/interfaces/ILendingPool.sol\":{\"keccak256\":\"0x345ab4285354bb5184bdd501d7c37920a711215b6f6c2db05b05d585f2454115\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://3b6264b135760dcdd59b9a3566c1305b00084922da177159a85c206ef6a91266\",\"dweb:/ipfs/QmSotEH7zF3vrEgo2gZuunWwroHgc6bw7TVRntzv7jsJn1\"]},\"src/interfaces/IPoolIncentivesController.sol\":{\"keccak256\":\"0x7cb2c32050814e6d6d962a603104facc3bb1dad15171304e3ee756648e8f9ae1\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://cf534f592706b2a61c539c03e5d1e199c15472bcfb4ee69838e5c93ba7914466\",\"dweb:/ipfs/QmPrvXhJigK1Ke51YwAWHon1Kv88WT26iD3MwzCaPDs1Kv\"]},\"src/interfaces/IScaledBalanceToken.sol\":{\"keccak256\":\"0xb6a8f00773c5f58af761573f39f6aa3649c9deec5c4e078f5e3ca78940e4eac7\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0938c6fd92b015670a2bcf5ff971aafbc6295e07c78d1300c5e36a67002dc70c\",\"dweb:/ipfs/QmYDcxNaAAfnupwDcDN1xtQcCEXTwW1FWiaTiU3MksCQ1Z\"]},\"src/interfaces/IStableDebtToken.sol\":{\"keccak256\":\"0x964a76facf6d0ea459fd0222c5e8036efea4e9193af3851d68190052037755b4\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://6eebeccfdd76a6e7691402b699c1185df09e8fe80c94cc059bd797a2931b9d3e\",\"dweb:/ipfs/QmeRY3xnu979DmjgFZSEaNgEkWgjtj4Hjpg9gW3bMoaZ1v\"]},\"src/interfaces/IVariableDebtToken.sol\":{\"keccak256\":\"0x61d5cce91604a2d97218fdf1f53022e08061aae2adc6dc5fb0ba311d46a212cc\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://e8e62cce1a93aafcff2438c111ca7af77c8c2a6ed3d5c7ffce2598aa73fb87c9\",\"dweb:/ipfs/QmXXpq9J65pU5Wt9WUR1sZMjss2gUDfEvpDAc9npQfxGcC\"]},\"src/interfaces/IWETHGateway.sol\":{\"keccak256\":\"0x831ca4e10b8d5094c6b604e838d0d144aee306027455d0fa74f72f9092bf0a58\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://e216cc7934d2c89de2cd39f5d50b2c812c1fcacc89067537c7787a9a2ec43740\",\"dweb:/ipfs/QmNwFnCpMU3XWHzCx6npHj3gMyXnrDVT6EAzbj9NQNPHMt\"]},\"src/protocol/governance/Configurator.sol\":{\"keccak256\":\"0x0567bf267e3fb54adbb27e07ee664088204eec8c908b4af9aa20157ffc9959c3\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://1eaeb1bc8e1e02f89080fd3067ab88cd486ba25d7584cfa41768b42b4424a392\",\"dweb:/ipfs/QmXxJUcDooNLS1txBE9NMY1QYKYHGiDVYqRX7k31327DzD\"]},\"src/protocol/libraries/configuration/ReserveConfiguration.sol\":{\"keccak256\":\"0xa185efd08f4a3798bbafaa90fafd310f2e29634a2f83b62ee833b31a24232e3c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://806a0ce876edbbbd418a8297735f66907a06650606b00eac5b510ab082ed3173\",\"dweb:/ipfs/QmQk5ybFrVqXfgXbndYcKBoQiahKScjFEABpJ3ATG8SYPh\"]},\"src/protocol/libraries/helpers/Errors.sol\":{\"keccak256\":\"0x490e76871922e89a13ba0bb88977be18c143fa9d0cd9afb033744a3d81479c52\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://1c409d4d1e1689d8d8f3c3e361198d20f3b6476608c5316d8e2d91f52373e8e3\",\"dweb:/ipfs/QmRZaYpxqjmBpbxb51KqswKYPSeCsU3ejbmk5E3MrMxJaM\"]},\"src/protocol/libraries/logic/ConfiguratorLogic.sol\":{\"keccak256\":\"0xb97b103d5ef982c9e8886ad457bd7f2efbe281ab51e5b3fe150f4ec04eeeea0c\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://f05e5b6181195d1ce3b0e7a7aa55cea27a593a052fd7173ea5fd8f368494268e\",\"dweb:/ipfs/QmQLtKvLx9YnkVkdz1CoTdsDUv1vyyrkmfK2LMz1HNRj28\"]},\"src/protocol/libraries/math/PercentageMath.sol\":{\"keccak256\":\"0xb84274fc3effba81036256cf7fde67b3dbfe86c4ffd0e062711a3270157952a2\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://3ecaf26e713b39d89ee21fb8bfefe55fe2fec4a2f5a2bffba7612f82182b7262\",\"dweb:/ipfs/QmZ6oXpNspwBEkiJEz1EhsU4EVBpG3anNjtzcycNEgAkfe\"]},\"src/protocol/libraries/proxy/FluidUpgradeableProxy.sol\":{\"keccak256\":\"0xebb381972c1d982d6cc8c2b1a704f9f2fefb75433e0adc84f896186da8ba2599\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://3706756fd653002ba56734f0f699decd7ba38993744a951acf0b259a95549087\",\"dweb:/ipfs/QmdZceFBVbYzBKZaQDfWEKYggJGxJ8G1j9ZWBrWLbozRZz\"]},\"src/protocol/libraries/types/ConfigTypes.sol\":{\"keccak256\":\"0xa8f9b14d9adf738033fd1847b30012d0e022027614fd6c9bb31a01bc6bfb1634\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://b20c579d1b683dd5977a675c2e46adeebd56c96faa68cda9b0767edf02a5b650\",\"dweb:/ipfs/QmPULpaX2ouktArvXJxYNVPQ9vKBhEeCYA4smo8v57qFLD\"]},\"src/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x070f7865fe84ce4c9ebd86bbe24771607fbdb4e8777510b46cb5064e4d9b90a3\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://504fd0c937cc69cc0737c4ef5dcec477017ccbff609b45b210274fd7bf0792cf\",\"dweb:/ipfs/QmeW1TkAHib7XRBVmgMRTdmsa4Rg9HVToTMnifEE1C7mTi\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.16+commit.07a7930e"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "BorrowingDisabledOnReserve",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "BorrowingEnabledOnReserve",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "collateral",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "asset",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "proxy",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "implementation",
              "type": "address",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "DebtTokenUpgraded",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "collateral",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "asset",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "proxy",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "implementation",
              "type": "address",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "FTokenUpgraded",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint8",
              "name": "version",
              "type": "uint8",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Initialized",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "maxNumberOfReserves",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "MaxNumberOfReservesChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "method",
              "type": "string",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "PriceConsumerAssetPriceMethodChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "string",
              "name": "method",
              "type": "string",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "PriceConsumerNftPriceMethodChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "ReserveActivated",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "liquidationBonus",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "auctionDuration",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "auctionPriceMultiple",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ReserveAuctionChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "ltv",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "liquidationThreshold",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "liquidationBonus",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ReserveCollateralConfigurationChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "ReserveDeactivated",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "factor",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ReserveFactorChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "ReserveFrozen",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "collateral",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "asset",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "fToken",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "stableDebtToken",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "variableDebtToken",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "interestRateStrategyAddress",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ReserveInitialized",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "strategy",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ReserveInterestRateChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "maxSupply",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ReserveMaxSupplyChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "redeemThreshold",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ReserveRedeemThresholdChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "ReserveUnfrozen",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "VariableRateBorrowingDisabledOnReserve",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "VariableRateBorrowingEnabledOnReserve",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address[]",
              "name": "contracts",
              "type": "address[]"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "approveExecutionDelegateContracts"
        },
        {
          "inputs": [],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "approveWETHExecutionDelegate"
        },
        {
          "inputs": [
            {
              "internalType": "struct ConfigTypes.ConfigReserveInput[]",
              "name": "inputs",
              "type": "tuple[]",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "reserveId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveFactor",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "ltv",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "decimals",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "gracePeriod",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidationBonus",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "liquidationThreshold",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "auctionDuration",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "auctionPriceMultiple",
                  "type": "uint256"
                },
                {
                  "internalType": "bool",
                  "name": "borrowingEnabled",
                  "type": "bool"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "batchConfigReserve"
        },
        {
          "inputs": [
            {
              "internalType": "struct ConfigTypes.InitReserveInput[]",
              "name": "input",
              "type": "tuple[]",
              "components": [
                {
                  "internalType": "address",
                  "name": "underlyingCollateral",
                  "type": "address"
                },
                {
                  "internalType": "string",
                  "name": "underlyingCollateralName",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "underlyingCollateralSymbol",
                  "type": "string"
                },
                {
                  "internalType": "uint256",
                  "name": "underlyingMaxTokenId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "underlyingMinTokenId",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "underlyingAsset",
                  "type": "address"
                },
                {
                  "internalType": "string",
                  "name": "underlyingAssetName",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "underlyingAssetSymbol",
                  "type": "string"
                },
                {
                  "internalType": "uint8",
                  "name": "underlyingAssetDecimals",
                  "type": "uint8"
                },
                {
                  "internalType": "address",
                  "name": "fTokenImpl",
                  "type": "address"
                },
                {
                  "internalType": "string",
                  "name": "fTokenName",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "fTokenSymbol",
                  "type": "string"
                },
                {
                  "internalType": "address",
                  "name": "stableDebtTokenImpl",
                  "type": "address"
                },
                {
                  "internalType": "string",
                  "name": "stableDebtTokenName",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "stableDebtTokenSymbol",
                  "type": "string"
                },
                {
                  "internalType": "address",
                  "name": "variableDebtTokenImpl",
                  "type": "address"
                },
                {
                  "internalType": "string",
                  "name": "variableDebtTokenName",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "variableDebtTokenSymbol",
                  "type": "string"
                },
                {
                  "internalType": "address",
                  "name": "interestRateStrategy",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "baseLTV",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "treasury",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "creator",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "creatorPercentage",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "auctionCallerPercentage",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "auctionCreatorPercentage",
                  "type": "uint256"
                },
                {
                  "internalType": "string",
                  "name": "assetPriceFeed",
                  "type": "string"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "batchInitLendingPoolReserve",
          "outputs": [
            {
              "internalType": "address[]",
              "name": "",
              "type": "address[]"
            },
            {
              "internalType": "address[]",
              "name": "",
              "type": "address[]"
            },
            {
              "internalType": "address[]",
              "name": "",
              "type": "address[]"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "uint256[]",
              "name": "reserveIds",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256",
              "name": "liquidationBonus",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "auctionDuration",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "auctionPriceMultiple",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "configureReserveAuction"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "addressProvider",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "initialize"
        },
        {
          "inputs": [
            {
              "internalType": "uint256[]",
              "name": "reserveIds",
              "type": "uint256[]"
            },
            {
              "internalType": "bool",
              "name": "flag",
              "type": "bool"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setActiveFlagOnReserve"
        },
        {
          "inputs": [
            {
              "internalType": "uint256[]",
              "name": "reserveIds",
              "type": "uint256[]"
            },
            {
              "internalType": "bool",
              "name": "flag",
              "type": "bool"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setBorrowingFlagOnReserve"
        },
        {
          "inputs": [
            {
              "internalType": "uint256[]",
              "name": "reserveIds",
              "type": "uint256[]"
            },
            {
              "internalType": "bool",
              "name": "flag",
              "type": "bool"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setFreezeFlagOnReserve"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "newVal",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setMaxNumberOfReserves"
        },
        {
          "inputs": [
            {
              "internalType": "bool",
              "name": "val",
              "type": "bool"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setPoolPause"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "startTime",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "durationTime",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setPoolPausedTime"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "creator",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setReserveCreatorAddress"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "reserveId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "percentage",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setReserveCreatorPercentage"
        },
        {
          "inputs": [
            {
              "internalType": "uint256[]",
              "name": "reserveIds",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256",
              "name": "reserveFactor",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setReserveFactor"
        },
        {
          "inputs": [
            {
              "internalType": "uint256[]",
              "name": "reserveIds",
              "type": "uint256[]"
            },
            {
              "internalType": "address",
              "name": "rateAddress",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setReserveInterestRateAddress"
        },
        {
          "inputs": [
            {
              "internalType": "uint256[]",
              "name": "reserveIds",
              "type": "uint256[]"
            },
            {
              "internalType": "uint256",
              "name": "maxSupply",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setReserveMaxSupply"
        },
        {
          "inputs": [
            {
              "internalType": "uint256[]",
              "name": "reserveIds",
              "type": "uint256[]"
            },
            {
              "internalType": "bool",
              "name": "flag",
              "type": "bool"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setVariableRateBorrowingFlagOnReserve"
        },
        {
          "inputs": [
            {
              "internalType": "struct ConfigTypes.UpdateFTokenInput[]",
              "name": "inputs",
              "type": "tuple[]",
              "components": [
                {
                  "internalType": "address",
                  "name": "collateral",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "asset",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "implementation",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveId",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "encodedCallData",
                  "type": "bytes"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "updateFToken"
        },
        {
          "inputs": [
            {
              "internalType": "struct ConfigTypes.UpdateDebtTokenInput[]",
              "name": "inputs",
              "type": "tuple[]",
              "components": [
                {
                  "internalType": "address",
                  "name": "collateral",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "asset",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "implementation",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveId",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "encodedCallData",
                  "type": "bytes"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "updateStableDebtToken"
        },
        {
          "inputs": [
            {
              "internalType": "struct ConfigTypes.UpdateDebtTokenInput[]",
              "name": "inputs",
              "type": "tuple[]",
              "components": [
                {
                  "internalType": "address",
                  "name": "collateral",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "asset",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "implementation",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "reserveId",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "encodedCallData",
                  "type": "bytes"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "updateVariableDebtToken"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "configureReserveAuction(uint256[],uint256,uint256,uint256)": {
            "details": "Configures the Reserve auction parameters",
            "params": {
              "auctionDuration": "The duration of the auction",
              "auctionPriceMultiple": "The dutch auction start price multiplier*",
              "liquidationBonus": "The bonus received by the protocol on liquidating this asset.",
              "reserveIds": "Reserve ids"
            }
          },
          "setPoolPause(bool)": {
            "details": "pauses or unpauses all the actions of the protocol, including fToken transfers",
            "params": {
              "val": "true if protocol needs to be paused, false otherwise*"
            }
          },
          "setReserveCreatorAddress(uint256,address)": {
            "details": "Updates the reserve creator address within the fToken contract via the lendingPool (proxy admin)"
          },
          "setReserveCreatorPercentage(uint256,uint256)": {
            "details": "Updates the reserve creator percentage within the fToken contract via the lendingPool (proxy admin)"
          },
          "setReserveFactor(uint256[],uint256)": {
            "details": "Updates the reserve factor of a reserve",
            "params": {
              "reserveFactor": "The new reserve factor of the reserve*",
              "reserveIds": "The ids of the reserves"
            }
          },
          "setReserveInterestRateAddress(uint256[],address)": {
            "details": "Sets the interest rate strategy of a reserve",
            "params": {
              "rateAddress": "The new address of the interest strategy contract*",
              "reserveIds": "The ids of the reserves"
            }
          },
          "updateFToken((address,address,address,uint256,bytes)[])": {
            "details": "Updates the fToken implementation for the reserve*"
          },
          "updateStableDebtToken((address,address,address,uint256,bytes)[])": {
            "details": "Updates the stable debt token implementation for the reserve*"
          },
          "updateVariableDebtToken((address,address,address,uint256,bytes)[])": {
            "details": "Updates the debt token implementation for the reserve*"
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {},
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        ":@chainlink/=lib/chainlink/",
        ":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
        ":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
        ":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/",
        ":ds-test/=lib/forge-std/lib/ds-test/src/",
        ":forge-std/=lib/forge-std/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "src/protocol/governance/Configurator.sol": "Configurator"
      },
      "libraries": {}
    },
    "sources": {
      "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": {
        "keccak256": "0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27",
        "urls": [
          "bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935",
          "dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol": {
        "keccak256": "0x4e733d3164f73f461eaf9d8087a7ad1ea180bdc8ba0d3d61b0e1ae16d8e63dff",
        "urls": [
          "bzz-raw://75b47c3aeca7b66ea6752f8be020ec5c1c502de6ec9065272dae23d3a52196e2",
          "dweb:/ipfs/QmUebPMHv16tYKFh5BmBQkMfRFb5b8UZ2RgVwdjxCeufVF"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/extensions/IERC20MetadataUpgradeable.sol": {
        "keccak256": "0x605434219ebbe4653f703640f06969faa5a1d78f0bfef878e5ddbb1ca369ceeb",
        "urls": [
          "bzz-raw://4c9c634f99dd02d73ce7498b03a6305e251c05eeebb71457306561c1fab0fa7d",
          "dweb:/ipfs/QmbYRBbZHy8YoaQKXdPryiL3CSS7uUaRfRYi1TUj9cTqJQ"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": {
        "keccak256": "0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183",
        "urls": [
          "bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06",
          "dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": {
        "keccak256": "0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149",
        "urls": [
          "bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c",
          "dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol": {
        "keccak256": "0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff",
        "urls": [
          "bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688",
          "dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol": {
        "keccak256": "0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d",
        "urls": [
          "bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5",
          "dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol": {
        "keccak256": "0xabf3f59bc0e5423eae45e459dbe92e7052c6983628d39008590edc852a62f94a",
        "urls": [
          "bzz-raw://89c2a0f70157c13845be5cb49b078a6374fee3a78fa950052a3af26190255da8",
          "dweb:/ipfs/QmUcvMEQH1oMM2pUyMuDiBUKdvvnTz1NRB8bmPHrVq8725"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/proxy/Proxy.sol": {
        "keccak256": "0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27",
        "urls": [
          "bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472",
          "dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol": {
        "keccak256": "0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61",
        "urls": [
          "bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354",
          "dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/proxy/transparent/TransparentUpgradeableProxy.sol": {
        "keccak256": "0xa6a787e7a901af6511e19aa53e1a00352db215a011d2c7a438d0582dd5da76f9",
        "urls": [
          "bzz-raw://a6c4477d480bac20d681ade0e712b77ad828acf530a1d5c0abc5fb78068a05a1",
          "dweb:/ipfs/QmdBqsK8CcUceTeWzhHwFDEvKMoHimwtV96Lbim7ZBtCb8"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/Address.sol": {
        "keccak256": "0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1",
        "urls": [
          "bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269",
          "dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj"
        ],
        "license": "MIT"
      },
      "lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol": {
        "keccak256": "0xd5c50c54bf02740ebd122ff06832546cb5fa84486d52695a9ccfd11666e0c81d",
        "urls": [
          "bzz-raw://39e096c60a6eb1c6a257122d515496bd92d0c6a693a8f07acb6aa4b1263e95d4",
          "dweb:/ipfs/QmPs5trJBacCiSkezP6tpevapuRYWNY6mqSFzsMCJj7e6B"
        ],
        "license": "MIT"
      },
      "src/interfaces/IAddressProvider.sol": {
        "keccak256": "0x6730abfcd8770e3279dad6137bf619ab98ee8b049e6dd85d2fbe87ba6224fde8",
        "urls": [
          "bzz-raw://9b7d1588eab025b049f858ab2f329be7fec220198d956b9b61bf0b9bddc5761a",
          "dweb:/ipfs/QmTaFkYSUfWmbpsyE2TKC1QvP6eTDggZ72ZWodBhydqt5X"
        ],
        "license": "AGPL-3.0"
      },
      "src/interfaces/ICollateralManager.sol": {
        "keccak256": "0xdcb90cae810d15c23e0606ef3d9b30feec7d35e956082b88c1f35c5d6caf6438",
        "urls": [
          "bzz-raw://c45a3cf14add38004018f32987cab971436cfd2e679eea71f2383f845bd68647",
          "dweb:/ipfs/QmPd9df3JmDFMHnhreYWw8tjmRGEQAtERnqj2YREXB5aP5"
        ],
        "license": "AGPL-3.0"
      },
      "src/interfaces/IConfigurator.sol": {
        "keccak256": "0x39a8045982269f806b611033dc74b844a26faa5376dabe26a8e0eaeb2b457ed2",
        "urls": [
          "bzz-raw://2e61c2b8df0daed7e900d2dcd89ae94a8a60d1b5551038d46726bf2c195102c8",
          "dweb:/ipfs/QmPwJzTcem2d72YbmySWJXLnHazpWQqmpXmnmmGZsT1Cwg"
        ],
        "license": "AGPL-3.0"
      },
      "src/interfaces/IExecutionDelegate.sol": {
        "keccak256": "0x9def180c3c45c492a967182aac61849fc1a77ca9f958abd3f27b689b01e61401",
        "urls": [
          "bzz-raw://cf406e8af1c9fa6373a66615022cd5c7edc41c169c46d660d5383df6647d3a5d",
          "dweb:/ipfs/QmRz7aDGbabWAw3BGFV2kbSmehGizSz3f7W87k6VXR3ggR"
        ],
        "license": "MIT"
      },
      "src/interfaces/IFToken.sol": {
        "keccak256": "0x4c3ebc83c05720c9257d1b6b4930b647c08ba766b76928622a4c91c4a541a718",
        "urls": [
          "bzz-raw://920cb41d52a659b88030fc3cf84fe5a87cc42f0c6e5c83a691c4732f84906689",
          "dweb:/ipfs/Qma657T4np5eBNono5yBXxE71jfT1TRDDkCPpH3kfw3SxM"
        ],
        "license": "AGPL-3.0"
      },
      "src/interfaces/IInitializableDebtToken.sol": {
        "keccak256": "0x29bcf86201c67f90d1620b5da4a0de05c611bf1fb15afeb6d2b30a70ec8aebca",
        "urls": [
          "bzz-raw://e17c25e400ac37f1cd29b9cfdba2d4bc34aa6e0c705a619acf0c69f9136150d6",
          "dweb:/ipfs/QmTcNqEpq8UbZf6o6AgwJVjuNbrNbsZWfRMhQnuZArJQ6Q"
        ],
        "license": "AGPL-3.0"
      },
      "src/interfaces/ILendingPool.sol": {
        "keccak256": "0x345ab4285354bb5184bdd501d7c37920a711215b6f6c2db05b05d585f2454115",
        "urls": [
          "bzz-raw://3b6264b135760dcdd59b9a3566c1305b00084922da177159a85c206ef6a91266",
          "dweb:/ipfs/QmSotEH7zF3vrEgo2gZuunWwroHgc6bw7TVRntzv7jsJn1"
        ],
        "license": "AGPL-3.0"
      },
      "src/interfaces/IPoolIncentivesController.sol": {
        "keccak256": "0x7cb2c32050814e6d6d962a603104facc3bb1dad15171304e3ee756648e8f9ae1",
        "urls": [
          "bzz-raw://cf534f592706b2a61c539c03e5d1e199c15472bcfb4ee69838e5c93ba7914466",
          "dweb:/ipfs/QmPrvXhJigK1Ke51YwAWHon1Kv88WT26iD3MwzCaPDs1Kv"
        ],
        "license": "AGPL-3.0"
      },
      "src/interfaces/IScaledBalanceToken.sol": {
        "keccak256": "0xb6a8f00773c5f58af761573f39f6aa3649c9deec5c4e078f5e3ca78940e4eac7",
        "urls": [
          "bzz-raw://0938c6fd92b015670a2bcf5ff971aafbc6295e07c78d1300c5e36a67002dc70c",
          "dweb:/ipfs/QmYDcxNaAAfnupwDcDN1xtQcCEXTwW1FWiaTiU3MksCQ1Z"
        ],
        "license": "AGPL-3.0"
      },
      "src/interfaces/IStableDebtToken.sol": {
        "keccak256": "0x964a76facf6d0ea459fd0222c5e8036efea4e9193af3851d68190052037755b4",
        "urls": [
          "bzz-raw://6eebeccfdd76a6e7691402b699c1185df09e8fe80c94cc059bd797a2931b9d3e",
          "dweb:/ipfs/QmeRY3xnu979DmjgFZSEaNgEkWgjtj4Hjpg9gW3bMoaZ1v"
        ],
        "license": "AGPL-3.0"
      },
      "src/interfaces/IVariableDebtToken.sol": {
        "keccak256": "0x61d5cce91604a2d97218fdf1f53022e08061aae2adc6dc5fb0ba311d46a212cc",
        "urls": [
          "bzz-raw://e8e62cce1a93aafcff2438c111ca7af77c8c2a6ed3d5c7ffce2598aa73fb87c9",
          "dweb:/ipfs/QmXXpq9J65pU5Wt9WUR1sZMjss2gUDfEvpDAc9npQfxGcC"
        ],
        "license": "AGPL-3.0"
      },
      "src/interfaces/IWETHGateway.sol": {
        "keccak256": "0x831ca4e10b8d5094c6b604e838d0d144aee306027455d0fa74f72f9092bf0a58",
        "urls": [
          "bzz-raw://e216cc7934d2c89de2cd39f5d50b2c812c1fcacc89067537c7787a9a2ec43740",
          "dweb:/ipfs/QmNwFnCpMU3XWHzCx6npHj3gMyXnrDVT6EAzbj9NQNPHMt"
        ],
        "license": "AGPL-3.0"
      },
      "src/protocol/governance/Configurator.sol": {
        "keccak256": "0x0567bf267e3fb54adbb27e07ee664088204eec8c908b4af9aa20157ffc9959c3",
        "urls": [
          "bzz-raw://1eaeb1bc8e1e02f89080fd3067ab88cd486ba25d7584cfa41768b42b4424a392",
          "dweb:/ipfs/QmXxJUcDooNLS1txBE9NMY1QYKYHGiDVYqRX7k31327DzD"
        ],
        "license": "AGPL-3.0"
      },
      "src/protocol/libraries/configuration/ReserveConfiguration.sol": {
        "keccak256": "0xa185efd08f4a3798bbafaa90fafd310f2e29634a2f83b62ee833b31a24232e3c",
        "urls": [
          "bzz-raw://806a0ce876edbbbd418a8297735f66907a06650606b00eac5b510ab082ed3173",
          "dweb:/ipfs/QmQk5ybFrVqXfgXbndYcKBoQiahKScjFEABpJ3ATG8SYPh"
        ],
        "license": "AGPL-3.0"
      },
      "src/protocol/libraries/helpers/Errors.sol": {
        "keccak256": "0x490e76871922e89a13ba0bb88977be18c143fa9d0cd9afb033744a3d81479c52",
        "urls": [
          "bzz-raw://1c409d4d1e1689d8d8f3c3e361198d20f3b6476608c5316d8e2d91f52373e8e3",
          "dweb:/ipfs/QmRZaYpxqjmBpbxb51KqswKYPSeCsU3ejbmk5E3MrMxJaM"
        ],
        "license": "AGPL-3.0"
      },
      "src/protocol/libraries/logic/ConfiguratorLogic.sol": {
        "keccak256": "0xb97b103d5ef982c9e8886ad457bd7f2efbe281ab51e5b3fe150f4ec04eeeea0c",
        "urls": [
          "bzz-raw://f05e5b6181195d1ce3b0e7a7aa55cea27a593a052fd7173ea5fd8f368494268e",
          "dweb:/ipfs/QmQLtKvLx9YnkVkdz1CoTdsDUv1vyyrkmfK2LMz1HNRj28"
        ],
        "license": "AGPL-3.0"
      },
      "src/protocol/libraries/math/PercentageMath.sol": {
        "keccak256": "0xb84274fc3effba81036256cf7fde67b3dbfe86c4ffd0e062711a3270157952a2",
        "urls": [
          "bzz-raw://3ecaf26e713b39d89ee21fb8bfefe55fe2fec4a2f5a2bffba7612f82182b7262",
          "dweb:/ipfs/QmZ6oXpNspwBEkiJEz1EhsU4EVBpG3anNjtzcycNEgAkfe"
        ],
        "license": "AGPL-3.0"
      },
      "src/protocol/libraries/proxy/FluidUpgradeableProxy.sol": {
        "keccak256": "0xebb381972c1d982d6cc8c2b1a704f9f2fefb75433e0adc84f896186da8ba2599",
        "urls": [
          "bzz-raw://3706756fd653002ba56734f0f699decd7ba38993744a951acf0b259a95549087",
          "dweb:/ipfs/QmdZceFBVbYzBKZaQDfWEKYggJGxJ8G1j9ZWBrWLbozRZz"
        ],
        "license": "AGPL-3.0"
      },
      "src/protocol/libraries/types/ConfigTypes.sol": {
        "keccak256": "0xa8f9b14d9adf738033fd1847b30012d0e022027614fd6c9bb31a01bc6bfb1634",
        "urls": [
          "bzz-raw://b20c579d1b683dd5977a675c2e46adeebd56c96faa68cda9b0767edf02a5b650",
          "dweb:/ipfs/QmPULpaX2ouktArvXJxYNVPQ9vKBhEeCYA4smo8v57qFLD"
        ],
        "license": "AGPL-3.0"
      },
      "src/protocol/libraries/types/DataTypes.sol": {
        "keccak256": "0x070f7865fe84ce4c9ebd86bbe24771607fbdb4e8777510b46cb5064e4d9b90a3",
        "urls": [
          "bzz-raw://504fd0c937cc69cc0737c4ef5dcec477017ccbff609b45b210274fd7bf0792cf",
          "dweb:/ipfs/QmeW1TkAHib7XRBVmgMRTdmsa4Rg9HVToTMnifEE1C7mTi"
        ],
        "license": "AGPL-3.0"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "src/protocol/governance/Configurator.sol",
    "id": 55223,
    "exportedSymbols": {
      "ConfigTypes": [
        64693
      ],
      "Configurator": [
        55222
      ],
      "ConfiguratorLogic": [
        59960
      ],
      "ContextUpgradeable": [
        28988
      ],
      "DataTypes": [
        65297
      ],
      "Errors": [
        57944
      ],
      "IAddressProvider": [
        46447
      ],
      "ICollateralManager": [
        46785
      ],
      "IConfigurator": [
        47089
      ],
      "IERC20Upgradeable": [
        27189
      ],
      "IExecutionDelegate": [
        47185
      ],
      "IFToken": [
        47449
      ],
      "ILendingPool": [
        48084
      ],
      "IStableDebtToken": [
        48707
      ],
      "IVariableDebtToken": [
        48815
      ],
      "IWETHGateway": [
        48998
      ],
      "Initializable": [
        26136
      ],
      "PercentageMath": [
        64257
      ],
      "ReserveConfiguration": [
        57547
      ]
    },
    "nodeType": "SourceUnit",
    "src": "38:15803:132",
    "nodes": [
      {
        "id": 53925,
        "nodeType": "PragmaDirective",
        "src": "38:23:132",
        "nodes": [],
        "literals": [
          "solidity",
          "0.8",
          ".16"
        ]
      },
      {
        "id": 53927,
        "nodeType": "ImportDirective",
        "src": "65:67:132",
        "nodes": [],
        "absolutePath": "src/interfaces/IConfigurator.sol",
        "file": "../../interfaces/IConfigurator.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 47090,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53926,
              "name": "IConfigurator",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 47089,
              "src": "74:13:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53929,
        "nodeType": "ImportDirective",
        "src": "134:65:132",
        "nodes": [],
        "absolutePath": "src/interfaces/ILendingPool.sol",
        "file": "../../interfaces/ILendingPool.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 48085,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53928,
              "name": "ILendingPool",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 48084,
              "src": "143:12:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53931,
        "nodeType": "ImportDirective",
        "src": "201:73:132",
        "nodes": [],
        "absolutePath": "src/interfaces/IAddressProvider.sol",
        "file": "../../interfaces/IAddressProvider.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 46448,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53930,
              "name": "IAddressProvider",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 46447,
              "src": "210:16:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53933,
        "nodeType": "ImportDirective",
        "src": "276:77:132",
        "nodes": [],
        "absolutePath": "src/interfaces/ICollateralManager.sol",
        "file": "../../interfaces/ICollateralManager.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 46786,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53932,
              "name": "ICollateralManager",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 46785,
              "src": "285:18:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53935,
        "nodeType": "ImportDirective",
        "src": "355:77:132",
        "nodes": [],
        "absolutePath": "src/interfaces/IExecutionDelegate.sol",
        "file": "../../interfaces/IExecutionDelegate.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 47186,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53934,
              "name": "IExecutionDelegate",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 47185,
              "src": "364:18:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53937,
        "nodeType": "ImportDirective",
        "src": "434:55:132",
        "nodes": [],
        "absolutePath": "src/interfaces/IFToken.sol",
        "file": "../../interfaces/IFToken.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 47450,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53936,
              "name": "IFToken",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 47449,
              "src": "443:7:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53939,
        "nodeType": "ImportDirective",
        "src": "491:73:132",
        "nodes": [],
        "absolutePath": "src/interfaces/IStableDebtToken.sol",
        "file": "../../interfaces/IStableDebtToken.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 48708,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53938,
              "name": "IStableDebtToken",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 48707,
              "src": "500:16:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53941,
        "nodeType": "ImportDirective",
        "src": "566:77:132",
        "nodes": [],
        "absolutePath": "src/interfaces/IVariableDebtToken.sol",
        "file": "../../interfaces/IVariableDebtToken.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 48816,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53940,
              "name": "IVariableDebtToken",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 48815,
              "src": "575:18:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53943,
        "nodeType": "ImportDirective",
        "src": "645:65:132",
        "nodes": [],
        "absolutePath": "src/interfaces/IWETHGateway.sol",
        "file": "../../interfaces/IWETHGateway.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 48999,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53942,
              "name": "IWETHGateway",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 48998,
              "src": "654:12:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53945,
        "nodeType": "ImportDirective",
        "src": "714:91:132",
        "nodes": [],
        "absolutePath": "src/protocol/libraries/configuration/ReserveConfiguration.sol",
        "file": "../libraries/configuration/ReserveConfiguration.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 57548,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53944,
              "name": "ReserveConfiguration",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 57547,
              "src": "723:20:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53947,
        "nodeType": "ImportDirective",
        "src": "807:77:132",
        "nodes": [],
        "absolutePath": "src/protocol/libraries/logic/ConfiguratorLogic.sol",
        "file": "../libraries/logic/ConfiguratorLogic.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 59961,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53946,
              "name": "ConfiguratorLogic",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 59960,
              "src": "816:17:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53949,
        "nodeType": "ImportDirective",
        "src": "886:65:132",
        "nodes": [],
        "absolutePath": "src/protocol/libraries/types/ConfigTypes.sol",
        "file": "../libraries/types/ConfigTypes.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 64694,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53948,
              "name": "ConfigTypes",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 64693,
              "src": "895:11:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53951,
        "nodeType": "ImportDirective",
        "src": "953:61:132",
        "nodes": [],
        "absolutePath": "src/protocol/libraries/types/DataTypes.sol",
        "file": "../libraries/types/DataTypes.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 65298,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53950,
              "name": "DataTypes",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 65297,
              "src": "962:9:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53953,
        "nodeType": "ImportDirective",
        "src": "1016:57:132",
        "nodes": [],
        "absolutePath": "src/protocol/libraries/helpers/Errors.sol",
        "file": "../libraries/helpers/Errors.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 57945,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53952,
              "name": "Errors",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 57944,
              "src": "1025:6:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53955,
        "nodeType": "ImportDirective",
        "src": "1075:70:132",
        "nodes": [],
        "absolutePath": "src/protocol/libraries/math/PercentageMath.sol",
        "file": "../libraries/math/PercentageMath.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 64258,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53954,
              "name": "PercentageMath",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 64257,
              "src": "1084:14:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53957,
        "nodeType": "ImportDirective",
        "src": "1149:98:132",
        "nodes": [],
        "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
        "file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 26137,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53956,
              "name": "Initializable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 26136,
              "src": "1158:13:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53959,
        "nodeType": "ImportDirective",
        "src": "1249:106:132",
        "nodes": [],
        "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol",
        "file": "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 27190,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53958,
              "name": "IERC20Upgradeable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 27189,
              "src": "1258:17:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 53961,
        "nodeType": "ImportDirective",
        "src": "1357:102:132",
        "nodes": [],
        "absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol",
        "file": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 55223,
        "sourceUnit": 28989,
        "symbolAliases": [
          {
            "foreign": {
              "id": 53960,
              "name": "ContextUpgradeable",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 28988,
              "src": "1366:18:132",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 55222,
        "nodeType": "ContractDefinition",
        "src": "1621:14220:132",
        "nodes": [
          {
            "id": 53972,
            "nodeType": "UsingForDirective",
            "src": "1702:65:132",
            "nodes": [],
            "global": false,
            "libraryName": {
              "id": 53969,
              "name": "ReserveConfiguration",
              "nameLocations": [
                "1708:20:132"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 57547,
              "src": "1708:20:132"
            },
            "typeName": {
              "id": 53971,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 53970,
                "name": "DataTypes.ReserveConfigurationMap",
                "nameLocations": [
                  "1733:9:132",
                  "1743:23:132"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 64790,
                "src": "1733:33:132"
              },
              "referencedDeclaration": 64790,
              "src": "1733:33:132",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_storage_ptr",
                "typeString": "struct DataTypes.ReserveConfigurationMap"
              }
            }
          },
          {
            "id": 53975,
            "nodeType": "UsingForDirective",
            "src": "1773:33:132",
            "nodes": [],
            "global": false,
            "libraryName": {
              "id": 53973,
              "name": "PercentageMath",
              "nameLocations": [
                "1779:14:132"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 64257,
              "src": "1779:14:132"
            },
            "typeName": {
              "id": 53974,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1798:7:132",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            }
          },
          {
            "id": 53978,
            "nodeType": "VariableDeclaration",
            "src": "1818:42:132",
            "nodes": [],
            "constant": false,
            "mutability": "mutable",
            "name": "_addressProvider",
            "nameLocation": "1844:16:132",
            "scope": 55222,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IAddressProvider_$46447",
              "typeString": "contract IAddressProvider"
            },
            "typeName": {
              "id": 53977,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 53976,
                "name": "IAddressProvider",
                "nameLocations": [
                  "1818:16:132"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 46447,
                "src": "1818:16:132"
              },
              "referencedDeclaration": 46447,
              "src": "1818:16:132",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                "typeString": "contract IAddressProvider"
              }
            },
            "visibility": "internal"
          },
          {
            "id": 53992,
            "nodeType": "FunctionDefinition",
            "src": "1869:135:132",
            "nodes": [],
            "body": {
              "id": 53991,
              "nodeType": "Block",
              "src": "1933:71:132",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "id": 53989,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 53985,
                      "name": "_addressProvider",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 53978,
                      "src": "1944:16:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                        "typeString": "contract IAddressProvider"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 53987,
                          "name": "addressProvider",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 53980,
                          "src": "1980:15:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 53986,
                        "name": "IAddressProvider",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 46447,
                        "src": "1963:16:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IAddressProvider_$46447_$",
                          "typeString": "type(contract IAddressProvider)"
                        }
                      },
                      "id": 53988,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1963:33:132",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                        "typeString": "contract IAddressProvider"
                      }
                    },
                    "src": "1944:52:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                      "typeString": "contract IAddressProvider"
                    }
                  },
                  "id": 53990,
                  "nodeType": "ExpressionStatement",
                  "src": "1944:52:132"
                }
              ]
            },
            "functionSelector": "c4d66de8",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 53983,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 53982,
                  "name": "initializer",
                  "nameLocations": [
                    "1921:11:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 26038,
                  "src": "1921:11:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "1921:11:132"
              }
            ],
            "name": "initialize",
            "nameLocation": "1878:10:132",
            "parameters": {
              "id": 53981,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 53980,
                  "mutability": "mutable",
                  "name": "addressProvider",
                  "nameLocation": "1897:15:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 53992,
                  "src": "1889:23:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 53979,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1889:7:132",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1888:25:132"
            },
            "returnParameters": {
              "id": 53984,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1933:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 54007,
            "nodeType": "ModifierDefinition",
            "src": "2012:140:132",
            "nodes": [],
            "body": {
              "id": 54006,
              "nodeType": "Block",
              "src": "2035:117:132",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 54000,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 53995,
                              "name": "_addressProvider",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 53978,
                              "src": "2054:16:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                                "typeString": "contract IAddressProvider"
                              }
                            },
                            "id": 53996,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2071:12:132",
                            "memberName": "getPoolAdmin",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 46301,
                            "src": "2054:29:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                              "typeString": "function () view external returns (address)"
                            }
                          },
                          "id": 53997,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2054:31:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 53998,
                            "name": "_msgSender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28973,
                            "src": "2089:10:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 53999,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2089:12:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2054:47:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "expression": {
                          "id": 54001,
                          "name": "Errors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 57944,
                          "src": "2103:6:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Errors_$57944_$",
                            "typeString": "type(library Errors)"
                          }
                        },
                        "id": 54002,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "2110:21:132",
                        "memberName": "CALLER_NOT_POOL_ADMIN",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 57559,
                        "src": "2103:28:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 53994,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2046:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 54003,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2046:86:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 54004,
                  "nodeType": "ExpressionStatement",
                  "src": "2046:86:132"
                },
                {
                  "id": 54005,
                  "nodeType": "PlaceholderStatement",
                  "src": "2143:1:132"
                }
              ]
            },
            "name": "onlyPoolAdmin",
            "nameLocation": "2021:13:132",
            "parameters": {
              "id": 53993,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2035:0:132"
            },
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 54022,
            "nodeType": "ModifierDefinition",
            "src": "2160:159:132",
            "nodes": [],
            "body": {
              "id": 54021,
              "nodeType": "Block",
              "src": "2188:131:132",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 54015,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "id": 54010,
                              "name": "_addressProvider",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 53978,
                              "src": "2207:16:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                                "typeString": "contract IAddressProvider"
                              }
                            },
                            "id": 54011,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "2224:17:132",
                            "memberName": "getEmergencyAdmin",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 46311,
                            "src": "2207:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                              "typeString": "function () view external returns (address)"
                            }
                          },
                          "id": 54012,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2207:36:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 54013,
                            "name": "_msgSender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 28973,
                            "src": "2247:10:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 54014,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2247:12:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2207:52:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "expression": {
                          "id": 54016,
                          "name": "Errors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 57944,
                          "src": "2261:6:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Errors_$57944_$",
                            "typeString": "type(library Errors)"
                          }
                        },
                        "id": 54017,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "2268:30:132",
                        "memberName": "LPC_CALLER_NOT_EMERGENCY_ADMIN",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 57820,
                        "src": "2261:37:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 54009,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2199:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 54018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2199:100:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 54019,
                  "nodeType": "ExpressionStatement",
                  "src": "2199:100:132"
                },
                {
                  "id": 54020,
                  "nodeType": "PlaceholderStatement",
                  "src": "2310:1:132"
                }
              ]
            },
            "name": "onlyEmergencyAdmin",
            "nameLocation": "2169:18:132",
            "parameters": {
              "id": 54008,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2188:0:132"
            },
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 54121,
            "nodeType": "FunctionDefinition",
            "src": "2327:803:132",
            "nodes": [],
            "body": {
              "id": 54120,
              "nodeType": "Block",
              "src": "2598:532:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54044
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54044,
                      "mutability": "mutable",
                      "name": "fProxies",
                      "nameLocation": "2626:8:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54120,
                      "src": "2609:25:132",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 54042,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2609:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 54043,
                        "nodeType": "ArrayTypeName",
                        "src": "2609:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54051,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 54048,
                          "name": "input",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54026,
                          "src": "2651:5:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_InitReserveInput_$64606_calldata_ptr_$dyn_calldata_ptr",
                            "typeString": "struct ConfigTypes.InitReserveInput calldata[] calldata"
                          }
                        },
                        "id": 54049,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2657:6:132",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "2651:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 54047,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2637:13:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 54045,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2641:7:132",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 54046,
                        "nodeType": "ArrayTypeName",
                        "src": "2641:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 54050,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2637:27:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2609:55:132"
                },
                {
                  "assignments": [
                    54056
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54056,
                      "mutability": "mutable",
                      "name": "sdProxies",
                      "nameLocation": "2692:9:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54120,
                      "src": "2675:26:132",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 54054,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2675:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 54055,
                        "nodeType": "ArrayTypeName",
                        "src": "2675:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54063,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 54060,
                          "name": "input",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54026,
                          "src": "2718:5:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_InitReserveInput_$64606_calldata_ptr_$dyn_calldata_ptr",
                            "typeString": "struct ConfigTypes.InitReserveInput calldata[] calldata"
                          }
                        },
                        "id": 54061,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2724:6:132",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "2718:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 54059,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2704:13:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 54057,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2708:7:132",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 54058,
                        "nodeType": "ArrayTypeName",
                        "src": "2708:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 54062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2704:27:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2675:56:132"
                },
                {
                  "assignments": [
                    54068
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54068,
                      "mutability": "mutable",
                      "name": "vdProxies",
                      "nameLocation": "2759:9:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54120,
                      "src": "2742:26:132",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 54066,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2742:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 54067,
                        "nodeType": "ArrayTypeName",
                        "src": "2742:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54075,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 54072,
                          "name": "input",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54026,
                          "src": "2785:5:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_InitReserveInput_$64606_calldata_ptr_$dyn_calldata_ptr",
                            "typeString": "struct ConfigTypes.InitReserveInput calldata[] calldata"
                          }
                        },
                        "id": 54073,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2791:6:132",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "2785:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 54071,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2771:13:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (address[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 54069,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2775:7:132",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 54070,
                        "nodeType": "ArrayTypeName",
                        "src": "2775:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      }
                    },
                    "id": 54074,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2771:27:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2742:56:132"
                },
                {
                  "assignments": [
                    54078
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54078,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "2832:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54120,
                      "src": "2819:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54077,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54076,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "2819:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "2819:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "2819:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54081,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54079,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "2845:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54080,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2845:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2819:43:132"
                },
                {
                  "body": {
                    "id": 54113,
                    "nodeType": "Block",
                    "src": "2916:147:132",
                    "statements": [
                      {
                        "expression": {
                          "id": 54111,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "components": [
                              {
                                "baseExpression": {
                                  "id": 54093,
                                  "name": "fProxies",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54044,
                                  "src": "2932:8:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 54095,
                                "indexExpression": {
                                  "id": 54094,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54083,
                                  "src": "2941:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "nodeType": "IndexAccess",
                                "src": "2932:11:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "baseExpression": {
                                  "id": 54096,
                                  "name": "sdProxies",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54056,
                                  "src": "2945:9:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 54098,
                                "indexExpression": {
                                  "id": 54097,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54083,
                                  "src": "2955:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "nodeType": "IndexAccess",
                                "src": "2945:12:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "baseExpression": {
                                  "id": 54099,
                                  "name": "vdProxies",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54068,
                                  "src": "2959:9:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                    "typeString": "address[] memory"
                                  }
                                },
                                "id": 54101,
                                "indexExpression": {
                                  "id": 54100,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54083,
                                  "src": "2969:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": true,
                                "nodeType": "IndexAccess",
                                "src": "2959:12:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "id": 54102,
                            "isConstant": false,
                            "isInlineArray": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "TupleExpression",
                            "src": "2931:41:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_address_$_t_address_$_t_address_$",
                              "typeString": "tuple(address,address,address)"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "id": 54105,
                                "name": "_addressProvider",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 53978,
                                "src": "3012:16:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                                  "typeString": "contract IAddressProvider"
                                }
                              },
                              {
                                "id": 54106,
                                "name": "cachedPool",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54078,
                                "src": "3030:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                  "typeString": "contract ILendingPool"
                                }
                              },
                              {
                                "baseExpression": {
                                  "id": 54107,
                                  "name": "input",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54026,
                                  "src": "3042:5:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_InitReserveInput_$64606_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.InitReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54109,
                                "indexExpression": {
                                  "id": 54108,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54083,
                                  "src": "3048:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "3042:8:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_InitReserveInput_$64606_calldata_ptr",
                                  "typeString": "struct ConfigTypes.InitReserveInput calldata"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                                  "typeString": "contract IAddressProvider"
                                },
                                {
                                  "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                  "typeString": "contract ILendingPool"
                                },
                                {
                                  "typeIdentifier": "t_struct$_InitReserveInput_$64606_calldata_ptr",
                                  "typeString": "struct ConfigTypes.InitReserveInput calldata"
                                }
                              ],
                              "expression": {
                                "id": 54103,
                                "name": "ConfiguratorLogic",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 59960,
                                "src": "2975:17:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_ConfiguratorLogic_$59960_$",
                                  "typeString": "type(library ConfiguratorLogic)"
                                }
                              },
                              "id": 54104,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2993:18:132",
                              "memberName": "executeInitReserve",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 59644,
                              "src": "2975:36:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_IAddressProvider_$46447_$_t_contract$_ILendingPool_$48084_$_t_struct$_InitReserveInput_$64606_memory_ptr_$returns$_t_address_$_t_address_$_t_address_$",
                                "typeString": "function (contract IAddressProvider,contract ILendingPool,struct ConfigTypes.InitReserveInput memory) returns (address,address,address)"
                              }
                            },
                            "id": 54110,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2975:76:132",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$_t_address_$_t_address_$_t_address_$",
                              "typeString": "tuple(address,address,address)"
                            }
                          },
                          "src": "2931:120:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54112,
                        "nodeType": "ExpressionStatement",
                        "src": "2931:120:132"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 54089,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 54086,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 54083,
                      "src": "2893:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 54087,
                        "name": "input",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54026,
                        "src": "2897:5:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_InitReserveInput_$64606_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct ConfigTypes.InitReserveInput calldata[] calldata"
                        }
                      },
                      "id": 54088,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2903:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "2897:12:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2893:16:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 54114,
                  "initializationExpression": {
                    "assignments": [
                      54083
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 54083,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "2886:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 54114,
                        "src": "2878:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54082,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2878:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 54085,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 54084,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2890:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2878:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 54091,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2911:3:132",
                      "subExpression": {
                        "id": 54090,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54083,
                        "src": "2911:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54092,
                    "nodeType": "ExpressionStatement",
                    "src": "2911:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "2873:190:132"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "id": 54115,
                        "name": "fProxies",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54044,
                        "src": "3091:8:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 54116,
                        "name": "sdProxies",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54056,
                        "src": "3101:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      {
                        "id": 54117,
                        "name": "vdProxies",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54068,
                        "src": "3112:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      }
                    ],
                    "id": 54118,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "3090:32:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$",
                      "typeString": "tuple(address[] memory,address[] memory,address[] memory)"
                    }
                  },
                  "functionReturnParameters": 54039,
                  "id": 54119,
                  "nodeType": "Return",
                  "src": "3083:39:132"
                }
              ]
            },
            "baseFunctions": [
              46955
            ],
            "functionSelector": "14699c65",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54029,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54028,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "2455:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "2455:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "2455:13:132"
              }
            ],
            "name": "batchInitLendingPoolReserve",
            "nameLocation": "2336:27:132",
            "parameters": {
              "id": 54027,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54026,
                  "mutability": "mutable",
                  "name": "input",
                  "nameLocation": "2414:5:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54121,
                  "src": "2374:45:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_InitReserveInput_$64606_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct ConfigTypes.InitReserveInput[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54024,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 54023,
                        "name": "ConfigTypes.InitReserveInput",
                        "nameLocations": [
                          "2374:11:132",
                          "2386:16:132"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 64606,
                        "src": "2374:28:132"
                      },
                      "referencedDeclaration": 64606,
                      "src": "2374:28:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_InitReserveInput_$64606_storage_ptr",
                        "typeString": "struct ConfigTypes.InitReserveInput"
                      }
                    },
                    "id": 54025,
                    "nodeType": "ArrayTypeName",
                    "src": "2374:30:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_InitReserveInput_$64606_storage_$dyn_storage_ptr",
                      "typeString": "struct ConfigTypes.InitReserveInput[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2363:63:132"
            },
            "returnParameters": {
              "id": 54039,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54032,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 54121,
                  "src": "2501:16:132",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54030,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2501:7:132",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 54031,
                    "nodeType": "ArrayTypeName",
                    "src": "2501:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54035,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 54121,
                  "src": "2533:16:132",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54033,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2533:7:132",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 54034,
                    "nodeType": "ArrayTypeName",
                    "src": "2533:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54038,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 54121,
                  "src": "2565:16:132",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54036,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "2565:7:132",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 54037,
                    "nodeType": "ArrayTypeName",
                    "src": "2565:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2486:106:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54205,
            "nodeType": "FunctionDefinition",
            "src": "3138:894:132",
            "nodes": [],
            "body": {
              "id": 54204,
              "nodeType": "Block",
              "src": "3289:743:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54133
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54133,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "3313:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54204,
                      "src": "3300:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54132,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54131,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "3300:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "3300:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "3300:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54136,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54134,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "3326:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54135,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3326:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3300:43:132"
                },
                {
                  "body": {
                    "id": 54202,
                    "nodeType": "Block",
                    "src": "3402:623:132",
                    "statements": [
                      {
                        "assignments": [
                          54152
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 54152,
                            "mutability": "mutable",
                            "name": "currentConfig",
                            "nameLocation": "3458:13:132",
                            "nodeType": "VariableDeclaration",
                            "scope": 54202,
                            "src": "3417:54:132",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                              "typeString": "struct DataTypes.ReserveConfigurationMap"
                            },
                            "typeName": {
                              "id": 54151,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 54150,
                                "name": "DataTypes.ReserveConfigurationMap",
                                "nameLocations": [
                                  "3417:9:132",
                                  "3427:23:132"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 64790,
                                "src": "3417:33:132"
                              },
                              "referencedDeclaration": 64790,
                              "src": "3417:33:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 54159,
                        "initialValue": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54155,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54124,
                                "src": "3527:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54157,
                              "indexExpression": {
                                "id": 54156,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54138,
                                "src": "3538:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3527:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54153,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54133,
                              "src": "3474:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54154,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3485:23:132",
                            "memberName": "getReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 47909,
                            "src": "3474:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (uint256) external returns (struct DataTypes.ReserveConfigurationMap memory)"
                            }
                          },
                          "id": 54158,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3474:81:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                            "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "3417:138:132"
                      },
                      {
                        "condition": {
                          "id": 54160,
                          "name": "flag",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54126,
                          "src": "3574:4:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 54174,
                          "nodeType": "Block",
                          "src": "3660:75:132",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "hexValue": "66616c7365",
                                    "id": 54171,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3713:5:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "false"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  ],
                                  "expression": {
                                    "id": 54168,
                                    "name": "currentConfig",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 54152,
                                    "src": "3679:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                      "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                    }
                                  },
                                  "id": 54170,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "3693:19:132",
                                  "memberName": "setBorrowingEnabled",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 57054,
                                  "src": "3679:33:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_bool_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                                    "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,bool) pure"
                                  }
                                },
                                "id": 54172,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3679:40:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54173,
                              "nodeType": "ExpressionStatement",
                              "src": "3679:40:132"
                            }
                          ]
                        },
                        "id": 54175,
                        "nodeType": "IfStatement",
                        "src": "3570:165:132",
                        "trueBody": {
                          "id": 54167,
                          "nodeType": "Block",
                          "src": "3580:74:132",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "hexValue": "74727565",
                                    "id": 54164,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "3633:4:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "true"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  ],
                                  "expression": {
                                    "id": 54161,
                                    "name": "currentConfig",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 54152,
                                    "src": "3599:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                      "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                    }
                                  },
                                  "id": 54163,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "3613:19:132",
                                  "memberName": "setBorrowingEnabled",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 57054,
                                  "src": "3599:33:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_bool_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                                    "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,bool) pure"
                                  }
                                },
                                "id": 54165,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3599:39:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54166,
                              "nodeType": "ExpressionStatement",
                              "src": "3599:39:132"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54179,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54124,
                                "src": "3786:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54181,
                              "indexExpression": {
                                "id": 54180,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54138,
                                "src": "3797:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3786:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 54182,
                                "name": "currentConfig",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54152,
                                "src": "3801:13:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 54183,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "3815:4:132",
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64789,
                              "src": "3801:18:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54176,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54133,
                              "src": "3751:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54178,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "3762:23:132",
                            "memberName": "setReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 48058,
                            "src": "3751:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) external"
                            }
                          },
                          "id": 54184,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3751:69:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54185,
                        "nodeType": "ExpressionStatement",
                        "src": "3751:69:132"
                      },
                      {
                        "condition": {
                          "id": 54186,
                          "name": "flag",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54126,
                          "src": "3841:4:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 54200,
                          "nodeType": "Block",
                          "src": "3933:81:132",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 54195,
                                      "name": "reserveIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54124,
                                      "src": "3984:10:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 54197,
                                    "indexExpression": {
                                      "id": 54196,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54138,
                                      "src": "3995:1:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "3984:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 54194,
                                  "name": "BorrowingDisabledOnReserve",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 46801,
                                  "src": "3957:26:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 54198,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3957:41:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54199,
                              "nodeType": "EmitStatement",
                              "src": "3952:46:132"
                            }
                          ]
                        },
                        "id": 54201,
                        "nodeType": "IfStatement",
                        "src": "3837:177:132",
                        "trueBody": {
                          "id": 54193,
                          "nodeType": "Block",
                          "src": "3847:80:132",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 54188,
                                      "name": "reserveIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54124,
                                      "src": "3897:10:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 54190,
                                    "indexExpression": {
                                      "id": 54189,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54138,
                                      "src": "3908:1:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "3897:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 54187,
                                  "name": "BorrowingEnabledOnReserve",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 46796,
                                  "src": "3871:25:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 54191,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "3871:40:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54192,
                              "nodeType": "EmitStatement",
                              "src": "3866:45:132"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 54144,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 54141,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 54138,
                      "src": "3374:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 54142,
                        "name": "reserveIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54124,
                        "src": "3378:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 54143,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3389:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "3378:17:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3374:21:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 54203,
                  "initializationExpression": {
                    "assignments": [
                      54138
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 54138,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3367:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 54203,
                        "src": "3359:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54137,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3359:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 54140,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 54139,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3371:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3359:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 54146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "3397:3:132",
                      "subExpression": {
                        "id": 54145,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54138,
                        "src": "3397:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54147,
                    "nodeType": "ExpressionStatement",
                    "src": "3397:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "3354:671:132"
                }
              ]
            },
            "baseFunctions": [
              46971
            ],
            "functionSelector": "5b5b815e",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54129,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54128,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "3269:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "3269:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "3269:13:132"
              }
            ],
            "name": "setBorrowingFlagOnReserve",
            "nameLocation": "3147:25:132",
            "parameters": {
              "id": 54127,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54124,
                  "mutability": "mutable",
                  "name": "reserveIds",
                  "nameLocation": "3202:10:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54205,
                  "src": "3183:29:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54122,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3183:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54123,
                    "nodeType": "ArrayTypeName",
                    "src": "3183:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54126,
                  "mutability": "mutable",
                  "name": "flag",
                  "nameLocation": "3228:4:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54205,
                  "src": "3223:9:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 54125,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3223:4:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3172:67:132"
            },
            "returnParameters": {
              "id": 54130,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3289:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54289,
            "nodeType": "FunctionDefinition",
            "src": "4040:954:132",
            "nodes": [],
            "body": {
              "id": 54288,
              "nodeType": "Block",
              "src": "4203:791:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54217
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54217,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "4227:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54288,
                      "src": "4214:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54216,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54215,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "4214:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "4214:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "4214:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54220,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54218,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "4240:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54219,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4240:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4214:43:132"
                },
                {
                  "body": {
                    "id": 54286,
                    "nodeType": "Block",
                    "src": "4316:671:132",
                    "statements": [
                      {
                        "assignments": [
                          54236
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 54236,
                            "mutability": "mutable",
                            "name": "currentConfig",
                            "nameLocation": "4372:13:132",
                            "nodeType": "VariableDeclaration",
                            "scope": 54286,
                            "src": "4331:54:132",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                              "typeString": "struct DataTypes.ReserveConfigurationMap"
                            },
                            "typeName": {
                              "id": 54235,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 54234,
                                "name": "DataTypes.ReserveConfigurationMap",
                                "nameLocations": [
                                  "4331:9:132",
                                  "4341:23:132"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 64790,
                                "src": "4331:33:132"
                              },
                              "referencedDeclaration": 64790,
                              "src": "4331:33:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 54243,
                        "initialValue": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54239,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54208,
                                "src": "4441:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54241,
                              "indexExpression": {
                                "id": 54240,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54222,
                                "src": "4452:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4441:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54237,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54217,
                              "src": "4388:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54238,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4399:23:132",
                            "memberName": "getReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 47909,
                            "src": "4388:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (uint256) external returns (struct DataTypes.ReserveConfigurationMap memory)"
                            }
                          },
                          "id": 54242,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4388:81:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                            "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "4331:138:132"
                      },
                      {
                        "condition": {
                          "id": 54244,
                          "name": "flag",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54210,
                          "src": "4488:4:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 54258,
                          "nodeType": "Block",
                          "src": "4586:87:132",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "hexValue": "66616c7365",
                                    "id": 54255,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4651:5:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "false"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  ],
                                  "expression": {
                                    "id": 54252,
                                    "name": "currentConfig",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 54236,
                                    "src": "4605:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                      "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                    }
                                  },
                                  "id": 54254,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "4619:31:132",
                                  "memberName": "setVariableRateBorrowingEnabled",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 57104,
                                  "src": "4605:45:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_bool_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                                    "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,bool) pure"
                                  }
                                },
                                "id": 54256,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4605:52:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54257,
                              "nodeType": "ExpressionStatement",
                              "src": "4605:52:132"
                            }
                          ]
                        },
                        "id": 54259,
                        "nodeType": "IfStatement",
                        "src": "4484:189:132",
                        "trueBody": {
                          "id": 54251,
                          "nodeType": "Block",
                          "src": "4494:86:132",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "hexValue": "74727565",
                                    "id": 54248,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "bool",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "4559:4:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "value": "true"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  ],
                                  "expression": {
                                    "id": 54245,
                                    "name": "currentConfig",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 54236,
                                    "src": "4513:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                      "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                    }
                                  },
                                  "id": 54247,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "4527:31:132",
                                  "memberName": "setVariableRateBorrowingEnabled",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 57104,
                                  "src": "4513:45:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_bool_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                                    "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,bool) pure"
                                  }
                                },
                                "id": 54249,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4513:51:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54250,
                              "nodeType": "ExpressionStatement",
                              "src": "4513:51:132"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54263,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54208,
                                "src": "4724:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54265,
                              "indexExpression": {
                                "id": 54264,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54222,
                                "src": "4735:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4724:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 54266,
                                "name": "currentConfig",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54236,
                                "src": "4739:13:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 54267,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "4753:4:132",
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64789,
                              "src": "4739:18:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54260,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54217,
                              "src": "4689:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54262,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "4700:23:132",
                            "memberName": "setReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 48058,
                            "src": "4689:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) external"
                            }
                          },
                          "id": 54268,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4689:69:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54269,
                        "nodeType": "ExpressionStatement",
                        "src": "4689:69:132"
                      },
                      {
                        "condition": {
                          "id": 54270,
                          "name": "flag",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54210,
                          "src": "4779:4:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 54284,
                          "nodeType": "Block",
                          "src": "4883:93:132",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 54279,
                                      "name": "reserveIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54208,
                                      "src": "4946:10:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 54281,
                                    "indexExpression": {
                                      "id": 54280,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54222,
                                      "src": "4957:1:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "4946:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 54278,
                                  "name": "VariableRateBorrowingDisabledOnReserve",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 46811,
                                  "src": "4907:38:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 54282,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4907:53:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54283,
                              "nodeType": "EmitStatement",
                              "src": "4902:58:132"
                            }
                          ]
                        },
                        "id": 54285,
                        "nodeType": "IfStatement",
                        "src": "4775:201:132",
                        "trueBody": {
                          "id": 54277,
                          "nodeType": "Block",
                          "src": "4785:92:132",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 54272,
                                      "name": "reserveIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54208,
                                      "src": "4847:10:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 54274,
                                    "indexExpression": {
                                      "id": 54273,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54222,
                                      "src": "4858:1:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "4847:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 54271,
                                  "name": "VariableRateBorrowingEnabledOnReserve",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 46806,
                                  "src": "4809:37:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 54275,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4809:52:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54276,
                              "nodeType": "EmitStatement",
                              "src": "4804:57:132"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 54228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 54225,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 54222,
                      "src": "4288:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 54226,
                        "name": "reserveIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54208,
                        "src": "4292:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 54227,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4303:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "4292:17:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4288:21:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 54287,
                  "initializationExpression": {
                    "assignments": [
                      54222
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 54222,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "4281:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 54287,
                        "src": "4273:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54221,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4273:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 54224,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 54223,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4285:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4273:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 54230,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "4311:3:132",
                      "subExpression": {
                        "id": 54229,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54222,
                        "src": "4311:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54231,
                    "nodeType": "ExpressionStatement",
                    "src": "4311:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "4268:719:132"
                }
              ]
            },
            "baseFunctions": [
              46979
            ],
            "functionSelector": "bfead1a4",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54213,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54212,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "4183:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "4183:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "4183:13:132"
              }
            ],
            "name": "setVariableRateBorrowingFlagOnReserve",
            "nameLocation": "4049:37:132",
            "parameters": {
              "id": 54211,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54208,
                  "mutability": "mutable",
                  "name": "reserveIds",
                  "nameLocation": "4116:10:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54289,
                  "src": "4097:29:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54206,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4097:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54207,
                    "nodeType": "ArrayTypeName",
                    "src": "4097:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54210,
                  "mutability": "mutable",
                  "name": "flag",
                  "nameLocation": "4142:4:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54289,
                  "src": "4137:9:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 54209,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4137:4:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4086:67:132"
            },
            "returnParameters": {
              "id": 54214,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4203:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54373,
            "nodeType": "FunctionDefinition",
            "src": "5002:839:132",
            "nodes": [],
            "body": {
              "id": 54372,
              "nodeType": "Block",
              "src": "5150:691:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54301
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54301,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "5174:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54372,
                      "src": "5161:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54300,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54299,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "5161:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "5161:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "5161:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54304,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54302,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "5187:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54303,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5187:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5161:43:132"
                },
                {
                  "body": {
                    "id": 54370,
                    "nodeType": "Block",
                    "src": "5263:571:132",
                    "statements": [
                      {
                        "assignments": [
                          54320
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 54320,
                            "mutability": "mutable",
                            "name": "currentConfig",
                            "nameLocation": "5319:13:132",
                            "nodeType": "VariableDeclaration",
                            "scope": 54370,
                            "src": "5278:54:132",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                              "typeString": "struct DataTypes.ReserveConfigurationMap"
                            },
                            "typeName": {
                              "id": 54319,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 54318,
                                "name": "DataTypes.ReserveConfigurationMap",
                                "nameLocations": [
                                  "5278:9:132",
                                  "5288:23:132"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 64790,
                                "src": "5278:33:132"
                              },
                              "referencedDeclaration": 64790,
                              "src": "5278:33:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 54327,
                        "initialValue": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54323,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54292,
                                "src": "5388:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54325,
                              "indexExpression": {
                                "id": 54324,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54306,
                                "src": "5399:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5388:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54321,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54301,
                              "src": "5335:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54322,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5346:23:132",
                            "memberName": "getReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 47909,
                            "src": "5335:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (uint256) external returns (struct DataTypes.ReserveConfigurationMap memory)"
                            }
                          },
                          "id": 54326,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5335:81:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                            "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5278:138:132"
                      },
                      {
                        "condition": {
                          "id": 54329,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "!",
                          "prefix": true,
                          "src": "5437:5:132",
                          "subExpression": {
                            "id": 54328,
                            "name": "flag",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 54294,
                            "src": "5438:4:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 54337,
                        "nodeType": "IfStatement",
                        "src": "5433:85:132",
                        "trueBody": {
                          "id": 54336,
                          "nodeType": "Block",
                          "src": "5444:74:132",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 54331,
                                      "name": "reserveIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54292,
                                      "src": "5488:10:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 54333,
                                    "indexExpression": {
                                      "id": 54332,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54306,
                                      "src": "5499:1:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5488:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 54330,
                                  "name": "_checkReserveNoLiquidity",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 55208,
                                  "src": "5463:24:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256) view"
                                  }
                                },
                                "id": 54334,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5463:39:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54335,
                              "nodeType": "ExpressionStatement",
                              "src": "5463:39:132"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 54341,
                              "name": "flag",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54294,
                              "src": "5556:4:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "id": 54338,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54320,
                              "src": "5532:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54340,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5546:9:132",
                            "memberName": "setActive",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 56954,
                            "src": "5532:23:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_bool_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,bool) pure"
                            }
                          },
                          "id": 54342,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5532:29:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54343,
                        "nodeType": "ExpressionStatement",
                        "src": "5532:29:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54347,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54292,
                                "src": "5611:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54349,
                              "indexExpression": {
                                "id": 54348,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54306,
                                "src": "5622:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "5611:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 54350,
                                "name": "currentConfig",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54320,
                                "src": "5626:13:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 54351,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "5640:4:132",
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64789,
                              "src": "5626:18:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54344,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54301,
                              "src": "5576:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54346,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "5587:23:132",
                            "memberName": "setReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 48058,
                            "src": "5576:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) external"
                            }
                          },
                          "id": 54352,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5576:69:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54353,
                        "nodeType": "ExpressionStatement",
                        "src": "5576:69:132"
                      },
                      {
                        "condition": {
                          "id": 54354,
                          "name": "flag",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54294,
                          "src": "5666:4:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 54368,
                          "nodeType": "Block",
                          "src": "5750:73:132",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 54363,
                                      "name": "reserveIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54292,
                                      "src": "5793:10:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 54365,
                                    "indexExpression": {
                                      "id": 54364,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54306,
                                      "src": "5804:1:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5793:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 54362,
                                  "name": "ReserveDeactivated",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 46821,
                                  "src": "5774:18:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 54366,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5774:33:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54367,
                              "nodeType": "EmitStatement",
                              "src": "5769:38:132"
                            }
                          ]
                        },
                        "id": 54369,
                        "nodeType": "IfStatement",
                        "src": "5662:161:132",
                        "trueBody": {
                          "id": 54361,
                          "nodeType": "Block",
                          "src": "5672:72:132",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 54356,
                                      "name": "reserveIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54292,
                                      "src": "5714:10:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 54358,
                                    "indexExpression": {
                                      "id": 54357,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54306,
                                      "src": "5725:1:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "5714:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 54355,
                                  "name": "ReserveActivated",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 46816,
                                  "src": "5697:16:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 54359,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5697:31:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54360,
                              "nodeType": "EmitStatement",
                              "src": "5692:36:132"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 54312,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 54309,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 54306,
                      "src": "5235:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 54310,
                        "name": "reserveIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54292,
                        "src": "5239:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 54311,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5250:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5239:17:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5235:21:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 54371,
                  "initializationExpression": {
                    "assignments": [
                      54306
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 54306,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "5228:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 54371,
                        "src": "5220:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54305,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "5220:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 54308,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 54307,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "5232:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5220:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 54314,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "5258:3:132",
                      "subExpression": {
                        "id": 54313,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54306,
                        "src": "5258:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54315,
                    "nodeType": "ExpressionStatement",
                    "src": "5258:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "5215:619:132"
                }
              ]
            },
            "baseFunctions": [
              46963
            ],
            "functionSelector": "7bb28860",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54297,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54296,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "5130:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "5130:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "5130:13:132"
              }
            ],
            "name": "setActiveFlagOnReserve",
            "nameLocation": "5011:22:132",
            "parameters": {
              "id": 54295,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54292,
                  "mutability": "mutable",
                  "name": "reserveIds",
                  "nameLocation": "5063:10:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54373,
                  "src": "5044:29:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54290,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5044:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54291,
                    "nodeType": "ArrayTypeName",
                    "src": "5044:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54294,
                  "mutability": "mutable",
                  "name": "flag",
                  "nameLocation": "5089:4:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54373,
                  "src": "5084:9:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 54293,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5084:4:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5033:67:132"
            },
            "returnParameters": {
              "id": 54298,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5150:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54447,
            "nodeType": "FunctionDefinition",
            "src": "5849:734:132",
            "nodes": [],
            "body": {
              "id": 54446,
              "nodeType": "Block",
              "src": "5997:586:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54385
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54385,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "6021:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54446,
                      "src": "6008:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54384,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54383,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "6008:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "6008:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "6008:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54388,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54386,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "6034:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54387,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6034:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6008:43:132"
                },
                {
                  "body": {
                    "id": 54444,
                    "nodeType": "Block",
                    "src": "6110:466:132",
                    "statements": [
                      {
                        "assignments": [
                          54404
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 54404,
                            "mutability": "mutable",
                            "name": "currentConfig",
                            "nameLocation": "6166:13:132",
                            "nodeType": "VariableDeclaration",
                            "scope": 54444,
                            "src": "6125:54:132",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                              "typeString": "struct DataTypes.ReserveConfigurationMap"
                            },
                            "typeName": {
                              "id": 54403,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 54402,
                                "name": "DataTypes.ReserveConfigurationMap",
                                "nameLocations": [
                                  "6125:9:132",
                                  "6135:23:132"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 64790,
                                "src": "6125:33:132"
                              },
                              "referencedDeclaration": 64790,
                              "src": "6125:33:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 54411,
                        "initialValue": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54407,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54376,
                                "src": "6235:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54409,
                              "indexExpression": {
                                "id": 54408,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54390,
                                "src": "6246:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "6235:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54405,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54385,
                              "src": "6182:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54406,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6193:23:132",
                            "memberName": "getReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 47909,
                            "src": "6182:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (uint256) external returns (struct DataTypes.ReserveConfigurationMap memory)"
                            }
                          },
                          "id": 54410,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6182:81:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                            "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "6125:138:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 54415,
                              "name": "flag",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54378,
                              "src": "6304:4:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            ],
                            "expression": {
                              "id": 54412,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54404,
                              "src": "6280:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54414,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6294:9:132",
                            "memberName": "setFrozen",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 57004,
                            "src": "6280:23:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_bool_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,bool) pure"
                            }
                          },
                          "id": 54416,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6280:29:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54417,
                        "nodeType": "ExpressionStatement",
                        "src": "6280:29:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54421,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54376,
                                "src": "6359:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54423,
                              "indexExpression": {
                                "id": 54422,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54390,
                                "src": "6370:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "6359:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 54424,
                                "name": "currentConfig",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54404,
                                "src": "6374:13:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 54425,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "6388:4:132",
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64789,
                              "src": "6374:18:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54418,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54385,
                              "src": "6324:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54420,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "6335:23:132",
                            "memberName": "setReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 48058,
                            "src": "6324:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) external"
                            }
                          },
                          "id": 54426,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6324:69:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54427,
                        "nodeType": "ExpressionStatement",
                        "src": "6324:69:132"
                      },
                      {
                        "condition": {
                          "id": 54428,
                          "name": "flag",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54378,
                          "src": "6414:4:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 54442,
                          "nodeType": "Block",
                          "src": "6495:70:132",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 54437,
                                      "name": "reserveIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54376,
                                      "src": "6535:10:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 54439,
                                    "indexExpression": {
                                      "id": 54438,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54390,
                                      "src": "6546:1:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "6535:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 54436,
                                  "name": "ReserveUnfrozen",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 46831,
                                  "src": "6519:15:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 54440,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6519:30:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54441,
                              "nodeType": "EmitStatement",
                              "src": "6514:35:132"
                            }
                          ]
                        },
                        "id": 54443,
                        "nodeType": "IfStatement",
                        "src": "6410:155:132",
                        "trueBody": {
                          "id": 54435,
                          "nodeType": "Block",
                          "src": "6420:69:132",
                          "statements": [
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 54430,
                                      "name": "reserveIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54376,
                                      "src": "6459:10:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 54432,
                                    "indexExpression": {
                                      "id": 54431,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 54390,
                                      "src": "6470:1:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "6459:13:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 54429,
                                  "name": "ReserveFrozen",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 46826,
                                  "src": "6445:13:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 54433,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6445:28:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54434,
                              "nodeType": "EmitStatement",
                              "src": "6440:33:132"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 54396,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 54393,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 54390,
                      "src": "6082:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 54394,
                        "name": "reserveIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54376,
                        "src": "6086:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 54395,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6097:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6086:17:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6082:21:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 54445,
                  "initializationExpression": {
                    "assignments": [
                      54390
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 54390,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "6075:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 54445,
                        "src": "6067:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54389,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "6067:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 54392,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 54391,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6079:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6067:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 54398,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "6105:3:132",
                      "subExpression": {
                        "id": 54397,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54390,
                        "src": "6105:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54399,
                    "nodeType": "ExpressionStatement",
                    "src": "6105:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "6062:514:132"
                }
              ]
            },
            "baseFunctions": [
              46987
            ],
            "functionSelector": "f9e8cafa",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54381,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54380,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "5977:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "5977:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "5977:13:132"
              }
            ],
            "name": "setFreezeFlagOnReserve",
            "nameLocation": "5858:22:132",
            "parameters": {
              "id": 54379,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54376,
                  "mutability": "mutable",
                  "name": "reserveIds",
                  "nameLocation": "5910:10:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54447,
                  "src": "5891:29:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54374,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5891:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54375,
                    "nodeType": "ArrayTypeName",
                    "src": "5891:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54378,
                  "mutability": "mutable",
                  "name": "flag",
                  "nameLocation": "5936:4:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54447,
                  "src": "5931:9:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 54377,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5931:4:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5880:67:132"
            },
            "returnParameters": {
              "id": 54382,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5997:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54513,
            "nodeType": "FunctionDefinition",
            "src": "6780:659:132",
            "nodes": [],
            "body": {
              "id": 54512,
              "nodeType": "Block",
              "src": "6934:505:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54460
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54460,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "6958:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54512,
                      "src": "6945:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54459,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54458,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "6945:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "6945:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "6945:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54463,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54461,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "6971:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54462,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6971:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6945:43:132"
                },
                {
                  "body": {
                    "id": 54510,
                    "nodeType": "Block",
                    "src": "7047:385:132",
                    "statements": [
                      {
                        "assignments": [
                          54479
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 54479,
                            "mutability": "mutable",
                            "name": "currentConfig",
                            "nameLocation": "7103:13:132",
                            "nodeType": "VariableDeclaration",
                            "scope": 54510,
                            "src": "7062:54:132",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                              "typeString": "struct DataTypes.ReserveConfigurationMap"
                            },
                            "typeName": {
                              "id": 54478,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 54477,
                                "name": "DataTypes.ReserveConfigurationMap",
                                "nameLocations": [
                                  "7062:9:132",
                                  "7072:23:132"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 64790,
                                "src": "7062:33:132"
                              },
                              "referencedDeclaration": 64790,
                              "src": "7062:33:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 54486,
                        "initialValue": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54482,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54451,
                                "src": "7172:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54484,
                              "indexExpression": {
                                "id": 54483,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54465,
                                "src": "7183:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7172:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54480,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54460,
                              "src": "7119:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54481,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7130:23:132",
                            "memberName": "getReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 47909,
                            "src": "7119:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (uint256) external returns (struct DataTypes.ReserveConfigurationMap memory)"
                            }
                          },
                          "id": 54485,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7119:81:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                            "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "7062:138:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 54490,
                              "name": "reserveFactor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54453,
                              "src": "7248:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54487,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54479,
                              "src": "7217:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54489,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7231:16:132",
                            "memberName": "setReserveFactor",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 57156,
                            "src": "7217:30:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54491,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7217:45:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54492,
                        "nodeType": "ExpressionStatement",
                        "src": "7217:45:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54496,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54451,
                                "src": "7314:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54498,
                              "indexExpression": {
                                "id": 54497,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54465,
                                "src": "7325:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7314:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 54499,
                                "name": "currentConfig",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54479,
                                "src": "7329:13:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 54500,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "7343:4:132",
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64789,
                              "src": "7329:18:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54493,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54460,
                              "src": "7279:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54495,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7290:23:132",
                            "memberName": "setReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 48058,
                            "src": "7279:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) external"
                            }
                          },
                          "id": 54501,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7279:69:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54502,
                        "nodeType": "ExpressionStatement",
                        "src": "7279:69:132"
                      },
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54504,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54451,
                                "src": "7391:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54506,
                              "indexExpression": {
                                "id": 54505,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54465,
                                "src": "7402:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7391:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 54507,
                              "name": "reserveFactor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54453,
                              "src": "7406:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 54503,
                            "name": "ReserveFactorChanged",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 46838,
                            "src": "7370:20:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256)"
                            }
                          },
                          "id": 54508,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7370:50:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54509,
                        "nodeType": "EmitStatement",
                        "src": "7365:55:132"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 54471,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 54468,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 54465,
                      "src": "7019:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 54469,
                        "name": "reserveIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54451,
                        "src": "7023:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 54470,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7034:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "7023:17:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7019:21:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 54511,
                  "initializationExpression": {
                    "assignments": [
                      54465
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 54465,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "7012:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 54511,
                        "src": "7004:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54464,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "7004:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 54467,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 54466,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7016:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7004:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 54473,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7042:3:132",
                      "subExpression": {
                        "id": 54472,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54465,
                        "src": "7042:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54474,
                    "nodeType": "ExpressionStatement",
                    "src": "7042:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "6999:433:132"
                }
              ]
            },
            "baseFunctions": [
              47012
            ],
            "documentation": {
              "id": 54448,
              "nodeType": "StructuredDocumentation",
              "src": "6591:183:132",
              "text": " @dev Updates the reserve factor of a reserve\n @param reserveIds The ids of the reserves\n @param reserveFactor The new reserve factor of the reserve*"
            },
            "functionSelector": "a9c64401",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54456,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54455,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "6914:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "6914:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "6914:13:132"
              }
            ],
            "name": "setReserveFactor",
            "nameLocation": "6789:16:132",
            "parameters": {
              "id": 54454,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54451,
                  "mutability": "mutable",
                  "name": "reserveIds",
                  "nameLocation": "6835:10:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54513,
                  "src": "6816:29:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54449,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6816:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54450,
                    "nodeType": "ArrayTypeName",
                    "src": "6816:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54453,
                  "mutability": "mutable",
                  "name": "reserveFactor",
                  "nameLocation": "6864:13:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54513,
                  "src": "6856:21:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54452,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6856:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6805:79:132"
            },
            "returnParameters": {
              "id": 54457,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6934:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54560,
            "nodeType": "FunctionDefinition",
            "src": "7651:397:132",
            "nodes": [],
            "body": {
              "id": 54559,
              "nodeType": "Block",
              "src": "7765:283:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54526
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54526,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "7789:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54559,
                      "src": "7776:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54525,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54524,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "7776:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "7776:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "7776:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54529,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54527,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "7802:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54528,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7802:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7776:43:132"
                },
                {
                  "body": {
                    "id": 54557,
                    "nodeType": "Block",
                    "src": "7878:163:132",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54544,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54517,
                                "src": "7930:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54546,
                              "indexExpression": {
                                "id": 54545,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54531,
                                "src": "7941:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7930:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 54547,
                              "name": "rateAddress",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54519,
                              "src": "7945:11:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "id": 54541,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54526,
                              "src": "7889:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54543,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "7900:29:132",
                            "memberName": "setReserveInterestRateAddress",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 48051,
                            "src": "7889:40:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$",
                              "typeString": "function (uint256,address) external"
                            }
                          },
                          "id": 54548,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7889:68:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54549,
                        "nodeType": "ExpressionStatement",
                        "src": "7889:68:132"
                      },
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54551,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54517,
                                "src": "8002:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54553,
                              "indexExpression": {
                                "id": 54552,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54531,
                                "src": "8013:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "8002:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 54554,
                              "name": "rateAddress",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54519,
                              "src": "8017:11:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 54550,
                            "name": "ReserveInterestRateChanged",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 46845,
                            "src": "7975:26:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$",
                              "typeString": "function (uint256,address)"
                            }
                          },
                          "id": 54555,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7975:54:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54556,
                        "nodeType": "EmitStatement",
                        "src": "7970:59:132"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 54537,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 54534,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 54531,
                      "src": "7850:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 54535,
                        "name": "reserveIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54517,
                        "src": "7854:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 54536,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7865:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "7854:17:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7850:21:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 54558,
                  "initializationExpression": {
                    "assignments": [
                      54531
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 54531,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "7843:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 54558,
                        "src": "7835:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54530,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "7835:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 54533,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 54532,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "7847:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7835:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 54539,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "7873:3:132",
                      "subExpression": {
                        "id": 54538,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54531,
                        "src": "7873:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54540,
                    "nodeType": "ExpressionStatement",
                    "src": "7873:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "7830:211:132"
                }
              ]
            },
            "baseFunctions": [
              47020
            ],
            "documentation": {
              "id": 54514,
              "nodeType": "StructuredDocumentation",
              "src": "7447:198:132",
              "text": " @dev Sets the interest rate strategy of a reserve\n @param reserveIds The ids of the reserves\n @param rateAddress The new address of the interest strategy contract*"
            },
            "functionSelector": "12b4f190",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54522,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54521,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "7751:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "7751:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "7751:13:132"
              }
            ],
            "name": "setReserveInterestRateAddress",
            "nameLocation": "7660:29:132",
            "parameters": {
              "id": 54520,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54517,
                  "mutability": "mutable",
                  "name": "reserveIds",
                  "nameLocation": "7709:10:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54560,
                  "src": "7690:29:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54515,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "7690:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54516,
                    "nodeType": "ArrayTypeName",
                    "src": "7690:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54519,
                  "mutability": "mutable",
                  "name": "rateAddress",
                  "nameLocation": "7729:11:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54560,
                  "src": "7721:19:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 54518,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7721:7:132",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7689:52:132"
            },
            "returnParameters": {
              "id": 54523,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7765:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54731,
            "nodeType": "FunctionDefinition",
            "src": "8056:1998:132",
            "nodes": [],
            "body": {
              "id": 54730,
              "nodeType": "Block",
              "src": "8157:1897:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54571
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54571,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "8181:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54730,
                      "src": "8168:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54570,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54569,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "8168:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "8168:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "8168:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54574,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54572,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "8194:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54573,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8194:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8168:43:132"
                },
                {
                  "body": {
                    "id": 54728,
                    "nodeType": "Block",
                    "src": "8266:1781:132",
                    "statements": [
                      {
                        "assignments": [
                          54590
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 54590,
                            "mutability": "mutable",
                            "name": "currentConfig",
                            "nameLocation": "8322:13:132",
                            "nodeType": "VariableDeclaration",
                            "scope": 54728,
                            "src": "8281:54:132",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                              "typeString": "struct DataTypes.ReserveConfigurationMap"
                            },
                            "typeName": {
                              "id": 54589,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 54588,
                                "name": "DataTypes.ReserveConfigurationMap",
                                "nameLocations": [
                                  "8281:9:132",
                                  "8291:23:132"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 64790,
                                "src": "8281:33:132"
                              },
                              "referencedDeclaration": 64790,
                              "src": "8281:33:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 54598,
                        "initialValue": {
                          "arguments": [
                            {
                              "expression": {
                                "baseExpression": {
                                  "id": 54593,
                                  "name": "inputs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54564,
                                  "src": "8391:6:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54595,
                                "indexExpression": {
                                  "id": 54594,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54576,
                                  "src": "8398:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8391:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                }
                              },
                              "id": 54596,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8401:9:132",
                              "memberName": "reserveId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64608,
                              "src": "8391:19:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54591,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54571,
                              "src": "8338:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54592,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8349:23:132",
                            "memberName": "getReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 47909,
                            "src": "8338:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (uint256) external returns (struct DataTypes.ReserveConfigurationMap memory)"
                            }
                          },
                          "id": 54597,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8338:87:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                            "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "8281:144:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 54608,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "baseExpression": {
                                    "id": 54600,
                                    "name": "inputs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 54564,
                                    "src": "8666:6:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                    }
                                  },
                                  "id": 54602,
                                  "indexExpression": {
                                    "id": 54601,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 54576,
                                    "src": "8673:1:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8666:9:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                  }
                                },
                                "id": 54603,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "8676:3:132",
                                "memberName": "ltv",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 64612,
                                "src": "8666:13:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<=",
                              "rightExpression": {
                                "expression": {
                                  "baseExpression": {
                                    "id": 54604,
                                    "name": "inputs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 54564,
                                    "src": "8683:6:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                    }
                                  },
                                  "id": 54606,
                                  "indexExpression": {
                                    "id": 54605,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 54576,
                                    "src": "8690:1:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8683:9:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                  }
                                },
                                "id": 54607,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "8693:20:132",
                                "memberName": "liquidationThreshold",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 64620,
                                "src": "8683:30:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "8666:47:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "expression": {
                                "id": 54609,
                                "name": "Errors",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 57944,
                                "src": "8715:6:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Errors_$57944_$",
                                  "typeString": "type(library Errors)"
                                }
                              },
                              "id": 54610,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "memberLocation": "8722:25:132",
                              "memberName": "LPC_INVALID_CONFIGURATION",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 57817,
                              "src": "8715:32:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_string_memory_ptr",
                                "typeString": "string memory"
                              }
                            ],
                            "id": 54599,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -18,
                              -18
                            ],
                            "referencedDeclaration": -18,
                            "src": "8658:7:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 54611,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8658:90:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54612,
                        "nodeType": "ExpressionStatement",
                        "src": "8658:90:132"
                      },
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 54618,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "baseExpression": {
                                "id": 54613,
                                "name": "inputs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54564,
                                "src": "8769:6:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                }
                              },
                              "id": 54615,
                              "indexExpression": {
                                "id": 54614,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54576,
                                "src": "8776:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "8769:9:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                              }
                            },
                            "id": 54616,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "8779:20:132",
                            "memberName": "liquidationThreshold",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64620,
                            "src": "8769:30:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 54617,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "8803:1:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "8769:35:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "id": 54643,
                          "nodeType": "Block",
                          "src": "9027:109:132",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 54638,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "expression": {
                                        "baseExpression": {
                                          "id": 54633,
                                          "name": "inputs",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 54564,
                                          "src": "9054:6:132",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                            "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                          }
                                        },
                                        "id": 54635,
                                        "indexExpression": {
                                          "id": 54634,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 54576,
                                          "src": "9061:1:132",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9054:9:132",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                          "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                        }
                                      },
                                      "id": 54636,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "9064:16:132",
                                      "memberName": "liquidationBonus",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 64618,
                                      "src": "9054:26:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "hexValue": "30",
                                      "id": 54637,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "9084:1:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_0_by_1",
                                        "typeString": "int_const 0"
                                      },
                                      "value": "0"
                                    },
                                    "src": "9054:31:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 54639,
                                      "name": "Errors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 57944,
                                      "src": "9087:6:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_Errors_$57944_$",
                                        "typeString": "type(library Errors)"
                                      }
                                    },
                                    "id": 54640,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberLocation": "9094:25:132",
                                    "memberName": "LPC_INVALID_CONFIGURATION",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 57817,
                                    "src": "9087:32:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 54632,
                                  "name": "require",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    -18,
                                    -18
                                  ],
                                  "referencedDeclaration": -18,
                                  "src": "9046:7:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                    "typeString": "function (bool,string memory) pure"
                                  }
                                },
                                "id": 54641,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9046:74:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54642,
                              "nodeType": "ExpressionStatement",
                              "src": "9046:74:132"
                            }
                          ]
                        },
                        "id": 54644,
                        "nodeType": "IfStatement",
                        "src": "8765:371:132",
                        "trueBody": {
                          "id": 54631,
                          "nodeType": "Block",
                          "src": "8806:215:132",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 54626,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "expression": {
                                        "baseExpression": {
                                          "id": 54620,
                                          "name": "inputs",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 54564,
                                          "src": "8908:6:132",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                            "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                          }
                                        },
                                        "id": 54622,
                                        "indexExpression": {
                                          "id": 54621,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 54576,
                                          "src": "8915:1:132",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "8908:9:132",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                          "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                        }
                                      },
                                      "id": 54623,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberLocation": "8918:16:132",
                                      "memberName": "liquidationBonus",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 64618,
                                      "src": "8908:26:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "<=",
                                    "rightExpression": {
                                      "expression": {
                                        "id": 54624,
                                        "name": "PercentageMath",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 64257,
                                        "src": "8938:14:132",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_PercentageMath_$64257_$",
                                          "typeString": "type(library PercentageMath)"
                                        }
                                      },
                                      "id": 54625,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberLocation": "8953:17:132",
                                      "memberName": "PERCENTAGE_FACTOR",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 64140,
                                      "src": "8938:32:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "src": "8908:62:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  {
                                    "expression": {
                                      "id": 54627,
                                      "name": "Errors",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 57944,
                                      "src": "8972:6:132",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_Errors_$57944_$",
                                        "typeString": "type(library Errors)"
                                      }
                                    },
                                    "id": 54628,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "lValueRequested": false,
                                    "memberLocation": "8979:25:132",
                                    "memberName": "LPC_INVALID_CONFIGURATION",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 57817,
                                    "src": "8972:32:132",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "id": 54619,
                                  "name": "require",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    -18,
                                    -18
                                  ],
                                  "referencedDeclaration": -18,
                                  "src": "8900:7:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                    "typeString": "function (bool,string memory) pure"
                                  }
                                },
                                "id": 54629,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8900:105:132",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 54630,
                              "nodeType": "ExpressionStatement",
                              "src": "8900:105:132"
                            }
                          ]
                        }
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "baseExpression": {
                                  "id": 54648,
                                  "name": "inputs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54564,
                                  "src": "9214:6:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54650,
                                "indexExpression": {
                                  "id": 54649,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54576,
                                  "src": "9221:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9214:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                }
                              },
                              "id": 54651,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9224:13:132",
                              "memberName": "reserveFactor",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64610,
                              "src": "9214:23:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54645,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54590,
                              "src": "9183:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54647,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9197:16:132",
                            "memberName": "setReserveFactor",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 57156,
                            "src": "9183:30:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54652,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9183:55:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54653,
                        "nodeType": "ExpressionStatement",
                        "src": "9183:55:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "baseExpression": {
                                  "id": 54657,
                                  "name": "inputs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54564,
                                  "src": "9310:6:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54659,
                                "indexExpression": {
                                  "id": 54658,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54576,
                                  "src": "9317:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9310:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                }
                              },
                              "id": 54660,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9320:3:132",
                              "memberName": "ltv",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64612,
                              "src": "9310:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54654,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54590,
                              "src": "9289:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54656,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9303:6:132",
                            "memberName": "setLtv",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 56751,
                            "src": "9289:20:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54661,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9289:35:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54662,
                        "nodeType": "ExpressionStatement",
                        "src": "9289:35:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "baseExpression": {
                                  "id": 54666,
                                  "name": "inputs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54564,
                                  "src": "9396:6:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54668,
                                "indexExpression": {
                                  "id": 54667,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54576,
                                  "src": "9403:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9396:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                }
                              },
                              "id": 54669,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9406:8:132",
                              "memberName": "decimals",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64614,
                              "src": "9396:18:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54663,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54590,
                              "src": "9370:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54665,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9384:11:132",
                            "memberName": "setDecimals",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 56904,
                            "src": "9370:25:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54670,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9370:45:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54671,
                        "nodeType": "ExpressionStatement",
                        "src": "9370:45:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "baseExpression": {
                                  "id": 54675,
                                  "name": "inputs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54564,
                                  "src": "9503:6:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54677,
                                "indexExpression": {
                                  "id": 54676,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54576,
                                  "src": "9510:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9503:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                }
                              },
                              "id": 54678,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9513:11:132",
                              "memberName": "gracePeriod",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64616,
                              "src": "9503:21:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54672,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54590,
                              "src": "9474:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54674,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9488:14:132",
                            "memberName": "setGracePeriod",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 57227,
                            "src": "9474:28:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54679,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9474:51:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54680,
                        "nodeType": "ExpressionStatement",
                        "src": "9474:51:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "baseExpression": {
                                  "id": 54684,
                                  "name": "inputs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54564,
                                  "src": "9575:6:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54686,
                                "indexExpression": {
                                  "id": 54685,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54576,
                                  "src": "9582:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9575:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                }
                              },
                              "id": 54687,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9585:16:132",
                              "memberName": "liquidationBonus",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64618,
                              "src": "9575:26:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54681,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54590,
                              "src": "9541:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54683,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9555:19:132",
                            "memberName": "setLiquidationBonus",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 56852,
                            "src": "9541:33:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54688,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9541:61:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54689,
                        "nodeType": "ExpressionStatement",
                        "src": "9541:61:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "baseExpression": {
                                  "id": 54693,
                                  "name": "inputs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54564,
                                  "src": "9656:6:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54695,
                                "indexExpression": {
                                  "id": 54694,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54576,
                                  "src": "9663:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9656:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                }
                              },
                              "id": 54696,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9666:20:132",
                              "memberName": "liquidationThreshold",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64620,
                              "src": "9656:30:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54690,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54590,
                              "src": "9618:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54692,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9632:23:132",
                            "memberName": "setLiquidationThreshold",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 56800,
                            "src": "9618:37:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54697,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9618:69:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54698,
                        "nodeType": "ExpressionStatement",
                        "src": "9618:69:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "baseExpression": {
                                  "id": 54702,
                                  "name": "inputs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54564,
                                  "src": "9768:6:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54704,
                                "indexExpression": {
                                  "id": 54703,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54576,
                                  "src": "9775:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9768:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                }
                              },
                              "id": 54705,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9778:15:132",
                              "memberName": "auctionDuration",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64622,
                              "src": "9768:25:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54699,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54590,
                              "src": "9735:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54701,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9749:18:132",
                            "memberName": "setAuctionDuration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 57279,
                            "src": "9735:32:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54706,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9735:59:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54707,
                        "nodeType": "ExpressionStatement",
                        "src": "9735:59:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "baseExpression": {
                                  "id": 54711,
                                  "name": "inputs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54564,
                                  "src": "9848:6:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54713,
                                "indexExpression": {
                                  "id": 54712,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54576,
                                  "src": "9855:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9848:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                }
                              },
                              "id": 54714,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9858:20:132",
                              "memberName": "auctionPriceMultiple",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64624,
                              "src": "9848:30:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54708,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54590,
                              "src": "9810:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54710,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9824:23:132",
                            "memberName": "setAuctionPriceMultiple",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 57331,
                            "src": "9810:37:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54715,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9810:69:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54716,
                        "nodeType": "ExpressionStatement",
                        "src": "9810:69:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "expression": {
                                "baseExpression": {
                                  "id": 54720,
                                  "name": "inputs",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54564,
                                  "src": "9995:6:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                                    "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                                  }
                                },
                                "id": 54722,
                                "indexExpression": {
                                  "id": 54721,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 54576,
                                  "src": "10002:1:132",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9995:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_calldata_ptr",
                                  "typeString": "struct ConfigTypes.ConfigReserveInput calldata"
                                }
                              },
                              "id": 54723,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10005:9:132",
                              "memberName": "reserveId",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64608,
                              "src": "9995:19:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 54724,
                                "name": "currentConfig",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54590,
                                "src": "10016:13:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 54725,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "10030:4:132",
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64789,
                              "src": "10016:18:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54717,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54571,
                              "src": "9960:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54719,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9971:23:132",
                            "memberName": "setReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 48058,
                            "src": "9960:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) external"
                            }
                          },
                          "id": 54726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9960:75:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54727,
                        "nodeType": "ExpressionStatement",
                        "src": "9960:75:132"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 54582,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 54579,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 54576,
                      "src": "8242:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 54580,
                        "name": "inputs",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54564,
                        "src": "8246:6:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct ConfigTypes.ConfigReserveInput calldata[] calldata"
                        }
                      },
                      "id": 54581,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8253:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8246:13:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8242:17:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 54729,
                  "initializationExpression": {
                    "assignments": [
                      54576
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 54576,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "8235:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 54729,
                        "src": "8227:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54575,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "8227:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 54578,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 54577,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "8239:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8227:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 54584,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "8261:3:132",
                      "subExpression": {
                        "id": 54583,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54576,
                        "src": "8261:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54585,
                    "nodeType": "ExpressionStatement",
                    "src": "8261:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "8222:1825:132"
                }
              ]
            },
            "baseFunctions": [
              47061
            ],
            "functionSelector": "c739fd41",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54567,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54566,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "8143:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "8143:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "8143:13:132"
              }
            ],
            "name": "batchConfigReserve",
            "nameLocation": "8065:18:132",
            "parameters": {
              "id": 54565,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54564,
                  "mutability": "mutable",
                  "name": "inputs",
                  "nameLocation": "8126:6:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54731,
                  "src": "8084:48:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct ConfigTypes.ConfigReserveInput[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54562,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 54561,
                        "name": "ConfigTypes.ConfigReserveInput",
                        "nameLocations": [
                          "8084:11:132",
                          "8096:18:132"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 64627,
                        "src": "8084:30:132"
                      },
                      "referencedDeclaration": 64627,
                      "src": "8084:30:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_ConfigReserveInput_$64627_storage_ptr",
                        "typeString": "struct ConfigTypes.ConfigReserveInput"
                      }
                    },
                    "id": 54563,
                    "nodeType": "ArrayTypeName",
                    "src": "8084:32:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_ConfigReserveInput_$64627_storage_$dyn_storage_ptr",
                      "typeString": "struct ConfigTypes.ConfigReserveInput[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8083:50:132"
            },
            "returnParameters": {
              "id": 54568,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8157:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54815,
            "nodeType": "FunctionDefinition",
            "src": "10404:929:132",
            "nodes": [],
            "body": {
              "id": 54814,
              "nodeType": "Block",
              "src": "10641:692:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54748
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54748,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "10665:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54814,
                      "src": "10652:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54747,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54746,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "10652:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "10652:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "10652:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54751,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54749,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "10678:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54750,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10678:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "10652:43:132"
                },
                {
                  "body": {
                    "id": 54812,
                    "nodeType": "Block",
                    "src": "10754:572:132",
                    "statements": [
                      {
                        "assignments": [
                          54767
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 54767,
                            "mutability": "mutable",
                            "name": "currentConfig",
                            "nameLocation": "10810:13:132",
                            "nodeType": "VariableDeclaration",
                            "scope": 54812,
                            "src": "10769:54:132",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                              "typeString": "struct DataTypes.ReserveConfigurationMap"
                            },
                            "typeName": {
                              "id": 54766,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 54765,
                                "name": "DataTypes.ReserveConfigurationMap",
                                "nameLocations": [
                                  "10769:9:132",
                                  "10779:23:132"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 64790,
                                "src": "10769:33:132"
                              },
                              "referencedDeclaration": 64790,
                              "src": "10769:33:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_storage_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 54774,
                        "initialValue": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54770,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54735,
                                "src": "10879:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54772,
                              "indexExpression": {
                                "id": 54771,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54753,
                                "src": "10890:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "10879:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54768,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54748,
                              "src": "10826:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54769,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10837:23:132",
                            "memberName": "getReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 47909,
                            "src": "10826:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (uint256) external returns (struct DataTypes.ReserveConfigurationMap memory)"
                            }
                          },
                          "id": 54773,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10826:81:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                            "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "10769:138:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 54778,
                              "name": "liquidationBonus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54737,
                              "src": "10958:16:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54775,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54767,
                              "src": "10924:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54777,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10938:19:132",
                            "memberName": "setLiquidationBonus",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 56852,
                            "src": "10924:33:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54779,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10924:51:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54780,
                        "nodeType": "ExpressionStatement",
                        "src": "10924:51:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 54784,
                              "name": "auctionDuration",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54739,
                              "src": "11023:15:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54781,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54767,
                              "src": "10990:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54783,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11004:18:132",
                            "memberName": "setAuctionDuration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 57279,
                            "src": "10990:32:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54785,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10990:49:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54786,
                        "nodeType": "ExpressionStatement",
                        "src": "10990:49:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 54790,
                              "name": "auctionPriceMultiple",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54741,
                              "src": "11092:20:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54787,
                              "name": "currentConfig",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54767,
                              "src": "11054:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                              }
                            },
                            "id": 54789,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11068:23:132",
                            "memberName": "setAuctionPriceMultiple",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 57331,
                            "src": "11054:37:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$_t_uint256_$returns$__$bound_to$_t_struct$_ReserveConfigurationMap_$64790_memory_ptr_$",
                              "typeString": "function (struct DataTypes.ReserveConfigurationMap memory,uint256) pure"
                            }
                          },
                          "id": 54791,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11054:59:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54792,
                        "nodeType": "ExpressionStatement",
                        "src": "11054:59:132"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54796,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54735,
                                "src": "11165:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54798,
                              "indexExpression": {
                                "id": 54797,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54753,
                                "src": "11176:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11165:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "expression": {
                                "id": 54799,
                                "name": "currentConfig",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54767,
                                "src": "11180:13:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_ReserveConfigurationMap_$64790_memory_ptr",
                                  "typeString": "struct DataTypes.ReserveConfigurationMap memory"
                                }
                              },
                              "id": 54800,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11194:4:132",
                              "memberName": "data",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 64789,
                              "src": "11180:18:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54793,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54748,
                              "src": "11130:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54795,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11141:23:132",
                            "memberName": "setReserveConfiguration",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 48058,
                            "src": "11130:34:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) external"
                            }
                          },
                          "id": 54801,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11130:69:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54802,
                        "nodeType": "ExpressionStatement",
                        "src": "11130:69:132"
                      },
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54804,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54735,
                                "src": "11243:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54806,
                              "indexExpression": {
                                "id": 54805,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54753,
                                "src": "11254:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11243:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 54807,
                              "name": "liquidationBonus",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54737,
                              "src": "11258:16:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 54808,
                              "name": "auctionDuration",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54739,
                              "src": "11276:15:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 54809,
                              "name": "auctionPriceMultiple",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54741,
                              "src": "11293:20:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 54803,
                            "name": "ReserveAuctionChanged",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 46867,
                            "src": "11221:21:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256,uint256,uint256)"
                            }
                          },
                          "id": 54810,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11221:93:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54811,
                        "nodeType": "EmitStatement",
                        "src": "11216:98:132"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 54759,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 54756,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 54753,
                      "src": "10726:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 54757,
                        "name": "reserveIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54735,
                        "src": "10730:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 54758,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "10741:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "10730:17:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "10726:21:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 54813,
                  "initializationExpression": {
                    "assignments": [
                      54753
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 54753,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "10719:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 54813,
                        "src": "10711:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54752,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "10711:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 54755,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 54754,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "10723:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "10711:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 54761,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "10749:3:132",
                      "subExpression": {
                        "id": 54760,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54753,
                        "src": "10749:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54762,
                    "nodeType": "ExpressionStatement",
                    "src": "10749:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "10706:620:132"
                }
              ]
            },
            "baseFunctions": [
              47054
            ],
            "documentation": {
              "id": 54732,
              "nodeType": "StructuredDocumentation",
              "src": "10062:336:132",
              "text": " @dev Configures the Reserve auction parameters\n @param reserveIds Reserve ids\n @param liquidationBonus The bonus received by the protocol on liquidating this asset.\n @param auctionDuration The duration of the auction\n @param auctionPriceMultiple The dutch auction start price multiplier*"
            },
            "functionSelector": "d9db75ee",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54744,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54743,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "10621:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "10621:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "10621:13:132"
              }
            ],
            "name": "configureReserveAuction",
            "nameLocation": "10413:23:132",
            "parameters": {
              "id": 54742,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54735,
                  "mutability": "mutable",
                  "name": "reserveIds",
                  "nameLocation": "10466:10:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54815,
                  "src": "10447:29:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54733,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "10447:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54734,
                    "nodeType": "ArrayTypeName",
                    "src": "10447:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54737,
                  "mutability": "mutable",
                  "name": "liquidationBonus",
                  "nameLocation": "10495:16:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54815,
                  "src": "10487:24:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54736,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10487:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54739,
                  "mutability": "mutable",
                  "name": "auctionDuration",
                  "nameLocation": "10530:15:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54815,
                  "src": "10522:23:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54738,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10522:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54741,
                  "mutability": "mutable",
                  "name": "auctionPriceMultiple",
                  "nameLocation": "10564:20:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54815,
                  "src": "10556:28:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54740,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10556:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10436:155:132"
            },
            "returnParameters": {
              "id": 54745,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10641:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54861,
            "nodeType": "FunctionDefinition",
            "src": "11341:427:132",
            "nodes": [],
            "body": {
              "id": 54860,
              "nodeType": "Block",
              "src": "11494:274:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54827
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54827,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "11518:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54860,
                      "src": "11505:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54826,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54825,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "11505:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "11505:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "11505:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54830,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54828,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "11531:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54829,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11531:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "11505:43:132"
                },
                {
                  "body": {
                    "id": 54858,
                    "nodeType": "Block",
                    "src": "11607:154:132",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54845,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54818,
                                "src": "11653:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54847,
                              "indexExpression": {
                                "id": 54846,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54832,
                                "src": "11664:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11653:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 54848,
                              "name": "maxSupply",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54820,
                              "src": "11668:9:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 54842,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54827,
                              "src": "11622:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            "id": 54844,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11633:19:132",
                            "memberName": "setReserveMaxSupply",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 48044,
                            "src": "11622:30:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256) external"
                            }
                          },
                          "id": 54849,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11622:56:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54850,
                        "nodeType": "ExpressionStatement",
                        "src": "11622:56:132"
                      },
                      {
                        "eventCall": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 54852,
                                "name": "reserveIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54818,
                                "src": "11724:10:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 54854,
                              "indexExpression": {
                                "id": 54853,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54832,
                                "src": "11735:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11724:13:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "id": 54855,
                              "name": "maxSupply",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 54820,
                              "src": "11739:9:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 54851,
                            "name": "ReserveMaxSupplyChanged",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 46881,
                            "src": "11700:23:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (uint256,uint256)"
                            }
                          },
                          "id": 54856,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11700:49:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 54857,
                        "nodeType": "EmitStatement",
                        "src": "11695:54:132"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 54838,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 54835,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 54832,
                      "src": "11579:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 54836,
                        "name": "reserveIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54818,
                        "src": "11583:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 54837,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11594:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "11583:17:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "11579:21:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 54859,
                  "initializationExpression": {
                    "assignments": [
                      54832
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 54832,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "11572:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 54859,
                        "src": "11564:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 54831,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "11564:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 54834,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 54833,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11576:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "11564:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 54840,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "11602:3:132",
                      "subExpression": {
                        "id": 54839,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54832,
                        "src": "11602:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54841,
                    "nodeType": "ExpressionStatement",
                    "src": "11602:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "11559:202:132"
                }
              ]
            },
            "baseFunctions": [
              47042
            ],
            "functionSelector": "2d72e18e",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54823,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54822,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "11474:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "11474:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "11474:13:132"
              }
            ],
            "name": "setReserveMaxSupply",
            "nameLocation": "11350:19:132",
            "parameters": {
              "id": 54821,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54818,
                  "mutability": "mutable",
                  "name": "reserveIds",
                  "nameLocation": "11399:10:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54861,
                  "src": "11380:29:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54816,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11380:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 54817,
                    "nodeType": "ArrayTypeName",
                    "src": "11380:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54820,
                  "mutability": "mutable",
                  "name": "maxSupply",
                  "nameLocation": "11428:9:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54861,
                  "src": "11420:17:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54819,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11420:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11369:75:132"
            },
            "returnParameters": {
              "id": 54824,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11494:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54885,
            "nodeType": "FunctionDefinition",
            "src": "11912:221:132",
            "nodes": [],
            "body": {
              "id": 54884,
              "nodeType": "Block",
              "src": "12005:128:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54873
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54873,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "12029:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54884,
                      "src": "12016:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54872,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54871,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "12016:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "12016:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "12016:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54876,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54874,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "12042:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54875,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12042:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12016:43:132"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 54880,
                        "name": "reserveId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54864,
                        "src": "12106:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 54881,
                        "name": "creator",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54866,
                        "src": "12117:7:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "id": 54877,
                        "name": "cachedPool",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54873,
                        "src": "12070:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "id": 54879,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12081:24:132",
                      "memberName": "setReserveCreatorAddress",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 48065,
                      "src": "12070:35:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_address_$returns$__$",
                        "typeString": "function (uint256,address) external"
                      }
                    },
                    "id": 54882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12070:55:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 54883,
                  "nodeType": "ExpressionStatement",
                  "src": "12070:55:132"
                }
              ]
            },
            "baseFunctions": [
              47027
            ],
            "documentation": {
              "id": 54862,
              "nodeType": "StructuredDocumentation",
              "src": "11776:130:132",
              "text": " @dev Updates the reserve creator address within the fToken contract via the lendingPool (proxy admin)"
            },
            "functionSelector": "bbce5cf3",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54869,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54868,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "11991:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "11991:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "11991:13:132"
              }
            ],
            "name": "setReserveCreatorAddress",
            "nameLocation": "11921:24:132",
            "parameters": {
              "id": 54867,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54864,
                  "mutability": "mutable",
                  "name": "reserveId",
                  "nameLocation": "11954:9:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54885,
                  "src": "11946:17:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54863,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11946:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54866,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "11973:7:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54885,
                  "src": "11965:15:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 54865,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11965:7:132",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11945:36:132"
            },
            "returnParameters": {
              "id": 54870,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12005:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54909,
            "nodeType": "FunctionDefinition",
            "src": "12280:233:132",
            "nodes": [],
            "body": {
              "id": 54908,
              "nodeType": "Block",
              "src": "12379:134:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54897
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54897,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "12403:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54908,
                      "src": "12390:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54896,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54895,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "12390:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "12390:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "12390:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54900,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54898,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "12416:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54899,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12416:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12390:43:132"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 54904,
                        "name": "reserveId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54888,
                        "src": "12483:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 54905,
                        "name": "percentage",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54890,
                        "src": "12494:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 54901,
                        "name": "cachedPool",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54897,
                        "src": "12444:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "id": 54903,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12455:27:132",
                      "memberName": "setReserveCreatorPercentage",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 48072,
                      "src": "12444:38:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256) external"
                      }
                    },
                    "id": 54906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12444:61:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 54907,
                  "nodeType": "ExpressionStatement",
                  "src": "12444:61:132"
                }
              ]
            },
            "baseFunctions": [
              47034
            ],
            "documentation": {
              "id": 54886,
              "nodeType": "StructuredDocumentation",
              "src": "12141:133:132",
              "text": " @dev Updates the reserve creator percentage within the fToken contract via the lendingPool (proxy admin)"
            },
            "functionSelector": "e49c8a52",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54893,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54892,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "12365:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "12365:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "12365:13:132"
              }
            ],
            "name": "setReserveCreatorPercentage",
            "nameLocation": "12289:27:132",
            "parameters": {
              "id": 54891,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54888,
                  "mutability": "mutable",
                  "name": "reserveId",
                  "nameLocation": "12325:9:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54909,
                  "src": "12317:17:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54887,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12317:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54890,
                  "mutability": "mutable",
                  "name": "percentage",
                  "nameLocation": "12344:10:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54909,
                  "src": "12336:18:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54889,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12336:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12316:39:132"
            },
            "returnParameters": {
              "id": 54894,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12379:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54947,
            "nodeType": "FunctionDefinition",
            "src": "12521:401:132",
            "nodes": [],
            "body": {
              "id": 54946,
              "nodeType": "Block",
              "src": "12592:330:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54918
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54918,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "12616:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54946,
                      "src": "12603:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54917,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54916,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "12603:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "12603:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "12603:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54921,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54919,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "12629:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54920,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12629:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12603:43:132"
                },
                {
                  "assignments": [
                    54923
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54923,
                      "mutability": "mutable",
                      "name": "curVal",
                      "nameLocation": "12697:6:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54946,
                      "src": "12689:14:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 54922,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "12689:7:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54927,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 54924,
                        "name": "cachedPool",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54918,
                        "src": "12706:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "id": 54925,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12717:22:132",
                      "memberName": "getMaxNumberOfReserves",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 48037,
                      "src": "12706:33:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                        "typeString": "function () view external returns (uint256)"
                      }
                    },
                    "id": 54926,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12706:35:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "12689:52:132"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 54931,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 54929,
                          "name": "newVal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54911,
                          "src": "12760:6:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "id": 54930,
                          "name": "curVal",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 54923,
                          "src": "12769:6:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "12760:15:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "expression": {
                          "id": 54932,
                          "name": "Errors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 57944,
                          "src": "12777:6:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Errors_$57944_$",
                            "typeString": "type(library Errors)"
                          }
                        },
                        "id": 54933,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "12784:25:132",
                        "memberName": "LPC_INVALID_CONFIGURATION",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 57817,
                        "src": "12777:32:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 54928,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "12752:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 54934,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12752:58:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 54935,
                  "nodeType": "ExpressionStatement",
                  "src": "12752:58:132"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 54939,
                        "name": "newVal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54911,
                        "src": "12855:6:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 54936,
                        "name": "cachedPool",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54918,
                        "src": "12821:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "id": 54938,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "12832:22:132",
                      "memberName": "setMaxNumberOfReserves",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 48032,
                      "src": "12821:33:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 54940,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12821:41:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 54941,
                  "nodeType": "ExpressionStatement",
                  "src": "12821:41:132"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 54943,
                        "name": "newVal",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54911,
                        "src": "12907:6:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 54942,
                      "name": "MaxNumberOfReservesChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 46886,
                      "src": "12880:26:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 54944,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12880:34:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 54945,
                  "nodeType": "EmitStatement",
                  "src": "12875:39:132"
                }
              ]
            },
            "baseFunctions": [
              47004
            ],
            "functionSelector": "746c35a2",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54914,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54913,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "12578:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "12578:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "12578:13:132"
              }
            ],
            "name": "setMaxNumberOfReserves",
            "nameLocation": "12530:22:132",
            "parameters": {
              "id": 54912,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54911,
                  "mutability": "mutable",
                  "name": "newVal",
                  "nameLocation": "12561:6:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54947,
                  "src": "12553:14:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54910,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12553:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12552:16:132"
            },
            "returnParameters": {
              "id": 54915,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12592:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54968,
            "nodeType": "FunctionDefinition",
            "src": "13113:157:132",
            "nodes": [],
            "body": {
              "id": 54967,
              "nodeType": "Block",
              "src": "13173:97:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54957
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54957,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "13197:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54967,
                      "src": "13184:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54956,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54955,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "13184:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "13184:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "13184:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54960,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54958,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "13210:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54959,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13210:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13184:43:132"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 54964,
                        "name": "val",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54950,
                        "src": "13258:3:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "id": 54961,
                        "name": "cachedPool",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54957,
                        "src": "13238:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "id": 54963,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13249:8:132",
                      "memberName": "setPause",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 47940,
                      "src": "13238:19:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_bool_$returns$__$",
                        "typeString": "function (bool) external"
                      }
                    },
                    "id": 54965,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13238:24:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 54966,
                  "nodeType": "ExpressionStatement",
                  "src": "13238:24:132"
                }
              ]
            },
            "baseFunctions": [
              46992
            ],
            "documentation": {
              "id": 54948,
              "nodeType": "StructuredDocumentation",
              "src": "12930:177:132",
              "text": " @dev pauses or unpauses all the actions of the protocol, including fToken transfers\n @param val true if protocol needs to be paused, false otherwise*"
            },
            "functionSelector": "7641f3d9",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54953,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54952,
                  "name": "onlyEmergencyAdmin",
                  "nameLocations": [
                    "13154:18:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54022,
                  "src": "13154:18:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "13154:18:132"
              }
            ],
            "name": "setPoolPause",
            "nameLocation": "13122:12:132",
            "parameters": {
              "id": 54951,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54950,
                  "mutability": "mutable",
                  "name": "val",
                  "nameLocation": "13140:3:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54968,
                  "src": "13135:8:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 54949,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "13135:4:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13134:10:132"
            },
            "returnParameters": {
              "id": 54954,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13173:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 54991,
            "nodeType": "FunctionDefinition",
            "src": "13278:218:132",
            "nodes": [],
            "body": {
              "id": 54990,
              "nodeType": "Block",
              "src": "13374:122:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    54979
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 54979,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "13398:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 54990,
                      "src": "13385:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 54978,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 54977,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "13385:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "13385:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "13385:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 54982,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 54980,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "13411:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 54981,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13411:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13385:43:132"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 54986,
                        "name": "startTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54970,
                        "src": "13464:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 54987,
                        "name": "durationTime",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54972,
                        "src": "13475:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 54983,
                        "name": "cachedPool",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54979,
                        "src": "13439:10:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "id": 54985,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13450:13:132",
                      "memberName": "setPausedTime",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 47947,
                      "src": "13439:24:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256) external"
                      }
                    },
                    "id": 54988,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13439:49:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 54989,
                  "nodeType": "ExpressionStatement",
                  "src": "13439:49:132"
                }
              ]
            },
            "baseFunctions": [
              46999
            ],
            "functionSelector": "84636d4f",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54975,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54974,
                  "name": "onlyEmergencyAdmin",
                  "nameLocations": [
                    "13355:18:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54022,
                  "src": "13355:18:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "13355:18:132"
              }
            ],
            "name": "setPoolPausedTime",
            "nameLocation": "13287:17:132",
            "parameters": {
              "id": 54973,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54970,
                  "mutability": "mutable",
                  "name": "startTime",
                  "nameLocation": "13313:9:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54991,
                  "src": "13305:17:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54969,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13305:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 54972,
                  "mutability": "mutable",
                  "name": "durationTime",
                  "nameLocation": "13332:12:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 54991,
                  "src": "13324:20:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 54971,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13324:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13304:41:132"
            },
            "returnParameters": {
              "id": 54976,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13374:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 55030,
            "nodeType": "FunctionDefinition",
            "src": "13586:299:132",
            "nodes": [],
            "body": {
              "id": 55029,
              "nodeType": "Block",
              "src": "13680:205:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    55003
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 55003,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "13704:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 55029,
                      "src": "13691:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 55002,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 55001,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "13691:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "13691:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "13691:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 55006,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 55004,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "13717:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 55005,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13717:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "13691:43:132"
                },
                {
                  "body": {
                    "id": 55027,
                    "nodeType": "Block",
                    "src": "13791:87:132",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 55021,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 55003,
                              "src": "13844:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 55022,
                                "name": "inputs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 54996,
                                "src": "13856:6:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_UpdateFTokenInput_$64681_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "struct ConfigTypes.UpdateFTokenInput calldata[] calldata"
                                }
                              },
                              "id": 55024,
                              "indexExpression": {
                                "id": 55023,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 55008,
                                "src": "13863:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "13856:9:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_UpdateFTokenInput_$64681_calldata_ptr",
                                "typeString": "struct ConfigTypes.UpdateFTokenInput calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              },
                              {
                                "typeIdentifier": "t_struct$_UpdateFTokenInput_$64681_calldata_ptr",
                                "typeString": "struct ConfigTypes.UpdateFTokenInput calldata"
                              }
                            ],
                            "expression": {
                              "id": 55018,
                              "name": "ConfiguratorLogic",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 59960,
                              "src": "13806:17:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ConfiguratorLogic_$59960_$",
                                "typeString": "type(library ConfiguratorLogic)"
                              }
                            },
                            "id": 55020,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "13824:19:132",
                            "memberName": "executeUpdateFToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 59687,
                            "src": "13806:37:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_ILendingPool_$48084_$_t_struct$_UpdateFTokenInput_$64681_memory_ptr_$returns$__$",
                              "typeString": "function (contract ILendingPool,struct ConfigTypes.UpdateFTokenInput memory)"
                            }
                          },
                          "id": 55025,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "13806:60:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 55026,
                        "nodeType": "ExpressionStatement",
                        "src": "13806:60:132"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 55014,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 55011,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55008,
                      "src": "13767:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 55012,
                        "name": "inputs",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 54996,
                        "src": "13771:6:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_UpdateFTokenInput_$64681_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct ConfigTypes.UpdateFTokenInput calldata[] calldata"
                        }
                      },
                      "id": 55013,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "13778:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "13771:13:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "13767:17:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 55028,
                  "initializationExpression": {
                    "assignments": [
                      55008
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 55008,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "13760:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 55028,
                        "src": "13752:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 55007,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "13752:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 55010,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 55009,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "13764:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "13752:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 55016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "13786:3:132",
                      "subExpression": {
                        "id": 55015,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 55008,
                        "src": "13786:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 55017,
                    "nodeType": "ExpressionStatement",
                    "src": "13786:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "13747:131:132"
                }
              ]
            },
            "baseFunctions": [
              47068
            ],
            "documentation": {
              "id": 54992,
              "nodeType": "StructuredDocumentation",
              "src": "13504:76:132",
              "text": " @dev Updates the fToken implementation for the reserve*"
            },
            "functionSelector": "3c8db8b1",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 54999,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 54998,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "13666:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "13666:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "13666:13:132"
              }
            ],
            "name": "updateFToken",
            "nameLocation": "13595:12:132",
            "parameters": {
              "id": 54997,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 54996,
                  "mutability": "mutable",
                  "name": "inputs",
                  "nameLocation": "13649:6:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 55030,
                  "src": "13608:47:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_UpdateFTokenInput_$64681_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct ConfigTypes.UpdateFTokenInput[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 54994,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 54993,
                        "name": "ConfigTypes.UpdateFTokenInput",
                        "nameLocations": [
                          "13608:11:132",
                          "13620:17:132"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 64681,
                        "src": "13608:29:132"
                      },
                      "referencedDeclaration": 64681,
                      "src": "13608:29:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateFTokenInput_$64681_storage_ptr",
                        "typeString": "struct ConfigTypes.UpdateFTokenInput"
                      }
                    },
                    "id": 54995,
                    "nodeType": "ArrayTypeName",
                    "src": "13608:31:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_UpdateFTokenInput_$64681_storage_$dyn_storage_ptr",
                      "typeString": "struct ConfigTypes.UpdateFTokenInput[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13607:49:132"
            },
            "returnParameters": {
              "id": 55000,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "13680:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 55069,
            "nodeType": "FunctionDefinition",
            "src": "13986:320:132",
            "nodes": [],
            "body": {
              "id": 55068,
              "nodeType": "Block",
              "src": "14092:214:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    55042
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 55042,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "14116:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 55068,
                      "src": "14103:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 55041,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 55040,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "14103:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "14103:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "14103:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 55045,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 55043,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "14129:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 55044,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14129:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14103:43:132"
                },
                {
                  "body": {
                    "id": 55066,
                    "nodeType": "Block",
                    "src": "14203:96:132",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 55060,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 55042,
                              "src": "14265:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 55061,
                                "name": "inputs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 55035,
                                "src": "14277:6:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_UpdateDebtTokenInput_$64692_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "struct ConfigTypes.UpdateDebtTokenInput calldata[] calldata"
                                }
                              },
                              "id": 55063,
                              "indexExpression": {
                                "id": 55062,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 55047,
                                "src": "14284:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "14277:9:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_UpdateDebtTokenInput_$64692_calldata_ptr",
                                "typeString": "struct ConfigTypes.UpdateDebtTokenInput calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              },
                              {
                                "typeIdentifier": "t_struct$_UpdateDebtTokenInput_$64692_calldata_ptr",
                                "typeString": "struct ConfigTypes.UpdateDebtTokenInput calldata"
                              }
                            ],
                            "expression": {
                              "id": 55057,
                              "name": "ConfiguratorLogic",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 59960,
                              "src": "14218:17:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ConfiguratorLogic_$59960_$",
                                "typeString": "type(library ConfiguratorLogic)"
                              }
                            },
                            "id": 55059,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14236:28:132",
                            "memberName": "executeUpdateStableDebtToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 59730,
                            "src": "14218:46:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_ILendingPool_$48084_$_t_struct$_UpdateDebtTokenInput_$64692_memory_ptr_$returns$__$",
                              "typeString": "function (contract ILendingPool,struct ConfigTypes.UpdateDebtTokenInput memory)"
                            }
                          },
                          "id": 55064,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14218:69:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 55065,
                        "nodeType": "ExpressionStatement",
                        "src": "14218:69:132"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 55053,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 55050,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55047,
                      "src": "14179:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 55051,
                        "name": "inputs",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 55035,
                        "src": "14183:6:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_UpdateDebtTokenInput_$64692_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct ConfigTypes.UpdateDebtTokenInput calldata[] calldata"
                        }
                      },
                      "id": 55052,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14190:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "14183:13:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14179:17:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 55067,
                  "initializationExpression": {
                    "assignments": [
                      55047
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 55047,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "14172:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 55067,
                        "src": "14164:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 55046,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "14164:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 55049,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 55048,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14176:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "14164:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 55055,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "14198:3:132",
                      "subExpression": {
                        "id": 55054,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 55047,
                        "src": "14198:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 55056,
                    "nodeType": "ExpressionStatement",
                    "src": "14198:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "14159:140:132"
                }
              ]
            },
            "baseFunctions": [
              47075
            ],
            "documentation": {
              "id": 55031,
              "nodeType": "StructuredDocumentation",
              "src": "13893:87:132",
              "text": " @dev Updates the stable debt token implementation for the reserve*"
            },
            "functionSelector": "29534299",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 55038,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 55037,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "14078:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "14078:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "14078:13:132"
              }
            ],
            "name": "updateStableDebtToken",
            "nameLocation": "13995:21:132",
            "parameters": {
              "id": 55036,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 55035,
                  "mutability": "mutable",
                  "name": "inputs",
                  "nameLocation": "14061:6:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 55069,
                  "src": "14017:50:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_UpdateDebtTokenInput_$64692_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct ConfigTypes.UpdateDebtTokenInput[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 55033,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 55032,
                        "name": "ConfigTypes.UpdateDebtTokenInput",
                        "nameLocations": [
                          "14017:11:132",
                          "14029:20:132"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 64692,
                        "src": "14017:32:132"
                      },
                      "referencedDeclaration": 64692,
                      "src": "14017:32:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateDebtTokenInput_$64692_storage_ptr",
                        "typeString": "struct ConfigTypes.UpdateDebtTokenInput"
                      }
                    },
                    "id": 55034,
                    "nodeType": "ArrayTypeName",
                    "src": "14017:34:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_UpdateDebtTokenInput_$64692_storage_$dyn_storage_ptr",
                      "typeString": "struct ConfigTypes.UpdateDebtTokenInput[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14016:52:132"
            },
            "returnParameters": {
              "id": 55039,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14092:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 55108,
            "nodeType": "FunctionDefinition",
            "src": "14400:324:132",
            "nodes": [],
            "body": {
              "id": 55107,
              "nodeType": "Block",
              "src": "14508:216:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    55081
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 55081,
                      "mutability": "mutable",
                      "name": "cachedPool",
                      "nameLocation": "14532:10:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 55107,
                      "src": "14519:23:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ILendingPool_$48084",
                        "typeString": "contract ILendingPool"
                      },
                      "typeName": {
                        "id": 55080,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 55079,
                          "name": "ILendingPool",
                          "nameLocations": [
                            "14519:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48084,
                          "src": "14519:12:132"
                        },
                        "referencedDeclaration": 48084,
                        "src": "14519:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 55084,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 55082,
                      "name": "_getLendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55221,
                      "src": "14545:15:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "function () view returns (contract ILendingPool)"
                      }
                    },
                    "id": 55083,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14545:17:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14519:43:132"
                },
                {
                  "body": {
                    "id": 55105,
                    "nodeType": "Block",
                    "src": "14619:98:132",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 55099,
                              "name": "cachedPool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 55081,
                              "src": "14683:10:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 55100,
                                "name": "inputs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 55074,
                                "src": "14695:6:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_struct$_UpdateDebtTokenInput_$64692_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "struct ConfigTypes.UpdateDebtTokenInput calldata[] calldata"
                                }
                              },
                              "id": 55102,
                              "indexExpression": {
                                "id": 55101,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 55086,
                                "src": "14702:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "14695:9:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_UpdateDebtTokenInput_$64692_calldata_ptr",
                                "typeString": "struct ConfigTypes.UpdateDebtTokenInput calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_ILendingPool_$48084",
                                "typeString": "contract ILendingPool"
                              },
                              {
                                "typeIdentifier": "t_struct$_UpdateDebtTokenInput_$64692_calldata_ptr",
                                "typeString": "struct ConfigTypes.UpdateDebtTokenInput calldata"
                              }
                            ],
                            "expression": {
                              "id": 55096,
                              "name": "ConfiguratorLogic",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 59960,
                              "src": "14634:17:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ConfiguratorLogic_$59960_$",
                                "typeString": "type(library ConfiguratorLogic)"
                              }
                            },
                            "id": 55098,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "14652:30:132",
                            "memberName": "executeUpdateVariableDebtToken",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 59773,
                            "src": "14634:48:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_delegatecall_nonpayable$_t_contract$_ILendingPool_$48084_$_t_struct$_UpdateDebtTokenInput_$64692_memory_ptr_$returns$__$",
                              "typeString": "function (contract ILendingPool,struct ConfigTypes.UpdateDebtTokenInput memory)"
                            }
                          },
                          "id": 55103,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "14634:71:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 55104,
                        "nodeType": "ExpressionStatement",
                        "src": "14634:71:132"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 55092,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 55089,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55086,
                      "src": "14595:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 55090,
                        "name": "inputs",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 55074,
                        "src": "14599:6:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_UpdateDebtTokenInput_$64692_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "struct ConfigTypes.UpdateDebtTokenInput calldata[] calldata"
                        }
                      },
                      "id": 55091,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14606:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "14599:13:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14595:17:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 55106,
                  "initializationExpression": {
                    "assignments": [
                      55086
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 55086,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "14588:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 55106,
                        "src": "14580:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 55085,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "14580:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 55088,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 55087,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14592:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "14580:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 55094,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "14614:3:132",
                      "subExpression": {
                        "id": 55093,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 55086,
                        "src": "14614:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 55095,
                    "nodeType": "ExpressionStatement",
                    "src": "14614:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "14575:142:132"
                }
              ]
            },
            "baseFunctions": [
              47082
            ],
            "documentation": {
              "id": 55070,
              "nodeType": "StructuredDocumentation",
              "src": "14314:80:132",
              "text": " @dev Updates the debt token implementation for the reserve*"
            },
            "functionSelector": "ceaedb9b",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 55077,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 55076,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "14494:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "14494:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "14494:13:132"
              }
            ],
            "name": "updateVariableDebtToken",
            "nameLocation": "14409:23:132",
            "parameters": {
              "id": 55075,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 55074,
                  "mutability": "mutable",
                  "name": "inputs",
                  "nameLocation": "14477:6:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 55108,
                  "src": "14433:50:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_UpdateDebtTokenInput_$64692_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "struct ConfigTypes.UpdateDebtTokenInput[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 55072,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 55071,
                        "name": "ConfigTypes.UpdateDebtTokenInput",
                        "nameLocations": [
                          "14433:11:132",
                          "14445:20:132"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 64692,
                        "src": "14433:32:132"
                      },
                      "referencedDeclaration": 64692,
                      "src": "14433:32:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_UpdateDebtTokenInput_$64692_storage_ptr",
                        "typeString": "struct ConfigTypes.UpdateDebtTokenInput"
                      }
                    },
                    "id": 55073,
                    "nodeType": "ArrayTypeName",
                    "src": "14433:34:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_UpdateDebtTokenInput_$64692_storage_$dyn_storage_ptr",
                      "typeString": "struct ConfigTypes.UpdateDebtTokenInput[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14432:52:132"
            },
            "returnParameters": {
              "id": 55078,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14508:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 55147,
            "nodeType": "FunctionDefinition",
            "src": "14732:355:132",
            "nodes": [],
            "body": {
              "id": 55146,
              "nodeType": "Block",
              "src": "14828:259:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    55118
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 55118,
                      "mutability": "mutable",
                      "name": "executionDelegate",
                      "nameLocation": "14858:17:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 55146,
                      "src": "14839:36:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IExecutionDelegate_$47185",
                        "typeString": "contract IExecutionDelegate"
                      },
                      "typeName": {
                        "id": 55117,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 55116,
                          "name": "IExecutionDelegate",
                          "nameLocations": [
                            "14839:18:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 47185,
                          "src": "14839:18:132"
                        },
                        "referencedDeclaration": 47185,
                        "src": "14839:18:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IExecutionDelegate_$47185",
                          "typeString": "contract IExecutionDelegate"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 55124,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 55120,
                            "name": "_addressProvider",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 53978,
                            "src": "14897:16:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                              "typeString": "contract IAddressProvider"
                            }
                          },
                          "id": 55121,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "14914:20:132",
                          "memberName": "getExecutionDelegate",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 46186,
                          "src": "14897:37:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 55122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "14897:39:132",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 55119,
                      "name": "IExecutionDelegate",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 47185,
                      "src": "14878:18:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IExecutionDelegate_$47185_$",
                        "typeString": "type(contract IExecutionDelegate)"
                      }
                    },
                    "id": 55123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14878:59:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IExecutionDelegate_$47185",
                      "typeString": "contract IExecutionDelegate"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "14839:98:132"
                },
                {
                  "body": {
                    "id": 55144,
                    "nodeType": "Block",
                    "src": "15005:74:132",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 55139,
                                "name": "contracts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 55111,
                                "src": "15054:9:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 55141,
                              "indexExpression": {
                                "id": 55140,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 55126,
                                "src": "15064:1:132",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15054:12:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "id": 55136,
                              "name": "executionDelegate",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 55118,
                              "src": "15020:17:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IExecutionDelegate_$47185",
                                "typeString": "contract IExecutionDelegate"
                              }
                            },
                            "id": 55138,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "15038:15:132",
                            "memberName": "approveContract",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 47127,
                            "src": "15020:33:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address) external"
                            }
                          },
                          "id": 55142,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "15020:47:132",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 55143,
                        "nodeType": "ExpressionStatement",
                        "src": "15020:47:132"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 55132,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 55129,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 55126,
                      "src": "14978:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 55130,
                        "name": "contracts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 55111,
                        "src": "14982:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      "id": 55131,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14992:6:132",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "14982:16:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14978:20:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 55145,
                  "initializationExpression": {
                    "assignments": [
                      55126
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 55126,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "14971:1:132",
                        "nodeType": "VariableDeclaration",
                        "scope": 55145,
                        "src": "14963:9:132",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 55125,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "14963:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 55128,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 55127,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "14975:1:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "14963:13:132"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 55134,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "15000:3:132",
                      "subExpression": {
                        "id": 55133,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 55126,
                        "src": "15000:1:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 55135,
                    "nodeType": "ExpressionStatement",
                    "src": "15000:3:132"
                  },
                  "nodeType": "ForStatement",
                  "src": "14958:121:132"
                }
              ]
            },
            "baseFunctions": [
              47088
            ],
            "functionSelector": "80a4d93d",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 55114,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 55113,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "14814:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "14814:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "14814:13:132"
              }
            ],
            "name": "approveExecutionDelegateContracts",
            "nameLocation": "14741:33:132",
            "parameters": {
              "id": 55112,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 55111,
                  "mutability": "mutable",
                  "name": "contracts",
                  "nameLocation": "14794:9:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 55147,
                  "src": "14775:28:132",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 55109,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "14775:7:132",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 55110,
                    "nodeType": "ArrayTypeName",
                    "src": "14775:9:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14774:30:132"
            },
            "returnParameters": {
              "id": 55115,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14828:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 55167,
            "nodeType": "FunctionDefinition",
            "src": "15095:207:132",
            "nodes": [],
            "body": {
              "id": 55166,
              "nodeType": "Block",
              "src": "15158:144:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    55154
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 55154,
                      "mutability": "mutable",
                      "name": "wethGateway",
                      "nameLocation": "15182:11:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 55166,
                      "src": "15169:24:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IWETHGateway_$48998",
                        "typeString": "contract IWETHGateway"
                      },
                      "typeName": {
                        "id": 55153,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 55152,
                          "name": "IWETHGateway",
                          "nameLocations": [
                            "15169:12:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 48998,
                          "src": "15169:12:132"
                        },
                        "referencedDeclaration": 48998,
                        "src": "15169:12:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWETHGateway_$48998",
                          "typeString": "contract IWETHGateway"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 55160,
                  "initialValue": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 55156,
                            "name": "_addressProvider",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 53978,
                            "src": "15209:16:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                              "typeString": "contract IAddressProvider"
                            }
                          },
                          "id": 55157,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "15226:14:132",
                          "memberName": "getWETHGateway",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 46441,
                          "src": "15209:31:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 55158,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15209:33:132",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 55155,
                      "name": "IWETHGateway",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 48998,
                      "src": "15196:12:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_IWETHGateway_$48998_$",
                        "typeString": "type(contract IWETHGateway)"
                      }
                    },
                    "id": 55159,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15196:47:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWETHGateway_$48998",
                      "typeString": "contract IWETHGateway"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15169:74:132"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "id": 55161,
                        "name": "wethGateway",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 55154,
                        "src": "15254:11:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWETHGateway_$48998",
                          "typeString": "contract IWETHGateway"
                        }
                      },
                      "id": 55163,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "15266:26:132",
                      "memberName": "authorizeExecutionDelegate",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 48997,
                      "src": "15254:38:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 55164,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15254:40:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 55165,
                  "nodeType": "ExpressionStatement",
                  "src": "15254:40:132"
                }
              ]
            },
            "functionSelector": "0e342789",
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 55150,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 55149,
                  "name": "onlyPoolAdmin",
                  "nameLocations": [
                    "15144:13:132"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 54007,
                  "src": "15144:13:132"
                },
                "nodeType": "ModifierInvocation",
                "src": "15144:13:132"
              }
            ],
            "name": "approveWETHExecutionDelegate",
            "nameLocation": "15104:28:132",
            "parameters": {
              "id": 55148,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15132:2:132"
            },
            "returnParameters": {
              "id": 55151,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15158:0:132"
            },
            "scope": 55222,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 55208,
            "nodeType": "FunctionDefinition",
            "src": "15310:383:132",
            "nodes": [],
            "body": {
              "id": 55207,
              "nodeType": "Block",
              "src": "15377:316:132",
              "nodes": [],
              "statements": [
                {
                  "assignments": [
                    55176
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 55176,
                      "mutability": "mutable",
                      "name": "reserve",
                      "nameLocation": "15413:7:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 55207,
                      "src": "15388:32:132",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Reserve_$64757_memory_ptr",
                        "typeString": "struct DataTypes.Reserve"
                      },
                      "typeName": {
                        "id": 55175,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 55174,
                          "name": "DataTypes.Reserve",
                          "nameLocations": [
                            "15388:9:132",
                            "15398:7:132"
                          ],
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 64757,
                          "src": "15388:17:132"
                        },
                        "referencedDeclaration": 64757,
                        "src": "15388:17:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Reserve_$64757_storage_ptr",
                          "typeString": "struct DataTypes.Reserve"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 55182,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 55180,
                        "name": "reserveId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 55169,
                        "src": "15452:9:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 55177,
                          "name": "_getLendingPool",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 55221,
                          "src": "15423:15:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_contract$_ILendingPool_$48084_$",
                            "typeString": "function () view returns (contract ILendingPool)"
                          }
                        },
                        "id": 55178,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15423:17:132",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ILendingPool_$48084",
                          "typeString": "contract ILendingPool"
                        }
                      },
                      "id": 55179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "15441:10:132",
                      "memberName": "getReserve",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 47996,
                      "src": "15423:28:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Reserve_$64757_memory_ptr_$",
                        "typeString": "function (uint256) view external returns (struct DataTypes.Reserve memory)"
                      }
                    },
                    "id": 55181,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15423:39:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Reserve_$64757_memory_ptr",
                      "typeString": "struct DataTypes.Reserve memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15388:74:132"
                },
                {
                  "assignments": [
                    55184
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 55184,
                      "mutability": "mutable",
                      "name": "availableLiquidity",
                      "nameLocation": "15483:18:132",
                      "nodeType": "VariableDeclaration",
                      "scope": 55207,
                      "src": "15475:26:132",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 55183,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "15475:7:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 55193,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 55190,
                          "name": "reserve",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 55176,
                          "src": "15547:7:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Reserve_$64757_memory_ptr",
                            "typeString": "struct DataTypes.Reserve memory"
                          }
                        },
                        "id": 55191,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "15555:13:132",
                        "memberName": "fTokenAddress",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 64730,
                        "src": "15547:21:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "expression": {
                              "id": 55186,
                              "name": "reserve",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 55176,
                              "src": "15522:7:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Reserve_$64757_memory_ptr",
                                "typeString": "struct DataTypes.Reserve memory"
                              }
                            },
                            "id": 55187,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "15530:5:132",
                            "memberName": "asset",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64728,
                            "src": "15522:13:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 55185,
                          "name": "IERC20Upgradeable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 27189,
                          "src": "15504:17:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IERC20Upgradeable_$27189_$",
                            "typeString": "type(contract IERC20Upgradeable)"
                          }
                        },
                        "id": 55188,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15504:32:132",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC20Upgradeable_$27189",
                          "typeString": "contract IERC20Upgradeable"
                        }
                      },
                      "id": 55189,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "15537:9:132",
                      "memberName": "balanceOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 27146,
                      "src": "15504:42:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) view external returns (uint256)"
                      }
                    },
                    "id": 55192,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15504:65:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "15475:94:132"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 55202,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 55197,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 55195,
                            "name": "availableLiquidity",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 55184,
                            "src": "15590:18:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 55196,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15612:1:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15590:23:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint128",
                            "typeString": "uint128"
                          },
                          "id": 55201,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 55198,
                              "name": "reserve",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 55176,
                              "src": "15617:7:132",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Reserve_$64757_memory_ptr",
                                "typeString": "struct DataTypes.Reserve memory"
                              }
                            },
                            "id": 55199,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "15625:20:132",
                            "memberName": "currentLiquidityRate",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 64752,
                            "src": "15617:28:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint128",
                              "typeString": "uint128"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "30",
                            "id": 55200,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "15649:1:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "src": "15617:33:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "15590:60:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "expression": {
                          "id": 55203,
                          "name": "Errors",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 57944,
                          "src": "15652:6:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Errors_$57944_$",
                            "typeString": "type(library Errors)"
                          }
                        },
                        "id": 55204,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "15659:27:132",
                        "memberName": "LPC_RESERVE_LIQUIDITY_NOT_0",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 57814,
                        "src": "15652:34:132",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 55194,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "15582:7:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 55205,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15582:105:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 55206,
                  "nodeType": "ExpressionStatement",
                  "src": "15582:105:132"
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_checkReserveNoLiquidity",
            "nameLocation": "15319:24:132",
            "parameters": {
              "id": 55170,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 55169,
                  "mutability": "mutable",
                  "name": "reserveId",
                  "nameLocation": "15352:9:132",
                  "nodeType": "VariableDeclaration",
                  "scope": 55208,
                  "src": "15344:17:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 55168,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "15344:7:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15343:19:132"
            },
            "returnParameters": {
              "id": 55171,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15377:0:132"
            },
            "scope": 55222,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 55221,
            "nodeType": "FunctionDefinition",
            "src": "15701:137:132",
            "nodes": [],
            "body": {
              "id": 55220,
              "nodeType": "Block",
              "src": "15765:73:132",
              "nodes": [],
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "id": 55215,
                            "name": "_addressProvider",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 53978,
                            "src": "15796:16:132",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IAddressProvider_$46447",
                              "typeString": "contract IAddressProvider"
                            }
                          },
                          "id": 55216,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "15813:14:132",
                          "memberName": "getLendingPool",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 46256,
                          "src": "15796:31:132",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                            "typeString": "function () view external returns (address)"
                          }
                        },
                        "id": 55217,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "15796:33:132",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 55214,
                      "name": "ILendingPool",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 48084,
                      "src": "15783:12:132",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_ILendingPool_$48084_$",
                        "typeString": "type(contract ILendingPool)"
                      }
                    },
                    "id": 55218,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15783:47:132",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "functionReturnParameters": 55213,
                  "id": 55219,
                  "nodeType": "Return",
                  "src": "15776:54:132"
                }
              ]
            },
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_getLendingPool",
            "nameLocation": "15710:15:132",
            "parameters": {
              "id": 55209,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15725:2:132"
            },
            "returnParameters": {
              "id": 55213,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 55212,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 55221,
                  "src": "15751:12:132",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ILendingPool_$48084",
                    "typeString": "contract ILendingPool"
                  },
                  "typeName": {
                    "id": 55211,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 55210,
                      "name": "ILendingPool",
                      "nameLocations": [
                        "15751:12:132"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 48084,
                      "src": "15751:12:132"
                    },
                    "referencedDeclaration": 48084,
                    "src": "15751:12:132",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ILendingPool_$48084",
                      "typeString": "contract ILendingPool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15750:14:132"
            },
            "scope": 55222,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 53963,
              "name": "Initializable",
              "nameLocations": [
                "1646:13:132"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 26136,
              "src": "1646:13:132"
            },
            "id": 53964,
            "nodeType": "InheritanceSpecifier",
            "src": "1646:13:132"
          },
          {
            "baseName": {
              "id": 53965,
              "name": "IConfigurator",
              "nameLocations": [
                "1661:13:132"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 47089,
              "src": "1661:13:132"
            },
            "id": 53966,
            "nodeType": "InheritanceSpecifier",
            "src": "1661:13:132"
          },
          {
            "baseName": {
              "id": 53967,
              "name": "ContextUpgradeable",
              "nameLocations": [
                "1676:18:132"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 28988,
              "src": "1676:18:132"
            },
            "id": 53968,
            "nodeType": "InheritanceSpecifier",
            "src": "1676:18:132"
          }
        ],
        "canonicalName": "Configurator",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 53962,
          "nodeType": "StructuredDocumentation",
          "src": "1463:158:132",
          "text": "@title Configuration contract for the FluidNFT protocol.\n @author FluidNFT\n @dev Implements the confiurations mehtods for the FluidNFT protocol."
        },
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          55222,
          28988,
          47089,
          26136
        ],
        "name": "Configurator",
        "nameLocation": "1630:12:132",
        "scope": 55223,
        "usedErrors": []
      }
    ],
    "license": "AGPL-3.0"
  },
  "id": 132
}

Last updated