aave-protocol-v2/types/LendingPoolFactory.ts

1366 lines
71 KiB
TypeScript

/* Generated by ts-generator ver. 0.0.8 */
/* tslint:disable */
import { Contract, ContractFactory, Signer } from "ethers";
import { Provider } from "ethers/providers";
import { UnsignedTransaction } from "ethers/utils/transaction";
import { TransactionOverrides } from ".";
import { LendingPool } from "./LendingPool";
export class LendingPoolFactory extends ContractFactory {
constructor(
linkLibraryAddresses: LendingPoolLibraryAddresses,
signer?: Signer
) {
super(_abi, LendingPoolFactory.linkBytecode(linkLibraryAddresses), signer);
}
static linkBytecode(
linkLibraryAddresses: LendingPoolLibraryAddresses
): string {
let linkedBytecode = _bytecode;
linkedBytecode = linkedBytecode.replace(
new RegExp("__\\$5e6137a1b5a0a366e2874209b5abf71c10\\$__", "g"),
linkLibraryAddresses["__$5e6137a1b5a0a366e2874209b5abf71c10$__"]
.replace(/^0x/, "")
.toLowerCase()
);
linkedBytecode = linkedBytecode.replace(
new RegExp("__\\$69254465eb8f179ea24caa73cf68b23524\\$__", "g"),
linkLibraryAddresses["__$69254465eb8f179ea24caa73cf68b23524$__"]
.replace(/^0x/, "")
.toLowerCase()
);
linkedBytecode = linkedBytecode.replace(
new RegExp("__\\$7347ff53b2b46c21e26a37164ae7f6739f\\$__", "g"),
linkLibraryAddresses["__$7347ff53b2b46c21e26a37164ae7f6739f$__"]
.replace(/^0x/, "")
.toLowerCase()
);
return linkedBytecode;
}
deploy(overrides?: TransactionOverrides): Promise<LendingPool> {
return super.deploy(overrides) as Promise<LendingPool>;
}
getDeployTransaction(overrides?: TransactionOverrides): UnsignedTransaction {
return super.getDeployTransaction(overrides);
}
attach(address: string): LendingPool {
return super.attach(address) as LendingPool;
}
connect(signer: Signer): LendingPoolFactory {
return super.connect(signer) as LendingPoolFactory;
}
static connect(
address: string,
signerOrProvider: Signer | Provider
): LendingPool {
return new Contract(address, _abi, signerOrProvider) as LendingPool;
}
}
const _abi = [
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_user",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "_amount",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_borrowRateMode",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_borrowRate",
type: "uint256"
},
{
indexed: true,
internalType: "uint16",
name: "_referral",
type: "uint16"
},
{
indexed: false,
internalType: "uint256",
name: "_timestamp",
type: "uint256"
}
],
name: "Borrow",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_user",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "_amount",
type: "uint256"
},
{
indexed: true,
internalType: "uint16",
name: "_referral",
type: "uint16"
},
{
indexed: false,
internalType: "uint256",
name: "_timestamp",
type: "uint256"
}
],
name: "Deposit",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_target",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "_amount",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_totalFee",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_protocolFee",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_timestamp",
type: "uint256"
}
],
name: "FlashLoan",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_collateral",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_user",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "_purchaseAmount",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_liquidatedCollateralAmount",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_accruedBorrowInterest",
type: "uint256"
},
{
indexed: false,
internalType: "address",
name: "_liquidator",
type: "address"
},
{
indexed: false,
internalType: "bool",
name: "_receiveAToken",
type: "bool"
},
{
indexed: false,
internalType: "uint256",
name: "_timestamp",
type: "uint256"
}
],
name: "LiquidationCall",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_collateral",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_user",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "_feeLiquidated",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_liquidatedCollateralForFee",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_timestamp",
type: "uint256"
}
],
name: "OriginationFeeLiquidated",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_user",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "_timestamp",
type: "uint256"
}
],
name: "RebalanceStableBorrowRate",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_user",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "_amount",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_timestamp",
type: "uint256"
}
],
name: "RedeemUnderlying",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_user",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_repayer",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "_amount",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_timestamp",
type: "uint256"
}
],
name: "Repay",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_user",
type: "address"
}
],
name: "ReserveUsedAsCollateralDisabled",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_user",
type: "address"
}
],
name: "ReserveUsedAsCollateralEnabled",
type: "event"
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "_reserve",
type: "address"
},
{
indexed: true,
internalType: "address",
name: "_user",
type: "address"
},
{
indexed: false,
internalType: "uint256",
name: "_timestamp",
type: "uint256"
}
],
name: "Swap",
type: "event"
},
{
inputs: [],
name: "LENDINGPOOL_REVISION",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "UINT_MAX_VALUE",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "addressesProvider",
outputs: [
{
internalType: "contract LendingPoolAddressesProvider",
name: "",
type: "address"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "address",
name: "_user",
type: "address"
},
{
internalType: "uint256",
name: "_amount",
type: "uint256"
}
],
name: "balanceDecreaseAllowed",
outputs: [
{
internalType: "bool",
name: "",
type: "bool"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_amount",
type: "uint256"
},
{
internalType: "uint256",
name: "_interestRateMode",
type: "uint256"
},
{
internalType: "uint16",
name: "_referralCode",
type: "uint16"
}
],
name: "borrow",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_amount",
type: "uint256"
},
{
internalType: "uint16",
name: "_referralCode",
type: "uint16"
}
],
name: "deposit",
outputs: [],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
}
],
name: "disableReserveAsCollateral",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_baseLTVasCollateral",
type: "uint256"
},
{
internalType: "uint256",
name: "_liquidationThreshold",
type: "uint256"
},
{
internalType: "uint256",
name: "_liquidationBonus",
type: "uint256"
}
],
name: "enableReserveAsCollateral",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_receiver",
type: "address"
},
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_amount",
type: "uint256"
},
{
internalType: "bytes",
name: "_params",
type: "bytes"
}
],
name: "flashLoan",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
}
],
name: "getReserveConfigurationData",
outputs: [
{
internalType: "uint256",
name: "decimals",
type: "uint256"
},
{
internalType: "uint256",
name: "ltv",
type: "uint256"
},
{
internalType: "uint256",
name: "liquidationThreshold",
type: "uint256"
},
{
internalType: "uint256",
name: "liquidationBonus",
type: "uint256"
},
{
internalType: "address",
name: "interestRateStrategyAddress",
type: "address"
},
{
internalType: "bool",
name: "usageAsCollateralEnabled",
type: "bool"
},
{
internalType: "bool",
name: "borrowingEnabled",
type: "bool"
},
{
internalType: "bool",
name: "stableBorrowRateEnabled",
type: "bool"
},
{
internalType: "bool",
name: "isActive",
type: "bool"
},
{
internalType: "bool",
name: "isFreezed",
type: "bool"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
}
],
name: "getReserveData",
outputs: [
{
internalType: "uint256",
name: "availableLiquidity",
type: "uint256"
},
{
internalType: "uint256",
name: "totalBorrowsStable",
type: "uint256"
},
{
internalType: "uint256",
name: "totalBorrowsVariable",
type: "uint256"
},
{
internalType: "uint256",
name: "liquidityRate",
type: "uint256"
},
{
internalType: "uint256",
name: "variableBorrowRate",
type: "uint256"
},
{
internalType: "uint256",
name: "stableBorrowRate",
type: "uint256"
},
{
internalType: "uint256",
name: "averageStableBorrowRate",
type: "uint256"
},
{
internalType: "uint256",
name: "liquidityIndex",
type: "uint256"
},
{
internalType: "uint256",
name: "variableBorrowIndex",
type: "uint256"
},
{
internalType: "uint40",
name: "lastUpdateTimestamp",
type: "uint40"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
}
],
name: "getReserveNormalizedIncome",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
}
],
name: "getReserveNormalizedVariableDebt",
outputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
}
],
name: "getReserveTokensAddresses",
outputs: [
{
internalType: "address",
name: "aTokenAddress",
type: "address"
},
{
internalType: "address",
name: "stableDebtTokenAddress",
type: "address"
},
{
internalType: "address",
name: "variableDebtTokenAddress",
type: "address"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [],
name: "getReserves",
outputs: [
{
internalType: "address[]",
name: "",
type: "address[]"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_user",
type: "address"
}
],
name: "getUserAccountData",
outputs: [
{
internalType: "uint256",
name: "totalCollateralETH",
type: "uint256"
},
{
internalType: "uint256",
name: "totalBorrowsETH",
type: "uint256"
},
{
internalType: "uint256",
name: "totalFeesETH",
type: "uint256"
},
{
internalType: "uint256",
name: "availableBorrowsETH",
type: "uint256"
},
{
internalType: "uint256",
name: "currentLiquidationThreshold",
type: "uint256"
},
{
internalType: "uint256",
name: "ltv",
type: "uint256"
},
{
internalType: "uint256",
name: "healthFactor",
type: "uint256"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "address",
name: "_user",
type: "address"
}
],
name: "getUserReserveData",
outputs: [
{
internalType: "uint256",
name: "currentATokenBalance",
type: "uint256"
},
{
internalType: "uint256",
name: "currentStableDebt",
type: "uint256"
},
{
internalType: "uint256",
name: "currentVariableDebt",
type: "uint256"
},
{
internalType: "uint256",
name: "principalStableDebt",
type: "uint256"
},
{
internalType: "uint256",
name: "principalVariableDebt",
type: "uint256"
},
{
internalType: "uint256",
name: "stableBorrowRate",
type: "uint256"
},
{
internalType: "uint256",
name: "liquidityRate",
type: "uint256"
},
{
internalType: "uint256",
name: "variableBorrowIndex",
type: "uint256"
},
{
internalType: "uint40",
name: "stableRateLastUpdated",
type: "uint40"
},
{
internalType: "bool",
name: "usageAsCollateralEnabled",
type: "bool"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "address",
name: "_aTokenAddress",
type: "address"
},
{
internalType: "address",
name: "_stableDebtAddress",
type: "address"
},
{
internalType: "address",
name: "_variableDebtAddress",
type: "address"
},
{
internalType: "uint256",
name: "_decimals",
type: "uint256"
},
{
internalType: "address",
name: "_interestRateStrategyAddress",
type: "address"
}
],
name: "initReserve",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "contract LendingPoolAddressesProvider",
name: "_addressesProvider",
type: "address"
}
],
name: "initialize",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_collateral",
type: "address"
},
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "address",
name: "_user",
type: "address"
},
{
internalType: "uint256",
name: "_purchaseAmount",
type: "uint256"
},
{
internalType: "bool",
name: "_receiveAToken",
type: "bool"
}
],
name: "liquidationCall",
outputs: [],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "address",
name: "_user",
type: "address"
}
],
name: "rebalanceStableBorrowRate",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "address payable",
name: "_user",
type: "address"
},
{
internalType: "uint256",
name: "_amount",
type: "uint256"
},
{
internalType: "uint256",
name: "_aTokenBalanceAfterRedeem",
type: "uint256"
}
],
name: "redeemUnderlying",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_amount",
type: "uint256"
},
{
internalType: "uint256",
name: "_rateMode",
type: "uint256"
},
{
internalType: "address payable",
name: "_onBehalfOf",
type: "address"
}
],
name: "repay",
outputs: [],
stateMutability: "payable",
type: "function"
},
{
inputs: [
{
internalType: "uint256",
name: "",
type: "uint256"
}
],
name: "reservesList",
outputs: [
{
internalType: "address",
name: "",
type: "address"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "bool",
name: "_active",
type: "bool"
}
],
name: "setReserveActive",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_ltv",
type: "uint256"
}
],
name: "setReserveBaseLTVasCollateral",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "bool",
name: "_borrowingEnabled",
type: "bool"
},
{
internalType: "bool",
name: "_stableBorrowRateEnabled",
type: "bool"
}
],
name: "setReserveBorrowingEnabled",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_decimals",
type: "uint256"
}
],
name: "setReserveDecimals",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "bool",
name: "_isFreezed",
type: "bool"
}
],
name: "setReserveFreeze",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "address",
name: "_rateStrategyAddress",
type: "address"
}
],
name: "setReserveInterestRateStrategyAddress",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_bonus",
type: "uint256"
}
],
name: "setReserveLiquidationBonus",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_threshold",
type: "uint256"
}
],
name: "setReserveLiquidationThreshold",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "bool",
name: "_enabled",
type: "bool"
}
],
name: "setReserveStableBorrowRateEnabled",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "bool",
name: "_useAsCollateral",
type: "bool"
}
],
name: "setUserUseReserveAsCollateral",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "uint256",
name: "_rateMode",
type: "uint256"
}
],
name: "swapBorrowRateMode",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
stateMutability: "payable",
type: "receive"
}
];
const _bytecode =
"0x6080604052600060015534801561001557600080fd5b50600160005561594d806200002b6000396000f3fe6080604052600436106102075760003560e01c806376e9d61511610118578063c72c4d10116100a0578063d15e00531161006f578063d15e005314610b31578063d2493b6c14610b64578063d2d0e06614610bc2578063d466016f14610bf8578063e8ae2f5b14610c315761024d565b8063c72c4d1014610a83578063c858f5f914610a98578063cd11238214610ae1578063d0fc81d214610b1c5761024d565b80639895e3d8116100e75780639895e3d81461091c578063a5bc826c14610965578063b736aaeb146109aa578063bf92857c146109e5578063c4d66de814610a505761024d565b806376e9d6151461083c5780638afaff021461089357806394ba89a2146108a857806396e957c4146108e15761024d565b80633e1501411161019b5780635cffe9de1161016a5780635cffe9de1461067957806366bbd9281461074c5780636ee365f91461078557806370fb84f4146107c857806373b2f2f2146108015761024d565b80633e1501411461052b5780634fe7a6e5146105be578063573ade81146106045780635a3b74b91461063e5761024d565b806328dd2d01116101d757806328dd2d011461038f5780633443a14b1461042357806335ea6a751461045c578063386497fd146104e65761024d565b8062a718a9146102525780630902f1ac1461029657806309eab60f146102fb5780631d2118f9146103545761024d565b3661024d5761021533610c64565b61024b576040805162461bcd60e51b8152602060048201526002602482015261191960f11b604482015290519081900360640190fd5b005b600080fd5b61024b600480360360a081101561026857600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610ca0565b3480156102a257600080fd5b506102ab611067565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102e75781810151838201526020016102cf565b505050509050019250505060405180910390f35b34801561030757600080fd5b5061024b600480360360c081101561031e57600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160808201359160a00135166110c9565b34801561036057600080fd5b5061024b6004803603604081101561037757600080fd5b506001600160a01b038135811691602001351661122f565b34801561039b57600080fd5b506103ca600480360360408110156103b257600080fd5b506001600160a01b0381358116916020013516611310565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015264ffffffffff16610100840152151561012083015251908190036101400190f35b34801561042f57600080fd5b5061024b6004803603604081101561044657600080fd5b506001600160a01b038135169060200135611637565b34801561046857600080fd5b5061048f6004803603602081101561047f57600080fd5b50356001600160a01b0316611706565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015264ffffffffff1661012083015251908190036101400190f35b3480156104f257600080fd5b506105196004803603602081101561050957600080fd5b50356001600160a01b03166119f2565b60408051918252519081900360200190f35b34801561053757600080fd5b5061055e6004803603602081101561054e57600080fd5b50356001600160a01b0316611a19565b604080519a8b5260208b01999099528989019790975260608901959095526001600160a01b03909316608088015290151560a0870152151560c0860152151560e08501521515610100840152151561012083015251908190036101400190f35b3480156105ca57600080fd5b506105e8600480360360208110156105e157600080fd5b5035611a8c565b604080516001600160a01b039092168252519081900360200190f35b61024b6004803603608081101561061a57600080fd5b506001600160a01b0381358116916020810135916040820135916060013516611ab3565b34801561064a57600080fd5b5061024b6004803603604081101561066157600080fd5b506001600160a01b0381351690602001351515611e8a565b34801561068557600080fd5b5061024b6004803603608081101561069c57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156106d757600080fd5b8201836020820111156106e957600080fd5b8035906020019184600183028401116401000000008311171561070b57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506120f0945050505050565b34801561075857600080fd5b5061024b6004803603604081101561076f57600080fd5b506001600160a01b038135169060200135612599565b34801561079157600080fd5b5061024b600480360360608110156107a857600080fd5b506001600160a01b03813516906020810135151590604001351515612668565b3480156107d457600080fd5b5061024b600480360360408110156107eb57600080fd5b506001600160a01b03813516906020013561282d565b34801561080d57600080fd5b5061024b6004803603604081101561082457600080fd5b506001600160a01b03813516906020013515156128fc565b34801561084857600080fd5b5061087f6004803603606081101561085f57600080fd5b506001600160a01b038135811691602081013590911690604001356129e4565b604080519115158252519081900360200190f35b34801561089f57600080fd5b50610519612b74565b3480156108b457600080fd5b5061024b600480360360408110156108cb57600080fd5b506001600160a01b038135169060200135612b79565b3480156108ed57600080fd5b5061024b6004803603604081101561090457600080fd5b506001600160a01b0381351690602001351515612eee565b34801561092857600080fd5b5061024b6004803603608081101561093f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612fd6565b34801561097157600080fd5b5061024b6004803603608081101561098857600080fd5b506001600160a01b038135169060208101359060408101359060600135613172565b3480156109b657600080fd5b5061024b600480360360408110156109cd57600080fd5b506001600160a01b03813516906020013515156132bb565b3480156109f157600080fd5b50610a1860048036036020811015610a0857600080fd5b50356001600160a01b0316613405565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b348015610a5c57600080fd5b5061024b60048036036020811015610a7357600080fd5b50356001600160a01b0316613666565b348015610a8f57600080fd5b506105e86137ab565b348015610aa457600080fd5b5061024b60048036036080811015610abb57600080fd5b5080356001600160a01b0316906020810135906040810135906060013561ffff166137ba565b348015610aed57600080fd5b5061024b60048036036040811015610b0457600080fd5b506001600160a01b0381358116916020013516613d3f565b348015610b2857600080fd5b506105196140d5565b348015610b3d57600080fd5b5061051960048036036020811015610b5457600080fd5b50356001600160a01b03166140db565b348015610b7057600080fd5b50610b9760048036036020811015610b8757600080fd5b50356001600160a01b03166140fc565b604080516001600160a01b039485168152928416602084015292168183015290519081900360600190f35b61024b60048036036060811015610bd857600080fd5b5080356001600160a01b0316906020810135906040013561ffff16614131565b348015610c0457600080fd5b5061024b60048036036040811015610c1b57600080fd5b506001600160a01b0381351690602001356143a0565b348015610c3d57600080fd5b5061024b60048036036020811015610c5457600080fd5b50356001600160a01b031661446f565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610c9857508115155b949350505050565b60026000541415610ce6576040805162461bcd60e51b815260206004820152601f602482015260008051602061572a833981519152604482015290519081900360640190fd5b6002600090815560355460408051632c1a75cd60e11b815290516001600160a01b0390921691635834eb9a91600480820192602092909190829003018186803b158015610d3257600080fd5b505afa158015610d46573d6000803e3d6000fd5b505050506040513d6020811015610d5c57600080fd5b5051604080516001600160a01b038981166024830152888116604483015287811660648301526084820187905285151560a4808401919091528351808403909101815260c490920183526020820180516001600160e01b031662a718a960e01b17815292518251949550600094606094928716939282918083835b60208310610df65780518252601f199092019160209182019101610dd7565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610e56576040519150601f19603f3d011682016040523d82523d6000602084013e610e5b565b606091505b509150915081610e97576040805162461bcd60e51b81526020600482015260026024820152610c8d60f21b604482015290519081900360640190fd5b60006060828060200190516040811015610eb057600080fd5b815160208301805160405192949293830192919084640100000000821115610ed757600080fd5b908301906020820185811115610eec57600080fd5b8251640100000000811182820188101715610f0657600080fd5b82525081516020918201929091019080838360005b83811015610f33578181015183820152602001610f1b565b50505050905090810190601f168015610f605780820380516001836020036101000a031916815260200191505b50604052505050915091508160001461105657806040516020018082805190602001908083835b60208310610fa65780518252601f199092019160209182019101610f87565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f190183529384905262461bcd60e51b84526004840181815282516024860152825192965094508493604401925085019080838360005b8381101561101b578181015183820152602001611003565b50505050905090810190601f1680156110485780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505060016000555050505050505050565b606060398054806020026020016040519081016040528092919081815260200182805480156110bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110a1575b5050505050905090565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561110d57600080fd5b505afa158015611121573d6000803e3d6000fd5b505050506040513d602081101561113757600080fd5b50516001600160a01b031614611179576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03808716600090815260376020526040808220815162cdced360e61b815260048101919091528884166024820152878416604482015286841660648201526084810186905292841660a48401525173__$5e6137a1b5a0a366e2874209b5abf71c10$__92633373b4c09260c4808301939192829003018186803b15801561120657600080fd5b505af415801561121a573d6000803e3d6000fd5b50505050611227866145a0565b505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561127357600080fd5b505afa158015611287573d6000803e3d6000fd5b505050506040513d602081101561129d57600080fd5b50516001600160a01b0316146112df576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039182166000908152603760205260409020600c0180546001600160a01b03191691909216179055565b6001600160a01b038083166000908152603760209081526040808320600981015482516370a0823160e01b815287871660048201529251949586958695869586958695869586958695869593909216926370a08231926024808301939192829003018186803b15801561138257600080fd5b505afa158015611396573d6000803e3d6000fd5b505050506040513d60208110156113ac57600080fd5b50519a506113ba8c82614643565b909a5098506113c98c82614746565b80985081995050508060010154945080600a0160009054906101000a90046001600160a01b03166001600160a01b031663e78c9b3b8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561144557600080fd5b505afa158015611459573d6000803e3d6000fd5b505050506040513d602081101561146f57600080fd5b8101908080519060200190929190505050955080600a0160009054906101000a90046001600160a01b03166001600160a01b03166379ce6b8c8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156114ef57600080fd5b505afa158015611503573d6000803e3d6000fd5b505050506040513d602081101561151957600080fd5b81019080805190602001909291905050509250603860008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060000160009054906101000a900460ff16915080600b0160009054906101000a90046001600160a01b03166001600160a01b031663ee9907a48d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156115f457600080fd5b505afa158015611608573d6000803e3d6000fd5b505050506040513d602081101561161e57600080fd5b50519a9d999c50979a5095989497939650919491929050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561167b57600080fd5b505afa15801561168f573d6000803e3d6000fd5b505050506040513d60208110156116a557600080fd5b50516001600160a01b0316146116e7576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060060155565b60008060008060008060008060008061171d615636565b506001600160a01b03808c16600081815260376020908152604091829020825161026081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201548416610120820152600a8201548416610140820152600b8201548416610160820152600c9091015492831661018082015264ffffffffff600160a01b8404166101a082015260ff600160c81b8404811615156101c0830152600160d01b8404811615156101e0830152600160d81b840481161515610200830152600160e01b840481161515610220830152600160e81b9093049092161515610240830152611850903063ffffffff61481216565b8161014001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561188e57600080fd5b505afa1580156118a2573d6000803e3d6000fd5b505050506040513d60208110156118b857600080fd5b5051610160830151604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561190257600080fd5b505afa158015611916573d6000803e3d6000fd5b505050506040513d602081101561192c57600080fd5b50516020848101516040808701516060880151610140890151835163487b7e7960e11b815293519495929491936001600160a01b03909116926390f6fcf292600480840193829003018186803b15801561198557600080fd5b505afa158015611999573d6000803e3d6000fd5b505050506040513d60208110156119af57600080fd5b810190808051906020019092919050505087600001518860800151896101a001519a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6001600160a01b0381166000908152603760205260408120611a13906148bc565b92915050565b6001600160a01b0390811660009081526037602052604090206008810154600582015460068301546007840154600c90940154929591949093929081169160ff600160d01b8304811692600160c81b8104821692600160d81b8204831692600160e01b8304811692600160e81b90041690565b60398181548110611a9957fe5b6000918252602090912001546001600160a01b0316905081565b60026000541415611af9576040805162461bcd60e51b815260206004820152601f602482015260008051602061572a833981519152604482015290519081900360640190fd5b6002600055611b066156d2565b6001600160a01b03808616600081815260376020908152604080832094871683526038825280832093835292905220611b3f8483614643565b602085015283526000856002811115611b5457fe5b90506001816002811115611b6457fe5b14611b73578360200151611b76565b83515b60408501526000198714801590611b905750836040015187105b15611b9d57604084018790525b73__$69254465eb8f179ea24caa73cf68b23524$__63a95f25e8848a8a858a8a600001518b602001518c60400151346040518a63ffffffff1660e01b8152600401808a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876002811115611c0f57fe5b60ff168152602001866001600160a01b03166001600160a01b03168152602001858152602001848152602001838152602001828152602001995050505050505050505060006040518083038186803b158015611c6a57600080fd5b505af4158015611c7e573d6000803e3d6000fd5b50505050611c8b836148fd565b6001816002811115611c9957fe5b1415611d1757600a8301546040808601518151632770a7eb60e21b81526001600160a01b03898116600483015260248201929092529151921691639dc29fac9160448082019260009290919082900301818387803b158015611cfa57600080fd5b505af1158015611d0e573d6000803e3d6000fd5b50505050611d8b565b600b8301546040808601518151632770a7eb60e21b81526001600160a01b03898116600483015260248201929092529151921691639dc29fac9160448082019260009290919082900301818387803b158015611d7257600080fd5b505af1158015611d86573d6000803e3d6000fd5b505050505b6040840151611da59084908a90600063ffffffff6149b516565b6040840151611dc6906001600160a01b038a1690600063ffffffff614cc116565b611dd8886001600160a01b0316614de6565b15611e1a576000611df6856040015134614e0b90919063ffffffff16565b90508015611e1857611e186001600160a01b038a16338363ffffffff614e4d16565b505b336001600160a01b0316856001600160a01b0316896001600160a01b03167f81cfb79463601de705d4cf6b8d69112983d76a685120e5e4d3581f30871b87fc876040015142604051808381526020018281526020019250505060405180910390a450506001600055505050505050565b60026000541415611ed0576040805162461bcd60e51b815260206004820152601f602482015260008051602061572a833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038084168083526037602081815260408086203387526038808452828820958852948352958190206035548251631f94a27560e31b81529251919673__$69254465eb8f179ea24caa73cf68b23524$__9663e1717580968a968d9691959294603994169263fca513a8926004808201939291829003018186803b158015611f6457600080fd5b505afa158015611f78573d6000803e3d6000fd5b505050506040513d6020811015611f8e57600080fd5b50516040516001600160e01b031960e089901b168152600481018781526001600160a01b0380881660248401526044830187905260648301869052831660a483015260c060848301908152845460c484018190529192909160e4909101908590801561202357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612005575b505097505050505050505060006040518083038186803b15801561204657600080fd5b505af415801561205a573d6000803e3d6000fd5b5050825460ff19168515801591909117845591506120ae90505760405133906001600160a01b038616907e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f290600090a36120e5565b60405133906001600160a01b038616907f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd90600090a35b505060016000555050565b60026000541415612136576040805162461bcd60e51b815260206004820152601f602482015260008051602061572a833981519152604482015290519081900360640190fd5b60026000556121436156fa565b6001600160a01b03841660008181526037602052604090209061216c903063ffffffff61481216565b825261219161271061218586600963ffffffff614ecf16565b9063ffffffff614f2816565b606083018190526121b2906127109061218590610bb863ffffffff614ecf16565b608083015281518411156121f75760405162461bcd60e51b815260040180806020018281038252603181526020018061574a6031913960400191505060405180910390fd5b6000826060015111801561220f575060008260800151115b61224a5760405162461bcd60e51b81526004018080602001828103825260328152602001806158bc6032913960400191505060405180910390fd5b85806122666001600160a01b038816828863ffffffff614e4d16565b816001600160a01b031663ee87255888888760600151896040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156122ed5781810151838201526020016122d5565b50505050905090810190601f16801561231a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561233c57600080fd5b505af1158015612350573d6000803e3d6000fd5b50600092506123719150506001600160a01b0389163063ffffffff61481216565b6060860151865191925061238b919063ffffffff614f6a16565b81146123c85760405162461bcd60e51b81526004018080602001828103825260328152602001806157df6032913960400191505060405180910390fd5b8373__$5e6137a1b5a0a366e2874209b5abf71c10$__638acb830b90918a88600001516124068a608001518b60600151614e0b90919063ffffffff16565b8a608001516040518663ffffffff1660e01b815260040180868152602001856001600160a01b03166001600160a01b031681526020018481526020018381526020018281526020019550505050505060006040518083038186803b15801561246d57600080fd5b505af4158015612481573d6000803e3d6000fd5b5050505061251e603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b1580156124d657600080fd5b505afa1580156124ea573d6000803e3d6000fd5b505050506040513d602081101561250057600080fd5b505160808701516001600160a01b038b16919063ffffffff614e4d16565b876001600160a01b0316896001600160a01b03167f5b8f46461c1dd69fb968f1a003acee221ea3e19540e350233b612ddb43433b558988606001518960800151426040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050600160005550505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156125dd57600080fd5b505afa1580156125f1573d6000803e3d6000fd5b505050506040513d602081101561260757600080fd5b50516001600160a01b031614612649576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060080155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156126ac57600080fd5b505afa1580156126c0573d6000803e3d6000fd5b505050506040513d60208110156126d657600080fd5b50516001600160a01b031614612718576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b81156127a9576001600160a01b03831660009081526037602052604080822081516361c7a28d60e11b815260048101919091528315156024820152905173__$5e6137a1b5a0a366e2874209b5abf71c10$__9263c38f451a9260448082019391829003018186803b15801561278c57600080fd5b505af41580156127a0573d6000803e3d6000fd5b50505050612828565b6001600160a01b0383166000908152603760205260408082208151633d47fb6d60e21b81526004810191909152905173__$5e6137a1b5a0a366e2874209b5abf71c10$__9263f51fedb49260248082019391829003018186803b15801561280f57600080fd5b505af4158015612823573d6000803e3d6000fd5b505050505b505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561287157600080fd5b505afa158015612885573d6000803e3d6000fd5b505050506040513d602081101561289b57600080fd5b50516001600160a01b0316146128dd576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060070155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561294057600080fd5b505afa158015612954573d6000803e3d6000fd5b505050506040513d602081101561296a57600080fd5b50516001600160a01b0316146129ac576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600c018054911515600160d81b0260ff60d81b19909216919091179055565b600073__$7347ff53b2b46c21e26a37164ae7f6739f$__63daae7055858585603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015612a5757600080fd5b505afa158015612a6b573d6000803e3d6000fd5b505050506040513d6020811015612a8157600080fd5b505160405160e089811b6001600160e01b03191682526001600160a01b0389811660048401908152898216602485015260448401899052606484018890526084840187905290841660c484015260a48301918252845460e484018190529092610104019085908015612b1c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612afe575b50509850505050505050505060206040518083038186803b158015612b4057600080fd5b505af4158015612b54573d6000803e3d6000fd5b505050506040513d6020811015612b6a57600080fd5b5051949350505050565b600281565b60026000541415612bbf576040805162461bcd60e51b815260206004820152601f602482015260008051602061572a833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0383168082526037602090815260408084203380865260388452828620948652939092528320909290918190612c039085614643565b915091506000856002811115612c1557fe5b905073__$69254465eb8f179ea24caa73cf68b23524$__639e29334186868686866040518663ffffffff1660e01b815260040180868152602001858152602001848152602001838152602001826002811115612c6d57fe5b60ff1681526020019550505050505060006040518083038186803b158015612c9457600080fd5b505af4158015612ca8573d6000803e3d6000fd5b50505050612cb5856148fd565b6001816002811115612cc357fe5b1415612da757600a85015460408051632770a7eb60e21b81523360048201526024810186905290516001600160a01b0390921691639dc29fac9160448082019260009290919082900301818387803b158015612d1e57600080fd5b505af1158015612d32573d6000803e3d6000fd5b505050600b860154604080516340c10f1960e01b81523360048201526024810187905290516001600160a01b0390921692506340c10f1991604480830192600092919082900301818387803b158015612d8a57600080fd5b505af1158015612d9e573d6000803e3d6000fd5b50505050612e8d565b600b85015460408051632770a7eb60e21b81523360048201526024810185905290516001600160a01b0390921691639dc29fac9160448082019260009290919082900301818387803b158015612dfc57600080fd5b505af1158015612e10573d6000803e3d6000fd5b505050600a860154600387015460408051630ab714fb60e11b8152336004820152602481018790526044810192909252516001600160a01b03909216925063156e29f691606480830192600092919082900301818387803b158015612e7457600080fd5b505af1158015612e88573d6000803e3d6000fd5b505050505b612ea0858860008063ffffffff6149b516565b60408051428152905133916001600160a01b038a16917fea368a40e9570069bb8e6511d668293ad2e1f03b0d982431fd223de9f3b70ca69181900360200190a3505060016000555050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612f3257600080fd5b505afa158015612f46573d6000803e3d6000fd5b505050506040513d6020811015612f5c57600080fd5b50516001600160a01b031614612f9e576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600c018054911515600160e81b0260ff60e81b19909216919091179055565b6002600054141561301c576040805162461bcd60e51b815260206004820152601f602482015260008051602061572a833981519152604482015290519081900360640190fd5b600260009081556001600160a01b03808616808352603760209081526040808520938816855260388252808520838652909152808420815163cf478a7960e01b81526004810185905260248101939093526044830187905290519293909273__$69254465eb8f179ea24caa73cf68b23524$__9263cf478a79926064808301939192829003018186803b1580156130b257600080fd5b505af41580156130c6573d6000803e3d6000fd5b5050505082600014156130dc57805460ff191681555b6130e5826148fd565b6130f8828760008763ffffffff6149b516565b6131126001600160a01b038716868663ffffffff614e4d16565b846001600160a01b0316866001600160a01b03167f9c4ed599cd8555b9c1e8cd7643240d7d71eb76b792948c49fcb4d411f7b6b3c68642604051808381526020018281526020019250505060405180910390a35050600160005550505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156131b657600080fd5b505afa1580156131ca573d6000803e3d6000fd5b505050506040513d60208110156131e057600080fd5b50516001600160a01b031614613222576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038416600090815260376020526040808220815163bde2ece760e01b81526004810191909152602481018690526044810185905260648101849052905173__$5e6137a1b5a0a366e2874209b5abf71c10$__9263bde2ece79260848082019391829003018186803b15801561329d57600080fd5b505af41580156132b1573d6000803e3d6000fd5b5050505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156132ff57600080fd5b505afa158015613313573d6000803e3d6000fd5b505050506040513d602081101561332957600080fd5b50516001600160a01b03161461336b576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03821660009081526037602052604090208161339c57600c8101805460ff60e01b19169055612828565b8054158015906133b0575060008160040154115b6133eb5760405162461bcd60e51b81526004018080602001828103825260248152602001806158116024913960400191505060405180910390fd5b600c8101805460ff60e01b1916600160e01b179055505050565b600080600080600080600073__$7347ff53b2b46c21e26a37164ae7f6739f$__6392eeb05c89603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561347f57600080fd5b505afa158015613493573d6000803e3d6000fd5b505050506040513d60208110156134a957600080fd5b50516040516001600160e01b031960e088901b1681526001600160a01b03808716600483019081526024830187905260448301869052908316608483015260a060648301908152845460a484018190529192909160c4909101908590801561353a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161351c575b5050965050505050505060c06040518083038186803b15801561355c57600080fd5b505af4158015613570573d6000803e3d6000fd5b505050506040513d60c081101561358657600080fd5b5080516020808301516040808501516060860151608087015160a090970151603654845163ab8bb39360e01b8152600481018990526024810187905260448101859052606481018490526001600160a01b0390911660848201529351969e50939c50909a50949750939550935073__$7347ff53b2b46c21e26a37164ae7f6739f$__9263ab8bb3939260a48083019392829003018186803b15801561362a57600080fd5b505af415801561363e573d6000803e3d6000fd5b505050506040513d602081101561365457600080fd5b50519698959750939594919390925090565b6000613670614fc4565b60025490915060ff16806136875750613687614fc9565b80613693575060015481115b6136ce5760405162461bcd60e51b815260040180806020018281038252602e81526020018061588e602e913960400191505060405180910390fd5b60025460ff161580156136ef576002805460ff191660019081179091558290555b603580546001600160a01b0319166001600160a01b03858116919091179182905560408051633efbbf0f60e21b81529051929091169163fbeefc3c91600480820192602092909190829003018186803b15801561374b57600080fd5b505afa15801561375f573d6000803e3d6000fd5b505050506040513d602081101561377557600080fd5b5051603680546001600160a01b0319166001600160a01b039092169190911790558015612828576002805460ff19169055505050565b6035546001600160a01b031681565b60026000541415613800576040805162461bcd60e51b815260206004820152601f602482015260008051602061572a833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038086168083526037602090815260408085203386526038835281862093865292825280852060088401546035548351631f94a27560e31b8152935195979296929561393295600a9390930a94612185948d9493169263fca513a892600480840193829003018186803b15801561388457600080fd5b505afa158015613898573d6000803e3d6000fd5b505050506040513d60208110156138ae57600080fd5b50516040805163b3596f0760e01b81526001600160a01b038e811660048301529151919092169163b3596f07916024808301926020929190829003018186803b1580156138fa57600080fd5b505afa15801561390e573d6000803e3d6000fd5b505050506040513d602081101561392457600080fd5b50519063ffffffff614ecf16565b905073__$69254465eb8f179ea24caa73cf68b23524$__63335c5e8984848a8a868b6019603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156139aa57600080fd5b505afa1580156139be573d6000803e3d6000fd5b505050506040513d60208110156139d457600080fd5b50516040516001600160e01b031960e08e901b168152600481018c8152602482018c90526001600160a01b03808c166044840152606483018b9052608483018a905260a4830189905260c4830188905260e4830187905261010483018690528316610144830152610160610124830190815284546101648401819052919290916101849091019085908015613a9257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a74575b50509c5050505050505050505050505060006040518083038186803b158015613aba57600080fd5b505af4158015613ace573d6000803e3d6000fd5b50505050613adb836148fd565b600c8301805464ffffffffff60a01b1916600160a01b4264ffffffffff160217905560038301546001866002811115613b1057fe5b6002811115613b1b57fe5b1415613c1557600a84015460408051630ab714fb60e11b8152336004820152602481018a90526044810184905290516001600160a01b039092169163156e29f69160648082019260009290919082900301818387803b158015613b7d57600080fd5b505af1158015613b91573d6000803e3d6000fd5b50505050600a84015460408051631e739ae360e21b815233600482015290516000926001600160a01b0316916379ce6b8c916024808301926020929190829003018186803b158015613be257600080fd5b505afa158015613bf6573d6000803e3d6000fd5b505050506040513d6020811015613c0c57600080fd5b50613c83915050565b600b840154604080516340c10f1960e01b8152336004820152602481018a905290516001600160a01b03909216916340c10f199160448082019260009290919082900301818387803b158015613c6a57600080fd5b505af1158015613c7e573d6000803e3d6000fd5b505050505b613c96848960008a63ffffffff6149b516565b613cb06001600160a01b038916338963ffffffff614e4d16565b61ffff8516336001600160a01b038a167fe002884724be85e729c98360169e709585b299ace6fbe12aa791d2fee6f652808a8a60018c6002811115613cf157fe5b6002811115613cfc57fe5b14613d0b578960020154613d0d565b865b60408051938452602084019290925282820152426060830152519081900360800190a450506001600055505050505050565b60026000541415613d85576040805162461bcd60e51b815260206004820152601f602482015260008051602061572a833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038084168252603760209081526040808420600a81015482516370a0823160e01b81528786166004820152925191959416939284926370a082319260248083019392829003018186803b158015613de957600080fd5b505afa158015613dfd573d6000803e3d6000fd5b505050506040513d6020811015613e1357600080fd5b5051905080613e535760405162461bcd60e51b81526004018080602001828103825260388152602001806158566038913960400191505060405180910390fd5b6000613e8c613e7b6aa56fa5b99019a5c8000000613e6f614fcf565b9063ffffffff614f6a16565b60038601549063ffffffff614fdf16565b90506000836001600160a01b031663e78c9b3b876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015613ee657600080fd5b505afa158015613efa573d6000803e3d6000fd5b505050506040513d6020811015613f1057600080fd5b50516001860154909150811080613f2657508181115b613f615760405162461bcd60e51b815260040180806020018281038252602f8152602001806157b0602f913960400191505060405180910390fd5b613f6a856148fd565b836001600160a01b0316639dc29fac87856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015613fca57600080fd5b505af1158015613fde573d6000803e3d6000fd5b50505050836001600160a01b031663156e29f6878588600301546040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561404e57600080fd5b505af1158015614062573d6000803e3d6000fd5b5061407c925087915089905060008063ffffffff6149b516565b856001600160a01b0316876001600160a01b03167f443060d15ff6dac05881a7c07a46ef8085d8af4399e436be6c25250df40c5f18426040518082815260200191505060405180910390a3505050505050506001600055565b60001981565b6001600160a01b0381166000908152603760205260408120611a1390615017565b6001600160a01b0390811660009081526037602052604090206009810154600a820154600b9092015490831693918316921690565b60026000541415614177576040805162461bcd60e51b815260206004820152601f602482015260008051602061572a833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0384168082526037602090815260408084203385526038835281852093855292909152808320815163b25dc48d60e01b8152600481018490526024810187905291519293909273__$69254465eb8f179ea24caa73cf68b23524$__9263b25dc48d926044808301939192829003018186803b15801561420357600080fd5b505af4158015614217573d6000803e3d6000fd5b5050506009830154604080516370a0823160e01b815233600482015290516001600160a01b03909216925060009183916370a08231916024808301926020929190829003018186803b15801561426c57600080fd5b505afa158015614280573d6000803e3d6000fd5b505050506040513d602081101561429657600080fd5b50511590506142a4846148fd565b6142b7848888600063ffffffff6149b516565b80156142c957825460ff191660011783555b604080516394362e8b60e01b81523360048201526024810188905290516001600160a01b038416916394362e8b91604480830192600092919082900301818387803b15801561431757600080fd5b505af115801561432b573d6000803e3d6000fd5b50614345925050506001600160a01b038816876001614cc1565b60408051878152426020820152815161ffff88169233926001600160a01b038c16927fc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c82929181900390910190a4505060016000555050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156143e457600080fd5b505afa1580156143f8573d6000803e3d6000fd5b505050506040513d602081101561440e57600080fd5b50516001600160a01b031614614450576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060050155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156144b357600080fd5b505afa1580156144c7573d6000803e3d6000fd5b505050506040513d60208110156144dd57600080fd5b50516001600160a01b03161461451f576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03811660009081526037602052604080822081516315fbf94960e11b81526004810191909152905173__$5e6137a1b5a0a366e2874209b5abf71c10$__92632bf7f2929260248082019391829003018186803b15801561458557600080fd5b505af4158015614599573d6000803e3d6000fd5b5050505050565b6000805b6039548110156145ed57826001600160a01b0316603982815481106145c557fe5b6000918252602090912001546001600160a01b031614156145e557600191505b6001016145a4565b508061463f57603980546001810182556000919091527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d30180546001600160a01b0319166001600160a01b0384161790555b5050565b600a810154604080516370a0823160e01b81526001600160a01b0385811660048301529151600093849316916370a08231916024808301926020929190829003018186803b15801561469457600080fd5b505afa1580156146a8573d6000803e3d6000fd5b505050506040513d60208110156146be57600080fd5b5051600b840154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561470f57600080fd5b505afa158015614723573d6000803e3d6000fd5b505050506040513d602081101561473957600080fd5b5051909590945092505050565b600a8101546040805163631a6fd560e11b81526001600160a01b03858116600483015291516000938493169163c634dfaa916024808301926020929190829003018186803b15801561479757600080fd5b505afa1580156147ab573d6000803e3d6000fd5b505050506040513d60208110156147c157600080fd5b5051600b8401546040805163631a6fd560e11b81526001600160a01b0388811660048301529151919092169163c634dfaa916024808301926020929190829003018186803b15801561470f57600080fd5b600061481d83614de6565b1561483357506001600160a01b03811631611a13565b826001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561488957600080fd5b505afa15801561489d573d6000803e3d6000fd5b505050506040513d60208110156148b357600080fd5b50519392505050565b6000806148f683600401546148ea856002015486600c0160149054906101000a900464ffffffffff16615045565b9063ffffffff614fdf16565b9392505050565b6000614908826150aa565b90508015614991576001820154600c83015460009161493491600160a01b900464ffffffffff166151aa565b835490915061494a90829063ffffffff614fdf16565b83556002830154600c84015460009161497091600160a01b900464ffffffffff16615045565b9050614989846004015482614fdf90919063ffffffff16565b600485015550505b50600c01805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055565b600a8401546040805163487b7e7960e11b815290516000926001600160a01b0316916390f6fcf2916004808301926020929190829003018186803b1580156149fc57600080fd5b505afa158015614a10573d6000803e3d6000fd5b505050506040513d6020811015614a2657600080fd5b505190506000614a456001600160a01b0386163063ffffffff61481216565b9050614a59856001600160a01b0316614de6565b15614a7157614a6e813463ffffffff614e0b16565b90505b600c860154600090819081906001600160a01b03166357e37af089614aac89614aa0898d63ffffffff614f6a16565b9063ffffffff614e0b16565b8c600a0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015614afc57600080fd5b505afa158015614b10573d6000803e3d6000fd5b505050506040513d6020811015614b2657600080fd5b5051600b8e0154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b158015614b6f57600080fd5b505afa158015614b83573d6000803e3d6000fd5b505050506040513d6020811015614b9957600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b039095166004860152602485019390935260448401919091526064830152608482018990525160a4808301926060929190829003018186803b158015614bfc57600080fd5b505afa158015614c10573d6000803e3d6000fd5b505050506040513d6060811015614c2657600080fd5b50805160208083015160409384015160018e0184905560038e0182905560028e018190558d5460048f015486518681529485018490528487018c905260608501839052608085019190915260a0840152935192965094509192506001600160a01b038a16917f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a4919081900360c00190a2505050505050505050565b81614ccb57612828565b614cd483614de6565b15614dcb5781341015614d185760405162461bcd60e51b815260040180806020018281038252603581526020018061577b6035913960400191505060405180910390fd5b8015614dc657600033614d31348563ffffffff614e0b16565b60405161c35091906000818181858888f193505050503d8060008114614d73576040519150601f19603f3d011682016040523d82523d6000602084013e614d78565b606091505b5050905080614dc4576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b505b612828565b6128286001600160a01b03841633308563ffffffff61520a16565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14919050565b60006148f683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061526a565b80614e5757612828565b614e6083614de6565b15614eb5576040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114614d73576040519150601f19603f3d011682016040523d82523d6000602084013e614d78565b6128286001600160a01b038416838363ffffffff6152c416565b600082614ede57506000611a13565b82820282848281614eeb57fe5b04146148f65760405162461bcd60e51b81526004018080602001828103825260218152602001806158356021913960400191505060405180910390fd5b60006148f683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615316565b6000828201838110156148f6576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600290565b303b1590565b6b033b2e3c9fd0803ce800000090565b60006148f66b033b2e3c9fd0803ce8000000612185615004868663ffffffff614ecf16565b6b019d971e4fe8401e7400000090614f6a565b6000806148f683600001546148ea856001015486600c0160149054906101000a900464ffffffffff166151aa565b60008061505f4264ffffffffff851663ffffffff614e0b16565b90506000615077856301e1338063ffffffff614f2816565b90506150a182615095615088614fcf565b849063ffffffff614f6a16565b9063ffffffff61537b16565b95945050505050565b6000611a1382600b0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156150ff57600080fd5b505afa158015615113573d6000803e3d6000fd5b505050506040513d602081101561512957600080fd5b5051600a840154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561517257600080fd5b505afa158015615186573d6000803e3d6000fd5b505050506040513d602081101561519c57600080fd5b50519063ffffffff614f6a16565b6000806151c44264ffffffffff851663ffffffff614e0b16565b905060006151ed6151d86301e133806153d5565b6151e1846153d5565b9063ffffffff6153eb16565b90506150a16151fa614fcf565b613e6f878463ffffffff614fdf16565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261526490859061540e565b50505050565b600081848411156152bc5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561101b578181015183820152602001611003565b505050900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261282890849061540e565b600081836153655760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561101b578181015183820152602001611003565b50600083858161537157fe5b0495945050505050565b600060028206615397576b033b2e3c9fd0803ce8000000615399565b825b90506002820491505b8115611a13576153b28384614fdf565b925060028206156153ca576153c78184614fdf565b90505b6002820491506153a2565b6000611a1382633b9aca0063ffffffff614ecf16565b600060028204610c9883612185615088876b033b2e3c9fd0803ce8000000614ecf565b6060615463826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166154bf9092919063ffffffff16565b8051909150156128285780806020019051602081101561548257600080fd5b50516128285760405162461bcd60e51b815260040180806020018281038252602a8152602001806158ee602a913960400191505060405180910390fd5b6060610c98848460008560606154d485610c64565b615525576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106155645780518252601f199092019160209182019101615545565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146155c6576040519150601f19603f3d011682016040523d82523d6000602084013e6155cb565b606091505b509150915081156155df579150610c989050565b8051156155ef5780518082602001fd5b60405162461bcd60e51b815260206004820181815286516024840152865187939192839260440191908501908083836000831561101b578181015183820152602001611003565b6040805161026081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101829052610220810182905261024081019190915290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c005468657265206973206e6f7420656e6f756768206c697175696469747920617661696c61626c6520746f20626f72726f7754686520616d6f756e7420616e64207468652076616c75652073656e7420746f206465706f73697420646f206e6f74206d61746368496e746572657374207261746520726562616c616e636520636f6e646974696f6e732077657265206e6f74206d65745468652061637475616c2062616c616e6365206f66207468652070726f746f636f6c20697320696e636f6e73697374656e745265736572766520686173206e6f74206265656e20696e697469616c697a656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775573657220646f6573206e6f74206861766520616e7920737461626c652072617465206c6f616e20666f7220746869732072657365727665436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645468652072657175657374656420616d6f756e7420697320746f6f20736d616c6c20666f72206120466c6173684c6f616e2e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212204cea45974b33a7cc69c528e62bdc01e5a50a9e3f0af4f91e31affd5473786af764736f6c63430006080033";
export interface LendingPoolLibraryAddresses {
["__$5e6137a1b5a0a366e2874209b5abf71c10$__"]: string;
["__$69254465eb8f179ea24caa73cf68b23524$__"]: string;
["__$7347ff53b2b46c21e26a37164ae7f6739f$__"]: string;
}