Contract Overview
Balance:
0.001 FTM
FTM Value:
Less Than $0.01 (@ $0.32/FTM)
My Name Tag:
Not Available, login to update
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | |||
---|---|---|---|---|---|---|---|---|---|
0xe599d1175ad452dd06f0d3035e6edc4ba9823c5386c387c96b2f6cac955e0ffc | Create Escrow | 58350076 | 70 days 16 hrs ago | 0x7dd98aaf4b979a0f265acf1487fa9d0a85e9681a | IN | 0xafabb05cec50a6a388a4e1d6338d300a8322dd7b | 0.1 FTM | 0.077952440204 | |
0x23859f1c3128e14eb9b9b1e7bcbec5f6713952c4606f1641d865690b21d1c6e8 | Switch Active Tr... | 58349154 | 70 days 16 hrs ago | 0xf0c6de7d153650bb31da86a15b0b7e5f34ce37a2 | IN | 0xafabb05cec50a6a388a4e1d6338d300a8322dd7b | 0 FTM | 0.002130388422 | |
0xf752a9bd86f90a0b7e1cafc1a9eba75d51339946e8cb7e29c5b1b79d4ca6f565 | Switch Active Tr... | 58349058 | 70 days 16 hrs ago | 0xf0c6de7d153650bb31da86a15b0b7e5f34ce37a2 | IN | 0xafabb05cec50a6a388a4e1d6338d300a8322dd7b | 0 FTM | 0.001477268562 | |
0x3a99bb6f93b911f9073a542f7ea98366aeecf74292b40fb3e4d5a892b6c2c1a2 | 0x60806040 | 58348013 | 70 days 16 hrs ago | 0xa0211c6711ba99e0607318545cffef0257b09492 | IN | Create: EscrowFactory | 0 FTM | 0.150063436464 |
[ Download CSV Export ]
Latest 4 internal transactions
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0x7f95bc7055641e2e500b2e32a2967c9c1dbc3ed6e259c19a2c5933784d51bd23 | 58350152 | 70 days 16 hrs ago | 0x2119bbce4673f714e638313983cadd0a4656a643 | 0xafabb05cec50a6a388a4e1d6338d300a8322dd7b | 0.001 FTM | ||
0xe599d1175ad452dd06f0d3035e6edc4ba9823c5386c387c96b2f6cac955e0ffc | 58350076 | 70 days 16 hrs ago | 0xafabb05cec50a6a388a4e1d6338d300a8322dd7b | 0x2119bbce4673f714e638313983cadd0a4656a643 | 0.1 FTM | ||
0xe599d1175ad452dd06f0d3035e6edc4ba9823c5386c387c96b2f6cac955e0ffc | 58350076 | 70 days 16 hrs ago | 0xafabb05cec50a6a388a4e1d6338d300a8322dd7b | Contract Creation | 0.1 FTM | ||
0x3a99bb6f93b911f9073a542f7ea98366aeecf74292b40fb3e4d5a892b6c2c1a2 | 58348013 | 70 days 16 hrs ago | 0xa0211c6711ba99e0607318545cffef0257b09492 | Contract Creation | 0 FTM |
[ Download CSV Export ]
Contract Name:
EscrowFactory
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.15; import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; contract Escrow { enum EscrowStatus { Launched, Ongoing, RequestRevised, Delivered, Dispute, Cancelled, Complete } struct EscrowDetail { EscrowStatus status; bytes32 title; address tokenAddress; uint256 deadline; address payable buyer; address payable seller; uint256 requestRevisedDeadline; uint256 amount; address escrowAddress; uint8 feePercent; } EscrowDetail escrowDetail; address payable public addressToPayFee; uint256 rejectCount = 0; address public tokenAddress; mapping(address => bool) public areTrustedHandlers; constructor( address payable _addressToPayFee, address _tokenAddress, uint256 _duration, uint256 amount, bytes32 title, address payable buyer, address payable seller, uint8 _feePercent, address[] memory _handlers ) { require(_duration == 0 || _duration >= 86400, '___INVALID_DURATION___'); // SHOULD BE MIN 1 DAY require(_feePercent > 0 || _feePercent < 100, '___INVALID_FEE_PERCENT___'); uint256 duration = 915151608; //29 years default if (_duration >= 0) { duration = _duration; } addressToPayFee = _addressToPayFee; tokenAddress = _tokenAddress; areTrustedHandlers[msg.sender] = true; addTrustedHandlers(_handlers); escrowDetail = EscrowDetail( EscrowStatus.Launched, title, _tokenAddress, duration + block.timestamp, buyer, seller, 0, amount, address(this), _feePercent ); // solhint-disable-line not-rely-on-time } fallback() external payable { require(uint8(escrowDetail.status) < 5, '___NOT_ELIGIBLE___'); require(msg.value > 0, '___INVALID_AMOUNT___'); } receive() external payable { require(uint8(escrowDetail.status) < 5, '___NOT_ELIGIBLE___'); require(msg.value > 0, '___INVALID_AMOUNT___'); } function getBalance() public view returns (uint256) { if (tokenAddress == address(0)) { return address(this).balance; } return IERC20(tokenAddress).balanceOf(address(this)); } function addTrustedHandlers(address[] memory _handlers) public trusted { for (uint256 i = 0; i < _handlers.length; i++) { areTrustedHandlers[_handlers[i]] = true; } } function sendAndStatusUpdate(address payable toFund, EscrowStatus status) private { uint256 fee = (escrowDetail.amount * escrowDetail.feePercent) / 100; // %1 if (tokenAddress == address(0)) { addressToPayFee.transfer(fee); // %1 toFund.transfer(escrowDetail.amount - fee); } else { IERC20 token = IERC20(tokenAddress); token.transfer(addressToPayFee, fee); // %1 token.transfer(toFund, escrowDetail.amount - fee); } escrowDetail.status = status; } function sellerLaunchedApprove() public onlySeller { require(getBalance() > 0, '___NO_FUNDS___'); require(escrowDetail.status == EscrowStatus.Launched, '___NOT_IN_LAUNCHED_STATUS___'); escrowDetail.status = EscrowStatus.Ongoing; } function sellerDeliver() external onlySeller { require(escrowDetail.status == EscrowStatus.Ongoing, '___NOT_IN_ONGOING_STATUS___'); escrowDetail.status = EscrowStatus.Delivered; } function buyerConfirmDelivery() external onlyBuyer { require(escrowDetail.status == EscrowStatus.Delivered, '___NOT_IN_DELIVERED_STATUS___'); sendAndStatusUpdate(escrowDetail.seller, EscrowStatus.Complete); } function buyerDeliverReject(uint256 _deliverRejectDuration) external onlyBuyer { require(escrowDetail.status == EscrowStatus.Delivered, '___NOT_IN_DELIVERED_STATUS___'); require(_deliverRejectDuration >= 86400, '___REJECT_MIN_DAY___'); //1 day min rejectCount++; EscrowStatus state = EscrowStatus.RequestRevised; if (rejectCount > 1) { state = EscrowStatus.Dispute; escrowDetail.status = state; } else { escrowDetail.status = state; escrowDetail.requestRevisedDeadline = _deliverRejectDuration + block.timestamp; } } function sellerRejectDeliverReject() external onlySeller { require(escrowDetail.status == EscrowStatus.RequestRevised, '___NOT_IN_REJECT_DELIVERY_STATUS___'); escrowDetail.status = EscrowStatus.Dispute; } function sellerApproveDeliverReject() external onlySeller { require(escrowDetail.status == EscrowStatus.RequestRevised, '___NOT_IN_REJECT_DELIVERY_STATUS___'); escrowDetail.status = EscrowStatus.Ongoing; escrowDetail.deadline = escrowDetail.requestRevisedDeadline; } function cancel() external { require(uint8(escrowDetail.status) < 3, '___NOT_ELIGIBLE___'); require(msg.sender == escrowDetail.buyer || msg.sender == escrowDetail.seller, '___INVALID_BUYER_SELLER___'); if ( msg.sender == escrowDetail.buyer && (escrowDetail.status == EscrowStatus.Ongoing || escrowDetail.status == EscrowStatus.RequestRevised) ) { require(escrowDetail.deadline <= block.timestamp && block.timestamp >= escrowDetail.requestRevisedDeadline, '___NOT_EXPIRED___'); } sendAndStatusUpdate(escrowDetail.buyer, EscrowStatus.Cancelled); } function fund(address payable toFund) external trusted { require(toFund == escrowDetail.buyer || toFund == escrowDetail.seller, '___INVALID_BUYER_SELLER___'); require(EscrowStatus.Cancelled != escrowDetail.status, '___ALREADY_CANCELLED___'); require(escrowDetail.status != EscrowStatus.Complete, '___NOT_IN_COMPLETE_STATUS___'); sendAndStatusUpdate(toFund, EscrowStatus.Complete); } function getDetails() public view returns (EscrowDetail memory escrow) { return escrowDetail; } modifier onlyBuyer() { require(msg.sender == escrowDetail.buyer, '___ONLY_BUYER___'); _; } modifier onlySeller() { require(msg.sender == escrowDetail.seller, '___ONLY_SELLER___'); _; } modifier trusted() { require(areTrustedHandlers[msg.sender], '___NOT_TRUSTED___'); _; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.15; import './Escrow.sol'; import '@openzeppelin/contracts/token/ERC20/IERC20.sol'; contract EscrowFactory { uint8 feePercent = 1; uint256 public counter; address[] escrows; address[] processedTrustedHandlers; mapping(address => address[]) public myEscrows; mapping(address => bool) public areTrustedHandlers; mapping(address => bool) public areTokenTrusted; address feeAddress = address(this); event Created(address); constructor(address _backup, address[] memory trustedTokens) { processedTrustedHandlers.push(msg.sender); areTrustedHandlers[msg.sender] = true; processedTrustedHandlers.push(_backup); areTrustedHandlers[_backup] = true; areTokenTrusted[address(0)] = true; // for native currencies switchActiveTrustedTokens(trustedTokens, true); } function createEscrow( address payable seller, address tokenAddress, uint256 amount, bytes32 title, uint256 _duration ) external payable returns (address) { require(msg.sender != seller, '___INVALID_SAME___'); require(seller != address(0), '___NON_EXIST_ADDRESS___'); require(areTokenTrusted[tokenAddress], '___NOT_TRUSTED___'); require(_duration == 0 || _duration >= 86400, '___INVALID_DURATION___'); // ONE_DAY_AS_SECONDS IERC20 token = IERC20(tokenAddress); if (tokenAddress != address(0)) { require(token.balanceOf(msg.sender) >= amount, '___TOKEN_UNAVAILABLE___'); } else { require(msg.value == amount, '___DIFFER_AMOUNT_VAL___'); } Escrow escrow = new Escrow( payable(feeAddress), tokenAddress, _duration, amount, title, payable(msg.sender), seller, feePercent, getProcessedHandlers(true) ); if (tokenAddress == address(0)) { payable(address(escrow)).transfer(msg.value); } else { token.transferFrom(msg.sender, address(escrow), amount); } escrows.push(address(escrow)); myEscrows[msg.sender].push(address(escrow)); myEscrows[seller].push(address(escrow)); emit Created(address(escrow)); return address(escrow); } function getProcessedHandlers(bool _trusted) public view returns (address[] memory) { address[] memory processedHandlers = new address[](processedTrustedHandlers.length); uint j = 0; for (uint i = 0; i < processedTrustedHandlers.length; i++) { if (areTrustedHandlers[processedTrustedHandlers[i]] == _trusted) { processedHandlers[j] = processedTrustedHandlers[i]; j++; } } return processedHandlers; } function withdraw(address payable to, address tokenAddress, uint256 amount) external trusted { if (tokenAddress == address(0)) { to.transfer(amount); } else { IERC20(tokenAddress).transfer(to, amount); } } function switchActiveTrustedHandlers(address[] memory _handlers, bool approve) public trusted { for (uint256 i = 0; i < _handlers.length; i++) { areTrustedHandlers[_handlers[i]] = approve; processedTrustedHandlers.push(_handlers[i]); } } function switchActiveTrustedTokens(address[] memory _tokens, bool approve) public trusted { for (uint256 i = 0; i < _tokens.length; i++) { areTokenTrusted[_tokens[i]] = approve; } } function checkTrusted(address _addr) public view trusted returns (bool) { return areTrustedHandlers[_addr]; } function checkTrustedToken(address _token) public view trusted returns (bool) { return areTokenTrusted[_token]; } function getFee() public view trusted returns (uint8) { return feePercent; } function updateFeePercent(uint8 _feePercent) external trusted { require(_feePercent > 0 || _feePercent < 100, '___INVALID_FEE_PERCENT___'); feePercent = _feePercent; } function updateFeeAddress(address _feeAddress) external trusted { feeAddress = _feeAddress; } fallback() external payable { require(msg.value > 0, '___INVALID_AMOUNT___'); } receive() external payable { require(msg.value > 0, '___INVALID_AMOUNT___'); } function balanceOf(address tokenAddress) public view returns (uint256) { if (tokenAddress == address(0)) { return address(this).balance; } return IERC20(tokenAddress).balanceOf(address(this)); } function getMyEscrows() public view returns (address[] memory escrowAddresses) { return myEscrows[msg.sender]; } // recent to oldest function getEscrowDetailsPaging(uint256 offset) external view trusted returns (address[] memory escrowAddresses, uint256 total) { uint256 limit = 10; if (limit > escrows.length - offset) { limit = escrows.length - offset; } address[] memory values = new address[](limit); for (uint256 i = 0; i < limit; i++) { values[i] = escrows[escrows.length - 1 - offset - i]; } return (values, escrows.length); } modifier trusted() { require(areTrustedHandlers[msg.sender], '___NOT_TRUSTED___'); _; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_backup","type":"address"},{"internalType":"address[]","name":"trustedTokens","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"Created","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"areTokenTrusted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"areTrustedHandlers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"checkTrusted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"checkTrustedToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"counter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"seller","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes32","name":"title","type":"bytes32"},{"internalType":"uint256","name":"_duration","type":"uint256"}],"name":"createEscrow","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"offset","type":"uint256"}],"name":"getEscrowDetailsPaging","outputs":[{"internalType":"address[]","name":"escrowAddresses","type":"address[]"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMyEscrows","outputs":[{"internalType":"address[]","name":"escrowAddresses","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_trusted","type":"bool"}],"name":"getProcessedHandlers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"myEscrows","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_handlers","type":"address[]"},{"internalType":"bool","name":"approve","type":"bool"}],"name":"switchActiveTrustedHandlers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"bool","name":"approve","type":"bool"}],"name":"switchActiveTrustedTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeAddress","type":"address"}],"name":"updateFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_feePercent","type":"uint8"}],"name":"updateFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"to","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260016000806101000a81548160ff021916908360ff16021790555030600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006d57600080fd5b50604051620065bc380380620065bc833981810160405281019062000093919062000595565b6003339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506003829080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620002748160016200027c60201b60201c565b505062000733565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200030b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000302906200065c565b60405180910390fd5b60005b8251811015620003a25781600660008584815181106200033357620003326200067e565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806200039990620006e6565b9150506200030e565b505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003e882620003bb565b9050919050565b620003fa81620003db565b81146200040657600080fd5b50565b6000815190506200041a81620003ef565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004708262000425565b810181811067ffffffffffffffff8211171562000492576200049162000436565b5b80604052505050565b6000620004a7620003a7565b9050620004b5828262000465565b919050565b600067ffffffffffffffff821115620004d857620004d762000436565b5b602082029050602081019050919050565b600080fd5b600062000505620004ff84620004ba565b6200049b565b905080838252602082019050602084028301858111156200052b576200052a620004e9565b5b835b8181101562000558578062000543888262000409565b8452602084019350506020810190506200052d565b5050509392505050565b600082601f8301126200057a576200057962000420565b5b81516200058c848260208601620004ee565b91505092915050565b60008060408385031215620005af57620005ae620003b1565b5b6000620005bf8582860162000409565b925050602083015167ffffffffffffffff811115620005e357620005e2620003b6565b5b620005f18582860162000562565b9150509250929050565b600082825260208201905092915050565b7f5f5f5f4e4f545f545255535445445f5f5f000000000000000000000000000000600082015250565b600062000644601183620005fb565b915062000651826200060c565b602082019050919050565b60006020820190508181036000830152620006778162000635565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000620006f382620006dc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620007285762000727620006ad565b5b600182019050919050565b615e7980620007436000396000f3fe6080604052600436106200011b5760003560e01c80638ff6c70111620000a3578063bbf7b4ee116200006d578063bbf7b4ee146200046a578063ced72f871462000498578063d9caed1214620004c8578063e5d9a41a14620004f6578063f17171e9146200053a5762000169565b80638ff6c701146200039a5780639fc6394e14620003c8578063a8024695146200040c578063bbcaac38146200043c5762000169565b806361bc221a11620000e557806361bc221a146200029e57806370a0823114620002ce5780637b0de07214620003125780638d1ac59d14620003565762000169565b806307d2b63114620001b15780630c4b55a114620001f557806332905576146200022b5780633ecf5b7914620002705762000169565b3662000169576000341162000167576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015e9062001b30565b60405180910390fd5b005b60003411620001af576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001a69062001b30565b60405180910390fd5b005b348015620001be57600080fd5b50620001dd6004803603810190620001d7919062001bcb565b6200057e565b604051620001ec919062001c1a565b60405180910390f35b6200021360048036038101906200020d919062001cf2565b6200059e565b60405162000222919062001d8b565b60405180910390f35b3480156200023857600080fd5b5062000257600480360381019062000251919062001da8565b62000c2c565b6040516200026792919062001eb9565b60405180910390f35b3480156200027d57600080fd5b506200029c600480360381019062000296919062001f2b565b62000e3b565b005b348015620002ab57600080fd5b50620002b662000f3f565b604051620002c5919062001f5d565b60405180910390f35b348015620002db57600080fd5b50620002fa6004803603810190620002f4919062001bcb565b62000f45565b60405162000309919062001f5d565b60405180910390f35b3480156200031f57600080fd5b506200033e600480360381019062000338919062001f7a565b6200100b565b6040516200034d919062001d8b565b60405180910390f35b3480156200036357600080fd5b506200038260048036038101906200037c919062001bcb565b6200105a565b60405162000391919062001c1a565b60405180910390f35b348015620003a757600080fd5b50620003c66004803603810190620003c0919062002167565b6200113f565b005b348015620003d557600080fd5b50620003f46004803603810190620003ee919062001bcb565b620012ea565b60405162000403919062001c1a565b60405180910390f35b3480156200041957600080fd5b5062000424620013cf565b604051620004339190620021cd565b60405180910390f35b3480156200044957600080fd5b5062000468600480360381019062000462919062001bcb565b6200149c565b005b3480156200047757600080fd5b5062000496600480360381019062000490919062002167565b6200156f565b005b348015620004a557600080fd5b50620004b06200169a565b604051620004bf919062002202565b60405180910390f35b348015620004d557600080fd5b50620004f46004803603810190620004ee91906200221f565b6200173e565b005b3480156200050357600080fd5b506200052260048036038101906200051c91906200227b565b620018da565b604051620005319190620021cd565b60405180910390f35b3480156200054757600080fd5b5062000566600480360381019062000560919062001bcb565b62001aa1565b60405162000575919062001c1a565b60405180910390f35b60066020528060005260406000206000915054906101000a900460ff1681565b60008573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff160362000611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200060890620022fd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160362000683576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200067a906200236f565b60405180910390fd5b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000712576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200070990620023e1565b60405180910390fd5b6000821480620007255750620151808210155b62000767576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200075e9062002453565b60405180910390fd5b6000859050600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16146200086b57848173ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401620007dd919062001d8b565b602060405180830381865afa158015620007fb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200082191906200248c565b101562000865576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200085c906200250e565b60405180910390fd5b620008b1565b843414620008b0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008a79062002580565b60405180910390fd5b5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1687858888338d60008054906101000a900460ff16620008f66001620018da565b604051620009049062001ac1565b6200091899989796959493929190620025c4565b604051809103906000f08015801562000935573d6000803e3d6000fd5b509050600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1603620009bb578073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015620009b4573d6000803e3d6000fd5b5062000a42565b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3383896040518463ffffffff1660e01b8152600401620009fa939291906200266a565b6020604051808303816000875af115801562000a1a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a409190620026be565b505b6002819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f1449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5b8160405162000c16919062001d8b565b60405180910390a1809250505095945050505050565b60606000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000cbf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cb690620023e1565b60405180910390fd5b6000600a90508360028054905062000cd891906200271f565b81111562000cf6578360028054905062000cf391906200271f565b90505b60008167ffffffffffffffff81111562000d155762000d1462001fd7565b5b60405190808252806020026020018201604052801562000d445781602001602082028036833780820191505090505b50905060005b8281101562000e285760028187600160028054905062000d6b91906200271f565b62000d7791906200271f565b62000d8391906200271f565b8154811062000d975762000d966200275a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682828151811062000dd85762000dd76200275a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050808062000e1f9062002789565b91505062000d4a565b5080600280549050935093505050915091565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000eca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ec190620023e1565b60405180910390fd5b60008160ff16118062000ee0575060648160ff16105b62000f22576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f199062002826565b60405180910390fd5b806000806101000a81548160ff021916908360ff16021790555050565b60015481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000f845747905062001006565b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040162000fbf919062001d8b565b602060405180830381865afa15801562000fdd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200100391906200248c565b90505b919050565b600460205281600052604060002081815481106200102857600080fd5b906000526020600020016000915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16620010eb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010e290620023e1565b60405180910390fd5b600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16620011ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620011c590620023e1565b60405180910390fd5b60005b8251811015620012e5578160056000858481518110620011f657620011f56200275a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060038382815181106200126757620012666200275a565b5b60200260200101519080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508080620012dc9062002789565b915050620011d1565b505050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200137b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200137290620023e1565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6060600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156200149257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831162001447575b5050505050905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200152b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200152290620023e1565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16620015fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620015f590620023e1565b60405180910390fd5b60005b8251811015620016955781600660008584815181106200162657620016256200275a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806200168c9062002789565b91505062001601565b505050565b6000600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166200172b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200172290620023e1565b60405180910390fd5b60008054906101000a900460ff16905090565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16620017cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620017c490620023e1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362001850578273ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801562001849573d6000803e3d6000fd5b50620018d5565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b81526004016200188d929190620028b3565b6020604051808303816000875af1158015620018ad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018d39190620026be565b505b505050565b6060600060038054905067ffffffffffffffff8111156200190057620018ff62001fd7565b5b6040519080825280602002602001820160405280156200192f5781602001602082028036833780820191505090505b5090506000805b60038054905081101562001a965784151560056000600384815481106200196257620019616200275a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150362001a805760038181548110620019f457620019f36200275a565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683838151811062001a355762001a346200275a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050818062001a7c9062002789565b9250505b808062001a8d9062002789565b91505062001936565b508192505050919050565b60056020528060005260406000206000915054906101000a900460ff1681565b61356380620028e183390190565b600082825260208201905092915050565b7f5f5f5f494e56414c49445f414d4f554e545f5f5f000000000000000000000000600082015250565b600062001b1860148362001acf565b915062001b258262001ae0565b602082019050919050565b6000602082019050818103600083015262001b4b8162001b09565b9050919050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001b938262001b66565b9050919050565b62001ba58162001b86565b811462001bb157600080fd5b50565b60008135905062001bc58162001b9a565b92915050565b60006020828403121562001be45762001be362001b5c565b5b600062001bf48482850162001bb4565b91505092915050565b60008115159050919050565b62001c148162001bfd565b82525050565b600060208201905062001c31600083018462001c09565b92915050565b600062001c448262001b66565b9050919050565b62001c568162001c37565b811462001c6257600080fd5b50565b60008135905062001c768162001c4b565b92915050565b6000819050919050565b62001c918162001c7c565b811462001c9d57600080fd5b50565b60008135905062001cb18162001c86565b92915050565b6000819050919050565b62001ccc8162001cb7565b811462001cd857600080fd5b50565b60008135905062001cec8162001cc1565b92915050565b600080600080600060a0868803121562001d115762001d1062001b5c565b5b600062001d218882890162001c65565b955050602062001d348882890162001bb4565b945050604062001d478882890162001ca0565b935050606062001d5a8882890162001cdb565b925050608062001d6d8882890162001ca0565b9150509295509295909350565b62001d858162001b86565b82525050565b600060208201905062001da2600083018462001d7a565b92915050565b60006020828403121562001dc15762001dc062001b5c565b5b600062001dd18482850162001ca0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b62001e118162001b86565b82525050565b600062001e25838362001e06565b60208301905092915050565b6000602082019050919050565b600062001e4b8262001dda565b62001e57818562001de5565b935062001e648362001df6565b8060005b8381101562001e9b57815162001e7f888262001e17565b975062001e8c8362001e31565b92505060018101905062001e68565b5085935050505092915050565b62001eb38162001c7c565b82525050565b6000604082019050818103600083015262001ed5818562001e3e565b905062001ee6602083018462001ea8565b9392505050565b600060ff82169050919050565b62001f058162001eed565b811462001f1157600080fd5b50565b60008135905062001f258162001efa565b92915050565b60006020828403121562001f445762001f4362001b5c565b5b600062001f548482850162001f14565b91505092915050565b600060208201905062001f74600083018462001ea8565b92915050565b6000806040838503121562001f945762001f9362001b5c565b5b600062001fa48582860162001bb4565b925050602062001fb78582860162001ca0565b9150509250929050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620020118262001fc6565b810181811067ffffffffffffffff8211171562002033576200203262001fd7565b5b80604052505050565b60006200204862001b52565b905062002056828262002006565b919050565b600067ffffffffffffffff82111562002079576200207862001fd7565b5b602082029050602081019050919050565b600080fd5b6000620020a6620020a0846200205b565b6200203c565b90508083825260208201905060208402830185811115620020cc57620020cb6200208a565b5b835b81811015620020f95780620020e4888262001bb4565b845260208401935050602081019050620020ce565b5050509392505050565b600082601f8301126200211b576200211a62001fc1565b5b81356200212d8482602086016200208f565b91505092915050565b620021418162001bfd565b81146200214d57600080fd5b50565b600081359050620021618162002136565b92915050565b6000806040838503121562002181576200218062001b5c565b5b600083013567ffffffffffffffff811115620021a257620021a162001b61565b5b620021b08582860162002103565b9250506020620021c38582860162002150565b9150509250929050565b60006020820190508181036000830152620021e9818462001e3e565b905092915050565b620021fc8162001eed565b82525050565b6000602082019050620022196000830184620021f1565b92915050565b6000806000606084860312156200223b576200223a62001b5c565b5b60006200224b8682870162001c65565b93505060206200225e8682870162001bb4565b9250506040620022718682870162001ca0565b9150509250925092565b60006020828403121562002294576200229362001b5c565b5b6000620022a48482850162002150565b91505092915050565b7f5f5f5f494e56414c49445f53414d455f5f5f0000000000000000000000000000600082015250565b6000620022e560128362001acf565b9150620022f282620022ad565b602082019050919050565b600060208201905081810360008301526200231881620022d6565b9050919050565b7f5f5f5f4e4f4e5f45584953545f414444524553535f5f5f000000000000000000600082015250565b60006200235760178362001acf565b915062002364826200231f565b602082019050919050565b600060208201905081810360008301526200238a8162002348565b9050919050565b7f5f5f5f4e4f545f545255535445445f5f5f000000000000000000000000000000600082015250565b6000620023c960118362001acf565b9150620023d68262002391565b602082019050919050565b60006020820190508181036000830152620023fc81620023ba565b9050919050565b7f5f5f5f494e56414c49445f4455524154494f4e5f5f5f00000000000000000000600082015250565b60006200243b60168362001acf565b9150620024488262002403565b602082019050919050565b600060208201905081810360008301526200246e816200242c565b9050919050565b600081519050620024868162001c86565b92915050565b600060208284031215620024a557620024a462001b5c565b5b6000620024b58482850162002475565b91505092915050565b7f5f5f5f544f4b454e5f554e415641494c41424c455f5f5f000000000000000000600082015250565b6000620024f660178362001acf565b91506200250382620024be565b602082019050919050565b600060208201905081810360008301526200252981620024e7565b9050919050565b7f5f5f5f4449464645525f414d4f554e545f56414c5f5f5f000000000000000000600082015250565b60006200256860178362001acf565b9150620025758262002530565b602082019050919050565b600060208201905081810360008301526200259b8162002559565b9050919050565b620025ad8162001c37565b82525050565b620025be8162001cb7565b82525050565b600061012082019050620025dc600083018c620025a2565b620025eb602083018b62001d7a565b620025fa604083018a62001ea8565b62002609606083018962001ea8565b620026186080830188620025b3565b6200262760a0830187620025a2565b6200263660c0830186620025a2565b6200264560e0830185620021f1565b8181036101008301526200265a818462001e3e565b90509a9950505050505050505050565b600060608201905062002681600083018662001d7a565b62002690602083018562001d7a565b6200269f604083018462001ea8565b949350505050565b600081519050620026b88162002136565b92915050565b600060208284031215620026d757620026d662001b5c565b5b6000620026e784828501620026a7565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200272c8262001c7c565b9150620027398362001c7c565b9250828210156200274f576200274e620026f0565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000620027968262001c7c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620027cb57620027ca620026f0565b5b600182019050919050565b7f5f5f5f494e56414c49445f4645455f50455243454e545f5f5f00000000000000600082015250565b60006200280e60198362001acf565b91506200281b82620027d6565b602082019050919050565b600060208201905081810360008301526200284181620027ff565b9050919050565b6000819050919050565b6000620028736200286d620028678462001b66565b62002848565b62001b66565b9050919050565b6000620028878262002852565b9050919050565b60006200289b826200287a565b9050919050565b620028ad816200288e565b82525050565b6000604082019050620028ca6000830185620028a2565b620028d9602083018462001ea8565b939250505056fe60806040526000600a553480156200001657600080fd5b50604051620035633803806200356383398181016040528101906200003c91906200086f565b60008714806200004f5750620151808710155b62000091576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008890620009ce565b60405180910390fd5b60008260ff161180620000a7575060648260ff16105b620000e9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000e09062000a40565b60405180910390fd5b600063368c1af8905060008810620000ff578790505b89600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555088600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620001ea826200045d60201b60201c565b604051806101400160405280600060068111156200020d576200020c62000a62565b5b81526020018781526020018a73ffffffffffffffffffffffffffffffffffffffff168152602001428362000242919062000ac0565b81526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018881526020013073ffffffffffffffffffffffffffffffffffffffff1681526020018460ff168152506000808201518160000160006101000a81548160ff02191690836006811115620002de57620002dd62000a62565b5b02179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816006015560e082015181600701556101008201518160080160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101208201518160080160146101000a81548160ff021916908360ff1602179055509050505050505050505050505062000c0b565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16620004ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004e39062000b6d565b60405180910390fd5b60005b815181101562000584576001600c600084848151811062000515576200051462000b8f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806200057b9062000bbe565b915050620004ef565b5050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005c9826200059c565b9050919050565b620005db81620005bc565b8114620005e757600080fd5b50565b600081519050620005fb81620005d0565b92915050565b60006200060e826200059c565b9050919050565b620006208162000601565b81146200062c57600080fd5b50565b600081519050620006408162000615565b92915050565b6000819050919050565b6200065b8162000646565b81146200066757600080fd5b50565b6000815190506200067b8162000650565b92915050565b6000819050919050565b620006968162000681565b8114620006a257600080fd5b50565b600081519050620006b6816200068b565b92915050565b600060ff82169050919050565b620006d481620006bc565b8114620006e057600080fd5b50565b600081519050620006f481620006c9565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200074a82620006ff565b810181811067ffffffffffffffff821117156200076c576200076b62000710565b5b80604052505050565b60006200078162000588565b90506200078f82826200073f565b919050565b600067ffffffffffffffff821115620007b257620007b162000710565b5b602082029050602081019050919050565b600080fd5b6000620007df620007d98462000794565b62000775565b90508083825260208201905060208402830185811115620008055762000804620007c3565b5b835b818110156200083257806200081d88826200062f565b84526020840193505060208101905062000807565b5050509392505050565b600082601f830112620008545762000853620006fa565b5b815162000866848260208601620007c8565b91505092915050565b60008060008060008060008060006101208a8c03121562000895576200089462000592565b5b6000620008a58c828d01620005ea565b9950506020620008b88c828d016200062f565b9850506040620008cb8c828d016200066a565b9750506060620008de8c828d016200066a565b9650506080620008f18c828d01620006a5565b95505060a0620009048c828d01620005ea565b94505060c0620009178c828d01620005ea565b93505060e06200092a8c828d01620006e3565b9250506101008a015167ffffffffffffffff8111156200094f576200094e62000597565b5b6200095d8c828d016200083c565b9150509295985092959850929598565b600082825260208201905092915050565b7f5f5f5f494e56414c49445f4455524154494f4e5f5f5f00000000000000000000600082015250565b6000620009b66016836200096d565b9150620009c3826200097e565b602082019050919050565b60006020820190508181036000830152620009e981620009a7565b9050919050565b7f5f5f5f494e56414c49445f4645455f50455243454e545f5f5f00000000000000600082015250565b600062000a286019836200096d565b915062000a3582620009f0565b602082019050919050565b6000602082019050818103600083015262000a5b8162000a19565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000acd8262000646565b915062000ada8362000646565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000b125762000b1162000a91565b5b828201905092915050565b7f5f5f5f4e4f545f545255535445445f5f5f000000000000000000000000000000600082015250565b600062000b556011836200096d565b915062000b628262000b1d565b602082019050919050565b6000602082019050818103600083015262000b888162000b46565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600062000bcb8262000646565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000c005762000bff62000a91565b5b600182019050919050565b6129488062000c1b6000396000f3fe6080604052600436106100e15760003560e01c80639eb262f31161007f578063ea8a1af011610059578063ea8a1af014610388578063f17171e91461039f578063f3be156c146103dc578063fbbf93a01461040557610194565b80639eb262f31461031d578063c5abf87b14610346578063c78b64ab1461037157610194565b806344ad8080116100bb57806344ad8080146102ad5780636a84d18b146102c45780639a044c57146102db5780639d76ea58146102f257610194565b806312065fe0146102425780631f80bcd81461026d578063230244081461028457610194565b366101945760056000800160009054906101000a900460ff16600681111561010c5761010b6119f6565b5b60ff161061014f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161014690611a82565b60405180910390fd5b60003411610192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161018990611aee565b60405180910390fd5b005b60056000800160009054906101000a900460ff1660068111156101ba576101b96119f6565b5b60ff16106101fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101f490611a82565b60405180910390fd5b60003411610240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023790611aee565b60405180910390fd5b005b34801561024e57600080fd5b50610257610430565b6040516102649190611b27565b60405180910390f35b34801561027957600080fd5b50610282610531565b005b34801561029057600080fd5b506102ab60048036038101906102a69190611bb4565b61067a565b005b3480156102b957600080fd5b506102c26108f1565b005b3480156102d057600080fd5b506102d9610a2e565b005b3480156102e757600080fd5b506102f0610b68565b005b3480156102fe57600080fd5b50610307610ca2565b6040516103149190611c02565b60405180910390f35b34801561032957600080fd5b50610344600480360381019061033f9190611da2565b610cc8565b005b34801561035257600080fd5b5061035b610de9565b6040516103689190611dfa565b60405180910390f35b34801561037d57600080fd5b50610386610e0f565b005b34801561039457600080fd5b5061039d610f93565b005b3480156103ab57600080fd5b506103c660048036038101906103c19190611e15565b611250565b6040516103d39190611e5d565b60405180910390f35b3480156103e857600080fd5b5061040360048036038101906103fe9190611ea4565b611270565b005b34801561041157600080fd5b5061041a611465565b6040516104279190612047565b60405180910390f35b60008073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361048f5747905061052e565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016104ea9190611c02565b602060405180830381865afa158015610507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052b9190612078565b90505b90565b600060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bb906120f1565b60405180910390fd5b600260068111156105d8576105d76119f6565b5b6000800160009054906101000a900460ff1660068111156105fc576105fb6119f6565b5b1461063c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063390612183565b60405180910390fd5b60016000800160006101000a81548160ff02191690836006811115610664576106636119f6565b5b0217905550600060060154600060030181905550565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fd906121ef565b60405180910390fd5b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614806107b55750600060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6107f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107eb9061225b565b60405180910390fd5b6000800160009054906101000a900460ff166006811115610818576108176119f6565b5b6005600681111561082c5761082b6119f6565b5b0361086c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610863906122c7565b60405180910390fd5b60068081111561087f5761087e6119f6565b5b6000800160009054906101000a900460ff1660068111156108a3576108a26119f6565b5b036108e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108da90612333565b60405180910390fd5b6108ee816006611658565b50565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b9061239f565b60405180910390fd5b60036006811115610998576109976119f6565b5b6000800160009054906101000a900460ff1660068111156109bc576109bb6119f6565b5b146109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f39061240b565b60405180910390fd5b610a2c600060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006611658565b565b600060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab8906120f1565b60405180910390fd5b60026006811115610ad557610ad46119f6565b5b6000800160009054906101000a900460ff166006811115610af957610af86119f6565b5b14610b39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3090612183565b60405180910390fd5b60046000800160006101000a81548160ff02191690836006811115610b6157610b606119f6565b5b0217905550565b600060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf2906120f1565b60405180910390fd5b60016006811115610c0f57610c0e6119f6565b5b6000800160009054906101000a900460ff166006811115610c3357610c326119f6565b5b14610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612477565b60405180910390fd5b60036000800160006101000a81548160ff02191690836006811115610c9b57610c9a6119f6565b5b0217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4b906121ef565b60405180910390fd5b60005b8151811015610de5576001600c6000848481518110610d7957610d78612497565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ddd906124f5565b915050610d57565b5050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ea2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e99906120f1565b60405180910390fd5b6000610eac610430565b11610eec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee390612589565b60405180910390fd5b60006006811115610f0057610eff6119f6565b5b6000800160009054906101000a900460ff166006811115610f2457610f236119f6565b5b14610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b906125f5565b60405180910390fd5b60016000800160006101000a81548160ff02191690836006811115610f8c57610f8b6119f6565b5b0217905550565b60036000800160009054906101000a900460ff166006811115610fb957610fb86119f6565b5b60ff1610610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff390611a82565b60405180910390fd5b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110ab5750600060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e19061225b565b60405180910390fd5b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480156111bf575060016006811115611159576111586119f6565b5b6000800160009054906101000a900460ff16600681111561117d5761117c6119f6565b5b14806111be575060026006811115611198576111976119f6565b5b6000800160009054906101000a900460ff1660068111156111bc576111bb6119f6565b5b145b5b1561121e5742600060030154111580156111de57506000600601544210155b61121d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121490612661565b60405180910390fd5b5b61124e600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166005611658565b565b600c6020528060005260406000206000915054906101000a900460ff1681565b600060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611303576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fa9061239f565b60405180910390fd5b60036006811115611317576113166119f6565b5b6000800160009054906101000a900460ff16600681111561133b5761133a6119f6565b5b1461137b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113729061240b565b60405180910390fd5b620151808110156113c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b8906126cd565b60405180910390fd5b600a60008154809291906113d4906124f5565b91905055506000600290506001600a54111561141f5760049050806000800160006101000a81548160ff02191690836006811115611415576114146119f6565b5b0217905550611461565b806000800160006101000a81548160ff02191690836006811115611446576114456119f6565b5b0217905550428261145791906126ed565b6000600601819055505b5050565b61146d611933565b6000604051806101400160405290816000820160009054906101000a900460ff1660068111156114a05761149f6119f6565b5b60068111156114b2576114b16119f6565b5b8152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015481526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160068201548152602001600782015481526020016008820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016008820160149054906101000a900460ff1660ff1660ff1681525050905090565b60006064600060080160149054906101000a900460ff1660ff166000600701546116829190612743565b61168c91906127cc565b9050600073ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036117a957600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561174c573d6000803e3d6000fd5b508273ffffffffffffffffffffffffffffffffffffffff166108fc8260006007015461177891906127fd565b9081150290604051600060405180830381858888f193505050501580156117a3573d6000803e3d6000fd5b50611902565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161182d929190612890565b6020604051808303816000875af115801561184c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061187091906128e5565b508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb858460006007015461189f91906127fd565b6040518363ffffffff1660e01b81526004016118bc929190612890565b6020604051808303816000875af11580156118db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ff91906128e5565b50505b816000800160006101000a81548160ff02191690836006811115611929576119286119f6565b5b0217905550505050565b60405180610140016040528060006006811115611953576119526119f6565b5b815260200160008019168152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060ff1681525090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600082825260208201905092915050565b7f5f5f5f4e4f545f454c494749424c455f5f5f0000000000000000000000000000600082015250565b6000611a6c601283611a25565b9150611a7782611a36565b602082019050919050565b60006020820190508181036000830152611a9b81611a5f565b9050919050565b7f5f5f5f494e56414c49445f414d4f554e545f5f5f000000000000000000000000600082015250565b6000611ad8601483611a25565b9150611ae382611aa2565b602082019050919050565b60006020820190508181036000830152611b0781611acb565b9050919050565b6000819050919050565b611b2181611b0e565b82525050565b6000602082019050611b3c6000830184611b18565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b8182611b56565b9050919050565b611b9181611b76565b8114611b9c57600080fd5b50565b600081359050611bae81611b88565b92915050565b600060208284031215611bca57611bc9611b4c565b5b6000611bd884828501611b9f565b91505092915050565b6000611bec82611b56565b9050919050565b611bfc81611be1565b82525050565b6000602082019050611c176000830184611bf3565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611c6b82611c22565b810181811067ffffffffffffffff82111715611c8a57611c89611c33565b5b80604052505050565b6000611c9d611b42565b9050611ca98282611c62565b919050565b600067ffffffffffffffff821115611cc957611cc8611c33565b5b602082029050602081019050919050565b600080fd5b611ce881611be1565b8114611cf357600080fd5b50565b600081359050611d0581611cdf565b92915050565b6000611d1e611d1984611cae565b611c93565b90508083825260208201905060208402830185811115611d4157611d40611cda565b5b835b81811015611d6a5780611d568882611cf6565b845260208401935050602081019050611d43565b5050509392505050565b600082601f830112611d8957611d88611c1d565b5b8135611d99848260208601611d0b565b91505092915050565b600060208284031215611db857611db7611b4c565b5b600082013567ffffffffffffffff811115611dd657611dd5611b51565b5b611de284828501611d74565b91505092915050565b611df481611b76565b82525050565b6000602082019050611e0f6000830184611deb565b92915050565b600060208284031215611e2b57611e2a611b4c565b5b6000611e3984828501611cf6565b91505092915050565b60008115159050919050565b611e5781611e42565b82525050565b6000602082019050611e726000830184611e4e565b92915050565b611e8181611b0e565b8114611e8c57600080fd5b50565b600081359050611e9e81611e78565b92915050565b600060208284031215611eba57611eb9611b4c565b5b6000611ec884828501611e8f565b91505092915050565b60078110611ee257611ee16119f6565b5b50565b6000819050611ef382611ed1565b919050565b6000611f0382611ee5565b9050919050565b611f1381611ef8565b82525050565b6000819050919050565b611f2c81611f19565b82525050565b611f3b81611be1565b82525050565b611f4a81611b0e565b82525050565b611f5981611b76565b82525050565b600060ff82169050919050565b611f7581611f5f565b82525050565b61014082016000820151611f926000850182611f0a565b506020820151611fa56020850182611f23565b506040820151611fb86040850182611f32565b506060820151611fcb6060850182611f41565b506080820151611fde6080850182611f50565b5060a0820151611ff160a0850182611f50565b5060c082015161200460c0850182611f41565b5060e082015161201760e0850182611f41565b5061010082015161202c610100850182611f32565b50610120820151612041610120850182611f6c565b50505050565b60006101408201905061205d6000830184611f7b565b92915050565b60008151905061207281611e78565b92915050565b60006020828403121561208e5761208d611b4c565b5b600061209c84828501612063565b91505092915050565b7f5f5f5f4f4e4c595f53454c4c45525f5f5f000000000000000000000000000000600082015250565b60006120db601183611a25565b91506120e6826120a5565b602082019050919050565b6000602082019050818103600083015261210a816120ce565b9050919050565b7f5f5f5f4e4f545f494e5f52454a4543545f44454c49564552595f53544154555360008201527f5f5f5f0000000000000000000000000000000000000000000000000000000000602082015250565b600061216d602383611a25565b915061217882612111565b604082019050919050565b6000602082019050818103600083015261219c81612160565b9050919050565b7f5f5f5f4e4f545f545255535445445f5f5f000000000000000000000000000000600082015250565b60006121d9601183611a25565b91506121e4826121a3565b602082019050919050565b60006020820190508181036000830152612208816121cc565b9050919050565b7f5f5f5f494e56414c49445f42555945525f53454c4c45525f5f5f000000000000600082015250565b6000612245601a83611a25565b91506122508261220f565b602082019050919050565b6000602082019050818103600083015261227481612238565b9050919050565b7f5f5f5f414c52454144595f43414e43454c4c45445f5f5f000000000000000000600082015250565b60006122b1601783611a25565b91506122bc8261227b565b602082019050919050565b600060208201905081810360008301526122e0816122a4565b9050919050565b7f5f5f5f4e4f545f494e5f434f4d504c4554455f5354415455535f5f5f00000000600082015250565b600061231d601c83611a25565b9150612328826122e7565b602082019050919050565b6000602082019050818103600083015261234c81612310565b9050919050565b7f5f5f5f4f4e4c595f42555945525f5f5f00000000000000000000000000000000600082015250565b6000612389601083611a25565b915061239482612353565b602082019050919050565b600060208201905081810360008301526123b88161237c565b9050919050565b7f5f5f5f4e4f545f494e5f44454c4956455245445f5354415455535f5f5f000000600082015250565b60006123f5601d83611a25565b9150612400826123bf565b602082019050919050565b60006020820190508181036000830152612424816123e8565b9050919050565b7f5f5f5f4e4f545f494e5f4f4e474f494e475f5354415455535f5f5f0000000000600082015250565b6000612461601b83611a25565b915061246c8261242b565b602082019050919050565b6000602082019050818103600083015261249081612454565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061250082611b0e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612532576125316124c6565b5b600182019050919050565b7f5f5f5f4e4f5f46554e44535f5f5f000000000000000000000000000000000000600082015250565b6000612573600e83611a25565b915061257e8261253d565b602082019050919050565b600060208201905081810360008301526125a281612566565b9050919050565b7f5f5f5f4e4f545f494e5f4c41554e434845445f5354415455535f5f5f00000000600082015250565b60006125df601c83611a25565b91506125ea826125a9565b602082019050919050565b6000602082019050818103600083015261260e816125d2565b9050919050565b7f5f5f5f4e4f545f455850495245445f5f5f000000000000000000000000000000600082015250565b600061264b601183611a25565b915061265682612615565b602082019050919050565b6000602082019050818103600083015261267a8161263e565b9050919050565b7f5f5f5f52454a4543545f4d494e5f4441595f5f5f000000000000000000000000600082015250565b60006126b7601483611a25565b91506126c282612681565b602082019050919050565b600060208201905081810360008301526126e6816126aa565b9050919050565b60006126f882611b0e565b915061270383611b0e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612738576127376124c6565b5b828201905092915050565b600061274e82611b0e565b915061275983611b0e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612792576127916124c6565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006127d782611b0e565b91506127e283611b0e565b9250826127f2576127f161279d565b5b828204905092915050565b600061280882611b0e565b915061281383611b0e565b925082821015612826576128256124c6565b5b828203905092915050565b6000819050919050565b600061285661285161284c84611b56565b612831565b611b56565b9050919050565b60006128688261283b565b9050919050565b600061287a8261285d565b9050919050565b61288a8161286f565b82525050565b60006040820190506128a56000830185612881565b6128b26020830184611b18565b9392505050565b6128c281611e42565b81146128cd57600080fd5b50565b6000815190506128df816128b9565b92915050565b6000602082840312156128fb576128fa611b4c565b5b6000612909848285016128d0565b9150509291505056fea26469706673582212203fbd22b3150b6b98cc05f00405e7e49030645bdc60fd9336545ff9a81e2b813864736f6c634300080f0033a264697066735822122064632c31e40d7ce2e958a74df001f1b2a33132bdb147bc4b9253d6dae3b0a91264736f6c634300080f0033000000000000000000000000f0c6de7d153650bb31da86a15b0b7e5f34ce37a200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004000000000000000000000000e1146b9ac456fcbb60644c36fd3f868a9072fc6e000000000000000000000000658b0c7613e890ee50b8c4bc6a3f41ef411208ad00000000000000000000000004068da6c83afcfa0e13ba15a6696662335d5b750000000000000000000000008d11ec38a3eb5e956b052f67da8bdc9bef8abf3e
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f0c6de7d153650bb31da86a15b0b7e5f34ce37a200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000004000000000000000000000000e1146b9ac456fcbb60644c36fd3f868a9072fc6e000000000000000000000000658b0c7613e890ee50b8c4bc6a3f41ef411208ad00000000000000000000000004068da6c83afcfa0e13ba15a6696662335d5b750000000000000000000000008d11ec38a3eb5e956b052f67da8bdc9bef8abf3e
-----Decoded View---------------
Arg [0] : _backup (address): 0xf0c6de7d153650bb31da86a15b0b7e5f34ce37a2
Arg [1] : trustedTokens (address[]): 0xe1146b9ac456fcbb60644c36fd3f868a9072fc6e,0x658b0c7613e890ee50b8c4bc6a3f41ef411208ad,0x04068da6c83afcfa0e13ba15a6696662335d5b75,0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e
-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000f0c6de7d153650bb31da86a15b0b7e5f34ce37a2
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [3] : 000000000000000000000000e1146b9ac456fcbb60644c36fd3f868a9072fc6e
Arg [4] : 000000000000000000000000658b0c7613e890ee50b8c4bc6a3f41ef411208ad
Arg [5] : 00000000000000000000000004068da6c83afcfa0e13ba15a6696662335d5b75
Arg [6] : 0000000000000000000000008d11ec38a3eb5e956b052f67da8bdc9bef8abf3e
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Validator ID :
0 FTM
Amount Staked
0
Amount Delegated
0
Staking Total
0
Staking Start Epoch
0
Staking Start Time
0
Proof of Importance
0
Origination Score
0
Validation Score
0
Active
0
Online
0
Downtime
0 s
Address | Amount | claimed Rewards | Created On Epoch | Created On |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.