aave-protocol-v2/types/LendingPoolFactory.ts
2020-06-27 04:13:32 +02:00

1368 lines
72 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("__\\$259b519ec4c35fa58681035973c79c801a\\$__", "g"),
linkLibraryAddresses["__$259b519ec4c35fa58681035973c79c801a$__"]
.replace(/^0x/, "")
.toLowerCase()
);
linkedBytecode = linkedBytecode.replace(
new RegExp("__\\$2ec35834968386f54fa313129cf94664e4\\$__", "g"),
linkLibraryAddresses["__$2ec35834968386f54fa313129cf94664e4$__"]
.replace(/^0x/, "")
.toLowerCase()
);
linkedBytecode = linkedBytecode.replace(
new RegExp("__\\$69254465eb8f179ea24caa73cf68b23524\\$__", "g"),
linkLibraryAddresses["__$69254465eb8f179ea24caa73cf68b23524$__"]
.replace(/^0x/, "")
.toLowerCase()
);
linkedBytecode = linkedBytecode.replace(
new RegExp("__\\$5e6137a1b5a0a366e2874209b5abf71c10\\$__", "g"),
linkLibraryAddresses["__$5e6137a1b5a0a366e2874209b5abf71c10$__"]
.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: false,
internalType: "uint256",
name: "_originationFee",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_borrowBalanceIncrease",
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: "_newStableRate",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_borrowBalanceIncrease",
type: "uint256"
},
{
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: "_amountMinusFees",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_fees",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_borrowBalanceIncrease",
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: "_newRateMode",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_newRate",
type: "uint256"
},
{
indexed: false,
internalType: "uint256",
name: "_borrowBalanceIncrease",
type: "uint256"
},
{
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: "ltv",
type: "uint256"
},
{
internalType: "uint256",
name: "liquidationThreshold",
type: "uint256"
},
{
internalType: "uint256",
name: "liquidationBonus",
type: "uint256"
},
{
internalType: "address",
name: "interestRateStrategyAddress",
type: "address"
},
{
internalType: "address",
name: "aTokenAddress",
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: [],
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: "currentBorrowBalance",
type: "uint256"
},
{
internalType: "uint256",
name: "principalBorrowBalance",
type: "uint256"
},
{
internalType: "uint256",
name: "borrowRateMode",
type: "uint256"
},
{
internalType: "uint256",
name: "borrowRate",
type: "uint256"
},
{
internalType: "uint256",
name: "liquidityRate",
type: "uint256"
},
{
internalType: "uint256",
name: "originationFee",
type: "uint256"
},
{
internalType: "uint256",
name: "variableBorrowIndex",
type: "uint256"
},
{
internalType: "uint256",
name: "lastUpdateTimestamp",
type: "uint256"
},
{
internalType: "bool",
name: "usageAsCollateralEnabled",
type: "bool"
}
],
stateMutability: "view",
type: "function"
},
{
inputs: [
{
internalType: "address",
name: "_reserve",
type: "address"
},
{
internalType: "address",
name: "_aTokenAddress",
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: "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"
}
],
name: "swapBorrowRateMode",
outputs: [],
stateMutability: "nonpayable",
type: "function"
},
{
stateMutability: "payable",
type: "receive"
}
];
const _bytecode =
"0x6080604052600060015534801561001557600080fd5b5060016000556158f9806200002b6000396000f3fe6080604052600436106101f15760003560e01c806373b2f2f21161010d578063c4d66de8116100a0578063d0fc81d21161006f578063d0fc81d214610ab4578063d15e005314610ac9578063d2d0e06614610afc578063d466016f14610b32578063e8ae2f5b14610b6b57610237565b8063c4d66de8146109e8578063c72c4d1014610a1b578063c858f5f914610a30578063cd11238214610a7957610237565b80639895e3d8116100dc5780639895e3d8146108b4578063a5bc826c146108fd578063b736aaeb14610942578063bf92857c1461097d57610237565b806373b2f2f2146107c057806376e9d615146107fb5780638afaff021461085257806396e957c41461087957610237565b806348ca1300116101855780635cffe9de116101545780635cffe9de1461063857806366bbd9281461070b5780636ee365f91461074457806370fb84f41461078757610237565b806348ca13001461054e5780634fe7a6e5146105815780635a3b74b9146105c75780635ceae9c41461060257610237565b80633443a14b116101c15780633443a14b146103ad57806335ea6a75146103e65780633e1501411461047057806345330a401461050557610237565b8062a718a91461023c5780630902f1ac146102805780631d2118f9146102e557806328dd2d011461032057610237565b36610237576101ff33610b9e565b610235576040805162461bcd60e51b8152602060048201526002602482015261191960f11b604482015290519081900360640190fd5b005b600080fd5b610235600480360360a081101561025257600080fd5b506001600160a01b038135811691602081013582169160408201351690606081013590608001351515610bdc565b34801561028c57600080fd5b50610295610fa3565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156102d15781810151838201526020016102b9565b505050509050019250505060405180910390f35b3480156102f157600080fd5b506102356004803603604081101561030857600080fd5b506001600160a01b0381358116916020013516611005565b34801561032c57600080fd5b5061035b6004803603604081101561034357600080fd5b506001600160a01b03813581169160200135166110e6565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e0850152610100840152151561012083015251908190036101400190f35b3480156103b957600080fd5b50610235600480360360408110156103d057600080fd5b506001600160a01b0381351690602001356112e1565b3480156103f257600080fd5b506104196004803603602081101561040957600080fd5b50356001600160a01b03166113b0565b604080519a8b5260208b0199909952898901979097526060890195909552608088019390935260a087019190915260c086015260e085015261010084015264ffffffffff1661012083015251908190036101400190f35b34801561047c57600080fd5b506104a36004803603602081101561049357600080fd5b50356001600160a01b0316611551565b604080519a8b5260208b0199909952898901979097526001600160a01b0395861660608a015293909416608088015290151560a0870152151560c086015290151560e08501521515610100840152151561012083015251908190036101400190f35b34801561051157600080fd5b506102356004803603608081101561052857600080fd5b506001600160a01b038135811691602081013582169160408201359160600135166115c7565b34801561055a57600080fd5b506102356004803603602081101561057157600080fd5b50356001600160a01b031661171c565b34801561058d57600080fd5b506105ab600480360360208110156105a457600080fd5b5035611ad6565b604080516001600160a01b039092168252519081900360200190f35b3480156105d357600080fd5b50610235600480360360408110156105ea57600080fd5b506001600160a01b0381351690602001351515611afd565b6102356004803603606081101561061857600080fd5b506001600160a01b03813581169160208101359160409091013516611d76565b34801561064457600080fd5b506102356004803603608081101561065b57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561069657600080fd5b8201836020820111156106a857600080fd5b803590602001918460018302840111640100000000831117156106ca57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506124fd945050505050565b34801561071757600080fd5b506102356004803603604081101561072e57600080fd5b506001600160a01b0381351690602001356129a6565b34801561075057600080fd5b506102356004803603606081101561076757600080fd5b506001600160a01b03813516906020810135151590604001351515612a75565b34801561079357600080fd5b50610235600480360360408110156107aa57600080fd5b506001600160a01b038135169060200135612c3a565b3480156107cc57600080fd5b50610235600480360360408110156107e357600080fd5b506001600160a01b0381351690602001351515612d09565b34801561080757600080fd5b5061083e6004803603606081101561081e57600080fd5b506001600160a01b03813581169160208101359091169060400135612df1565b604080519115158252519081900360200190f35b34801561085e57600080fd5b50610867612f81565b60408051918252519081900360200190f35b34801561088557600080fd5b506102356004803603604081101561089c57600080fd5b506001600160a01b0381351690602001351515612f86565b3480156108c057600080fd5b50610235600480360360808110156108d757600080fd5b506001600160a01b0381358116916020810135909116906040810135906060013561306e565b34801561090957600080fd5b506102356004803603608081101561092057600080fd5b506001600160a01b038135169060208101359060408101359060600135613213565b34801561094e57600080fd5b506102356004803603604081101561096557600080fd5b506001600160a01b038135169060200135151561335c565b34801561098957600080fd5b506109b0600480360360208110156109a057600080fd5b50356001600160a01b0316613497565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b3480156109f457600080fd5b5061023560048036036020811015610a0b57600080fd5b50356001600160a01b03166136f4565b348015610a2757600080fd5b506105ab613839565b348015610a3c57600080fd5b5061023560048036036080811015610a5357600080fd5b5080356001600160a01b0316906020810135906040810135906060013561ffff16613848565b348015610a8557600080fd5b5061023560048036036040811015610a9c57600080fd5b506001600160a01b0381358116916020013516613ebd565b348015610ac057600080fd5b506108676141af565b348015610ad557600080fd5b5061086760048036036020811015610aec57600080fd5b50356001600160a01b03166141b5565b61023560048036036060811015610b1257600080fd5b5080356001600160a01b0316906020810135906040013561ffff166141dc565b348015610b3e57600080fd5b5061023560048036036040811015610b5557600080fd5b506001600160a01b038135169060200135614459565b348015610b7757600080fd5b5061023560048036036020811015610b8e57600080fd5b50356001600160a01b0316614528565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610bd257508115155b925050505b919050565b60026000541415610c22576040805162461bcd60e51b815260206004820152601f60248201526000805160206156a6833981519152604482015290519081900360640190fd5b6002600090815560355460408051632c1a75cd60e11b815290516001600160a01b0390921691635834eb9a91600480820192602092909190829003018186803b158015610c6e57600080fd5b505afa158015610c82573d6000803e3d6000fd5b505050506040513d6020811015610c9857600080fd5b5051604080516001600160a01b038981166024830152888116604483015287811660648301526084820187905285151560a4808401919091528351808403909101815260c490920183526020820180516001600160e01b031662a718a960e01b17815292518251949550600094606094928716939282918083835b60208310610d325780518252601f199092019160209182019101610d13565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610d92576040519150601f19603f3d011682016040523d82523d6000602084013e610d97565b606091505b509150915081610dd3576040805162461bcd60e51b81526020600482015260026024820152610c8d60f21b604482015290519081900360640190fd5b60006060828060200190516040811015610dec57600080fd5b815160208301805160405192949293830192919084640100000000821115610e1357600080fd5b908301906020820185811115610e2857600080fd5b8251640100000000811182820188101715610e4257600080fd5b82525081516020918201929091019080838360005b83811015610e6f578181015183820152602001610e57565b50505050905090810190601f168015610e9c5780820380516001836020036101000a031916815260200191505b506040525050509150915081600014610f9257806040516020018082805190602001908083835b60208310610ee25780518252601f199092019160209182019101610ec3565b51815160209384036101000a60001901801990921691161790526040805192909401828103601f190183529384905262461bcd60e51b84526004840181815282516024860152825192965094508493604401925085019080838360005b83811015610f57578181015183820152602001610f3f565b50505050905090810190601f168015610f845780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505060016000555050505050505050565b60606039805480602002602001604051908101604052809291908181526020018280548015610ffb57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fdd575b5050505050905090565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561104957600080fd5b505afa15801561105d573d6000803e3d6000fd5b505050506040513d602081101561107357600080fd5b50516001600160a01b0316146110b5576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039182166000908152603760205260409020600d0180546001600160a01b03191691909216179055565b6001600160a01b03808316600081815260376020908152604080832086861680855260388452828520958552948352818420600c82015483516370a0823160e01b815260048101979097529251949687968796879687968796879687968796879693959294909116926370a0823192602480840193919291829003018186803b15801561117257600080fd5b505afa158015611186573d6000803e3d6000fd5b505050506040513d602081101561119c57600080fd5b50519b5060006111ab82614659565b90508173__$259b519ec4c35fa58681035973c79c801a$__634b170a5a9091856040518363ffffffff1660e01b8152600401808381526020018281526020019250505060606040518083038186803b15801561120657600080fd5b505af415801561121a573d6000803e3d6000fd5b505050506040513d606081101561123057600080fd5b5080516020909101519c509a50600181600281111561124b57fe5b141561125d5781600301549850611279565b600281600281111561126b57fe5b141561127957826004015498505b80600281111561128557fe5b99508260010154975081600201549650816001015495508160040160009054906101000a900464ffffffffff1664ffffffffff1694508160040160059054906101000a900460ff1693505050509295989b9194979a5092959850565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561132557600080fd5b505afa158015611339573d6000803e3d6000fd5b505050506040513d602081101561134f57600080fd5b50516001600160a01b031614611391576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060090155565b6000806000806000806000806000806113c761557d565b506001600160a01b03808c16600081815260376020908152604091829020825161028081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a0820152600682015460c0820152600782015460e082015260088201546101008201526009820154610120820152600a820154610140820152600b820154610160820152600c8201548416610180820152600d909101549283166101a082015264ffffffffff600160a01b8404166101c082015260ff600160c81b8404811615156101e0830152600160d01b840481161515610200830152600160d81b840481161515610220830152600160e01b840481161515610240830152600160e81b9093049092161515610260830152611501903063ffffffff61468516565b81604001518260600151836020015184608001518560a001518660c0015187600001518860e00151896101c001519a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6001600160a01b03908116600090815260376020526040902060088101546009820154600a830154600d840154600c90940154929591949093808216939091169160ff600160d01b8304811692600160c81b8104821692600160d81b8204831692600160e01b8304811692600160e81b90041690565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561160b57600080fd5b505afa15801561161f573d6000803e3d6000fd5b505050506040513d602081101561163557600080fd5b50516001600160a01b031614611677576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b0380851660009081526037602052604080822081516304dda73560e21b8152600481019190915286841660248201526044810186905292841660648401525173__$2ec35834968386f54fa313129cf94664e4$__926313769cd4926084808301939192829003018186803b1580156116f557600080fd5b505af4158015611709573d6000803e3d6000fd5b505050506117168461472f565b50505050565b60026000541415611762576040805162461bcd60e51b815260206004820152601f60248201526000805160206156a6833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0382168082526037602090815260408084203385526038835281852093855292909152808320815163258b852d60e11b8152600481018290526024810184905291519293909290918291829173__$259b519ec4c35fa58681035973c79c801a$__91634b170a5a91604480820192606092909190829003018186803b1580156117f857600080fd5b505af415801561180c573d6000803e3d6000fd5b505050506040513d606081101561182257600080fd5b50805160208201516040909201519094509092509050600061184385614659565b905073__$69254465eb8f179ea24caa73cf68b23524$__631567ffa1878786856040518563ffffffff1660e01b81526004018085815260200184815260200183815260200182600281111561189457fe5b60ff16815260200194505050505060006040518083038186803b1580156118ba57600080fd5b505af41580156118ce573d6000803e3d6000fd5b505050508573__$5e6137a1b5a0a366e2874209b5abf71c10$__63a717d1959091878a8888876040518763ffffffff1660e01b815260040180878152602001868152602001856001600160a01b03166001600160a01b0316815260200184815260200183815260200182600281111561194357fe5b60ff168152602001965050505050505060006040518083038186803b15801561196b57600080fd5b505af415801561197f573d6000803e3d6000fd5b505050508473__$259b519ec4c35fa58681035973c79c801a$__63310266f690918885856040518563ffffffff1660e01b8152600401808581526020018481526020018381526020018260028111156119d457fe5b60ff16815260200194505050505060206040518083038186803b1580156119fa57600080fd5b505af4158015611a0e573d6000803e3d6000fd5b505050506040513d6020811015611a2457600080fd5b50611a3a9050868860008063ffffffff6147d216565b6000611a4586614659565b9050336001600160a01b0389167fb3e2773606abfd36b5bd91394b3a54d1398336c65005baf7bf7a05efeffaf75b836002811115611a7f57fe5b6001856002811115611a8d57fe5b14611a9c578a60040154611aa2565b89600301545b604080519283526020830191909152818101889052426060830152519081900360800190a350506001600055505050505050565b60398181548110611ae357fe5b6000918252602090912001546001600160a01b0316905081565b60026000541415611b43576040805162461bcd60e51b815260206004820152601f60248201526000805160206156a6833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038084168083526037602081815260408086203387526038808452828820958852948352958190206035548251631f94a27560e31b81529251919673__$69254465eb8f179ea24caa73cf68b23524$__9663d73dac72968a968d9691959294603994169263fca513a8926004808201939291829003018186803b158015611bd757600080fd5b505afa158015611beb573d6000803e3d6000fd5b505050506040513d6020811015611c0157600080fd5b50516040516001600160e01b031960e089901b168152600481018781526001600160a01b0380881660248401526044830187905260648301869052831660a483015260c060848301908152845460c484018190529192909160e49091019085908015611c9657602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c78575b505097505050505050505060006040518083038186803b158015611cb957600080fd5b505af4158015611ccd573d6000803e3d6000fd5b50505060048201805485158015650100000000000265ff000000000019909216919091179091559050611d345760405133906001600160a01b038616907e058a56ea94653cdf4f152d227ace22d4c00ad99e2a43f58cb7d9e3feb295f290600090a3611d6b565b60405133906001600160a01b038616907f44c58d81365b66dd4b1a7f36c25aa97b8c71c361ee4937adc1a00000227db5dd90600090a35b505060016000555050565b60026000541415611dbc576040805162461bcd60e51b815260206004820152601f60248201526000805160206156a6833981519152604482015290519081900360640190fd5b6002600055611dc9615639565b6001600160a01b038085166000818152603760209081526040808320948716835260388252808320938352929052819020815163258b852d60e11b815260048101829052602481018490529151909173__$259b519ec4c35fa58681035973c79c801a$__91634b170a5a91604480820192606092909190829003018186803b158015611e5457600080fd5b505af4158015611e68573d6000803e3d6000fd5b505050506040513d6060811015611e7e57600080fd5b5080516020808301516040938401519387019390935285018290528452600282015460c08501819052611eb7919063ffffffff6149af16565b60608401526000198514801590611ed15750826060015185105b15611ede57606083018590525b602083015160608401516040805163fa30ba4f60e01b8152600481018690526001600160a01b03808b166024830152604482018a905288166064820152608481019390935260a48301919091523460c48301525173__$69254465eb8f179ea24caa73cf68b23524$__9163fa30ba4f9160e4808301926000929190829003018186803b158015611f6d57600080fd5b505af4158015611f81573d6000803e3d6000fd5b505050508260c001518360600151116121ed57604080840151815163f67484c560e01b815260048101859052602481018490526001600160a01b03891660448201526000606482018190526084820192909252915173__$5e6137a1b5a0a366e2874209b5abf71c10$__9263f67484c59260a4808301939192829003018186803b15801561200e57600080fd5b505af4158015612022573d6000803e3d6000fd5b50505050606083015160408085015181516301a5a06360e11b815260048101859052602481018690526000604482018190526064820194909452608481019190915260a48101839052905173__$259b519ec4c35fa58681035973c79c801a$__9263034b40c69260c48082019391829003018186803b1580156120a457600080fd5b505af41580156120b8573d6000803e3d6000fd5b506120d2925084915088905060008063ffffffff6147d216565b61216f33603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b15801561212457600080fd5b505afa158015612138573d6000803e3d6000fd5b505050506040513d602081101561214e57600080fd5b505160608601516001600160a01b038a16929190600163ffffffff614a1016565b336001600160a01b0316846001600160a01b0316876001600160a01b03167fb718f0b14f03d8c3adf35b15e3da52421b042ac879e5a689011a8b1e0036773d600087606001518860400151426040518085815260200184815260200183815260200182815260200194505050505060405180910390a45050506124f3565b60c083015160608401516122069163ffffffff614bfc16565b60808401819052604080850151815163f67484c560e01b815260048101869052602481018590526001600160a01b038a166044820152606481019390935260848301525173__$5e6137a1b5a0a366e2874209b5abf71c10$__9163f67484c59160a4808301926000929190829003018186803b15801561228557600080fd5b505af4158015612299573d6000803e3d6000fd5b50505050608083015160c0840151604080860151602087015182516301a5a06360e11b81526004810187905260248101889052604481018690526064810194909452608484019190915290921460a4820152905173__$259b519ec4c35fa58681035973c79c801a$__9163034b40c69160c4808301926000929190829003018186803b15801561232857600080fd5b505af415801561233c573d6000803e3d6000fd5b505050608084015161235a915083908890600063ffffffff6147d216565b60c0830151156124015761240133603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b1580156123b657600080fd5b505afa1580156123ca573d6000803e3d6000fd5b505050506040513d60208110156123e057600080fd5b505160c08601516001600160a01b038a16929190600063ffffffff614a1016565b6080830151612422906001600160a01b03881690600063ffffffff614c3e16565b612434866001600160a01b0316614d63565b15612476576000612452846060015134614bfc90919063ffffffff16565b90508015612474576124746001600160a01b038816338363ffffffff614d9916565b505b336001600160a01b0316846001600160a01b0316876001600160a01b03167fb718f0b14f03d8c3adf35b15e3da52421b042ac879e5a689011a8b1e0036773d86608001518760c001518860400151426040518085815260200184815260200183815260200182815260200194505050505060405180910390a45050505b5050600160005550565b60026000541415612543576040805162461bcd60e51b815260206004820152601f60248201526000805160206156a6833981519152604482015290519081900360640190fd5b6002600055612550615676565b6001600160a01b038416600081815260376020526040902090612579903063ffffffff61468516565b825261259e61271061259286600963ffffffff614e1b16565b9063ffffffff614e7416565b606083018190526125bf906127109061259290610bb863ffffffff614e1b16565b608083015281518411156126045760405162461bcd60e51b81526004018080602001828103825260318152602001806156c66031913960400191505060405180910390fd5b6000826060015111801561261c575060008260800151115b6126575760405162461bcd60e51b81526004018080602001828103825260328152602001806158686032913960400191505060405180910390fd5b85806126736001600160a01b038816828863ffffffff614d9916565b816001600160a01b031663ee87255888888760600151896040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b0316815260200184815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156126fa5781810151838201526020016126e2565b50505050905090810190601f1680156127275780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561274957600080fd5b505af115801561275d573d6000803e3d6000fd5b506000925061277e9150506001600160a01b0389163063ffffffff61468516565b60608601518651919250612798919063ffffffff6149af16565b81146127d55760405162461bcd60e51b81526004018080602001828103825260328152602001806157bd6032913960400191505060405180910390fd5b8373__$5e6137a1b5a0a366e2874209b5abf71c10$__63a023726490918a88600001516128138a608001518b60600151614bfc90919063ffffffff16565b8a608001516040518663ffffffff1660e01b815260040180868152602001856001600160a01b03166001600160a01b031681526020018481526020018381526020018281526020019550505050505060006040518083038186803b15801561287a57600080fd5b505af415801561288e573d6000803e3d6000fd5b5050505061292b603560009054906101000a90046001600160a01b03166001600160a01b031663ee8912966040518163ffffffff1660e01b815260040160206040518083038186803b1580156128e357600080fd5b505afa1580156128f7573d6000803e3d6000fd5b505050506040513d602081101561290d57600080fd5b505160808701516001600160a01b038b16919063ffffffff614d9916565b876001600160a01b0316896001600160a01b03167f5b8f46461c1dd69fb968f1a003acee221ea3e19540e350233b612ddb43433b558988606001518960800151426040518085815260200184815260200183815260200182815260200194505050505060405180910390a35050600160005550505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156129ea57600080fd5b505afa1580156129fe573d6000803e3d6000fd5b505050506040513d6020811015612a1457600080fd5b50516001600160a01b031614612a56576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600b0155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612ab957600080fd5b505afa158015612acd573d6000803e3d6000fd5b505050506040513d6020811015612ae357600080fd5b50516001600160a01b031614612b25576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b8115612bb6576001600160a01b0383166000908152603760205260408082208151637b1dd5df60e11b815260048101919091528315156024820152905173__$2ec35834968386f54fa313129cf94664e4$__9263f63babbe9260448082019391829003018186803b158015612b9957600080fd5b505af4158015612bad573d6000803e3d6000fd5b50505050612c35565b6001600160a01b03831660009081526037602052604080822081516372efab5360e11b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__9263e5df56a69260248082019391829003018186803b158015612c1c57600080fd5b505af4158015612c30573d6000803e3d6000fd5b505050505b505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612c7e57600080fd5b505afa158015612c92573d6000803e3d6000fd5b505050506040513d6020811015612ca857600080fd5b50516001600160a01b031614612cea576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600a0155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612d4d57600080fd5b505afa158015612d61573d6000803e3d6000fd5b505050506040513d6020811015612d7757600080fd5b50516001600160a01b031614612db9576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600d018054911515600160d81b0260ff60d81b19909216919091179055565b600073__$7347ff53b2b46c21e26a37164ae7f6739f$__634d9afd5e858585603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015612e6457600080fd5b505afa158015612e78573d6000803e3d6000fd5b505050506040513d6020811015612e8e57600080fd5b505160405160e089811b6001600160e01b03191682526001600160a01b0389811660048401908152898216602485015260448401899052606484018890526084840187905290841660c484015260a48301918252845460e484018190529092610104019085908015612f2957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f0b575b50509850505050505050505060206040518083038186803b158015612f4d57600080fd5b505af4158015612f61573d6000803e3d6000fd5b505050506040513d6020811015612f7757600080fd5b5051949350505050565b600281565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b158015612fca57600080fd5b505afa158015612fde573d6000803e3d6000fd5b505050506040513d6020811015612ff457600080fd5b50516001600160a01b031614613036576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b039091166000908152603760205260409020600d018054911515600160e81b0260ff60e81b19909216919091179055565b600260005414156130b4576040805162461bcd60e51b815260206004820152601f60248201526000805160206156a6833981519152604482015290519081900360640190fd5b600260009081556001600160a01b038086168083526037602090815260408085209388168552603882528085208386529091528084208151630d9e1f7160e11b81526004810185905260248101939093526044830187905290519293909273__$69254465eb8f179ea24caa73cf68b23524$__92631b3c3ee2926064808301939192829003018186803b15801561314a57600080fd5b505af415801561315e573d6000803e3d6000fd5b50505050826000141561317d5760048101805465ff0000000000191690555b61318682614eb6565b613199828760008763ffffffff6147d216565b6131b36001600160a01b038716868663ffffffff614d9916565b846001600160a01b0316866001600160a01b03167f9c4ed599cd8555b9c1e8cd7643240d7d71eb76b792948c49fcb4d411f7b6b3c68642604051808381526020018281526020019250505060405180910390a35050600160005550505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561325757600080fd5b505afa15801561326b573d6000803e3d6000fd5b505050506040513d602081101561328157600080fd5b50516001600160a01b0316146132c3576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038416600090815260376020526040808220815163126ee27360e11b81526004810191909152602481018690526044810185905260648101849052905173__$2ec35834968386f54fa313129cf94664e4$__926324ddc4e69260848082019391829003018186803b15801561333e57600080fd5b505af4158015613352573d6000803e3d6000fd5b5050505050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b1580156133a057600080fd5b505afa1580156133b4573d6000803e3d6000fd5b505050506040513d60208110156133ca57600080fd5b50516001600160a01b03161461340c576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03821660009081526037602052604090208180156134315750805415155b8015613441575060008160070154115b613477576040805162461bcd60e51b8152602060048201526002602482015261323960f01b604482015290519081900360640190fd5b600d018054911515600160e01b0260ff60e01b1990921691909117905550565b600080600080600080600073__$7347ff53b2b46c21e26a37164ae7f6739f$__63901d711489603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b15801561351157600080fd5b505afa158015613525573d6000803e3d6000fd5b505050506040513d602081101561353b57600080fd5b50516040516001600160e01b031960e088901b1681526001600160a01b03808716600483019081526024830187905260448301869052908316608483015260a060648301908152845460a484018190529192909160c490910190859080156135cc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116135ae575b5050965050505050505060c06040518083038186803b1580156135ee57600080fd5b505af4158015613602573d6000803e3d6000fd5b505050506040513d60c081101561361857600080fd5b5080516020808301516040808501516060860151608090960151603654835163ab8bb39360e01b8152600481018890526024810186905260448101849052606481018990526001600160a01b0390911660848201529251959d50929b5099509096509294506000935073__$7347ff53b2b46c21e26a37164ae7f6739f$__9263ab8bb3939260a48083019392829003018186803b1580156136b857600080fd5b505af41580156136cc573d6000803e3d6000fd5b505050506040513d60208110156136e257600080fd5b50519698959750939594919390925090565b60006136fe614f4d565b60025490915060ff16806137155750613715614f52565b80613721575060015481115b61375c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615810602e913960400191505060405180910390fd5b60025460ff1615801561377d576002805460ff191660019081179091558290555b603580546001600160a01b0319166001600160a01b03858116919091179182905560408051633efbbf0f60e21b81529051929091169163fbeefc3c91600480820192602092909190829003018186803b1580156137d957600080fd5b505afa1580156137ed573d6000803e3d6000fd5b505050506040513d602081101561380357600080fd5b5051603680546001600160a01b0319166001600160a01b039092169190911790558015612c35576002805460ff19169055505050565b6035546001600160a01b031681565b6002600054141561388e576040805162461bcd60e51b815260206004820152601f60248201526000805160206156a6833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0380861680835260376020908152604080852033808752603884528287209487529383528186206036548351630e563a7d60e41b81526004810196909652602486018b9052925191969095909492169263e563a7d09260448082019391829003018186803b15801561390d57600080fd5b505afa158015613921573d6000803e3d6000fd5b505050506040513d602081101561393757600080fd5b5051600b840154909150600090613a5a90600a0a61259261395e8a8663ffffffff6149af16565b603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b1580156139ac57600080fd5b505afa1580156139c0573d6000803e3d6000fd5b505050506040513d60208110156139d657600080fd5b50516040805163b3596f0760e01b81526001600160a01b038f811660048301529151919092169163b3596f07916024808301926020929190829003018186803b158015613a2257600080fd5b505afa158015613a36573d6000803e3d6000fd5b505050506040513d6020811015613a4c57600080fd5b50519063ffffffff614e1b16565b905073__$69254465eb8f179ea24caa73cf68b23524$__634c20618285858b8b868c896019603760386039603560009054906101000a90046001600160a01b03166001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015613ad357600080fd5b505afa158015613ae7573d6000803e3d6000fd5b505050506040513d6020811015613afd57600080fd5b50516040516001600160e01b031960e08f901b168152600481018d8152602482018d90526001600160a01b03808d166044840152606483018c9052608483018b905260a483018a905260c4830189905260e48301889052610104830187905261012483018690528316610164830152610180610144830190815284546101848401819052919290916101a49091019085908015613bc357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613ba5575b50509d505050505050505050505050505060006040518083038186803b158015613bec57600080fd5b505af4158015613c00573d6000803e3d6000fd5b505050506000808473__$259b519ec4c35fa58681035973c79c801a$__634b170a5a9091886040518363ffffffff1660e01b8152600401808381526020018281526020019250505060606040518083038186803b158015613c6057600080fd5b505af4158015613c74573d6000803e3d6000fd5b505050506040513d6060811015613c8a57600080fd5b508051604090910151909250905073__$5e6137a1b5a0a366e2874209b5abf71c10$__63a590d4f2878785858e8e6002811115613cc357fe5b6040518763ffffffff1660e01b815260040180878152602001868152602001858152602001848152602001838152602001826002811115613d0057fe5b60ff168152602001965050505050505060006040518083038186803b158015613d2857600080fd5b505af4158015613d3c573d6000803e3d6000fd5b505050508473__$259b519ec4c35fa58681035973c79c801a$__6390394c699091888c85898e6002811115613d6d57fe5b6040518763ffffffff1660e01b815260040180878152602001868152602001858152602001848152602001838152602001826002811115613daa57fe5b60ff168152602001965050505050505060006040518083038186803b158015613dd257600080fd5b505af4158015613de6573d6000803e3d6000fd5b50613e0092508891508c905060008c63ffffffff6147d216565b613e1a6001600160a01b038b16338b63ffffffff614d9916565b61ffff8716336001600160a01b038c167f1e77446728e5558aa1b7e81e0cdab9cc1b075ba893b740600c76a315c2caa5538c8c60018e6002811115613e5b57fe5b6002811115613e6657fe5b14613e75578b60040154613e7b565b8a600301545b60408051938452602084019290925282820152606082018a9052608082018790524260a0830152519081900360c00190a4505060016000555050505050505050565b60026000541415613f03576040805162461bcd60e51b815260206004820152601f60248201526000805160206156a6833981519152604482015290519081900360640190fd5b600260009081556001600160a01b03808416808352603760209081526040808520938616855260388252808520928552919052808320815163258b852d60e11b815260048101829052602481018490529151929390929091829173__$259b519ec4c35fa58681035973c79c801a$__91634b170a5a916044808301926060929190829003018186803b158015613f9857600080fd5b505af4158015613fac573d6000803e3d6000fd5b505050506040513d6060811015613fc257600080fd5b50602081015160409091015190925090508161400f5760405162461bcd60e51b815260040180806020018281038252602e8152602001806156f7602e913960400191505060405180910390fd5b600161401a84614659565b600281111561402557fe5b146140615760405162461bcd60e51b815260040180806020018281038252603481526020018061575a6034913960400191505060405180910390fd5b600061409a6140896aa56fa5b99019a5c800000061407d614f58565b9063ffffffff6149af16565b60058701549063ffffffff614f6816565b90508460010154846003015410806140b55750808460030154115b1561416f5760006140ce86868a8663ffffffff614fa016565b85549091506140e3908463ffffffff6149af16565b85556005860154600386015560048501805464ffffffffff19164264ffffffffff1617905561411586896000806147d2565b6040805182815260208101859052428183015290516001600160a01b03808a1692908b16917f5050ad184862424ee0852d1838d355ad65bed1e5e6da67ac9a2dac1922677f609181900360600190a35050505050506141a6565b60405162461bcd60e51b815260040180806020018281038252602f81526020018061578e602f913960400191505060405180910390fd5b50506001600055565b60001981565b6001600160a01b03811660009081526037602052604081206141d690614fcb565b92915050565b60026000541415614222576040805162461bcd60e51b815260206004820152601f60248201526000805160206156a6833981519152604482015290519081900360640190fd5b600260009081556001600160a01b0384168082526037602090815260408084203385526038835281852093855292909152808320815163664f158360e01b8152600481018490526024810187905291519293909273__$69254465eb8f179ea24caa73cf68b23524$__9263664f1583926044808301939192829003018186803b1580156142ae57600080fd5b505af41580156142c2573d6000803e3d6000fd5b505050600c830154604080516370a0823160e01b815233600482015290516001600160a01b03909216925060009183916370a08231916024808301926020929190829003018186803b15801561431757600080fd5b505afa15801561432b573d6000803e3d6000fd5b505050506040513d602081101561434157600080fd5b505115905061434f84614eb6565b614362848888600063ffffffff6147d216565b80156143825760048301805465ff00000000001916650100000000001790555b604080516394362e8b60e01b81523360048201526024810188905290516001600160a01b038416916394362e8b91604480830192600092919082900301818387803b1580156143d057600080fd5b505af11580156143e4573d6000803e3d6000fd5b506143fe925050506001600160a01b038816876001614c3e565b60408051878152426020820152815161ffff88169233926001600160a01b038c16927fc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c82929181900390910190a4505060016000555050505050565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561449d57600080fd5b505afa1580156144b1573d6000803e3d6000fd5b505050506040513d60208110156144c757600080fd5b50516001600160a01b031614614509576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b03909116600090815260376020526040902060080155565b603554604080516385c858b160e01b8152905133926001600160a01b0316916385c858b1916004808301926020929190829003018186803b15801561456c57600080fd5b505afa158015614580573d6000803e3d6000fd5b505050506040513d602081101561459657600080fd5b50516001600160a01b0316146145d8576040805162461bcd60e51b8152602060048201526002602482015261033360f41b604482015290519081900360640190fd5b6001600160a01b038116600090815260376020526040808220815163041e0b2d60e51b81526004810191909152905173__$2ec35834968386f54fa313129cf94664e4$__926383c165a09260248082019391829003018186803b15801561463e57600080fd5b505af4158015614652573d6000803e3d6000fd5b5050505050565b805460009061466a57506000610bd7565b600082600301541161467d5760026141d6565b506001919050565b600061469083614d63565b156146a657506001600160a01b038116316141d6565b826001600160a01b03166370a08231836040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156146fc57600080fd5b505afa158015614710573d6000803e3d6000fd5b505050506040513d602081101561472657600080fd5b50519392505050565b6000805b60395481101561477c57826001600160a01b03166039828154811061475457fe5b6000918252602090912001546001600160a01b0316141561477457600191505b600101614733565b50806147ce57603980546001810182556000919091527fdc16fef70f8d5ddbc01ee3d903d1e69c18a3c7be080eb86a81e0578814ee58d30180546001600160a01b0319166001600160a01b0384161790555b5050565b600684015460006147f26001600160a01b0386163063ffffffff61468516565b9050614806856001600160a01b0316614d63565b1561481e5761481b813463ffffffff614bfc16565b90505b600d860154600090819081906001600160a01b03166357e37af0896148598961484d898d63ffffffff6149af16565b9063ffffffff614bfc16565b8c600201548d600301548a6040518663ffffffff1660e01b815260040180866001600160a01b03166001600160a01b031681526020018581526020018481526020018381526020018281526020019550505050505060606040518083038186803b1580156148c657600080fd5b505afa1580156148da573d6000803e3d6000fd5b505050506040513d60608110156148f057600080fd5b50805160208083015160409384015160018e0184905560058e0182905560048e01819055600d8e01805464ffffffffff4216600160a01b0264ffffffffff60a01b199091161790558d5460078f015486518681529485018490528487018c905260608501839052608085019190915260a0840152935192965094509192506001600160a01b038a16917f131cf1f61e39fd78f61f07d78533f5b6c13629c80ef6965983e92c72efbaa4a4919081900360c00190a2505050505050505050565b600082820183811015614a09576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b81614a1a57614652565b614a2385614d63565b15614be15781341015614a675760405162461bcd60e51b815260040180806020018281038252602a81526020018061583e602a913960400191505060405180910390fd5b6001600160a01b0383163014614b1a576040516000906001600160a01b0385169061c35090859084818181858888f193505050503d8060008114614ac7576040519150601f19603f3d011682016040523d82523d6000602084013e614acc565b606091505b5050905080614b18576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b505b808015614b2657508134115b15614bdc5760006001600160a01b038516614b47348563ffffffff614bfc16565b60405161c35091906000818181858888f193505050503d8060008114614b89576040519150601f19603f3d011682016040523d82523d6000602084013e614b8e565b606091505b5050905080614bda576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b505b614652565b6146526001600160a01b03861685858563ffffffff61500516565b6000614a0983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061505f565b81614c4857612c35565b614c5183614d63565b15614d485781341015614c955760405162461bcd60e51b81526004018080602001828103825260358152602001806157256035913960400191505060405180910390fd5b8015614d4357600033614cae348563ffffffff614bfc16565b60405161c35091906000818181858888f193505050503d8060008114614cf0576040519150601f19603f3d011682016040523d82523d6000602084013e614cf5565b606091505b5050905080614d41576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b505b612c35565b612c356001600160a01b03841633308563ffffffff61500516565b60006001600160a01b03821615806141d65750506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1490565b80614da357612c35565b614dac83614d63565b15614e01576040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114614cf0576040519150601f19603f3d011682016040523d82523d6000602084013e614cf5565b612c356001600160a01b038416838363ffffffff6150b916565b600082614e2a575060006141d6565b82820282848281614e3757fe5b0414614a095760405162461bcd60e51b81526004018080602001828103825260218152602001806157ef6021913960400191505060405180910390fd5b6000614a0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061510b565b6000614ec182615170565b905080156147ce576001820154600d830154600091614eed91600160a01b900464ffffffffff1661518d565b8354909150614f0390829063ffffffff614f6816565b83556004830154600d840154600091614f2991600160a01b900464ffffffffff166151f6565b9050614f42846007015482614f6890919063ffffffff16565b600785015550505050565b600290565b303b1590565b6b033b2e3c9fd0803ce800000090565b6000614a096b033b2e3c9fd0803ce8000000612592614f8d868663ffffffff614e1b16565b6b019d971e4fe8401e74000000906149af565b6000614fab85614eb6565b6003840154614fc3908690849063ffffffff61525216565b949350505050565b600080614a098360000154614ff9856001015486600d0160149054906101000a900464ffffffffff1661518d565b9063ffffffff614f6816565b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526117169085906152c2565b600081848411156150b15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610f57578181015183820152602001610f3f565b505050900390565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612c359084906152c2565b6000818361515a5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610f57578181015183820152602001610f3f565b50600083858161516657fe5b0495945050505050565b60006141d6826003015483600201546149af90919063ffffffff16565b6000806151a74264ffffffffff851663ffffffff614bfc16565b905060006151d06151bb6301e13380615373565b6151c484615373565b9063ffffffff61538916565b90506151ed6151dd614f58565b61407d878463ffffffff614f6816565b95945050505050565b6000806152104264ffffffffff851663ffffffff614bfc16565b90506000615228856301e1338063ffffffff614e7416565b90506151ed82615246615239614f58565b849063ffffffff6149af16565b9063ffffffff6153ac16565b6002830154615267818463ffffffff6149af16565b6002850155600061527b83614ff986615373565b905060006152908660060154614ff985615373565b90506152b26152a28760020154615373565b6151c4848463ffffffff6149af16565b8660060181905550505050505050565b6060615317826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166154069092919063ffffffff16565b805190915015612c355780806020019051602081101561533657600080fd5b5051612c355760405162461bcd60e51b815260040180806020018281038252602a81526020018061589a602a913960400191505060405180910390fd5b60006141d682633b9aca0063ffffffff614e1b16565b600060028204614fc383612592615239876b033b2e3c9fd0803ce8000000614e1b565b6000600282066153c8576b033b2e3c9fd0803ce80000006153ca565b825b90506002820491505b81156141d6576153e38384614f68565b925060028206156153fb576153f88184614f68565b90505b6002820491506153d3565b6060614fc38484600085606061541b85610b9e565b61546c576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106154ab5780518252601f19909201916020918201910161548c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461550d576040519150601f19603f3d011682016040523d82523d6000602084013e615512565b606091505b50915091508115615526579150614fc39050565b8051156155365780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315610f57578181015183820152602001610f3f565b60405180610280016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600064ffffffffff1681526020016000151581526020016000151581526020016000151581526020016000151581526020016000151581525090565b6040518060e00160405280600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052806000815260200160008152602001600081526020016000815260200160008152509056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c005468657265206973206e6f7420656e6f756768206c697175696469747920617661696c61626c6520746f20626f72726f775573657220646f6573206e6f74206861766520616e7920626f72726f7720666f722074686973207265736572766554686520616d6f756e7420616e64207468652076616c75652073656e7420746f206465706f73697420646f206e6f74206d61746368546865207573657220626f72726f77206973207661726961626c6520616e642063616e6e6f7420626520726562616c616e636564496e746572657374207261746520726562616c616e636520636f6e646974696f6e732077657265206e6f74206d65745468652061637475616c2062616c616e6365206f66207468652070726f746f636f6c20697320696e636f6e73697374656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a656457726f6e67207573616765206f66204554482e756e6976657273616c5472616e7366657246726f6d28295468652072657175657374656420616d6f756e7420697320746f6f20736d616c6c20666f72206120466c6173684c6f616e2e5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564a26469706673582212205a79006581ec2bb14559bbbb5200b067a9381130e35c8c4f848a1f719dfb188864736f6c63430006080033";
export interface LendingPoolLibraryAddresses {
["__$259b519ec4c35fa58681035973c79c801a$__"]: string;
["__$2ec35834968386f54fa313129cf94664e4$__"]: string;
["__$69254465eb8f179ea24caa73cf68b23524$__"]: string;
["__$5e6137a1b5a0a366e2874209b5abf71c10$__"]: string;
["__$7347ff53b2b46c21e26a37164ae7f6739f$__"]: string;
}