aave-protocol-v2/types/LendingPoolFactory.ts
2020-07-10 11:20:15 +02:00

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 =
"0x6080604052600060015534801561001557600080fd5b506001600055615968806200002b6000396000f3fe6080604052600436106102075760003560e01c806376e9d61511610118578063c72c4d10116100a0578063d15e00531161006f578063d15e005314610b31578063d2493b6c14610b64578063d2d0e06614610bc2578063d466016f14610bf8578063e8ae2f5b14610c315761024d565b8063c72c4d1014610a83578063c858f5f914610a98578063cd11238214610ae1578063d0fc81d214610b1c5761024d565b80639895e3d8116100e75780639895e3d81461091c578063a5bc826c14610965578063b736aaeb146109aa578063bf92857c146109e5578063c4d66de814610a505761024d565b806376e9d6151461083c5780638afaff021461089357806394ba89a2146108a857806396e957c4146108e15761024d565b80633e1501411161019b5780635cffe9de1161016a5780635cffe9de1461067957806366bbd9281461074c5780636ee365f91461078557806370fb84f4146107c857806373b2f2f2146108015761024d565b80633e1501411461052b5780634fe7a6e5146105be578063573ade81146106045780635a3b74b91461063e5761024d565b806328dd2d01116101d757806328dd2d011461038f5780633443a14b1461042357806335ea6a751461045c578063386497fd146104e65761024d565b8062a718a9146102525780630902f1ac1461029657806309eab60f146102fb5780631d2118f9146103545761024d565b3661024d5761021533610c64565b61024b576040805162461bcd60e51b8152602060048201526002602482015261191960f11b604482015290519081900360640190fd5b005b600080fd5b61024b600480360360a081101561026857600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610ca0565b3480156102a257600080fd5b506102ab611082565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102e75781810151838201526020016102cf565b505050509050019250505060405180910390f35b34801561030757600080fd5b5061024b600480360360c081101561031e57600080fd5b506001600160a01b03813581169160208101358216916040820135811691606081013582169160808201359160a00135166110e4565b34801561036057600080fd5b5061024b6004803603604081101561037757600080fd5b506001600160a01b038135811691602001351661124a565b34801561039b57600080fd5b506103ca600480360360408110156103b257600080fd5b506001600160a01b038135811691602001351661132b565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015264ffffffffff16610100840152151561012083015251908190036101400190f35b34801561042f57600080fd5b5061024b6004803603604081101561044657600080fd5b506001600160a01b038135169060200135611652565b34801561046857600080fd5b5061048f6004803603602081101561047f57600080fd5b50356001600160a01b0316611721565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015264ffffffffff1661012083015251908190036101400190f35b3480156104f257600080fd5b506105196004803603602081101561050957600080fd5b50356001600160a01b0316611a0d565b60408051918252519081900360200190f35b34801561053757600080fd5b5061055e6004803603602081101561054e57600080fd5b50356001600160a01b0316611a34565b604080519a8b5260208b01999099528989019790975260608901959095526001600160a01b03909316608088015290151560a0870152151560c0860152151560e08501521515610100840152151561012083015251908190036101400190f35b3480156105ca57600080fd5b506105e8600480360360208110156105e157600080fd5b5035611aa7565b604080516001600160a01b039092168252519081900360200190f35b61024b6004803603608081101561061a57600080fd5b506001600160a01b0381358116916020810135916040820135916060013516611ace565b34801561064a57600080fd5b5061024b6004803603604081101561066157600080fd5b506001600160a01b0381351690602001351515611ea5565b34801561068557600080fd5b5061024b6004803603608081101561069c57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156106d757600080fd5b8201836020820111156106e957600080fd5b8035906020019184600183028401116401000000008311171561070b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061210b945050505050565b34801561075857600080fd5b5061024b6004803603604081101561076f57600080fd5b506001600160a01b0381351690602001356125b4565b34801561079157600080fd5b5061024b600480360360608110156107a857600080fd5b506001600160a01b03813516906020810135151590604001351515612683565b3480156107d457600080fd5b5061024b600480360360408110156107eb57600080fd5b506001600160a01b038135169060200135612848565b34801561080d57600080fd5b5061024b6004803603604081101561082457600080fd5b506001600160a01b0381351690602001351515612917565b34801561084857600080fd5b5061087f6004803603606081101561085f57600080fd5b506001600160a01b038135811691602081013590911690604001356129ff565b604080519115158252519081900360200190f35b34801561089f57600080fd5b50610519612b8f565b3480156108b457600080fd5b5061024b600480360360408110156108cb57600080fd5b506001600160a01b038135169060200135612b94565b3480156108ed57600080fd5b5061024b6004803603604081101561090457600080fd5b506001600160a01b0381351690602001351515612f09565b34801561092857600080fd5b5061024b6004803603608081101561093f57600080fd5b506001600160a01b03813581169160208101359091169060408101359060600135612ff1565b34801561097157600080fd5b5061024b6004803603608081101561098857600080fd5b506001600160a01b03813516906020810135906040810135906060013561318d565b3480156109b657600080fd5b5061024b600480360360408110156109cd57600080fd5b506001600160a01b03813516906020013515156132d6565b3480156109f157600080fd5b50610a1860048036036020811015610a0857600080fd5b50356001600160a01b0316613420565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b348015610a5c57600080fd5b5061024b60048036036020811015610a7357600080fd5b50356001600160a01b0316613681565b348015610a8f57600080fd5b506105e86137c6565b348015610aa457600080fd5b5061024b60048036036080811015610abb57600080fd5b5080356001600160a01b0316906020810135906040810135906060013561ffff166137d5565b348015610aed57600080fd5b5061024b60048036036040811015610b0457600080fd5b506001600160a01b0381358116916020013516613d5a565b348015610b2857600080fd5b506105196140f0565b348015610b3d57600080fd5b5061051960048036036020811015610b5457600080fd5b50356001600160a01b03166140f6565b348015610b7057600080fd5b50610b9760048036036020811015610b8757600080fd5b50356001600160a01b0316614117565b604080516001600160a01b039485168152928416602084015292168183015290519081900360600190f35b61024b60048036036060811015610bd857600080fd5b5080356001600160a01b0316906020810135906040013561ffff1661414c565b348015610c0457600080fd5b5061024b60048036036040811015610c1b57600080fd5b506001600160a01b0381351690602001356143bb565b348015610c3d57600080fd5b5061024b60048036036020811015610c5457600080fd5b50356001600160a01b031661448a565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610c9857508115155b949350505050565b60026000541415610ce6576040805162461bcd60e51b815260206004820152601f6024820152600080516020615745833981519152604482015290519081900360640190fd5b6002600090815560355460408051632c1a75cd60e11b815290516001600160a01b0390921691635834eb9a91600480820192602092909190829003018186803b158015610d3257600080fd5b505afa158015610d46573d6000803e3d6000fd5b505050506040513d6020811015610d5c57600080fd5b5051604080516001600160a01b038981166024830152888116604483015287811660648301526084820187905285151560a4808401919091528351808403909101815260c490920183526020820180516001600160e01b031662a718a960e01b17815292518251949550600094606094928716939282918083835b60208310610df65780518252601f199092019160209182019101610dd7565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610e56576040519150601f19603f3d011682016040523d82523d6000602084013e610e5b565b606091505b509150915081610eb2576040805162461bcd60e51b815260206004820152601760248201527f4c69717569646174696f6e2063616c6c206661696c6564000000000000000000604482015290519081900360640190fd5b60006060828060200190516040811015610ecb57600080fd5b815160208301805160405192949293830192919084640100000000821115610ef257600080fd5b908301906020820185811115610f0757600080fd5b8251640100000000811182820188101715610f2157600080fd5b82525081516020918201929091019080838360005b83811015610f4e578181015183820152602001610f36565b50505050905090810190601f168015610f7b5780820380516001836020036101000a031916815260200191505b50604052505050915091508160001461107157806040516020018082805190602001908083835b60208310610fc15780518252601f199092019160209182019101610fa2565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f190183529384905262461bcd60e51b84526004840181815282516024860152825192965094508493604401925085019080838360005b8381101561103657818101518382015260200161101e565b50505050905090810190601f1680156110635780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505060016000555050505050505050565b606060398054806020026020016040519081016040528092919081815260200182805480156110da57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116110bc575b5050505050905090565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561112857600080fd5b505afa15801561113c573d6000803e3d6000fd5b505050506040513d602081101561115257600080fd5b50516001600160a01b031614611194576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03808716600090815260376020526040808220815162cdced360e61b815260048101919091528884166024820152878416604482015286841660648201526084810186905292841660a48401525173__$5e6137a1b5a0a366e2874209b5abf71c10$__92633373b4c09260c4808301939192829003018186803b15801561122157600080fd5b505af4158015611235573d6000803e3d6000fd5b50505050611242866145bb565b505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561128e57600080fd5b505afa1580156112a2573d6000803e3d6000fd5b505050506040513d60208110156112b857600080fd5b50516001600160a01b0316146112fa576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039182166000908152603760205260409020600c0180546001600160a01b03191691909216179055565b6001600160a01b038083166000908152603760209081526040808320600981015482516370a0823160e01b815287871660048201529251949586958695869586958695869586958695869593909216926370a08231926024808301939192829003018186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d60208110156113c757600080fd5b50519a506113d58c8261465e565b909a5098506113e48c82614761565b80985081995050508060010154945080600a0160009054906101000a90046001600160a01b03166001600160a01b031663e78c9b3b8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561146057600080fd5b505afa158015611474573d6000803e3d6000fd5b505050506040513d602081101561148a57600080fd5b8101908080519060200190929190505050955080600a0160009054906101000a90046001600160a01b03166001600160a01b03166379ce6b8c8d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561150a57600080fd5b505afa15801561151e573d6000803e3d6000fd5b505050506040513d602081101561153457600080fd5b81019080805190602001909291905050509250603860008d6001600160a01b03166001600160a01b0316815260200190815260200160002060008e6001600160a01b03166001600160a01b0316815260200190815260200160002060000160009054906101000a900460ff16915080600b0160009054906101000a90046001600160a01b03166001600160a01b031663ee9907a48d6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561160f57600080fd5b505afa158015611623573d6000803e3d6000fd5b505050506040513d602081101561163957600080fd5b50519a9d999c50979a5095989497939650919491929050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561169657600080fd5b505afa1580156116aa573d6000803e3d6000fd5b505050506040513d60208110156116c057600080fd5b50516001600160a01b031614611702576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060060155565b600080600080600080600080600080611738615651565b506001600160a01b03808c16600081815260376020908152604091829020825161026081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e0820152600882015461010082015260098201548416610120820152600a8201548416610140820152600b8201548416610160820152600c9091015492831661018082015264ffffffffff600160a01b8404166101a082015260ff600160c81b8404811615156101c0830152600160d01b8404811615156101e0830152600160d81b840481161515610200830152600160e01b840481161515610220830152600160e81b909304909216151561024083015261186b903063ffffffff61482d16565b8161014001516001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156118a957600080fd5b505afa1580156118bd573d6000803e3d6000fd5b505050506040513d60208110156118d357600080fd5b5051610160830151604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561191d57600080fd5b505afa158015611931573d6000803e3d6000fd5b505050506040513d602081101561194757600080fd5b50516020848101516040808701516060880151610140890151835163487b7e7960e11b815293519495929491936001600160a01b03909116926390f6fcf292600480840193829003018186803b1580156119a057600080fd5b505afa1580156119b4573d6000803e3d6000fd5b505050506040513d60208110156119ca57600080fd5b810190808051906020019092919050505087600001518860800151896101a001519a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6001600160a01b0381166000908152603760205260408120611a2e906148d7565b92915050565b6001600160a01b0390811660009081526037602052604090206008810154600582015460068301546007840154600c90940154929591949093929081169160ff600160d01b8304811692600160c81b8104821692600160d81b8204831692600160e01b8304811692600160e81b90041690565b60398181548110611ab457fe5b6000918252602090912001546001600160a01b0316905081565b60026000541415611b14576040805162461bcd60e51b815260206004820152601f6024820152600080516020615745833981519152604482015290519081900360640190fd5b6002600055611b216156ed565b6001600160a01b03808616600081815260376020908152604080832094871683526038825280832093835292905220611b5a848361465e565b602085015283526000856002811115611b6f57fe5b90506001816002811115611b7f57fe5b14611b8e578360200151611b91565b83515b60408501526000198714801590611bab5750836040015187105b15611bb857604084018790525b73__$69254465eb8f179ea24caa73cf68b23524$__63a95f25e8848a8a858a8a600001518b602001518c60400151346040518a63ffffffff1660e01b8152600401808a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876002811115611c2a57fe5b60ff168152602001866001600160a01b03166001600160a01b03168152602001858152602001848152602001838152602001828152602001995050505050505050505060006040518083038186803b158015611c8557600080fd5b505af4158015611c99573d6000803e3d6000fd5b50505050611ca683614918565b6001816002811115611cb457fe5b1415611d3257600a8301546040808601518151632770a7eb60e21b81526001600160a01b03898116600483015260248201929092529151921691639dc29fac9160448082019260009290919082900301818387803b158015611d1557600080fd5b505af1158015611d29573d6000803e3d6000fd5b50505050611da6565b600b8301546040808601518151632770a7eb60e21b81526001600160a01b03898116600483015260248201929092529151921691639dc29fac9160448082019260009290919082900301818387803b158015611d8d57600080fd5b505af1158015611da1573d6000803e3d6000fd5b505050505b6040840151611dc09084908a90600063ffffffff6149d016565b6040840151611de1906001600160a01b038a1690600063ffffffff614cdc16565b611df3886001600160a01b0316614e01565b15611e35576000611e11856040015134614e2690919063ffffffff16565b90508015611e3357611e336001600160a01b038a16338363ffffffff614e6816565b505b336001600160a01b0316856001600160a01b0316896001600160a01b03167f81cfb79463601de705d4cf6b8d69112983d76a685120e5e4d3581f30871b87fc876040015142604051808381526020018281526020019250505060405180910390a450506001600055505050505050565b60026000541415611eeb576040805162461bcd60e51b815260206004820152601f6024820152600080516020615745833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038084168083526037602081815260408086203387526038808452828820958852948352958190206035548251631f94a27560e31b81529251919673__$69254465eb8f179ea24caa73cf68b23524$__9663e1717580968a968d9691959294603994169263fca513a8926004808201939291829003018186803b158015611f7f57600080fd5b505afa158015611f93573d6000803e3d6000fd5b505050506040513d6020811015611fa957600080fd5b50516040516001600160e01b031960e089901b168152600481018781526001600160a01b0380881660248401526044830187905260648301869052831660a483015260c060848301908152845460c484018190529192909160e4909101908590801561203e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612020575b505097505050505050505060006040518083038186803b15801561206157600080fd5b505af4158015612075573d6000803e3d6000fd5b5050825460ff19168515801591909117845591506120c990505760405133906001600160a01b038616907e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f290600090a3612100565b60405133906001600160a01b038616907f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd90600090a35b505060016000555050565b60026000541415612151576040805162461bcd60e51b815260206004820152601f6024820152600080516020615745833981519152604482015290519081900360640190fd5b600260005561215e615715565b6001600160a01b038416600081815260376020526040902090612187903063ffffffff61482d16565b82526121ac6127106121a086600963ffffffff614eea16565b9063ffffffff614f4316565b606083018190526121cd90612710906121a090610bb863ffffffff614eea16565b608083015281518411156122125760405162461bcd60e51b81526004018080602001828103825260318152602001806157656031913960400191505060405180910390fd5b6000826060015111801561222a575060008260800151115b6122655760405162461bcd60e51b81526004018080602001828103825260328152602001806158d76032913960400191505060405180910390fd5b85806122816001600160a01b038816828863ffffffff614e6816565b816001600160a01b031663ee87255888888760600151896040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156123085781810151838201526020016122f0565b50505050905090810190601f1680156123355780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561235757600080fd5b505af115801561236b573d6000803e3d6000fd5b506000925061238c9150506001600160a01b0389163063ffffffff61482d16565b606086015186519192506123a6919063ffffffff614f8516565b81146123e35760405162461bcd60e51b81526004018080602001828103825260328152602001806157fa6032913960400191505060405180910390fd5b8373__$5e6137a1b5a0a366e2874209b5abf71c10$__638acb830b90918a88600001516124218a608001518b60600151614e2690919063ffffffff16565b8a608001516040518663ffffffff1660e01b815260040180868152602001856001600160a01b03166001600160a01b031681526020018481526020018381526020018281526020019550505050505060006040518083038186803b15801561248857600080fd5b505af415801561249c573d6000803e3d6000fd5b50505050612539603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b1580156124f157600080fd5b505afa158015612505573d6000803e3d6000fd5b505050506040513d602081101561251b57600080fd5b505160808701516001600160a01b038b16919063ffffffff614e6816565b876001600160a01b0316896001600160a01b03167f5b8f46461c1dd69fb968f1a003acee221ea3e19540e350233b612ddb43433b558988606001518960800151426040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050600160005550505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156125f857600080fd5b505afa15801561260c573d6000803e3d6000fd5b505050506040513d602081101561262257600080fd5b50516001600160a01b031614612664576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060080155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156126c757600080fd5b505afa1580156126db573d6000803e3d6000fd5b505050506040513d60208110156126f157600080fd5b50516001600160a01b031614612733576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b81156127c4576001600160a01b03831660009081526037602052604080822081516361c7a28d60e11b815260048101919091528315156024820152905173__$5e6137a1b5a0a366e2874209b5abf71c10$__9263c38f451a9260448082019391829003018186803b1580156127a757600080fd5b505af41580156127bb573d6000803e3d6000fd5b50505050612843565b6001600160a01b0383166000908152603760205260408082208151633d47fb6d60e21b81526004810191909152905173__$5e6137a1b5a0a366e2874209b5abf71c10$__9263f51fedb49260248082019391829003018186803b15801561282a57600080fd5b505af415801561283e573d6000803e3d6000fd5b505050505b505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561288c57600080fd5b505afa1580156128a0573d6000803e3d6000fd5b505050506040513d60208110156128b657600080fd5b50516001600160a01b0316146128f8576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060070155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561295b57600080fd5b505afa15801561296f573d6000803e3d6000fd5b505050506040513d602081101561298557600080fd5b50516001600160a01b0316146129c7576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600c018054911515600160d81b0260ff60d81b19909216919091179055565b600073__$7347ff53b2b46c21e26a37164ae7f6739f$__63daae7055858585603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015612a7257600080fd5b505afa158015612a86573d6000803e3d6000fd5b505050506040513d6020811015612a9c57600080fd5b505160405160e089811b6001600160e01b03191682526001600160a01b0389811660048401908152898216602485015260448401899052606484018890526084840187905290841660c484015260a48301918252845460e484018190529092610104019085908015612b3757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612b19575b50509850505050505050505060206040518083038186803b158015612b5b57600080fd5b505af4158015612b6f573d6000803e3d6000fd5b505050506040513d6020811015612b8557600080fd5b5051949350505050565b600281565b60026000541415612bda576040805162461bcd60e51b815260206004820152601f6024820152600080516020615745833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0383168082526037602090815260408084203380865260388452828620948652939092528320909290918190612c1e908561465e565b915091506000856002811115612c3057fe5b905073__$69254465eb8f179ea24caa73cf68b23524$__639e29334186868686866040518663ffffffff1660e01b815260040180868152602001858152602001848152602001838152602001826002811115612c8857fe5b60ff1681526020019550505050505060006040518083038186803b158015612caf57600080fd5b505af4158015612cc3573d6000803e3d6000fd5b50505050612cd085614918565b6001816002811115612cde57fe5b1415612dc257600a85015460408051632770a7eb60e21b81523360048201526024810186905290516001600160a01b0390921691639dc29fac9160448082019260009290919082900301818387803b158015612d3957600080fd5b505af1158015612d4d573d6000803e3d6000fd5b505050600b860154604080516340c10f1960e01b81523360048201526024810187905290516001600160a01b0390921692506340c10f1991604480830192600092919082900301818387803b158015612da557600080fd5b505af1158015612db9573d6000803e3d6000fd5b50505050612ea8565b600b85015460408051632770a7eb60e21b81523360048201526024810185905290516001600160a01b0390921691639dc29fac9160448082019260009290919082900301818387803b158015612e1757600080fd5b505af1158015612e2b573d6000803e3d6000fd5b505050600a860154600387015460408051630ab714fb60e11b8152336004820152602481018790526044810192909252516001600160a01b03909216925063156e29f691606480830192600092919082900301818387803b158015612e8f57600080fd5b505af1158015612ea3573d6000803e3d6000fd5b505050505b612ebb858860008063ffffffff6149d016565b60408051428152905133916001600160a01b038a16917fea368a40e9570069bb8e6511d668293ad2e1f03b0d982431fd223de9f3b70ca69181900360200190a3505060016000555050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612f4d57600080fd5b505afa158015612f61573d6000803e3d6000fd5b505050506040513d6020811015612f7757600080fd5b50516001600160a01b031614612fb9576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600c018054911515600160e81b0260ff60e81b19909216919091179055565b60026000541415613037576040805162461bcd60e51b815260206004820152601f6024820152600080516020615745833981519152604482015290519081900360640190fd5b600260009081556001600160a01b03808616808352603760209081526040808520938816855260388252808520838652909152808420815163cf478a7960e01b81526004810185905260248101939093526044830187905290519293909273__$69254465eb8f179ea24caa73cf68b23524$__9263cf478a79926064808301939192829003018186803b1580156130cd57600080fd5b505af41580156130e1573d6000803e3d6000fd5b5050505082600014156130f757805460ff191681555b61310082614918565b613113828760008763ffffffff6149d016565b61312d6001600160a01b038716868663ffffffff614e6816565b846001600160a01b0316866001600160a01b03167f9c4ed599cd8555b9c1e8cd7643240d7d71eb76b792948c49fcb4d411f7b6b3c68642604051808381526020018281526020019250505060405180910390a35050600160005550505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156131d157600080fd5b505afa1580156131e5573d6000803e3d6000fd5b505050506040513d60208110156131fb57600080fd5b50516001600160a01b03161461323d576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038416600090815260376020526040808220815163bde2ece760e01b81526004810191909152602481018690526044810185905260648101849052905173__$5e6137a1b5a0a366e2874209b5abf71c10$__9263bde2ece79260848082019391829003018186803b1580156132b857600080fd5b505af41580156132cc573d6000803e3d6000fd5b5050505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561331a57600080fd5b505afa15801561332e573d6000803e3d6000fd5b505050506040513d602081101561334457600080fd5b50516001600160a01b031614613386576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b0382166000908152603760205260409020816133b757600c8101805460ff60e01b19169055612843565b8054158015906133cb575060008160040154115b6134065760405162461bcd60e51b815260040180806020018281038252602481526020018061582c6024913960400191505060405180910390fd5b600c8101805460ff60e01b1916600160e01b179055505050565b600080600080600080600073__$7347ff53b2b46c21e26a37164ae7f6739f$__6392eeb05c89603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561349a57600080fd5b505afa1580156134ae573d6000803e3d6000fd5b505050506040513d60208110156134c457600080fd5b50516040516001600160e01b031960e088901b1681526001600160a01b03808716600483019081526024830187905260448301869052908316608483015260a060648301908152845460a484018190529192909160c4909101908590801561355557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613537575b5050965050505050505060c06040518083038186803b15801561357757600080fd5b505af415801561358b573d6000803e3d6000fd5b505050506040513d60c08110156135a157600080fd5b5080516020808301516040808501516060860151608087015160a090970151603654845163ab8bb39360e01b8152600481018990526024810187905260448101859052606481018490526001600160a01b0390911660848201529351969e50939c50909a50949750939550935073__$7347ff53b2b46c21e26a37164ae7f6739f$__9263ab8bb3939260a48083019392829003018186803b15801561364557600080fd5b505af4158015613659573d6000803e3d6000fd5b505050506040513d602081101561366f57600080fd5b50519698959750939594919390925090565b600061368b614fdf565b60025490915060ff16806136a257506136a2614fe4565b806136ae575060015481115b6136e95760405162461bcd60e51b815260040180806020018281038252602e8152602001806158a9602e913960400191505060405180910390fd5b60025460ff1615801561370a576002805460ff191660019081179091558290555b603580546001600160a01b0319166001600160a01b03858116919091179182905560408051633efbbf0f60e21b81529051929091169163fbeefc3c91600480820192602092909190829003018186803b15801561376657600080fd5b505afa15801561377a573d6000803e3d6000fd5b505050506040513d602081101561379057600080fd5b5051603680546001600160a01b0319166001600160a01b039092169190911790558015612843576002805460ff19169055505050565b6035546001600160a01b031681565b6002600054141561381b576040805162461bcd60e51b815260206004820152601f6024820152600080516020615745833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038086168083526037602090815260408085203386526038835281862093865292825280852060088401546035548351631f94a27560e31b8152935195979296929561394d95600a9390930a946121a0948d9493169263fca513a892600480840193829003018186803b15801561389f57600080fd5b505afa1580156138b3573d6000803e3d6000fd5b505050506040513d60208110156138c957600080fd5b50516040805163b3596f0760e01b81526001600160a01b038e811660048301529151919092169163b3596f07916024808301926020929190829003018186803b15801561391557600080fd5b505afa158015613929573d6000803e3d6000fd5b505050506040513d602081101561393f57600080fd5b50519063ffffffff614eea16565b905073__$69254465eb8f179ea24caa73cf68b23524$__63335c5e8984848a8a868b6019603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156139c557600080fd5b505afa1580156139d9573d6000803e3d6000fd5b505050506040513d60208110156139ef57600080fd5b50516040516001600160e01b031960e08e901b168152600481018c8152602482018c90526001600160a01b03808c166044840152606483018b9052608483018a905260a4830189905260c4830188905260e4830187905261010483018690528316610144830152610160610124830190815284546101648401819052919290916101849091019085908015613aad57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613a8f575b50509c5050505050505050505050505060006040518083038186803b158015613ad557600080fd5b505af4158015613ae9573d6000803e3d6000fd5b50505050613af683614918565b600c8301805464ffffffffff60a01b1916600160a01b4264ffffffffff160217905560038301546001866002811115613b2b57fe5b6002811115613b3657fe5b1415613c3057600a84015460408051630ab714fb60e11b8152336004820152602481018a90526044810184905290516001600160a01b039092169163156e29f69160648082019260009290919082900301818387803b158015613b9857600080fd5b505af1158015613bac573d6000803e3d6000fd5b50505050600a84015460408051631e739ae360e21b815233600482015290516000926001600160a01b0316916379ce6b8c916024808301926020929190829003018186803b158015613bfd57600080fd5b505afa158015613c11573d6000803e3d6000fd5b505050506040513d6020811015613c2757600080fd5b50613c9e915050565b600b840154604080516340c10f1960e01b8152336004820152602481018a905290516001600160a01b03909216916340c10f199160448082019260009290919082900301818387803b158015613c8557600080fd5b505af1158015613c99573d6000803e3d6000fd5b505050505b613cb1848960008a63ffffffff6149d016565b613ccb6001600160a01b038916338963ffffffff614e6816565b61ffff8516336001600160a01b038a167fe002884724be85e729c98360169e709585b299ace6fbe12aa791d2fee6f652808a8a60018c6002811115613d0c57fe5b6002811115613d1757fe5b14613d26578960020154613d28565b865b60408051938452602084019290925282820152426060830152519081900360800190a450506001600055505050505050565b60026000541415613da0576040805162461bcd60e51b815260206004820152601f6024820152600080516020615745833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038084168252603760209081526040808420600a81015482516370a0823160e01b81528786166004820152925191959416939284926370a082319260248083019392829003018186803b158015613e0457600080fd5b505afa158015613e18573d6000803e3d6000fd5b505050506040513d6020811015613e2e57600080fd5b5051905080613e6e5760405162461bcd60e51b81526004018080602001828103825260388152602001806158716038913960400191505060405180910390fd5b6000613ea7613e966aa56fa5b99019a5c8000000613e8a614fea565b9063ffffffff614f8516565b60038601549063ffffffff614ffa16565b90506000836001600160a01b031663e78c9b3b876040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015613f0157600080fd5b505afa158015613f15573d6000803e3d6000fd5b505050506040513d6020811015613f2b57600080fd5b50516001860154909150811080613f4157508181115b613f7c5760405162461bcd60e51b815260040180806020018281038252602f8152602001806157cb602f913960400191505060405180910390fd5b613f8585614918565b836001600160a01b0316639dc29fac87856040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015613fe557600080fd5b505af1158015613ff9573d6000803e3d6000fd5b50505050836001600160a01b031663156e29f6878588600301546040518463ffffffff1660e01b815260040180846001600160a01b03166001600160a01b031681526020018381526020018281526020019350505050600060405180830381600087803b15801561406957600080fd5b505af115801561407d573d6000803e3d6000fd5b50614097925087915089905060008063ffffffff6149d016565b856001600160a01b0316876001600160a01b03167f443060d15ff6dac05881a7c07a46ef8085d8af4399e436be6c25250df40c5f18426040518082815260200191505060405180910390a3505050505050506001600055565b60001981565b6001600160a01b0381166000908152603760205260408120611a2e90615032565b6001600160a01b0390811660009081526037602052604090206009810154600a820154600b9092015490831693918316921690565b60026000541415614192576040805162461bcd60e51b815260206004820152601f6024820152600080516020615745833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0384168082526037602090815260408084203385526038835281852093855292909152808320815163b25dc48d60e01b8152600481018490526024810187905291519293909273__$69254465eb8f179ea24caa73cf68b23524$__9263b25dc48d926044808301939192829003018186803b15801561421e57600080fd5b505af4158015614232573d6000803e3d6000fd5b5050506009830154604080516370a0823160e01b815233600482015290516001600160a01b03909216925060009183916370a08231916024808301926020929190829003018186803b15801561428757600080fd5b505afa15801561429b573d6000803e3d6000fd5b505050506040513d60208110156142b157600080fd5b50511590506142bf84614918565b6142d2848888600063ffffffff6149d016565b80156142e457825460ff191660011783555b604080516394362e8b60e01b81523360048201526024810188905290516001600160a01b038416916394362e8b91604480830192600092919082900301818387803b15801561433257600080fd5b505af1158015614346573d6000803e3d6000fd5b50614360925050506001600160a01b038816876001614cdc565b60408051878152426020820152815161ffff88169233926001600160a01b038c16927fc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c82929181900390910190a4505060016000555050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156143ff57600080fd5b505afa158015614413573d6000803e3d6000fd5b505050506040513d602081101561442957600080fd5b50516001600160a01b03161461446b576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060050155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156144ce57600080fd5b505afa1580156144e2573d6000803e3d6000fd5b505050506040513d60208110156144f857600080fd5b50516001600160a01b03161461453a576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03811660009081526037602052604080822081516315fbf94960e11b81526004810191909152905173__$5e6137a1b5a0a366e2874209b5abf71c10$__92632bf7f2929260248082019391829003018186803b1580156145a057600080fd5b505af41580156145b4573d6000803e3d6000fd5b5050505050565b6000805b60395481101561460857826001600160a01b0316603982815481106145e057fe5b6000918252602090912001546001600160a01b0316141561460057600191505b6001016145bf565b508061465a57603980546001810182556000919091527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d30180546001600160a01b0319166001600160a01b0384161790555b5050565b600a810154604080516370a0823160e01b81526001600160a01b0385811660048301529151600093849316916370a08231916024808301926020929190829003018186803b1580156146af57600080fd5b505afa1580156146c3573d6000803e3d6000fd5b505050506040513d60208110156146d957600080fd5b5051600b840154604080516370a0823160e01b81526001600160a01b038881166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561472a57600080fd5b505afa15801561473e573d6000803e3d6000fd5b505050506040513d602081101561475457600080fd5b5051909590945092505050565b600a8101546040805163631a6fd560e11b81526001600160a01b03858116600483015291516000938493169163c634dfaa916024808301926020929190829003018186803b1580156147b257600080fd5b505afa1580156147c6573d6000803e3d6000fd5b505050506040513d60208110156147dc57600080fd5b5051600b8401546040805163631a6fd560e11b81526001600160a01b0388811660048301529151919092169163c634dfaa916024808301926020929190829003018186803b15801561472a57600080fd5b600061483883614e01565b1561484e57506001600160a01b03811631611a2e565b826001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156148a457600080fd5b505afa1580156148b8573d6000803e3d6000fd5b505050506040513d60208110156148ce57600080fd5b50519392505050565b6000806149118360040154614905856002015486600c0160149054906101000a900464ffffffffff16615060565b9063ffffffff614ffa16565b9392505050565b6000614923826150c5565b905080156149ac576001820154600c83015460009161494f91600160a01b900464ffffffffff166151c5565b835490915061496590829063ffffffff614ffa16565b83556002830154600c84015460009161498b91600160a01b900464ffffffffff16615060565b90506149a4846004015482614ffa90919063ffffffff16565b600485015550505b50600c01805464ffffffffff60a01b1916600160a01b4264ffffffffff1602179055565b600a8401546040805163487b7e7960e11b815290516000926001600160a01b0316916390f6fcf2916004808301926020929190829003018186803b158015614a1757600080fd5b505afa158015614a2b573d6000803e3d6000fd5b505050506040513d6020811015614a4157600080fd5b505190506000614a606001600160a01b0386163063ffffffff61482d16565b9050614a74856001600160a01b0316614e01565b15614a8c57614a89813463ffffffff614e2616565b90505b600c860154600090819081906001600160a01b03166357e37af089614ac789614abb898d63ffffffff614f8516565b9063ffffffff614e2616565b8c600a0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015614b1757600080fd5b505afa158015614b2b573d6000803e3d6000fd5b505050506040513d6020811015614b4157600080fd5b5051600b8e0154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b158015614b8a57600080fd5b505afa158015614b9e573d6000803e3d6000fd5b505050506040513d6020811015614bb457600080fd5b5051604080516001600160e01b031960e088901b1681526001600160a01b039095166004860152602485019390935260448401919091526064830152608482018990525160a4808301926060929190829003018186803b158015614c1757600080fd5b505afa158015614c2b573d6000803e3d6000fd5b505050506040513d6060811015614c4157600080fd5b50805160208083015160409384015160018e0184905560038e0182905560028e018190558d5460048f015486518681529485018490528487018c905260608501839052608085019190915260a0840152935192965094509192506001600160a01b038a16917f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a4919081900360c00190a2505050505050505050565b81614ce657612843565b614cef83614e01565b15614de65781341015614d335760405162461bcd60e51b81526004018080602001828103825260358152602001806157966035913960400191505060405180910390fd5b8015614de157600033614d4c348563ffffffff614e2616565b60405161c35091906000818181858888f193505050503d8060008114614d8e576040519150601f19603f3d011682016040523d82523d6000602084013e614d93565b606091505b5050905080614ddf576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b505b612843565b6128436001600160a01b03841633308563ffffffff61522516565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14919050565b600061491183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250615285565b80614e7257612843565b614e7b83614e01565b15614ed0576040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114614d8e576040519150601f19603f3d011682016040523d82523d6000602084013e614d93565b6128436001600160a01b038416838363ffffffff6152df16565b600082614ef957506000611a2e565b82820282848281614f0657fe5b04146149115760405162461bcd60e51b81526004018080602001828103825260218152602001806158506021913960400191505060405180910390fd5b600061491183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250615331565b600082820183811015614911576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600290565b303b1590565b6b033b2e3c9fd0803ce800000090565b60006149116b033b2e3c9fd0803ce80000006121a061501f868663ffffffff614eea16565b6b019d971e4fe8401e7400000090614f85565b6000806149118360000154614905856001015486600c0160149054906101000a900464ffffffffff166151c5565b60008061507a4264ffffffffff851663ffffffff614e2616565b90506000615092856301e1338063ffffffff614f4316565b90506150bc826150b06150a3614fea565b849063ffffffff614f8516565b9063ffffffff61539616565b95945050505050565b6000611a2e82600b0160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561511a57600080fd5b505afa15801561512e573d6000803e3d6000fd5b505050506040513d602081101561514457600080fd5b5051600a840154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd91600480820192602092909190829003018186803b15801561518d57600080fd5b505afa1580156151a1573d6000803e3d6000fd5b505050506040513d60208110156151b757600080fd5b50519063ffffffff614f8516565b6000806151df4264ffffffffff851663ffffffff614e2616565b905060006152086151f36301e133806153f0565b6151fc846153f0565b9063ffffffff61540616565b90506150bc615215614fea565b613e8a878463ffffffff614ffa16565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b17905261527f908590615429565b50505050565b600081848411156152d75760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561103657818101518382015260200161101e565b505050900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612843908490615429565b600081836153805760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561103657818101518382015260200161101e565b50600083858161538c57fe5b0495945050505050565b6000600282066153b2576b033b2e3c9fd0803ce80000006153b4565b825b90506002820491505b8115611a2e576153cd8384614ffa565b925060028206156153e5576153e28184614ffa565b90505b6002820491506153bd565b6000611a2e82633b9aca0063ffffffff614eea16565b600060028204610c98836121a06150a3876b033b2e3c9fd0803ce8000000614eea565b606061547e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166154da9092919063ffffffff16565b8051909150156128435780806020019051602081101561549d57600080fd5b50516128435760405162461bcd60e51b815260040180806020018281038252602a815260200180615909602a913960400191505060405180910390fd5b6060610c98848460008560606154ef85610c64565b615540576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061557f5780518252601f199092019160209182019101615560565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146155e1576040519150601f19603f3d011682016040523d82523d6000602084013e6155e6565b606091505b509150915081156155fa579150610c989050565b80511561560a5780518082602001fd5b60405162461bcd60e51b815260206004820181815286516024840152865187939192839260440191908501908083836000831561103657818101518382015260200161101e565b6040805161026081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081018290526101e081018290526102008101829052610220810182905261024081019190915290565b6040518060800160405280600081526020016000815260200160008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c005468657265206973206e6f7420656e6f756768206c697175696469747920617661696c61626c6520746f20626f72726f7754686520616d6f756e7420616e64207468652076616c75652073656e7420746f206465706f73697420646f206e6f74206d61746368496e746572657374207261746520726562616c616e636520636f6e646974696f6e732077657265206e6f74206d65745468652061637475616c2062616c616e6365206f66207468652070726f746f636f6c20697320696e636f6e73697374656e745265736572766520686173206e6f74206265656e20696e697469616c697a656420796574536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775573657220646f6573206e6f74206861766520616e7920737461626c652072617465206c6f616e20666f7220746869732072657365727665436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65645468652072657175657374656420616d6f756e7420697320746f6f20736d616c6c20666f72206120466c6173684c6f616e2e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a2646970667358221220e85d7f483c297a558967388e6738bf79797cd1dab215a4fe3210a6850edcb6c764736f6c63430006080033";
export interface LendingPoolLibraryAddresses {
["__$5e6137a1b5a0a366e2874209b5abf71c10$__"]: string;
["__$69254465eb8f179ea24caa73cf68b23524$__"]: string;
["__$7347ff53b2b46c21e26a37164ae7f6739f$__"]: string;
}