mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
873 lines
38 KiB
TypeScript
873 lines
38 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 {BigNumberish} from 'ethers/utils';
|
|
|
|
import {TransactionOverrides} from '.';
|
|
import {AToken} from './AToken';
|
|
|
|
export class ATokenFactory extends ContractFactory {
|
|
constructor(signer?: Signer) {
|
|
super(_abi, _bytecode, signer);
|
|
}
|
|
|
|
deploy(
|
|
_addressesProvider: string,
|
|
_underlyingAsset: string,
|
|
_underlyingAssetDecimals: BigNumberish,
|
|
_name: string,
|
|
_symbol: string,
|
|
overrides?: TransactionOverrides
|
|
): Promise<AToken> {
|
|
return super.deploy(
|
|
_addressesProvider,
|
|
_underlyingAsset,
|
|
_underlyingAssetDecimals,
|
|
_name,
|
|
_symbol,
|
|
overrides
|
|
) as Promise<AToken>;
|
|
}
|
|
getDeployTransaction(
|
|
_addressesProvider: string,
|
|
_underlyingAsset: string,
|
|
_underlyingAssetDecimals: BigNumberish,
|
|
_name: string,
|
|
_symbol: string,
|
|
overrides?: TransactionOverrides
|
|
): UnsignedTransaction {
|
|
return super.getDeployTransaction(
|
|
_addressesProvider,
|
|
_underlyingAsset,
|
|
_underlyingAssetDecimals,
|
|
_name,
|
|
_symbol,
|
|
overrides
|
|
);
|
|
}
|
|
attach(address: string): AToken {
|
|
return super.attach(address) as AToken;
|
|
}
|
|
connect(signer: Signer): ATokenFactory {
|
|
return super.connect(signer) as ATokenFactory;
|
|
}
|
|
static connect(address: string, signerOrProvider: Signer | Provider): AToken {
|
|
return new Contract(address, _abi, signerOrProvider) as AToken;
|
|
}
|
|
}
|
|
|
|
const _abi = [
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'contract LendingPoolAddressesProvider',
|
|
name: '_addressesProvider',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'address',
|
|
name: '_underlyingAsset',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint8',
|
|
name: '_underlyingAssetDecimals',
|
|
type: 'uint8',
|
|
},
|
|
{
|
|
internalType: 'string',
|
|
name: '_name',
|
|
type: 'string',
|
|
},
|
|
{
|
|
internalType: 'string',
|
|
name: '_symbol',
|
|
type: 'string',
|
|
},
|
|
],
|
|
stateMutability: 'nonpayable',
|
|
type: 'constructor',
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: 'owner',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: 'spender',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: 'value',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'Approval',
|
|
type: 'event',
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: '_from',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: '_to',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_value',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_fromBalanceIncrease',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_toBalanceIncrease',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_fromIndex',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_toIndex',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'BalanceTransfer',
|
|
type: 'event',
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: '_from',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_value',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_fromBalanceIncrease',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_fromIndex',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'BurnOnLiquidation',
|
|
type: 'event',
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: '_from',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: '_to',
|
|
type: 'address',
|
|
},
|
|
],
|
|
name: 'InterestRedirectionAllowanceChanged',
|
|
type: 'event',
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: '_from',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: '_to',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_redirectedBalance',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_fromBalanceIncrease',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_fromIndex',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'InterestStreamRedirected',
|
|
type: 'event',
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: '_from',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_value',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_fromBalanceIncrease',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_fromIndex',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'MintOnDeposit',
|
|
type: 'event',
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: '_from',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_value',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_fromBalanceIncrease',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_fromIndex',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'Redeem',
|
|
type: 'event',
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: '_targetAddress',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_targetBalanceIncrease',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_targetIndex',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_redirectedBalanceAdded',
|
|
type: 'uint256',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: '_redirectedBalanceRemoved',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'RedirectedBalanceUpdated',
|
|
type: 'event',
|
|
},
|
|
{
|
|
anonymous: false,
|
|
inputs: [
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: 'from',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: true,
|
|
internalType: 'address',
|
|
name: 'to',
|
|
type: 'address',
|
|
},
|
|
{
|
|
indexed: false,
|
|
internalType: 'uint256',
|
|
name: 'value',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'Transfer',
|
|
type: 'event',
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: 'UINT_MAX_VALUE',
|
|
outputs: [
|
|
{
|
|
internalType: 'uint256',
|
|
name: '',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_to',
|
|
type: 'address',
|
|
},
|
|
],
|
|
name: 'allowInterestRedirectionTo',
|
|
outputs: [],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: 'owner',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'address',
|
|
name: 'spender',
|
|
type: 'address',
|
|
},
|
|
],
|
|
name: 'allowance',
|
|
outputs: [
|
|
{
|
|
internalType: 'uint256',
|
|
name: '',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: 'spender',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint256',
|
|
name: 'amount',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'approve',
|
|
outputs: [
|
|
{
|
|
internalType: 'bool',
|
|
name: '',
|
|
type: 'bool',
|
|
},
|
|
],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_user',
|
|
type: 'address',
|
|
},
|
|
],
|
|
name: 'balanceOf',
|
|
outputs: [
|
|
{
|
|
internalType: 'uint256',
|
|
name: '',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_account',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint256',
|
|
name: '_value',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'burnOnLiquidation',
|
|
outputs: [],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: 'decimals',
|
|
outputs: [
|
|
{
|
|
internalType: 'uint8',
|
|
name: '',
|
|
type: 'uint8',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: 'spender',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint256',
|
|
name: 'subtractedValue',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'decreaseAllowance',
|
|
outputs: [
|
|
{
|
|
internalType: 'bool',
|
|
name: '',
|
|
type: 'bool',
|
|
},
|
|
],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_user',
|
|
type: 'address',
|
|
},
|
|
],
|
|
name: 'getInterestRedirectionAddress',
|
|
outputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '',
|
|
type: 'address',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_user',
|
|
type: 'address',
|
|
},
|
|
],
|
|
name: 'getRedirectedBalance',
|
|
outputs: [
|
|
{
|
|
internalType: 'uint256',
|
|
name: '',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_user',
|
|
type: 'address',
|
|
},
|
|
],
|
|
name: 'getUserIndex',
|
|
outputs: [
|
|
{
|
|
internalType: 'uint256',
|
|
name: '',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: 'spender',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint256',
|
|
name: 'addedValue',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'increaseAllowance',
|
|
outputs: [
|
|
{
|
|
internalType: 'bool',
|
|
name: '',
|
|
type: 'bool',
|
|
},
|
|
],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_user',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint256',
|
|
name: '_amount',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'isTransferAllowed',
|
|
outputs: [
|
|
{
|
|
internalType: 'bool',
|
|
name: '',
|
|
type: 'bool',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_account',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint256',
|
|
name: '_amount',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'mintOnDeposit',
|
|
outputs: [],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: 'name',
|
|
outputs: [
|
|
{
|
|
internalType: 'string',
|
|
name: '',
|
|
type: 'string',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_user',
|
|
type: 'address',
|
|
},
|
|
],
|
|
name: 'principalBalanceOf',
|
|
outputs: [
|
|
{
|
|
internalType: 'uint256',
|
|
name: '',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'uint256',
|
|
name: '_amount',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'redeem',
|
|
outputs: [],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_to',
|
|
type: 'address',
|
|
},
|
|
],
|
|
name: 'redirectInterestStream',
|
|
outputs: [],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_from',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'address',
|
|
name: '_to',
|
|
type: 'address',
|
|
},
|
|
],
|
|
name: 'redirectInterestStreamOf',
|
|
outputs: [],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: 'symbol',
|
|
outputs: [
|
|
{
|
|
internalType: 'string',
|
|
name: '',
|
|
type: 'string',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: 'totalSupply',
|
|
outputs: [
|
|
{
|
|
internalType: 'uint256',
|
|
name: '',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: 'recipient',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint256',
|
|
name: 'amount',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'transfer',
|
|
outputs: [
|
|
{
|
|
internalType: 'bool',
|
|
name: '',
|
|
type: 'bool',
|
|
},
|
|
],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: 'sender',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'address',
|
|
name: 'recipient',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint256',
|
|
name: 'amount',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'transferFrom',
|
|
outputs: [
|
|
{
|
|
internalType: 'bool',
|
|
name: '',
|
|
type: 'bool',
|
|
},
|
|
],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_from',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'address',
|
|
name: '_to',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint256',
|
|
name: '_value',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'transferOnLiquidation',
|
|
outputs: [],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '_target',
|
|
type: 'address',
|
|
},
|
|
{
|
|
internalType: 'uint256',
|
|
name: '_amount',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
name: 'transferUnderlyingTo',
|
|
outputs: [
|
|
{
|
|
internalType: 'uint256',
|
|
name: '',
|
|
type: 'uint256',
|
|
},
|
|
],
|
|
stateMutability: 'nonpayable',
|
|
type: 'function',
|
|
},
|
|
{
|
|
inputs: [],
|
|
name: 'underlyingAssetAddress',
|
|
outputs: [
|
|
{
|
|
internalType: 'address',
|
|
name: '',
|
|
type: 'address',
|
|
},
|
|
],
|
|
stateMutability: 'view',
|
|
type: 'function',
|
|
},
|
|
{
|
|
stateMutability: 'payable',
|
|
type: 'receive',
|
|
},
|
|
];
|
|
|
|
const _bytecode =
|
|
'0x60806040523480156200001157600080fd5b5060405162002bac38038062002bac833981810160405260a08110156200003757600080fd5b8151602083015160408085015160608601805192519496939591949391820192846401000000008211156200006b57600080fd5b9083019060208201858111156200008157600080fd5b82516401000000008111828201881017156200009c57600080fd5b82525081516020918201929091019080838360005b83811015620000cb578181015183820152602001620000b1565b50505050905090810190601f168015620000f95780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011d57600080fd5b9083019060208201858111156200013357600080fd5b82516401000000008111828201881017156200014e57600080fd5b82525081516020918201929091019080838360005b838110156200017d57818101518382015260200162000163565b50505050905090810190601f168015620001ab5780820380516001836020036101000a031916815260200191505b50604052505082518391508290620001cb906003906020850190620002eb565b508051620001e1906004906020840190620002eb565b50506005805460ff191660121790555062000205836001600160e01b03620002d516565b600a80546001600160a01b0319166001600160a01b03878116919091179182905560408051630261bf8b60e01b815290519290911691630261bf8b91600480820192602092909190829003018186803b1580156200026257600080fd5b505afa15801562000277573d6000803e3d6000fd5b505050506040513d60208110156200028e57600080fd5b5051600b80546001600160a01b0319166001600160a01b0392831617905560058054610100600160a81b031916610100969092169590950217909355506200039092505050565b6005805460ff191660ff92909216919091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032e57805160ff19168380011785556200035e565b828001600101855582156200035e579182015b828111156200035e57825182559160200191906001019062000341565b506200036c92915062000370565b5090565b6200038d91905b808211156200036c576000815560010162000377565b90565b61280c80620003a06000396000f3fe6080604052600436106101855760003560e01c80635eae177c116100d1578063a9059cbb1161008a578063db006a7511610064578063db006a75146106a9578063dd62ed3e146106d3578063ee9907a41461070e578063f866c31914610741576101e1565b8063a9059cbb14610628578063c634dfaa14610661578063d0fc81d214610694576101e1565b80635eae177c1461052057806370a082311461055957806389d1a0fc1461058c57806394362e8b146105a157806395d89b41146105da578063a457c2d7146105ef576101e1565b806323b872dd1161013e578063395093511161011857806339509351146104265780633edb7cb81461045f578063445e8010146104985780634efecaa5146104e7576101e1565b806323b872dd1461037d578063313ce567146103c0578063325a9b13146103eb576101e1565b806306fdde03146101e6578063095ea7b3146102705780630e49072d146102bd57806312c87c2d146102f057806318160ddd146103235780631d51e7cf1461034a576101e1565b366101e1576005546101a49061010090046001600160a01b0316610784565b6101df5760405162461bcd60e51b815260040180806020018281038252603981526020018061256f6039913960400191505060405180910390fd5b005b600080fd5b3480156101f257600080fd5b506101fb6107aa565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023557818101518382015260200161021d565b50505050905090810190601f1680156102625780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027c57600080fd5b506102a96004803603604081101561029357600080fd5b506001600160a01b038135169060200135610841565b604080519115158252519081900360200190f35b3480156102c957600080fd5b506101df600480360360208110156102e057600080fd5b50356001600160a01b031661085f565b3480156102fc57600080fd5b506101df6004803603602081101561031357600080fd5b50356001600160a01b031661086c565b34801561032f57600080fd5b5061033861090b565b60408051918252519081900360200190f35b34801561035657600080fd5b506103386004803603602081101561036d57600080fd5b50356001600160a01b03166109cd565b34801561038957600080fd5b506102a9600480360360608110156103a057600080fd5b506001600160a01b038135811691602081013590911690604001356109e8565b3480156103cc57600080fd5b506103d5610a75565b6040805160ff9092168252519081900360200190f35b3480156103f757600080fd5b506101df6004803603604081101561040e57600080fd5b506001600160a01b0381358116916020013516610a7e565b34801561043257600080fd5b506102a96004803603604081101561044957600080fd5b506001600160a01b038135169060200135610ae4565b34801561046b57600080fd5b506101df6004803603604081101561048257600080fd5b506001600160a01b038135169060200135610b38565b3480156104a457600080fd5b506104cb600480360360208110156104bb57600080fd5b50356001600160a01b0316610c2d565b604080516001600160a01b039092168252519081900360200190f35b3480156104f357600080fd5b506103386004803603604081101561050a57600080fd5b506001600160a01b038135169060200135610c4b565b34801561052c57600080fd5b506102a96004803603604081101561054357600080fd5b506001600160a01b038135169060200135610cb9565b34801561056557600080fd5b506103386004803603602081101561057c57600080fd5b50356001600160a01b0316610d54565b34801561059857600080fd5b506104cb610e07565b3480156105ad57600080fd5b506101df600480360360408110156105c457600080fd5b506001600160a01b038135169060200135610e1b565b3480156105e657600080fd5b506101fb610ef0565b3480156105fb57600080fd5b506102a96004803603604081101561061257600080fd5b506001600160a01b038135169060200135610f51565b34801561063457600080fd5b506102a96004803603604081101561064b57600080fd5b506001600160a01b038135169060200135610fbf565b34801561066d57600080fd5b506103386004803603602081101561068457600080fd5b50356001600160a01b0316610fd3565b3480156106a057600080fd5b50610338610fde565b3480156106b557600080fd5b506101df600480360360208110156106cc57600080fd5b5035610fe4565b3480156106df57600080fd5b50610338600480360360408110156106f657600080fd5b506001600160a01b038135811691602001351661121e565b34801561071a57600080fd5b506103386004803603602081101561073157600080fd5b50356001600160a01b0316611249565b34801561074d57600080fd5b506101df6004803603606081101561076457600080fd5b506001600160a01b03813581169160208101359091169060400135611264565b6001600160a01b03811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b919050565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108365780601f1061080b57610100808354040283529160200191610836565b820191906000526020600020905b81548152906001019060200180831161081957829003601f168201915b505050505090505b90565b600061085561084e6112bd565b84846112c1565b5060015b92915050565b61086933826113ad565b50565b6001600160a01b0381163314156108b45760405162461bcd60e51b81526004018080602001828103825260258152602001806125a86025913960400191505060405180910390fd5b3360008181526009602052604080822080546001600160a01b0319166001600160a01b03861690811790915590519092917fc2d6a42a9d5273283f73009a07aacfb043f2f91173a8d9d33b504afe898db08b91a350565b60008061091661159c565b90508061092757600091505061083e565b600b546005546040805163d15e005360e01b81526001600160a01b036101009093048316600482015290516109c7936109c293169163d15e0053916024808301926020929190829003018186803b15801561098157600080fd5b505afa158015610995573d6000803e3d6000fd5b505050506040513d60208110156109ab57600080fd5b50516109b6846115a2565b9063ffffffff6115b816565b611603565b91505090565b6001600160a01b031660009081526008602052604090205490565b60006109f584848461161c565b610a6b84610a016112bd565b610a66856040518060600160405280602881526020016125ee602891396001600160a01b038a16600090815260016020526040812090610a3f6112bd565b6001600160a01b03168152602081019190915260400160002054919063ffffffff61168b16565b6112c1565b5060019392505050565b60055460ff1690565b6001600160a01b03828116600090815260096020526040902054163314610ad65760405162461bcd60e51b815260040180806020018281038252603a81526020018061279d603a913960400191505060405180910390fd5b610ae082826113ad565b5050565b6000610855610af16112bd565b84610a668560016000610b026112bd565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff61172216565b600b546001600160a01b03163314610b815760405162461bcd60e51b81526004018080602001828103825260328152602001806127466032913960400191505060405180910390fd5b6000806000610b8f8561177c565b93509350935050610ba185838661186d565b610bab858561196d565b6000610bbd848663ffffffff611a7516565b610bcd57610bca86611ab7565b90505b856001600160a01b03167f90e5d3d68ec162d9c7de393037a3ede04dd44f68e051bf2ace4a73c299dbc4db868584610c055785610c08565b60005b60408051938452602084019290925282820152519081900360600190a2505050505050565b6001600160a01b039081166000908152600760205260409020541690565b600b546000906001600160a01b03163314610c975760405162461bcd60e51b81526004018080602001828103825260328152602001806127466032913960400191505060405180910390fd5b600554610cb39061010090046001600160a01b03168484611b69565b50919050565b600b54600554604080516376e9d61560e01b81526101009092046001600160a01b039081166004840152858116602484015260448301859052905160009391909116916376e9d615916064808301926020929190829003018186803b158015610d2157600080fd5b505afa158015610d35573d6000803e3d6000fd5b505050506040513d6020811015610d4b57600080fd5b50519392505050565b600080610d6083611c42565b6001600160a01b03841660009081526008602052604090205490915081158015610d88575080155b15610d98576000925050506107a5565b6001600160a01b0384811660009081526007602052604090205416610de957610de081610dd486610dcf868463ffffffff61172216565b611c5d565b9063ffffffff611a7516565b925050506107a5565b610de0610dfa82610dd48785611c5d565b839063ffffffff61172216565b60055461010090046001600160a01b031681565b600b546001600160a01b03163314610e645760405162461bcd60e51b81526004018080602001828103825260328152602001806127466032913960400191505060405180910390fd5b600080610e708461177c565b935093505050610e9484610e8d858561172290919063ffffffff16565b600061186d565b610e9e8484611d12565b604080518481526020810184905280820183905290516001600160a01b038616917fbe7799898ca2d813ff902b487c1b434ab45b47edd8f38b77ad5e99aae8341b7a919081900360600190a250505050565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156108365780601f1061080b57610100808354040283529160200191610836565b6000610855610f5e6112bd565b84610a66856040518060600160405280602581526020016127786025913960016000610f886112bd565b6001600160a01b03908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61168b16565b6000610855610fcc6112bd565b848461161c565b600061085982611c42565b60001981565b60008111611039576040805162461bcd60e51b815260206004820181905260248201527f416d6f756e7420746f2072656465656d206e6565647320746f206265203e2030604482015290519081900360640190fd5b60008060006110473361177c565b9195509350915084905060001981141561105e5750825b8381111561109d5760405162461bcd60e51b81526004018080602001828103825260328152602001806124f56032913960400191505060405180910390fd5b6110a73382610cb9565b6110f8576040805162461bcd60e51b815260206004820152601b60248201527f5472616e736665722063616e6e6f7420626520616c6c6f7765642e0000000000604482015290519081900360640190fd5b61110333848361186d565b61110d338261196d565b600061111f858363ffffffff611a7516565b61112f5761112c33611ab7565b90505b600b546005546001600160a01b0391821691639895e3d891610100900416338561115f8a8263ffffffff611a7516565b6040518563ffffffff1660e01b815260040180856001600160a01b03166001600160a01b03168152602001846001600160a01b03166001600160a01b03168152602001838152602001828152602001945050505050600060405180830381600087803b1580156111ce57600080fd5b505af11580156111e2573d6000803e3d6000fd5b50505050336001600160a01b03167fbd5034ffbd47e4e72a94baa2cdb74c6fad73cb3bcdc13036b72ec8306f5a7646838684610c055786610c08565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b031660009081526006602052604090205490565b600b546001600160a01b031633146112ad5760405162461bcd60e51b81526004018080602001828103825260328152602001806127466032913960400191505060405180910390fd5b6112b8838383611e0e565b505050565b3390565b6001600160a01b0383166113065760405162461bcd60e51b81526004018080602001828103825260248152602001806126f86024913960400191505060405180910390fd5b6001600160a01b03821661134b5760405162461bcd60e51b81526004018080602001828103825260228152602001806125276022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03808316600090815260076020526040902054811690821681141561140a5760405162461bcd60e51b815260040180806020018281038252602a815260200180612616602a913960400191505060405180910390fd5b6000806000806114198761177c565b9350935093509350600083116114605760405162461bcd60e51b81526004018080602001828103825260428152602001806126406042913960600191505060405180910390fd5b6001600160a01b0385161561147b5761147b8760008661186d565b866001600160a01b0316866001600160a01b03161415611507576001600160a01b038716600081815260076020908152604080832080546001600160a01b03191690558051878152918201869052818101859052519192917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a73487355949181900360600190a35050505050610ae0565b6001600160a01b03878116600090815260076020526040812080546001600160a01b03191692891692909217909155611543908890859061186d565b604080518481526020810184905280820183905290516001600160a01b0380891692908a16917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a73487355949181900360600190a350505050505050565b60025490565b600061085982633b9aca0063ffffffff611f5d16565b60006115fc6b033b2e3c9fd0803ce80000006115f06115dd868663ffffffff611f5d16565b6b019d971e4fe8401e7400000090611722565b9063ffffffff611fb616565b9392505050565b6000631dcd65006115fc633b9aca006115f08386611722565b82816116288282610cb9565b611679576040805162461bcd60e51b815260206004820152601b60248201527f5472616e736665722063616e6e6f7420626520616c6c6f7765642e0000000000604482015290519081900360640190fd5b611684858585611e0e565b5050505050565b6000818484111561171a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116df5781810151838201526020016116c7565b50505050905090810190601f16801561170c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000828201838110156115fc576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600080600080600061178d86611c42565b9050600061179e82610dd489610d54565b90506117aa8782611d12565b600b546005546040805163d15e005360e01b81526101009092046001600160a01b0390811660048401529051600093919091169163d15e0053916024808301926020929190829003018186803b15801561180357600080fd5b505afa158015611817573d6000803e3d6000fd5b505050506040513d602081101561182d57600080fd5b50516001600160a01b038916600090815260066020526040902081905590508261185d818463ffffffff61172216565b9099909850919650945092505050565b6001600160a01b03808416600090815260076020526040902054168061189357506112b8565b60008061189f8361177c565b6001600160a01b03871660009081526008602052604090205491955093506118d59250869150610dd4908863ffffffff61172216565b6001600160a01b03808516600090815260086020908152604080832094909455600790529190912054168015611911576119118484600061186d565b60408051848152602081018490528082018890526060810187905290516001600160a01b038616917f70ff8cf632603e2bfd1afb7e4061acce53d95356b1be9726b99fa22ba733b01f919081900360800190a250505050505050565b6001600160a01b0382166119b25760405162461bcd60e51b81526004018080602001828103825260218152602001806126b26021913960400191505060405180910390fd5b6119be826000836112b8565b611a01816040518060600160405280602281526020016124d3602291396001600160a01b038516600090815260208190526040902054919063ffffffff61168b16565b6001600160a01b038316600090815260208190526040902055600254611a2d908263ffffffff611a7516565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006115fc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061168b565b6001600160a01b038116600081815260076020908152604080832080546001600160a01b03191690558051838152918201839052818101839052519192839290917f5e3cad45b1fe24159d1cb39788d82d0f69cc15770aa96fba1d3d1a7348735594919081900360600190a36001600160a01b038216600090815260086020526040902054611b6157506001600160a01b03811660009081526006602052604081205560016107a5565b5060006107a5565b80611b73576112b8565b611b7c83610784565b15611c28576040516000906001600160a01b0384169061c35090849084818181858888f193505050503d8060008114611bd1576040519150601f19603f3d011682016040523d82523d6000602084013e611bd6565b606091505b5050905080611c22576040805162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b604482015290519081900360640190fd5b506112b8565b6112b86001600160a01b038416838363ffffffff611ff816565b6001600160a01b031660009081526020819052604090205490565b6001600160a01b03808316600090815260066020908152604080832054600b54600554835163d15e005360e01b815261010090910487166004820152925194956115fc956109c2959394611d0694939092169263d15e00539260248082019391829003018186803b158015611cd157600080fd5b505afa158015611ce5573d6000803e3d6000fd5b505050506040513d6020811015611cfb57600080fd5b50516109b6876115a2565b9063ffffffff61204a16565b6001600160a01b038216611d6d576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611d79600083836112b8565b600254611d8c908263ffffffff61172216565b6002556001600160a01b038216600090815260208190526040902054611db8908263ffffffff61172216565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008111611e4d5760405162461bcd60e51b81526004018080602001828103825260308152602001806126826030913960400191505060405180910390fd5b6000806000611e5b8661177c565b93509350935050600080611e6e8761177c565b935093505050611e7f88858861186d565b611e9387610e8d848963ffffffff61172216565b611e9e888888612082565b6000611eb0868863ffffffff611a7516565b158015611ecf5750876001600160a01b0316896001600160a01b031614155b15611ee057611edd89611ab7565b90505b876001600160a01b0316896001600160a01b03167f89a178eaa27e0cd201bd795ca8ff716ac0df9618494510ca79771cfc66ffcde889888786611f235789611f26565b60005b60408051948552602085019390935283830191909152606083015260808201879052519081900360a00190a3505050505050505050565b600082611f6c57506000610859565b82820282848281611f7957fe5b04146115fc5760405162461bcd60e51b81526004018080602001828103825260218152602001806125cd6021913960400191505060405180910390fd5b60006115fc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121e9565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526112b890849061224e565b60006002820461207a836115f061206d876b033b2e3c9fd0803ce8000000611f5d565b849063ffffffff61172216565b949350505050565b6001600160a01b0383166120c75760405162461bcd60e51b81526004018080602001828103825260258152602001806126d36025913960400191505060405180910390fd5b6001600160a01b03821661210c5760405162461bcd60e51b81526004018080602001828103825260238152602001806124b06023913960400191505060405180910390fd5b6121178383836112b8565b61215a81604051806060016040528060268152602001612549602691396001600160a01b038616600090815260208190526040902054919063ffffffff61168b16565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461218f908263ffffffff61172216565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081836122385760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156116df5781810151838201526020016116c7565b50600083858161224457fe5b0495945050505050565b60606122a3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166122ff9092919063ffffffff16565b8051909150156112b8578080602001905160208110156122c257600080fd5b50516112b85760405162461bcd60e51b815260040180806020018281038252602a81526020018061271c602a913960400191505060405180910390fd5b606061207a8484600085606061231485612476565b612365576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b602083106123a45780518252601f199092019160209182019101612385565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612406576040519150601f19603f3d011682016040523d82523d6000602084013e61240b565b606091505b5091509150811561241f57915061207a9050565b80511561242f5780518082602001fd5b60405162461bcd60e51b81526020600482018181528651602484015286518793919283926044019190850190808383600083156116df5781810151838201526020016116c7565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061207a57505015159291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365557365722063616e6e6f742072656465656d206d6f7265207468616e2074686520617661696c61626c652062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63655472616e736665727320617265206f6e6c7920616c6c6f7765642069662074686520756e6465726c79696e6720617373657420697320455448557365722063616e6e6f74206769766520616c6c6f77616e636520746f2068696d73656c66536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365496e74657265737420697320616c7265616479207265646972656374656420746f207468652075736572496e7465726573742073747265616d2063616e206f6e6c79206265207265646972656374656420696620746865726520697320612076616c69642062616c616e63655472616e7366657272656420616d6f756e74206e6565647320746f2062652067726561746572207468616e207a65726f45524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645468652063616c6c6572206f6620746869732066756e6374696f6e206d7573742062652061206c656e64696e6720706f6f6c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f43616c6c6572206973206e6f7420616c6c6f77656420746f2072656469726563742074686520696e746572657374206f66207468652075736572a264697066735822122036124f60105c60035698f550a3f538626a6e2de559fc7e3944d631faf8b418db64736f6c63430006080033';
|