9 txs
723.53m calls
constructor
No constructor.
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
APPROVE_WITH_AUTHORIZATION_TYPEHASH
viewfunction APPROVE_WITH_AUTHORIZATION_TYPEHASH() view returns (bytes32)
authorizationState
viewfunction authorizationState(address authorizer, bytes32 nonce) view returns (uint8)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
BLACKLISTER_ROLE
viewfunction BLACKLISTER_ROLE() view returns (bytes32)
blacklisters
viewfunction blacklisters() view returns (address[])
CANCEL_AUTHORIZATION_TYPEHASH
viewfunction CANCEL_AUTHORIZATION_TYPEHASH() view returns (bytes32)
decimals
viewfunction decimals() view returns (uint8)
DECREASE_ALLOWANCE_WITH_AUTHORIZATION_TYPEHASH
viewfunction DECREASE_ALLOWANCE_WITH_AUTHORIZATION_TYPEHASH() view returns (bytes32)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DEPOSITOR_ROLE
viewfunction DEPOSITOR_ROLE() view returns (bytes32)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
EIP712_VERSION
viewfunction EIP712_VERSION() view returns (string)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
INCREASE_ALLOWANCE_WITH_AUTHORIZATION_TYPEHASH
viewfunction INCREASE_ALLOWANCE_WITH_AUTHORIZATION_TYPEHASH() view returns (bytes32)
initialized
viewfunction initialized() view returns (bool)
isBlacklisted
viewfunction isBlacklisted(address account) view returns (bool)
META_TRANSACTION_TYPEHASH
viewfunction META_TRANSACTION_TYPEHASH() view returns (bytes32)
name
viewfunction name() view returns (string)
nonces
viewfunction nonces(address owner) view returns (uint256)
paused
viewfunction paused() view returns (bool)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
pausers
viewfunction pausers() view returns (address[])
PERMIT_TYPEHASH
viewfunction PERMIT_TYPEHASH() view returns (bytes32)
RESCUER_ROLE
viewfunction RESCUER_ROLE() view returns (bytes32)
rescuers
viewfunction rescuers() view returns (address[])
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
TRANSFER_WITH_AUTHORIZATION_TYPEHASH
viewfunction TRANSFER_WITH_AUTHORIZATION_TYPEHASH() view returns (bytes32)
WITHDRAW_WITH_AUTHORIZATION_TYPEHASH
viewfunction WITHDRAW_WITH_AUTHORIZATION_TYPEHASH() view returns (bytes32)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
approveWithAuthorization
nonpayablefunction approveWithAuthorization(address owner, address spender, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
blacklist
nonpayablefunction blacklist(address account)
cancelAuthorization
nonpayablefunction cancelAuthorization(address authorizer, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
decreaseAllowanceWithAuthorization
nonpayablefunction decreaseAllowanceWithAuthorization(address owner, address spender, uint256 decrement, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
deposit
nonpayablefunction deposit(address user, bytes depositData)
executeMetaTransaction
payablefunction executeMetaTransaction(address userAddress, bytes functionSignature, bytes32 sigR, bytes32 sigS, uint8 sigV) payable returns (bytes)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
increaseAllowanceWithAuthorization
nonpayablefunction increaseAllowanceWithAuthorization(address owner, address spender, uint256 increment, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
initialize
nonpayablefunction initialize(string newName, string newSymbol, uint8 newDecimals, address childChainManager)
pause
nonpayablefunction pause()
permit
nonpayablefunction permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
rescueERC20
nonpayablefunction rescueERC20(address tokenContract, address to, uint256 amount)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
transfer
nonpayablefunction transfer(address recipient, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address sender, address recipient, uint256 amount) returns (bool)
transferWithAuthorization
nonpayablefunction transferWithAuthorization(address from, address to, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
unBlacklist
nonpayablefunction unBlacklist(address account)
unpause
nonpayablefunction unpause()
updateMetadata
nonpayablefunction updateMetadata(string newName, string newSymbol)
withdraw
nonpayablefunction withdraw(uint256 amount)
withdrawWithAuthorization
nonpayablefunction withdrawWithAuthorization(address owner, uint256 value, uint256 validAfter, uint256 validBefore, bytes32 nonce, uint8 v, bytes32 r, bytes32 s)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
AuthorizationCanceled
event AuthorizationCanceled(address indexed authorizer, bytes32 indexed nonce)
AuthorizationUsed
event AuthorizationUsed(address indexed authorizer, bytes32 indexed nonce)
Blacklisted
event Blacklisted(address indexed account)
MetaTransactionExecuted
event MetaTransactionExecuted(address userAddress, address relayerAddress, bytes functionSignature)
Pause
event Pause()
RescuerChanged
event RescuerChanged(address indexed newRescuer)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
UnBlacklisted
event UnBlacklisted(address indexed account)
Unpause
event Unpause()
errors
No errors.
creation bytecode
0x60806040526008805460ff19908116909155600d805490911690553480156200002757600080fd5b5060408051602080820180845260008084528451928301909452928152815191929091620000589160039162000084565b5080516200006e90600490602084019062000084565b50506005805460ff191660121790555062000120565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000c757805160ff1916838001178555620000f7565b82800160010185558215620000f7579182015b82811115620000f7578251825591602001919060010190620000da565b506200010592915062000109565b5090565b5b808211156200010557600081556001016200010a565b614cd280620001306000396000f3fe6080604052600436106103815760003560e01c80639010d07c116101d1578063d505accf11610102578063e63ab1e9116100a0578063f515e6f21161006f578063f515e6f214611079578063f9f92be41461108e578063fa2c322d146110c1578063fe575a87146110d657610381565b8063e63ab1e914610fe0578063e8d6fc4714610ff5578063e94a01021461100a578063eccec5a81461106457610381565b8063dd62ed3e116100dc578063dd62ed3e14610df0578063de7ea79d14610e2b578063e1560fd314610f08578063e3ee160e14610f7457610381565b8063d505accf14610d44578063d547741f14610da2578063d916948714610ddb57610381565b8063a9059cbb1161016f578063c237108f11610149578063c237108f14610c0e578063c7b84f8d14610c7a578063ca15c87314610c8f578063cf2c52cb14610cb957610381565b8063a9059cbb14610b26578063b008609514610b5f578063b2118a8d14610bcb57610381565b8063a0cc6a68116101ab578063a0cc6a6814610aae578063a217fddf14610ac3578063a3b0b5a314610ad8578063a457c2d714610aed57610381565b80639010d07c14610a1457806391d1485414610a6057806395d89b4114610a9957610381565b8063313ce567116102b65780635a049a70116102545780637b766e5f116102235780637b766e5f146109565780637cfa1cfa146109b75780637ecebe00146109cc5780638456cb59146109ff57610381565b80635a049a70146108ab5780635c975abb146108f957806370a082311461090e578063713725441461094157610381565b80633950935111610290578063395093511461077d5780633f4ba83a146107b65780634b71f5c3146107cb57806356ce0e6c146107e057610381565b8063313ce567146107045780633644e5151461072f57806336568abe1461074457610381565b80631a89526611610323578063248a9ca3116102fd578063248a9ca3146106625780632e1a7d4d1461068c5780632f2ff15d146106b657806330adf81f146106ef57610381565b80631a895266146105d55780632004d2911461060a57806323b872dd1461061f57610381565b8063100a15601161035f578063100a15601461051f57806310c8b40414610584578063158ef93e146105ab57806318160ddd146105c057610381565b806306fdde0314610386578063095ea7b3146104105780630c53c51c1461045d575b600080fd5b34801561039257600080fd5b5061039b611109565b6040805160208082528351818301528351919283929083019185019080838360005b838110156103d55781810151838201526020016103bd565b50505050905090810190601f1680156104025780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561041c57600080fd5b506104496004803603604081101561043357600080fd5b506001600160a01b0381351690602001356111a0565b604080519115158252519081900360200190f35b61039b600480360360a081101561047357600080fd5b6001600160a01b038235169190810190604081016020820135600160201b81111561049d57600080fd5b8201836020820111156104af57600080fd5b803590602001918460018302840111600160201b831117156104d057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550508235935050506020810135906040013560ff166112c5565b34801561052b57600080fd5b5061053461158d565b60408051602080825283518183015283519192839290830191858101910280838360005b83811015610570578181015183820152602001610558565b505050509050019250505060405180910390f35b34801561059057600080fd5b50610599611646565b60408051918252519081900360200190f35b3480156105b757600080fd5b5061044961166a565b3480156105cc57600080fd5b50610599611673565b3480156105e157600080fd5b50610608600480360360208110156105f857600080fd5b50356001600160a01b0316611679565b005b34801561061657600080fd5b50610599611784565b34801561062b57600080fd5b506104496004803603606081101561064257600080fd5b506001600160a01b038135811691602081013590911690604001356117a8565b34801561066e57600080fd5b506105996004803603602081101561068557600080fd5b5035611922565b34801561069857600080fd5b50610608600480360360208110156106af57600080fd5b5035611937565b3480156106c257600080fd5b50610608600480360360408110156106d957600080fd5b50803590602001356001600160a01b03166119ac565b3480156106fb57600080fd5b50610599611a0f565b34801561071057600080fd5b50610719611a33565b6040805160ff9092168252519081900360200190f35b34801561073b57600080fd5b50610599611a3c565b34801561075057600080fd5b506106086004803603604081101561076757600080fd5b50803590602001356001600160a01b0316611a42565b34801561078957600080fd5b50610449600480360360408110156107a057600080fd5b506001600160a01b038135169060200135611aa3565b3480156107c257600080fd5b50610608611bbd565b3480156107d757600080fd5b50610599611c75565b3480156107ec57600080fd5b506106086004803603604081101561080357600080fd5b810190602081018135600160201b81111561081d57600080fd5b82018360208201111561082f57600080fd5b803590602001918460018302840111600160201b8311171561085057600080fd5b919390929091602081019035600160201b81111561086d57600080fd5b82018360208201111561087f57600080fd5b803590602001918460018302840111600160201b831117156108a057600080fd5b509092509050611c99565b3480156108b757600080fd5b50610608600480360360a08110156108ce57600080fd5b506001600160a01b038135169060208101359060ff6040820135169060608101359060800135611deb565b34801561090557600080fd5b50610449611e43565b34801561091a57600080fd5b506105996004803603602081101561093157600080fd5b50356001600160a01b0316611e4c565b34801561094d57600080fd5b50610599611e67565b34801561096257600080fd5b50610608600480360361010081101561097a57600080fd5b506001600160a01b038135169060208101359060408101359060608101359060808101359060ff60a0820135169060c08101359060e00135611e79565b3480156109c357600080fd5b50610534611f39565b3480156109d857600080fd5b50610599600480360360208110156109ef57600080fd5b50356001600160a01b0316611feb565b348015610a0b57600080fd5b50610608612006565b348015610a2057600080fd5b50610a4460048036036040811015610a3757600080fd5b50803590602001356120c1565b604080516001600160a01b039092168252519081900360200190f35b348015610a6c57600080fd5b5061044960048036036040811015610a8357600080fd5b50803590602001356001600160a01b03166120e2565b348015610aa557600080fd5b5061039b6120fa565b348015610aba57600080fd5b5061059961215b565b348015610acf57600080fd5b5061059961217f565b348015610ae457600080fd5b50610599612184565b348015610af957600080fd5b5061044960048036036040811015610b1057600080fd5b506001600160a01b0381351690602001356121a8565b348015610b3257600080fd5b5061044960048036036040811015610b4957600080fd5b506001600160a01b0381351690602001356122c2565b348015610b6b57600080fd5b506106086004803603610120811015610b8357600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e08101359061010001356123dc565b348015610bd757600080fd5b5061060860048036036060811015610bee57600080fd5b506001600160a01b038135811691602081013590911690604001356124f9565b348015610c1a57600080fd5b506106086004803603610120811015610c3257600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135612595565b348015610c8657600080fd5b506105996126a5565b348015610c9b57600080fd5b5061059960048036036020811015610cb257600080fd5b50356126c9565b348015610cc557600080fd5b5061060860048036036040811015610cdc57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610d0657600080fd5b820183602082011115610d1857600080fd5b803590602001918460018302840111600160201b83111715610d3957600080fd5b5090925090506126e0565b348015610d5057600080fd5b50610608600480360360e0811015610d6757600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060ff6080820135169060a08101359060c00135612794565b348015610dae57600080fd5b5061060860048036036040811015610dc557600080fd5b50803590602001356001600160a01b03166128a2565b348015610de757600080fd5b506105996128fb565b348015610dfc57600080fd5b5061059960048036036040811015610e1357600080fd5b506001600160a01b038135811691602001351661291f565b348015610e3757600080fd5b5061060860048036036080811015610e4e57600080fd5b810190602081018135600160201b811115610e6857600080fd5b820183602082011115610e7a57600080fd5b803590602001918460018302840111600160201b83111715610e9b57600080fd5b919390929091602081019035600160201b811115610eb857600080fd5b820183602082011115610eca57600080fd5b803590602001918460018302840111600160201b83111715610eeb57600080fd5b9193509150803560ff1690602001356001600160a01b031661294a565b348015610f1457600080fd5b506106086004803603610120811015610f2c57600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135612acb565b348015610f8057600080fd5b506106086004803603610120811015610f9857600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a08101359060ff60c0820135169060e0810135906101000135612bdb565b348015610fec57600080fd5b50610599612ceb565b34801561100157600080fd5b50610534612cfd565b34801561101657600080fd5b506110436004803603604081101561102d57600080fd5b506001600160a01b038135169060200135612daf565b6040518082600281111561105357fe5b815260200191505060405180910390f35b34801561107057600080fd5b5061039b612dda565b34801561108557600080fd5b50610599612df7565b34801561109a57600080fd5b50610608600480360360208110156110b157600080fd5b50356001600160a01b0316612e09565b3480156110cd57600080fd5b50610599612ed8565b3480156110e257600080fd5b50610449600480360360208110156110f957600080fd5b50356001600160a01b0316612efc565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156111955780601f1061116a57610100808354040283529160200191611195565b820191906000526020600020905b81548152906001019060200180831161117857829003601f168201915b505050505090505b90565b600d5460009060ff16156111ee576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6111f6612f1a565b6001600160a01b0381166000908152600c602052604090205460ff161561124e5760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0384166000908152600c6020526040902054849060ff16156112a85760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6112ba6112b3612f1a565b8686612f29565b506001949350505050565b60606112cf614802565b50604080516060810182526001600160a01b0388166000818152600a60209081529084902080546001810190915583528201529081018690526113158782878787613015565b6113505760405162461bcd60e51b8152600401808060200182810382526021815260200180614afb6021913960400191505060405180910390fd5b7f5845892132946850460bff5a0083f71031bc5bf9aadcd40f1de79423eac9b10b87338860405180846001600160a01b03168152602001836001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b838110156113cf5781810151838201526020016113b7565b50505050905090810190601f1680156113fc5780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a160006060306001600160a01b0316888a6040516020018083805190602001908083835b6020831061144d5780518252601f19909201916020918201910161142e565b6001836020036101000a038019825116818451168082178552505050505050905001826001600160a01b031660601b8152601401925050506040516020818303038152906040526040518082805190602001908083835b602083106114c35780518252601f1990920191602091820191016114a4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611525576040519150601f19603f3d011682016040523d82523d6000602084013e61152a565b606091505b509150915081611581576040805162461bcd60e51b815260206004820152601c60248201527f46756e6374696f6e2063616c6c206e6f74207375636365737366756c00000000604482015290519081900360640190fd5b98975050505050505050565b606060006115a86000805160206149058339815191526126c9565b905060608167ffffffffffffffff811180156115c357600080fd5b506040519080825280602002602001820160405280156115ed578160200160208202803683370190505b50905060005b8281101561163f57611613600080516020614905833981519152826120c1565b82828151811061161f57fe5b6001600160a01b03909216602092830291909101909101526001016115f3565b5091505090565b7f808c10407a796f3ef2c7ea38c0638ea9d2b8a1c63e3ca9e1f56ce84ae59df73c81565b60085460ff1690565b60025490565b600080516020614b1c83398151915261169981611694612f1a565b6120e2565b6007906117395760405162461bcd60e51b815260206004820190815282546002600019610100600184161502019091160460248301819052909182916044909101908490801561172a5780601f106116ff5761010080835404028352916020019161172a565b820191906000526020600020905b81548152906001019060200180831161170d57829003601f168201915b50509250505060405180910390fd5b506001600160a01b0382166000818152600c6020526040808220805460ff19169055517f117e3210bb9aa7d9baff172026820255c6f6c30ba8999d1c2fd88e2848137c4e9190a25050565b7f6c8f8f5f82f0c140edd12e80d10ff715a36d6e5f73e406394862b5f1eb44c4f981565b600d5460009060ff16156117f6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6117fe612f1a565b6001600160a01b0381166000908152600c602052604090205460ff16156118565760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0385166000908152600c6020526040902054859060ff16156118b05760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0385166000908152600c6020526040902054859060ff161561190a5760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b611915878787613105565b5060019695505050505050565b60009081526006602052604090206002015490565b61193f612f1a565b6001600160a01b0381166000908152600c602052604090205460ff16156119975760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6119a86119a2612f1a565b83613185565b5050565b6000828152600660205260409020600201546119ca90611694612f1a565b611a055760405162461bcd60e51b815260040180806020018281038252602f815260200180614925602f913960400191505060405180910390fd5b6119a88282613281565b7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b60055460ff1690565b60095481565b611a4a612f1a565b6001600160a01b0316816001600160a01b031614611a995760405162461bcd60e51b815260040180806020018281038252602f815260200180614c6e602f913960400191505060405180910390fd5b6119a882826132ea565b600d5460009060ff1615611af1576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b611af9612f1a565b6001600160a01b0381166000908152600c602052604090205460ff1615611b515760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0384166000908152600c6020526040902054849060ff1615611bab5760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6112ba611bb6612f1a565b8686613353565b600080516020614adb833981519152611bd881611694612f1a565b600790611c3e5760405162461bcd60e51b815260206004820190815282546002600019610100600184161502019091160460248301819052909182916044909101908490801561172a5780601f106116ff5761010080835404028352916020019161172a565b50600d805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a150565b7fb70559e94cbda91958ebec07f9b65b3b490097c8d25c8dacd71105df1015b6d881565b6000611ca781611694612f1a565b600790611d0d5760405162461bcd60e51b815260206004820190815282546002600019610100600184161502019091160460248301819052909182916044909101908490801561172a5780601f106116ff5761010080835404028352916020019161172a565b50611d4d85858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061338b92505050565b611d8c83838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061339e92505050565b611de485858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506133b19050565b5050505050565b600d5460ff1615611e36576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b611de485858585856133c2565b600d5460ff1690565b6001600160a01b031660009081526020819052604090205490565b60008051602061490583398151915281565b600d5460ff1615611ec4576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b0388166000908152600c6020526040902054889060ff1615611f1e5760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b611f2e89898989898989896134d6565b505050505050505050565b60606000611f54600080516020614b1c8339815191526126c9565b905060608167ffffffffffffffff81118015611f6f57600080fd5b50604051908082528060200260200182016040528015611f99578160200160208202803683370190505b50905060005b8281101561163f57611fbf600080516020614b1c833981519152826120c1565b828281518110611fcb57fe5b6001600160a01b0390921660209283029190910190910152600101611f9f565b6001600160a01b03166000908152600a602052604090205490565b600080516020614adb83398151915261202181611694612f1a565b6007906120875760405162461bcd60e51b815260206004820190815282546002600019610100600184161502019091160460248301819052909182916044909101908490801561172a5780601f106116ff5761010080835404028352916020019161172a565b50600d805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a150565b60008281526006602052604081206120d990836135b7565b90505b92915050565b60008281526006602052604081206120d990836135c3565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156111955780601f1061116a57610100808354040283529160200191611195565b7f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226781565b600081565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a981565b600d5460009060ff16156121f6576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6121fe612f1a565b6001600160a01b0381166000908152600c602052604090205460ff16156122565760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0384166000908152600c6020526040902054849060ff16156122b05760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6112ba6122bb612f1a565b86866135d8565b600d5460009060ff1615612310576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b612318612f1a565b6001600160a01b0381166000908152600c602052604090205460ff16156123705760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0384166000908152600c6020526040902054849060ff16156123ca5760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6112ba6123d5612f1a565b8686613627565b600d5460ff1615612427576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b0389166000908152600c6020526040902054899060ff16156124815760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0389166000908152600c6020526040902054899060ff16156124db5760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6124ec8b8b8b8b8b8b8b8b8b613782565b5050505050505050505050565b60008051602061490583398151915261251481611694612f1a565b60079061257a5760405162461bcd60e51b815260206004820190815282546002600019610100600184161502019091160460248301819052909182916044909101908490801561172a5780601f106116ff5761010080835404028352916020019161172a565b5061258f6001600160a01b038516848461387a565b50505050565b600d5460ff16156125e0576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b0389166000908152600c6020526040902054899060ff161561263a5760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0389166000908152600c6020526040902054899060ff16156126945760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6124ec8b8b8b8b8b8b8b8b8b6138cc565b7f424222bb050a1f7f14017232a5671f2680a2d3420f504bd565cf03035c53198a81565b60008181526006602052604081206120dc906139b8565b7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a961270d81611694612f1a565b6007906127735760405162461bcd60e51b815260206004820190815282546002600019610100600184161502019091160460248301819052909182916044909101908490801561172a5780601f106116ff5761010080835404028352916020019161172a565b5060008383602081101561278657600080fd5b50359050611de485826139c3565b600d5460ff16156127df576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b0387166000908152600c6020526040902054879060ff16156128395760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0387166000908152600c6020526040902054879060ff16156128935760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b611f2e89898989898989613ab3565b6000828152600660205260409020600201546128c090611694612f1a565b611a995760405162461bcd60e51b8152600401808060200182810382526030815260200180614a3d6030913960400191505060405180910390fd5b7f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742981565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60085460ff161561295a57600080fd5b61299986868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061338b92505050565b6129d884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061339e92505050565b6129e182613c63565b612a22848460405160200180806410da1a5b1960da1b8152506005018383808284378083019250505092505050604051602081830303815290604052613c79565b612a346000612a2f612f1a565b611a05565b612a5e7f8f4f2da22e8ac8f11e15f9fc141cddbb5deea8800186560abb6e68c5496619a982611a05565b612ab686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040805180820190915260018152603160f81b602082015291506133b19050565b50506008805460ff1916600117905550505050565b600d5460ff1615612b16576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b0389166000908152600c6020526040902054899060ff1615612b705760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0389166000908152600c6020526040902054899060ff1615612bca5760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6124ec8b8b8b8b8b8b8b8b8b613d17565b600d5460ff1615612c26576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b6001600160a01b0389166000908152600c6020526040902054899060ff1615612c805760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6001600160a01b0389166000908152600c6020526040902054899060ff1615612cda5760405162461bcd60e51b8152600401808060200182810382526025815260200180614c246025913960400191505060405180910390fd5b6124ec8b8b8b8b8b8b8b8b8b613e03565b600080516020614adb83398151915281565b60606000612d18600080516020614adb8339815191526126c9565b905060608167ffffffffffffffff81118015612d3357600080fd5b50604051908082528060200260200182016040528015612d5d578160200160208202803683370190505b50905060005b8281101561163f57612d83600080516020614adb833981519152826120c1565b828281518110612d8f57fe5b6001600160a01b0390921660209283029190910190910152600101612d63565b6001600160a01b03919091166000908152600b60209081526040808320938352929052205460ff1690565b604051806040016040528060018152602001603160f81b81525081565b600080516020614b1c83398151915281565b600080516020614b1c833981519152612e2481611694612f1a565b600790612e8a5760405162461bcd60e51b815260206004820190815282546002600019610100600184161502019091160460248301819052909182916044909101908490801561172a5780601f106116ff5761010080835404028352916020019161172a565b506001600160a01b0382166000818152600c6020526040808220805460ff19166001179055517fffa4e6181777692565cf28528fc88fd1516ea86b56da075235fa575af6a4b8559190a25050565b7f23d10def3caacba2e4042e0c75d44a42d2558aabcf5ce951d0642a8032e1e65381565b6001600160a01b03166000908152600c602052604090205460ff1690565b6000612f24613eef565b905090565b6001600160a01b038316612f6e5760405162461bcd60e51b8152600401808060200182810382526024815260200180614bb06024913960400191505060405180910390fd5b6001600160a01b038216612fb35760405162461bcd60e51b815260040180806020018281038252602281526020018061499c6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b60006001600160a01b03861661305c5760405162461bcd60e51b8152600401808060200182810382526025815260200180614a6d6025913960400191505060405180910390fd5b60607f23d10def3caacba2e4042e0c75d44a42d2558aabcf5ce951d0642a8032e1e65360001b8660000151876020015188604001518051906020012060405160200180858152602001848152602001836001600160a01b031681526020018281526020019450505050506040516020818303038152906040529050866001600160a01b03166130f060095485888886613f4c565b6001600160a01b031614979650505050505050565b613110838383613627565b6131808361311c612f1a565b61317b84604051806060016040528060288152602001614ab3602891396001600160a01b03891660009081526001602052604081209061315a612f1a565b6001600160a01b031681526020810191909152604001600020549190613fa3565b612f29565b505050565b6001600160a01b0382166131ca5760405162461bcd60e51b8152600401808060200182810382526021815260200180614b3c6021913960400191505060405180910390fd5b6131d682600083613180565b61321381604051806060016040528060228152602001614954602291396001600160a01b0385166000908152602081905260409020549190613fa3565b6001600160a01b038316600090815260208190526040902055600254613239908261403a565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000828152600660205260409020613299908261407c565b156119a8576132a6612f1a565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526006602052604090206133029082614091565b156119a85761330f612f1a565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6001600160a01b03808416600090815260016020908152604080832093861683529290522054613180908490849061317b90856140a6565b80516119a890600390602084019061482c565b80516119a890600490602084019061482c565b6133bb8282614100565b6009555050565b6133cc8585614172565b604080517f158b0a9edf7a828aad02f63cd515c68ef2f50ba807396f6d12842833a159742960208201526001600160a01b03871681830181905260608281018890528351808403909101815260809092019092526009549091906134339086868686613f4c565b6001600160a01b0316146134785760405162461bcd60e51b8152600401808060200182810382526021815260200180614a926021913960400191505060405180910390fd5b6001600160a01b0386166000818152600b60209081526040808320898452909152808220805460ff19166002179055518792917f1cdd46ff242716cdaa72d159d339a485b3438398348d68f09d7c8c0a59353d8191a3505050505050565b6134e2888588886141e0565b604080517f6c8f8f5f82f0c140edd12e80d10ff715a36d6e5f73e406394862b5f1eb44c4f960208201526001600160a01b038a16818301819052606082018a90526080820189905260a0820188905260c08083018890528351808403909101815260e090920190925260095490919061355e9086868686613f4c565b6001600160a01b0316146135a35760405162461bcd60e51b8152600401808060200182810382526021815260200180614a926021913960400191505060405180910390fd5b6135ad8986614266565b611f2e8989613185565b60006120d983836142c0565b60006120d9836001600160a01b038416614324565b613180838361317b84604051806060016040528060258152602001614c49602591396001600160a01b03808a166000908152600160209081526040808320938c16835292905220549190613fa3565b6001600160a01b03831661366c5760405162461bcd60e51b8152600401808060200182810382526025815260200180614b5d6025913960400191505060405180910390fd5b6001600160a01b0382166136b15760405162461bcd60e51b81526004018080602001828103825260238152602001806148e26023913960400191505060405180910390fd5b6136bc838383613180565b6136f9816040518060600160405280602681526020016149ef602691396001600160a01b0386166000908152602081905260409020549190613fa3565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461372890826140a6565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b61378e898588886141e0565b604080517fb70559e94cbda91958ebec07f9b65b3b490097c8d25c8dacd71105df1015b6d860208201526001600160a01b03808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e0808301889052835180840390910181526101009092019092526009549091906138149086868686613f4c565b6001600160a01b0316146138595760405162461bcd60e51b8152600401808060200182810382526021815260200180614a926021913960400191505060405180910390fd5b6138638a86614266565b61386e8a8a8a6135d8565b50505050505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b17905261318090849061433c565b6138d8898588886141e0565b604080517f424222bb050a1f7f14017232a5671f2680a2d3420f504bd565cf03035c53198a60208201526001600160a01b03808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e08083018890528351808403909101815261010090920190925260095490919061395e9086868686613f4c565b6001600160a01b0316146139a35760405162461bcd60e51b8152600401808060200182810382526021815260200180614a926021913960400191505060405180910390fd5b6139ad8a86614266565b61386e8a8a8a613353565b60006120dc826143ed565b6001600160a01b038216613a1e576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b613a2a60008383613180565b600254613a3790826140a6565b6002556001600160a01b038216600090815260208190526040902054613a5d90826140a6565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b33301415613b08576040805162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973207468697320636f6e7472616374000000000000000000604482015290519081900360640190fd5b42841015613b5d576040805162461bcd60e51b815260206004820152601960248201527f5065726d69743a207065726d6974206973206578706972656400000000000000604482015290519081900360640190fd5b6001600160a01b038088166000818152600a602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c992810192909252818301849052938a1660608201526080810189905260a081019390935260c08084018890528151808503909101815260e09093019052600954613bf39086868686613f4c565b6001600160a01b031614613c4e576040805162461bcd60e51b815260206004820152601960248201527f5065726d69743a20696e76616c6964207369676e617475726500000000000000604482015290519081900360640190fd5b613c59888888612f29565b5050505050505050565b6005805460ff191660ff92909216919091179055565b806040516020018082805190602001908083835b60208310613cac5780518252601f199092019160209182019101613c8d565b51815160209384036101000a60001901801990921691161790527f3a20494e53554646494349454e545f5045524d495353494f4e530000000000009190930190815260408051808303600519018152601a909201905280516119a8955060079450920191905061482c565b613d23898588886141e0565b604080517f808c10407a796f3ef2c7ea38c0638ea9d2b8a1c63e3ca9e1f56ce84ae59df73c60208201526001600160a01b03808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e080830188905283518084039091018152610100909201909252600954909190613da99086868686613f4c565b6001600160a01b031614613dee5760405162461bcd60e51b8152600401808060200182810382526021815260200180614a926021913960400191505060405180910390fd5b613df88a86614266565b61386e8a8a8a612f29565b613e0f898588886141e0565b604080517f7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a226760208201526001600160a01b03808c16828401819052908b166060830152608082018a905260a0820189905260c0820188905260e080830188905283518084039091018152610100909201909252600954909190613e959086868686613f4c565b6001600160a01b031614613eda5760405162461bcd60e51b8152600401808060200182810382526021815260200180614a926021913960400191505060405180910390fd5b613ee48a86614266565b61386e8a8a8a613627565b600033301415613f475760606000368080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050503601516001600160a01b0316915061119d9050565b503390565b80516020808301919091206040805161190160f01b81850152602281018990526042808201939093528151808203909301835260620190528051910120600090613f98818787876143f1565b979650505050505050565b600081848411156140325760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ff7578181015183820152602001613fdf565b50505050905090810190601f1680156140245780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60006120d983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613fa3565b60006120d9836001600160a01b038416614575565b60006120d9836001600160a01b0384166145bf565b6000828201838110156120d9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b8151602092830120815191830191909120604080517f36c25de3e541d5d970f66e4210d728721220fff5c077cc6cd008b3a0c62adab7818601528082019390935260608301919091523060808301524660a0808401919091528151808403909101815260c09092019052805191012090565b6001600160a01b0382166000908152600b6020908152604080832084845290915281205460ff1660028111156141a457fe5b146119a85760405162461bcd60e51b81526004018080602001828103825260318152602001806149be6031913960400191505060405180910390fd5b81421161421e5760405162461bcd60e51b815260040180806020018281038252602e815260200180614b82602e913960400191505060405180910390fd5b80421061425c5760405162461bcd60e51b8152600401808060200182810382526028815260200180614a156028913960400191505060405180910390fd5b61258f8484614172565b6001600160a01b0382166000818152600b60209081526040808320858452909152808220805460ff19166001179055518392917f98de503528ee59b575ef0c0a2576a82497bfc029a5685b209e9ec333479b10a591a35050565b815460009082106143025760405162461bcd60e51b81526004018080602001828103825260228152602001806148c06022913960400191505060405180910390fd5b82600001828154811061431157fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b6060614391826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166146859092919063ffffffff16565b805190915015613180578080602001905160208110156143b057600080fd5b50516131805760405162461bcd60e51b815260040180806020018281038252602a815260200180614bfa602a913960400191505060405180910390fd5b5490565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156144525760405162461bcd60e51b8152600401808060200182810382526026815260200180614bd46026913960400191505060405180910390fd5b8360ff16601b1415801561446a57508360ff16601c14155b156144a65760405162461bcd60e51b81526004018080602001828103825260268152602001806149766026913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015614502573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661456a576040805162461bcd60e51b815260206004820152601c60248201527f45435265636f7665723a20696e76616c6964207369676e617475726500000000604482015290519081900360640190fd5b90505b949350505050565b60006145818383614324565b6145b7575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556120dc565b5060006120dc565b6000818152600183016020526040812054801561467b57835460001980830191908101906000908790839081106145f257fe5b906000526020600020015490508087600001848154811061460f57fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061463f57fe5b600190038181906000526020600020016000905590558660010160008781526020019081526020016000206000905560019450505050506120dc565b60009150506120dc565b606061456d8484600085606061469a856147fc565b6146eb576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b6020831061472a5780518252601f19909201916020918201910161470b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d806000811461478c576040519150601f19603f3d011682016040523d82523d6000602084013e614791565b606091505b509150915081156147a557915061456d9050565b8051156147b55780518082602001fd5b60405162461bcd60e51b8152602060048201818152865160248401528651879391928392604401919085019080838360008315613ff7578181015183820152602001613fdf565b3b151590565b60405180606001604052806000815260200160006001600160a01b03168152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061486d57805160ff191683800117855561489a565b8280016001018555821561489a579182015b8281111561489a57825182559160200191906001019061487f565b506148a69291506148aa565b5090565b5b808211156148a657600081556001016148ab56fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373cf6f9f892731e14b8859835f2ff35575f447fb501f46243c4eb8bac19e31a050416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e636545435265636f7665723a20696e76616c6964207369676e6174757265202776272076616c756545524332303a20617070726f766520746f20746865207a65726f20616464726573734761734162737472616374696f6e3a20617574686f72697a6174696f6e2069732075736564206f722063616e63656c656445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654761734162737472616374696f6e3a20617574686f72697a6174696f6e2069732065787069726564416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b654e61746976654d6574615472616e73616374696f6e3a20494e56414c49445f5349474e45524761734162737472616374696f6e3a20696e76616c6964207369676e617475726545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636565d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a5369676e657220616e64207369676e617475726520646f206e6f74206d6174636898db8a220cd0f09badce9f22d0ba7e93edb3d404448cc3560d391ab096ad16e945524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f20616464726573734761734162737472616374696f6e3a20617574686f72697a6174696f6e206973206e6f74207965742076616c696445524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345435265636f7665723a20696e76616c6964207369676e6174757265202773272076616c75655361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564426c61636b6c69737461626c653a206163636f756e7420697320626c61636b6c697374656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220492e9326452cc70ce3cbc63fe2392b3afcd778b70aa095805a252595449c77a664736f6c634300060c0033