Contract 0x09F33050A4F266E8908293199001a44Fb5A7A1e7

Token Contract 
 
 
Txn Hash
Method
Block
From
To
Value
0x2d7fc32ae074ab3223642449e8f6219ec06b99167913e8946f4226c0ae22ba6d0x60806040140545692022-01-22 9:25:06320 days 14 hrs agoEngines of Fury: Deployer IN  Create: Fury0 Ether0.44595291138.5484776
[ Download CSV Export 

OVERVIEW

Wager-based PVE/PVP arena battler in a stunning 3D retro-futuristic world, powered by $FURY

Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Fury

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-01-22
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() external virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) external virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

abstract contract Pausable is Ownable {
    event Paused(address account);

    event Unpaused(address account);

    bool private _paused;

    constructor() {
        _paused = false;
    }

    function paused() public view virtual returns (bool) {
        return _paused;
    }
    
    function pause() external virtual onlyOwner {
        _pause();
    }
    
    function unpause() external virtual onlyOwner {
        _unpause();
    }
    
    modifier whenNotPaused() {
        require(!paused(), "Pausable: paused");
        _;
    }

    modifier whenPaused() {
        require(paused(), "Pausable: not paused");
        _;
    }

    function _pause() internal virtual whenNotPaused {
        _paused = true;
        emit Paused(_msgSender());
    }

    function _unpause() internal virtual whenPaused {
        _paused = false;
        emit Unpaused(_msgSender());
    }
}


interface ILosslessController {
    function beforeTransfer(address sender, address recipient, uint256 amount) external;

    function beforeTransferFrom(address msgSender, address sender, address recipient, uint256 amount) external;

    function beforeApprove(address sender, address spender, uint256 amount) external;

    function beforeIncreaseAllowance(address msgSender, address spender, uint256 addedValue) external;

    function beforeDecreaseAllowance(address msgSender, address spender, uint256 subtractedValue) external;
}

contract Fury is Pausable {
    mapping(address => uint256) private _balances;

    mapping(address => mapping(address => uint256)) private _allowances;

    //120 000 000
    uint256 private _totalSupply = 120e6 ether;
    
    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);

    address public recoveryAdmin;
    address private recoveryAdminCanditate;
    bytes32 private recoveryAdminKeyHash;
    address public admin;
    uint256 public timelockPeriod;
    uint256 public losslessTurnOffTimestamp;
    bool public isLosslessTurnOffProposed;
    bool public isLosslessOn = true;
    ILosslessController public lossless;

    event AdminChanged(address indexed previousAdmin, address indexed newAdmin);
    event RecoveryAdminChangeProposed(address indexed candidate);
    event RecoveryAdminChanged(address indexed previousAdmin, address indexed newAdmin);
    event LosslessTurnOffProposed(uint256 turnOffDate);
    event LosslessTurnedOff();
    event LosslessTurnedOn();

    constructor(address admin_, address recoveryAdmin_, uint256 timelockPeriod_, address lossless_) {
        admin = admin_;
        recoveryAdmin = recoveryAdmin_;
        timelockPeriod = timelockPeriod_;
        lossless = ILosslessController(lossless_);
        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    // --- LOSSLESS modifiers ---

    modifier lssAprove(address spender, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeApprove(_msgSender(), spender, amount);
        } 
        _;
    }

    modifier lssTransfer(address recipient, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeTransfer(_msgSender(), recipient, amount);
        } 
        _;
    }

    modifier lssTransferFrom(address sender, address recipient, uint256 amount) {
        if (isLosslessOn) {
            lossless.beforeTransferFrom(_msgSender(), sender, recipient, amount);
        }
        _;
    }

    modifier lssIncreaseAllowance(address spender, uint256 addedValue) {
        if (isLosslessOn) {
            lossless.beforeIncreaseAllowance(_msgSender(), spender, addedValue);
        }
        _;
    }

    modifier lssDecreaseAllowance(address spender, uint256 subtractedValue) {
        if (isLosslessOn) {
            lossless.beforeDecreaseAllowance(_msgSender(), spender, subtractedValue);
        }
        _;
    }

    modifier onlyRecoveryAdmin() {
        require(_msgSender() == recoveryAdmin, "LERC20: Must be recovery admin");
        _;
    }

    // --- LOSSLESS management ---

    function getAdmin() external view returns (address) {
        return admin;
    }

    function transferOutBlacklistedFunds(address[] calldata from) external {
        require(_msgSender() == address(lossless), "LERC20: Only lossless contract");
        for (uint i = 0; i < from.length; i++) {
            _transfer(from[i], address(lossless), balanceOf(from[i]));
        }
    }

    function setLosslessAdmin(address newAdmin) external onlyRecoveryAdmin {
        require(newAdmin != address(0), "LERC20: Cannot be zero address");
        emit AdminChanged(admin, newAdmin);
        admin = newAdmin;
    }

    function transferRecoveryAdminOwnership(address candidate, bytes32 keyHash) external onlyRecoveryAdmin {
        require(candidate != address(0), "LERC20: Cannot be zero address");
        recoveryAdminCanditate = candidate;
        recoveryAdminKeyHash = keyHash;
        emit RecoveryAdminChangeProposed(candidate);
    }

    function acceptRecoveryAdminOwnership(bytes memory key) external {
        require(_msgSender() == recoveryAdminCanditate, "LERC20: Must be canditate");
        require(keccak256(key) == recoveryAdminKeyHash, "LERC20: Invalid key");
        emit RecoveryAdminChanged(recoveryAdmin, recoveryAdminCanditate);
        recoveryAdmin = recoveryAdminCanditate;
    }

    function proposeLosslessTurnOff() external onlyRecoveryAdmin {
        losslessTurnOffTimestamp = block.timestamp + timelockPeriod;
        isLosslessTurnOffProposed = true;
        emit LosslessTurnOffProposed(losslessTurnOffTimestamp);
    }

    function executeLosslessTurnOff() external onlyRecoveryAdmin {
        require(isLosslessTurnOffProposed, "LERC20: TurnOff not proposed");
        require(losslessTurnOffTimestamp <= block.timestamp, "LERC20: Time lock in progress");
        isLosslessOn = false;
        isLosslessTurnOffProposed = false;
        emit LosslessTurnedOff();
    }

    function executeLosslessTurnOn() external onlyRecoveryAdmin {
        isLosslessTurnOffProposed = false;
        isLosslessOn = true;
        emit LosslessTurnedOn();
    }

    // --- ERC20 methods ---

    function name() external virtual returns (string memory) {
        return "Engines of Fury Token";
    }

    function symbol() external virtual returns (string memory) {
        return "FURY";
    }

    function decimals() external virtual returns (uint8) {
        return 18;
    }

    function totalSupply() external view virtual returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) external virtual lssTransfer(recipient, amount) returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) external view virtual returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) external virtual lssAprove(spender, amount) returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external virtual lssTransferFrom(sender, recipient, amount) returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) external virtual lssIncreaseAllowance(spender, addedValue) returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) external virtual lssDecreaseAllowance(spender, subtractedValue) returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(_msgSender(), spender, currentAllowance - subtractedValue);
        }

        return true;
    }
    
    function burn(uint256 amount) external virtual {
        _burn(_msgSender(), amount);
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer();

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

  
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer();

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer() internal virtual {
        require(!paused(), "ERC20Pausable: token transfer while paused");
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"recoveryAdmin_","type":"address"},{"internalType":"uint256","name":"timelockPeriod_","type":"uint256"},{"internalType":"address","name":"lossless_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"AdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"turnOffDate","type":"uint256"}],"name":"LosslessTurnOffProposed","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessTurnedOff","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessTurnedOn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"candidate","type":"address"}],"name":"RecoveryAdminChangeProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"RecoveryAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"bytes","name":"key","type":"bytes"}],"name":"acceptRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLosslessOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isLosslessTurnOffProposed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lossless","outputs":[{"internalType":"contract ILosslessController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"losslessTurnOffTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoveryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setLosslessAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"timelockPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"from","type":"address[]"}],"name":"transferOutBlacklistedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"candidate","type":"address"},{"internalType":"bytes32","name":"keyHash","type":"bytes32"}],"name":"transferRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526a6342fd08f00f63780000006003556001600a60016101000a81548160ff0219169083151502179055503480156200003b57600080fd5b5060405162003aaf38038062003aaf833981810160405281019062000061919062000337565b62000081620000756200023d60201b60201c565b6200024560201b60201c565b60008060146101000a81548160ff02191690831515021790555083600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508160088190555080600a60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600160006200017c6200023d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001ca6200023d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6003546040516200022b9190620003ba565b60405180910390a3505050506200044e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000815190506200031a816200041a565b92915050565b600081519050620003318162000434565b92915050565b6000806000806080858703121562000354576200035362000415565b5b6000620003648782880162000309565b9450506020620003778782880162000309565b93505060406200038a8782880162000320565b92505060606200039d8782880162000309565b91505092959194509250565b620003b4816200040b565b82525050565b6000602082019050620003d16000830184620003a9565b92915050565b6000620003e482620003eb565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600080fd5b6200042581620003d7565b81146200043157600080fd5b50565b6200043f816200040b565b81146200044b57600080fd5b50565b613651806200045e6000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806370a082311161011a578063a9059cbb116100ad578063d6e242b81161007c578063d6e242b814610546578063dd62ed3e14610550578063efab831c14610580578063f2fde38b1461059e578063f851a440146105ba576101fb565b8063a9059cbb146104d2578063b38fe95714610502578063b5c228771461050c578063ccfa214f14610528576101fb565b806393310ffe116100e957806393310ffe1461044c578063936af9111461046857806395d89b4114610484578063a457c2d7146104a2576101fb565b806370a08231146103ea578063715018a61461041a5780638456cb59146104245780638da5cb5b1461042e576101fb565b806339509351116101925780635c975abb116101615780635c975abb146103725780635f6529a31461039057806361086b00146103ae5780636e9960c3146103cc576101fb565b806339509351146103125780633f4ba83a1461034257806342966c681461034c5780635b8a194a14610368576101fb565b80632baa3c9e116101ce5780632baa3c9e1461029c5780632ecaf675146102b8578063313ce567146102d657806334f6ebf5146102f4576101fb565b806306fdde0314610200578063095ea7b31461021e57806318160ddd1461024e57806323b872dd1461026c575b600080fd5b6102086105d8565b6040516102159190612ad6565b60405180910390f35b610238600480360381019061023391906125a3565b610615565b6040516102459190612aa0565b60405180910390f35b6102566106e5565b6040516102639190612d98565b60405180910390f35b61028660048036038101906102819190612510565b6106ef565b6040516102939190612aa0565b60405180910390f35b6102b660048036038101906102b191906124a3565b61089d565b005b6102c0610a64565b6040516102cd9190612d98565b60405180910390f35b6102de610a6a565b6040516102eb9190612db3565b60405180910390f35b6102fc610a73565b6040516103099190612abb565b60405180910390f35b61032c600480360381019061032791906125a3565b610a99565b6040516103399190612aa0565b60405180910390f35b61034a610bf7565b005b61036660048036038101906103619190612679565b610c7d565b005b610370610c91565b005b61037a610d8c565b6040516103879190612aa0565b60405180910390f35b610398610da2565b6040516103a59190612a09565b60405180910390f35b6103b6610dc8565b6040516103c39190612d98565b60405180910390f35b6103d4610dce565b6040516103e19190612a09565b60405180910390f35b61040460048036038101906103ff91906124a3565b610df8565b6040516104119190612d98565b60405180910390f35b610422610e41565b005b61042c610ec9565b005b610436610f4f565b6040516104439190612a09565b60405180910390f35b61046660048036038101906104619190612563565b610f78565b005b610482600480360381019061047d91906125e3565b61110e565b005b61048c61124e565b6040516104999190612ad6565b60405180910390f35b6104bc60048036038101906104b791906125a3565b61128b565b6040516104c99190612aa0565b60405180910390f35b6104ec60048036038101906104e791906125a3565b611429565b6040516104f99190612aa0565b60405180910390f35b61050a6114f9565b005b61052660048036038101906105219190612630565b611688565b005b61053061186e565b60405161053d9190612aa0565b60405180910390f35b61054e611881565b005b61056a600480360381019061056591906124d0565b611982565b6040516105779190612d98565b60405180910390f35b610588611a09565b6040516105959190612aa0565b60405180910390f35b6105b860048036038101906105b391906124a3565b611a1c565b005b6105c2611b14565b6040516105cf9190612a09565b60405180910390f35b60606040518060400160405280601581526020017f456e67696e6573206f66204675727920546f6b656e0000000000000000000000815250905090565b60008282600a60019054906101000a900460ff16156106c757600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347abf3be610674611b3a565b84846040518463ffffffff1660e01b815260040161069493929190612a69565b600060405180830381600087803b1580156106ae57600080fd5b505af11580156106c2573d6000803e3d6000fd5b505050505b6106d96106d2611b3a565b8686611b42565b60019250505092915050565b6000600354905090565b6000838383600a60019054906101000a900460ff16156107a457600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663379f5c6961074f611b3a565b8585856040518563ffffffff1660e01b81526004016107719493929190612a24565b600060405180830381600087803b15801561078b57600080fd5b505af115801561079f573d6000803e3d6000fd5b505050505b6107af878787611d0d565b6000600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107fa611b3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508581101561087a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087190612c78565b60405180910390fd5b61088e88610886611b3a565b888403611b42565b60019450505050509392505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108de611b3a565b73ffffffffffffffffffffffffffffffffffffffff1614610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612cb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099b90612c58565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f60405160405180910390a380600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60085481565b60006012905090565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008282600a60019054906101000a900460ff1615610b4b57600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf5961bb610af8611b3a565b84846040518463ffffffff1660e01b8152600401610b1893929190612a69565b600060405180830381600087803b158015610b3257600080fd5b505af1158015610b46573d6000803e3d6000fd5b505050505b610beb610b56611b3a565b868660026000610b64611b3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be69190612e40565b611b42565b60019250505092915050565b610bff611b3a565b73ffffffffffffffffffffffffffffffffffffffff16610c1d610f4f565b73ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612c98565b60405180910390fd5b610c7b611f83565b565b610c8e610c88611b3a565b82612024565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cd2611b3a565b73ffffffffffffffffffffffffffffffffffffffff1614610d28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1f90612cb8565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055506001600a60016101000a81548160ff0219169083151502179055507fa4a40bdd0a809720a61b44f1b3497ce7dad87741a0ba3b961c2e65e645060e7060405160405180910390a1565b60008060149054906101000a900460ff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e49611b3a565b73ffffffffffffffffffffffffffffffffffffffff16610e67610f4f565b73ffffffffffffffffffffffffffffffffffffffff1614610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490612c98565b60405180910390fd5b610ec760006121ed565b565b610ed1611b3a565b73ffffffffffffffffffffffffffffffffffffffff16610eef610f4f565b73ffffffffffffffffffffffffffffffffffffffff1614610f45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3c90612c98565b60405180910390fd5b610f4d6122b1565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610fb9611b3a565b73ffffffffffffffffffffffffffffffffffffffff161461100f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100690612cb8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561107f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107690612c58565b60405180910390fd5b81600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806006819055508173ffffffffffffffffffffffffffffffffffffffff167fc5666bfdfb79a4b0b4abdbc565d6e9937a263233b2b378c55132d34dc5784a3660405160405180910390a25050565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661114f611b3a565b73ffffffffffffffffffffffffffffffffffffffff16146111a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119c90612cf8565b60405180910390fd5b60005b82829050811015611249576112368383838181106111c9576111c861304a565b5b90506020020160208101906111de91906124a3565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff166112318686868181106112175761121661304a565b5b905060200201602081019061122c91906124a3565b610df8565b611d0d565b808061124190612fd2565b9150506111a8565b505050565b60606040518060400160405280600481526020017f4655525900000000000000000000000000000000000000000000000000000000815250905090565b60008282600a60019054906101000a900460ff161561133d57600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663568c75a96112ea611b3a565b84846040518463ffffffff1660e01b815260040161130a93929190612a69565b600060405180830381600087803b15801561132457600080fd5b505af1158015611338573d6000803e3d6000fd5b505050505b60006002600061134b611b3a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ff90612d58565b60405180910390fd5b61141c611413611b3a565b87878403611b42565b6001935050505092915050565b60008282600a60019054906101000a900460ff16156114db57600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ffb811f611488611b3a565b84846040518463ffffffff1660e01b81526004016114a893929190612a69565b600060405180830381600087803b1580156114c257600080fd5b505af11580156114d6573d6000803e3d6000fd5b505050505b6114ed6114e6611b3a565b8686611d0d565b60019250505092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661153a611b3a565b73ffffffffffffffffffffffffffffffffffffffff1614611590576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158790612cb8565b60405180910390fd5b600a60009054906101000a900460ff166115df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d690612bf8565b60405180910390fd5b426009541115611624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161b90612b58565b60405180910390fd5b6000600a60016101000a81548160ff0219169083151502179055506000600a60006101000a81548160ff0219169083151502179055507f5b534e2716e5ad68b9f67521378f8199a7ceb9d3f6f354275dad33fe42cf710a60405160405180910390a1565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116c9611b3a565b73ffffffffffffffffffffffffffffffffffffffff161461171f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171690612c38565b60405180910390fd5b60065481805190602001201461176a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176190612bb8565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1c7f382531621f02aefb4212478bba8871ffad078202bdbba87f3e21d639aebb60405160405180910390a3600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a60019054906101000a900460ff1681565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118c2611b3a565b73ffffffffffffffffffffffffffffffffffffffff1614611918576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190f90612cb8565b60405180910390fd5b600854426119269190612e40565b6009819055506001600a60006101000a81548160ff0219169083151502179055507f88e0be0448355c71674462d3cb36342f0d085f7b43a1deab03052c95eb1587096009546040516119789190612d98565b60405180910390a1565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a60009054906101000a900460ff1681565b611a24611b3a565b73ffffffffffffffffffffffffffffffffffffffff16611a42610f4f565b73ffffffffffffffffffffffffffffffffffffffff1614611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f90612c98565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611b08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aff90612b78565b60405180910390fd5b611b11816121ed565b50565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba990612d38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1990612b98565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d009190612d98565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7490612d18565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ded576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de490612af8565b60405180910390fd5b611df5612354565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7390612bd8565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611f119190612e40565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f759190612d98565b60405180910390a350505050565b611f8b610d8c565b611fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc190612b18565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61200d611b3a565b60405161201a9190612a09565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208b90612cd8565b60405180910390fd5b61209c612354565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211a90612b38565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461217b9190612e96565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121e09190612d98565b60405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6122b9610d8c565b156122f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122f090612c18565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861233d611b3a565b60405161234a9190612a09565b60405180910390a1565b61235c610d8c565b1561239c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239390612d78565b60405180910390fd5b565b60006123b16123ac84612df3565b612dce565b9050828152602081018484840111156123cd576123cc6130b7565b5b6123d8848285612f5f565b509392505050565b6000813590506123ef816135d6565b92915050565b60008083601f84011261240b5761240a6130ad565b5b8235905067ffffffffffffffff811115612428576124276130a8565b5b602083019150836020820283011115612444576124436130b2565b5b9250929050565b60008135905061245a816135ed565b92915050565b600082601f830112612475576124746130ad565b5b813561248584826020860161239e565b91505092915050565b60008135905061249d81613604565b92915050565b6000602082840312156124b9576124b86130c1565b5b60006124c7848285016123e0565b91505092915050565b600080604083850312156124e7576124e66130c1565b5b60006124f5858286016123e0565b9250506020612506858286016123e0565b9150509250929050565b600080600060608486031215612529576125286130c1565b5b6000612537868287016123e0565b9350506020612548868287016123e0565b92505060406125598682870161248e565b9150509250925092565b6000806040838503121561257a576125796130c1565b5b6000612588858286016123e0565b92505060206125998582860161244b565b9150509250929050565b600080604083850312156125ba576125b96130c1565b5b60006125c8858286016123e0565b92505060206125d98582860161248e565b9150509250929050565b600080602083850312156125fa576125f96130c1565b5b600083013567ffffffffffffffff811115612618576126176130bc565b5b612624858286016123f5565b92509250509250929050565b600060208284031215612646576126456130c1565b5b600082013567ffffffffffffffff811115612664576126636130bc565b5b61267084828501612460565b91505092915050565b60006020828403121561268f5761268e6130c1565b5b600061269d8482850161248e565b91505092915050565b6126af81612eca565b82525050565b6126be81612edc565b82525050565b6126cd81612f29565b82525050565b60006126de82612e24565b6126e88185612e2f565b93506126f8818560208601612f6e565b612701816130c6565b840191505092915050565b6000612719602383612e2f565b9150612724826130d7565b604082019050919050565b600061273c601483612e2f565b915061274782613126565b602082019050919050565b600061275f602283612e2f565b915061276a8261314f565b604082019050919050565b6000612782601d83612e2f565b915061278d8261319e565b602082019050919050565b60006127a5602683612e2f565b91506127b0826131c7565b604082019050919050565b60006127c8602283612e2f565b91506127d382613216565b604082019050919050565b60006127eb601383612e2f565b91506127f682613265565b602082019050919050565b600061280e602683612e2f565b91506128198261328e565b604082019050919050565b6000612831601c83612e2f565b915061283c826132dd565b602082019050919050565b6000612854601083612e2f565b915061285f82613306565b602082019050919050565b6000612877601983612e2f565b91506128828261332f565b602082019050919050565b600061289a601e83612e2f565b91506128a582613358565b602082019050919050565b60006128bd602883612e2f565b91506128c882613381565b604082019050919050565b60006128e0602083612e2f565b91506128eb826133d0565b602082019050919050565b6000612903601e83612e2f565b915061290e826133f9565b602082019050919050565b6000612926602183612e2f565b915061293182613422565b604082019050919050565b6000612949601e83612e2f565b915061295482613471565b602082019050919050565b600061296c602583612e2f565b91506129778261349a565b604082019050919050565b600061298f602483612e2f565b915061299a826134e9565b604082019050919050565b60006129b2602583612e2f565b91506129bd82613538565b604082019050919050565b60006129d5602a83612e2f565b91506129e082613587565b604082019050919050565b6129f481612f12565b82525050565b612a0381612f1c565b82525050565b6000602082019050612a1e60008301846126a6565b92915050565b6000608082019050612a3960008301876126a6565b612a4660208301866126a6565b612a5360408301856126a6565b612a6060608301846129eb565b95945050505050565b6000606082019050612a7e60008301866126a6565b612a8b60208301856126a6565b612a9860408301846129eb565b949350505050565b6000602082019050612ab560008301846126b5565b92915050565b6000602082019050612ad060008301846126c4565b92915050565b60006020820190508181036000830152612af081846126d3565b905092915050565b60006020820190508181036000830152612b118161270c565b9050919050565b60006020820190508181036000830152612b318161272f565b9050919050565b60006020820190508181036000830152612b5181612752565b9050919050565b60006020820190508181036000830152612b7181612775565b9050919050565b60006020820190508181036000830152612b9181612798565b9050919050565b60006020820190508181036000830152612bb1816127bb565b9050919050565b60006020820190508181036000830152612bd1816127de565b9050919050565b60006020820190508181036000830152612bf181612801565b9050919050565b60006020820190508181036000830152612c1181612824565b9050919050565b60006020820190508181036000830152612c3181612847565b9050919050565b60006020820190508181036000830152612c518161286a565b9050919050565b60006020820190508181036000830152612c718161288d565b9050919050565b60006020820190508181036000830152612c91816128b0565b9050919050565b60006020820190508181036000830152612cb1816128d3565b9050919050565b60006020820190508181036000830152612cd1816128f6565b9050919050565b60006020820190508181036000830152612cf181612919565b9050919050565b60006020820190508181036000830152612d118161293c565b9050919050565b60006020820190508181036000830152612d318161295f565b9050919050565b60006020820190508181036000830152612d5181612982565b9050919050565b60006020820190508181036000830152612d71816129a5565b9050919050565b60006020820190508181036000830152612d91816129c8565b9050919050565b6000602082019050612dad60008301846129eb565b92915050565b6000602082019050612dc860008301846129fa565b92915050565b6000612dd8612de9565b9050612de48282612fa1565b919050565b6000604051905090565b600067ffffffffffffffff821115612e0e57612e0d613079565b5b612e17826130c6565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b6000612e4b82612f12565b9150612e5683612f12565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612e8b57612e8a61301b565b5b828201905092915050565b6000612ea182612f12565b9150612eac83612f12565b925082821015612ebf57612ebe61301b565b5b828203905092915050565b6000612ed582612ef2565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f3482612f3b565b9050919050565b6000612f4682612f4d565b9050919050565b6000612f5882612ef2565b9050919050565b82818337600083830152505050565b60005b83811015612f8c578082015181840152602081019050612f71565b83811115612f9b576000848401525b50505050565b612faa826130c6565b810181811067ffffffffffffffff82111715612fc957612fc8613079565b5b80604052505050565b6000612fdd82612f12565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130105761300f61301b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a2054696d65206c6f636b20696e2070726f6772657373000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a20496e76616c6964206b657900000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a205475726e4f6666206e6f742070726f706f73656400000000600082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f4c45524332303a204d7573742062652063616e64697461746500000000000000600082015250565b7f4c45524332303a2043616e6e6f74206265207a65726f20616464726573730000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4c45524332303a204d757374206265207265636f766572792061646d696e0000600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f4c45524332303a204f6e6c79206c6f73736c65737320636f6e74726163740000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6135df81612eca565b81146135ea57600080fd5b50565b6135f681612ee8565b811461360157600080fd5b50565b61360d81612f12565b811461361857600080fd5b5056fea2646970667358221220925f7a2cabf5b04a2dcb69ef72355ab598a39a02c577bd1aa9f5b94a47387ae764736f6c63430008070033000000000000000000000000c7f7cd59fc2a0b08342b66b918bcb3ba11fe065000000000000000000000000036ff3ee7a01c5e3d75339b21d9ca125868a053f80000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000c7f7cd59fc2a0b08342b66b918bcb3ba11fe065000000000000000000000000036ff3ee7a01c5e3d75339b21d9ca125868a053f80000000000000000000000000000000000000000000000000000000000015180000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4

-----Decoded View---------------
Arg [0] : admin_ (address): 0xC7f7cD59fC2A0b08342B66B918Bcb3ba11fe0650
Arg [1] : recoveryAdmin_ (address): 0x36fF3Ee7A01c5e3D75339B21D9ca125868A053f8
Arg [2] : timelockPeriod_ (uint256): 86400
Arg [3] : lossless_ (address): 0xe91D7cEBcE484070fc70777cB04F7e2EfAe31DB4

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 000000000000000000000000c7f7cd59fc2a0b08342b66b918bcb3ba11fe0650
Arg [1] : 00000000000000000000000036ff3ee7a01c5e3d75339b21d9ca125868a053f8
Arg [2] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [3] : 000000000000000000000000e91d7cebce484070fc70777cb04f7e2efae31db4


Deployed ByteCode Sourcemap

2733:9084:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7685:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8581:189;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7987:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8778:494;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5910:227;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3286:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7898:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3450:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9280:259;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1638:75;;;:::i;:::-;;10021:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7469:176;;;:::i;:::-;;1457:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3136:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3322:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5512:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8096:118;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;763:96;;;:::i;:::-;;1555:71;;;:::i;:::-;;540:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6145:328;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5603:299;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7799:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9547:462;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8222:199;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7109:352;;;:::i;:::-;;6481:365;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3412:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6854:247;;;:::i;:::-;;8429:144;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3368:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;867:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3259:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7685:106;7727:13;7753:30;;;;;;;;;;;;;;;;;;;7685:106;:::o;8581:189::-;8684:4;8658:7;8667:6;4345:12;;;;;;;;;;;4341:98;;;4374:8;;;;;;;;;;;:22;;;4397:12;:10;:12::i;:::-;4411:7;4420:6;4374:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4341:98;8701:39:::1;8710:12;:10;:12::i;:::-;8724:7;8733:6;8701:8;:39::i;:::-;8758:4;8751:11;;8581:189:::0;;;;;;:::o;7987:101::-;8041:7;8068:12;;8061:19;;7987:101;:::o;8778:494::-;8920:4;8884:6;8892:9;8903:6;4754:12;;;;;;;;;;;4750:113;;;4783:8;;;;;;;;;;;:27;;;4811:12;:10;:12::i;:::-;4825:6;4833:9;4844:6;4783:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4750:113;8937:36:::1;8947:6;8955:9;8966:6;8937:9;:36::i;:::-;8986:24;9013:11;:19;9025:6;9013:19;;;;;;;;;;;;;;;:33;9033:12;:10;:12::i;:::-;9013:33;;;;;;;;;;;;;;;;8986:60;;9085:6;9065:16;:26;;9057:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9172:57;9181:6;9189:12;:10;:12::i;:::-;9222:6;9203:16;:25;9172:8;:57::i;:::-;9260:4;9253:11;;;8778:494:::0;;;;;;;;:::o;5910:227::-;5398:13;;;;;;;;;;;5382:29;;:12;:10;:12::i;:::-;:29;;;5374:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;6020:1:::1;6000:22;;:8;:22;;;;5992:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;6093:8;6073:29;;6086:5;;;;;;;;;;;6073:29;;;;;;;;;;;;6121:8;6113:5;;:16;;;;;;;;;;;;;;;;;;5910:227:::0;:::o;3286:29::-;;;;:::o;7898:81::-;7944:5;7969:2;7962:9;;7898:81;:::o;3450:35::-;;;;;;;;;;;;;:::o;9280:259::-;9412:4;9382:7;9391:10;4972:12;;;;;;;;;;;4968:112;;;5001:8;;;;;;;;;;;:32;;;5034:12;:10;:12::i;:::-;5048:7;5057:10;5001:67;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4968:112;9429:80:::1;9438:12;:10;:12::i;:::-;9452:7;9498:10;9461:11;:25;9473:12;:10;:12::i;:::-;9461:25;;;;;;;;;;;;;;;:34;9487:7;9461:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;9429:8;:80::i;:::-;9527:4;9520:11;;9280:259:::0;;;;;;:::o;1638:75::-;686:12;:10;:12::i;:::-;675:23;;:7;:5;:7::i;:::-;:23;;;667:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1695:10:::1;:8;:10::i;:::-;1638:75::o:0;10021:93::-;10079:27;10085:12;:10;:12::i;:::-;10099:6;10079:5;:27::i;:::-;10021:93;:::o;7469:176::-;5398:13;;;;;;;;;;;5382:29;;:12;:10;:12::i;:::-;:29;;;5374:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7568:5:::1;7540:25;;:33;;;;;;;;;;;;;;;;;;7599:4;7584:12;;:19;;;;;;;;;;;;;;;;;;7619:18;;;;;;;;;;7469:176::o:0;1457:86::-;1504:4;1528:7;;;;;;;;;;;1521:14;;1457:86;:::o;3136:28::-;;;;;;;;;;;;;:::o;3322:39::-;;;;:::o;5512:83::-;5555:7;5582:5;;;;;;;;;;;5575:12;;5512:83;:::o;8096:118::-;8161:7;8188:9;:18;8198:7;8188:18;;;;;;;;;;;;;;;;8181:25;;8096:118;;;:::o;763:96::-;686:12;:10;:12::i;:::-;675:23;;:7;:5;:7::i;:::-;:23;;;667:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;830:21:::1;848:1;830:9;:21::i;:::-;763:96::o:0;1555:71::-;686:12;:10;:12::i;:::-;675:23;;:7;:5;:7::i;:::-;:23;;;667:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1610:8:::1;:6;:8::i;:::-;1555:71::o:0;540:87::-;586:7;613:6;;;;;;;;;;;606:13;;540:87;:::o;6145:328::-;5398:13;;;;;;;;;;;5382:29;;:12;:10;:12::i;:::-;:29;;;5374:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;6288:1:::1;6267:23;;:9;:23;;;;6259:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6361:9;6336:22;;:34;;;;;;;;;;;;;;;;;;6404:7;6381:20;:30;;;;6455:9;6427:38;;;;;;;;;;;;6145:328:::0;;:::o;5603:299::-;5717:8;;;;;;;;;;;5693:33;;:12;:10;:12::i;:::-;:33;;;5685:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;5777:6;5772:123;5793:4;;:11;;5789:1;:15;5772:123;;;5826:57;5836:4;;5841:1;5836:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5853:8;;;;;;;;;;;5864:18;5874:4;;5879:1;5874:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;5864:9;:18::i;:::-;5826:9;:57::i;:::-;5806:3;;;;;:::i;:::-;;;;5772:123;;;;5603:299;;:::o;7799:91::-;7843:13;7869;;;;;;;;;;;;;;;;;;;7799:91;:::o;9547:462::-;9689:4;9654:7;9663:15;5194:12;;;;;;;;;;;5190:117;;;5223:8;;;;;;;;;;;:32;;;5256:12;:10;:12::i;:::-;5270:7;5279:15;5223:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5190:117;9706:24:::1;9733:11;:25;9745:12;:10;:12::i;:::-;9733:25;;;;;;;;;;;;;;;:34;9759:7;9733:34;;;;;;;;;;;;;;;;9706:61;;9806:15;9786:16;:35;;9778:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;9899:67;9908:12;:10;:12::i;:::-;9922:7;9950:15;9931:16;:34;9899:8;:67::i;:::-;9997:4;9990:11;;;9547:462:::0;;;;;;:::o;8222:199::-;8332:4;8304:9;8315:6;4538:12;;;;;;;;;;;4534:101;;;4567:8;;;;;;;;;;;:23;;;4591:12;:10;:12::i;:::-;4605:9;4616:6;4567:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4534:101;8349:42:::1;8359:12;:10;:12::i;:::-;8373:9;8384:6;8349:9;:42::i;:::-;8409:4;8402:11;;8222:199:::0;;;;;;:::o;7109:352::-;5398:13;;;;;;;;;;;5382:29;;:12;:10;:12::i;:::-;:29;;;5374:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7189:25:::1;;;;;;;;;;;7181:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7294:15;7266:24;;:43;;7258:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7369:5;7354:12;;:20;;;;;;;;;;;;;;;;;;7413:5;7385:25;;:33;;;;;;;;;;;;;;;;;;7434:19;;;;;;;;;;7109:352::o:0;6481:365::-;6581:22;;;;;;;;;;;6565:38;;:12;:10;:12::i;:::-;:38;;;6557:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;6670:20;;6662:3;6652:14;;;;;;:38;6644:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6766:22;;;;;;;;;;;6730:59;;6751:13;;;;;;;;;;;6730:59;;;;;;;;;;;;6816:22;;;;;;;;;;;6800:13;;:38;;;;;;;;;;;;;;;;;;6481:365;:::o;3412:31::-;;;;;;;;;;;;;:::o;6854:247::-;5398:13;;;;;;;;;;;5382:29;;:12;:10;:12::i;:::-;:29;;;5374:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;6971:14:::1;;6953:15;:32;;;;:::i;:::-;6926:24;:59;;;;7024:4;6996:25;;:32;;;;;;;;;;;;;;;;;;7044:49;7068:24;;7044:49;;;;;;:::i;:::-;;;;;;;;6854:247::o:0;8429:144::-;8511:7;8538:11;:18;8550:5;8538:18;;;;;;;;;;;;;;;:27;8557:7;8538:27;;;;;;;;;;;;;;;;8531:34;;8429:144;;;;:::o;3368:37::-;;;;;;;;;;;;;:::o;867:194::-;686:12;:10;:12::i;:::-;675:23;;:7;:5;:7::i;:::-;:23;;;667:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;978:1:::1;958:22;;:8;:22;;;;950:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1034:19;1044:8;1034:9;:19::i;:::-;867:194:::0;:::o;3259:20::-;;;;;;;;;;;;;:::o;95:98::-;148:7;175:10;168:17;;95:98;:::o;11294:380::-;11447:1;11430:19;;:5;:19;;;;11422:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11528:1;11509:21;;:7;:21;;;;11501:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11612:6;11582:11;:18;11594:5;11582:18;;;;;;;;;;;;;;;:27;11601:7;11582:27;;;;;;;;;;;;;;;:36;;;;11650:7;11634:32;;11643:5;11634:32;;;11659:6;11634:32;;;;;;:::i;:::-;;;;;;;;11294:380;;;:::o;10122:649::-;10280:1;10262:20;;:6;:20;;;;10254:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;10364:1;10343:23;;:9;:23;;;;10335:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10419:22;:20;:22::i;:::-;10454:21;10478:9;:17;10488:6;10478:17;;;;;;;;;;;;;;;;10454:41;;10531:6;10514:13;:23;;10506:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10652:6;10636:13;:22;10616:9;:17;10626:6;10616:17;;;;;;;;;;;;;;;:42;;;;10704:6;10680:9;:20;10690:9;10680:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10745:9;10728:35;;10737:6;10728:35;;;10756:6;10728:35;;;;;;:::i;:::-;;;;;;;;10243:528;10122:649;;;:::o;2055:120::-;1868:8;:6;:8::i;:::-;1860:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2124:5:::1;2114:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;2145:22;2154:12;:10;:12::i;:::-;2145:22;;;;;;:::i;:::-;;;;;;;;2055:120::o:0;10783:503::-;10886:1;10867:21;;:7;:21;;;;10859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10939:22;:20;:22::i;:::-;10974;10999:9;:18;11009:7;10999:18;;;;;;;;;;;;;;;;10974:43;;11054:6;11036:14;:24;;11028:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11173:6;11156:14;:23;11135:9;:18;11145:7;11135:18;;;;;;;;;;;;;;;:44;;;;11217:6;11201:12;;:22;;;;;;;:::i;:::-;;;;;;;;11267:1;11241:37;;11250:7;11241:37;;;11271:6;11241:37;;;;;;:::i;:::-;;;;;;;;10848:438;10783:503;;:::o;1069:173::-;1125:16;1144:6;;;;;;;;;;;1125:25;;1170:8;1161:6;;:17;;;;;;;;;;;;;;;;;;1225:8;1194:40;;1215:8;1194:40;;;;;;;;;;;;1114:128;1069:173;:::o;1929:118::-;1770:8;:6;:8::i;:::-;1769:9;1761:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;1999:4:::1;1989:7;;:14;;;;;;;;;;;;;;;;;;2019:20;2026:12;:10;:12::i;:::-;2019:20;;;;;;:::i;:::-;;;;;;;;1929:118::o:0;11682:132::-;11751:8;:6;:8::i;:::-;11750:9;11742:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11682:132::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:139::-;469:5;507:6;494:20;485:29;;523:33;550:5;523:33;:::i;:::-;423:139;;;;:::o;585:568::-;658:8;668:6;718:3;711:4;703:6;699:17;695:27;685:122;;726:79;;:::i;:::-;685:122;839:6;826:20;816:30;;869:18;861:6;858:30;855:117;;;891:79;;:::i;:::-;855:117;1005:4;997:6;993:17;981:29;;1059:3;1051:4;1043:6;1039:17;1029:8;1025:32;1022:41;1019:128;;;1066:79;;:::i;:::-;1019:128;585:568;;;;;:::o;1159:139::-;1205:5;1243:6;1230:20;1221:29;;1259:33;1286:5;1259:33;:::i;:::-;1159:139;;;;:::o;1317:338::-;1372:5;1421:3;1414:4;1406:6;1402:17;1398:27;1388:122;;1429:79;;:::i;:::-;1388:122;1546:6;1533:20;1571:78;1645:3;1637:6;1630:4;1622:6;1618:17;1571:78;:::i;:::-;1562:87;;1378:277;1317:338;;;;:::o;1661:139::-;1707:5;1745:6;1732:20;1723:29;;1761:33;1788:5;1761:33;:::i;:::-;1661:139;;;;:::o;1806:329::-;1865:6;1914:2;1902:9;1893:7;1889:23;1885:32;1882:119;;;1920:79;;:::i;:::-;1882:119;2040:1;2065:53;2110:7;2101:6;2090:9;2086:22;2065:53;:::i;:::-;2055:63;;2011:117;1806:329;;;;:::o;2141:474::-;2209:6;2217;2266:2;2254:9;2245:7;2241:23;2237:32;2234:119;;;2272:79;;:::i;:::-;2234:119;2392:1;2417:53;2462:7;2453:6;2442:9;2438:22;2417:53;:::i;:::-;2407:63;;2363:117;2519:2;2545:53;2590:7;2581:6;2570:9;2566:22;2545:53;:::i;:::-;2535:63;;2490:118;2141:474;;;;;:::o;2621:619::-;2698:6;2706;2714;2763:2;2751:9;2742:7;2738:23;2734:32;2731:119;;;2769:79;;:::i;:::-;2731:119;2889:1;2914:53;2959:7;2950:6;2939:9;2935:22;2914:53;:::i;:::-;2904:63;;2860:117;3016:2;3042:53;3087:7;3078:6;3067:9;3063:22;3042:53;:::i;:::-;3032:63;;2987:118;3144:2;3170:53;3215:7;3206:6;3195:9;3191:22;3170:53;:::i;:::-;3160:63;;3115:118;2621:619;;;;;:::o;3246:474::-;3314:6;3322;3371:2;3359:9;3350:7;3346:23;3342:32;3339:119;;;3377:79;;:::i;:::-;3339:119;3497:1;3522:53;3567:7;3558:6;3547:9;3543:22;3522:53;:::i;:::-;3512:63;;3468:117;3624:2;3650:53;3695:7;3686:6;3675:9;3671:22;3650:53;:::i;:::-;3640:63;;3595:118;3246:474;;;;;:::o;3726:::-;3794:6;3802;3851:2;3839:9;3830:7;3826:23;3822:32;3819:119;;;3857:79;;:::i;:::-;3819:119;3977:1;4002:53;4047:7;4038:6;4027:9;4023:22;4002:53;:::i;:::-;3992:63;;3948:117;4104:2;4130:53;4175:7;4166:6;4155:9;4151:22;4130:53;:::i;:::-;4120:63;;4075:118;3726:474;;;;;:::o;4206:559::-;4292:6;4300;4349:2;4337:9;4328:7;4324:23;4320:32;4317:119;;;4355:79;;:::i;:::-;4317:119;4503:1;4492:9;4488:17;4475:31;4533:18;4525:6;4522:30;4519:117;;;4555:79;;:::i;:::-;4519:117;4668:80;4740:7;4731:6;4720:9;4716:22;4668:80;:::i;:::-;4650:98;;;;4446:312;4206:559;;;;;:::o;4771:507::-;4839:6;4888:2;4876:9;4867:7;4863:23;4859:32;4856:119;;;4894:79;;:::i;:::-;4856:119;5042:1;5031:9;5027:17;5014:31;5072:18;5064:6;5061:30;5058:117;;;5094:79;;:::i;:::-;5058:117;5199:62;5253:7;5244:6;5233:9;5229:22;5199:62;:::i;:::-;5189:72;;4985:286;4771:507;;;;:::o;5284:329::-;5343:6;5392:2;5380:9;5371:7;5367:23;5363:32;5360:119;;;5398:79;;:::i;:::-;5360:119;5518:1;5543:53;5588:7;5579:6;5568:9;5564:22;5543:53;:::i;:::-;5533:63;;5489:117;5284:329;;;;:::o;5619:118::-;5706:24;5724:5;5706:24;:::i;:::-;5701:3;5694:37;5619:118;;:::o;5743:109::-;5824:21;5839:5;5824:21;:::i;:::-;5819:3;5812:34;5743:109;;:::o;5858:185::-;5972:64;6030:5;5972:64;:::i;:::-;5967:3;5960:77;5858:185;;:::o;6049:364::-;6137:3;6165:39;6198:5;6165:39;:::i;:::-;6220:71;6284:6;6279:3;6220:71;:::i;:::-;6213:78;;6300:52;6345:6;6340:3;6333:4;6326:5;6322:16;6300:52;:::i;:::-;6377:29;6399:6;6377:29;:::i;:::-;6372:3;6368:39;6361:46;;6141:272;6049:364;;;;:::o;6419:366::-;6561:3;6582:67;6646:2;6641:3;6582:67;:::i;:::-;6575:74;;6658:93;6747:3;6658:93;:::i;:::-;6776:2;6771:3;6767:12;6760:19;;6419:366;;;:::o;6791:::-;6933:3;6954:67;7018:2;7013:3;6954:67;:::i;:::-;6947:74;;7030:93;7119:3;7030:93;:::i;:::-;7148:2;7143:3;7139:12;7132:19;;6791:366;;;:::o;7163:::-;7305:3;7326:67;7390:2;7385:3;7326:67;:::i;:::-;7319:74;;7402:93;7491:3;7402:93;:::i;:::-;7520:2;7515:3;7511:12;7504:19;;7163:366;;;:::o;7535:::-;7677:3;7698:67;7762:2;7757:3;7698:67;:::i;:::-;7691:74;;7774:93;7863:3;7774:93;:::i;:::-;7892:2;7887:3;7883:12;7876:19;;7535:366;;;:::o;7907:::-;8049:3;8070:67;8134:2;8129:3;8070:67;:::i;:::-;8063:74;;8146:93;8235:3;8146:93;:::i;:::-;8264:2;8259:3;8255:12;8248:19;;7907:366;;;:::o;8279:::-;8421:3;8442:67;8506:2;8501:3;8442:67;:::i;:::-;8435:74;;8518:93;8607:3;8518:93;:::i;:::-;8636:2;8631:3;8627:12;8620:19;;8279:366;;;:::o;8651:::-;8793:3;8814:67;8878:2;8873:3;8814:67;:::i;:::-;8807:74;;8890:93;8979:3;8890:93;:::i;:::-;9008:2;9003:3;8999:12;8992:19;;8651:366;;;:::o;9023:::-;9165:3;9186:67;9250:2;9245:3;9186:67;:::i;:::-;9179:74;;9262:93;9351:3;9262:93;:::i;:::-;9380:2;9375:3;9371:12;9364:19;;9023:366;;;:::o;9395:::-;9537:3;9558:67;9622:2;9617:3;9558:67;:::i;:::-;9551:74;;9634:93;9723:3;9634:93;:::i;:::-;9752:2;9747:3;9743:12;9736:19;;9395:366;;;:::o;9767:::-;9909:3;9930:67;9994:2;9989:3;9930:67;:::i;:::-;9923:74;;10006:93;10095:3;10006:93;:::i;:::-;10124:2;10119:3;10115:12;10108:19;;9767:366;;;:::o;10139:::-;10281:3;10302:67;10366:2;10361:3;10302:67;:::i;:::-;10295:74;;10378:93;10467:3;10378:93;:::i;:::-;10496:2;10491:3;10487:12;10480:19;;10139:366;;;:::o;10511:::-;10653:3;10674:67;10738:2;10733:3;10674:67;:::i;:::-;10667:74;;10750:93;10839:3;10750:93;:::i;:::-;10868:2;10863:3;10859:12;10852:19;;10511:366;;;:::o;10883:::-;11025:3;11046:67;11110:2;11105:3;11046:67;:::i;:::-;11039:74;;11122:93;11211:3;11122:93;:::i;:::-;11240:2;11235:3;11231:12;11224:19;;10883:366;;;:::o;11255:::-;11397:3;11418:67;11482:2;11477:3;11418:67;:::i;:::-;11411:74;;11494:93;11583:3;11494:93;:::i;:::-;11612:2;11607:3;11603:12;11596:19;;11255:366;;;:::o;11627:::-;11769:3;11790:67;11854:2;11849:3;11790:67;:::i;:::-;11783:74;;11866:93;11955:3;11866:93;:::i;:::-;11984:2;11979:3;11975:12;11968:19;;11627:366;;;:::o;11999:::-;12141:3;12162:67;12226:2;12221:3;12162:67;:::i;:::-;12155:74;;12238:93;12327:3;12238:93;:::i;:::-;12356:2;12351:3;12347:12;12340:19;;11999:366;;;:::o;12371:::-;12513:3;12534:67;12598:2;12593:3;12534:67;:::i;:::-;12527:74;;12610:93;12699:3;12610:93;:::i;:::-;12728:2;12723:3;12719:12;12712:19;;12371:366;;;:::o;12743:::-;12885:3;12906:67;12970:2;12965:3;12906:67;:::i;:::-;12899:74;;12982:93;13071:3;12982:93;:::i;:::-;13100:2;13095:3;13091:12;13084:19;;12743:366;;;:::o;13115:::-;13257:3;13278:67;13342:2;13337:3;13278:67;:::i;:::-;13271:74;;13354:93;13443:3;13354:93;:::i;:::-;13472:2;13467:3;13463:12;13456:19;;13115:366;;;:::o;13487:::-;13629:3;13650:67;13714:2;13709:3;13650:67;:::i;:::-;13643:74;;13726:93;13815:3;13726:93;:::i;:::-;13844:2;13839:3;13835:12;13828:19;;13487:366;;;:::o;13859:::-;14001:3;14022:67;14086:2;14081:3;14022:67;:::i;:::-;14015:74;;14098:93;14187:3;14098:93;:::i;:::-;14216:2;14211:3;14207:12;14200:19;;13859:366;;;:::o;14231:118::-;14318:24;14336:5;14318:24;:::i;:::-;14313:3;14306:37;14231:118;;:::o;14355:112::-;14438:22;14454:5;14438:22;:::i;:::-;14433:3;14426:35;14355:112;;:::o;14473:222::-;14566:4;14604:2;14593:9;14589:18;14581:26;;14617:71;14685:1;14674:9;14670:17;14661:6;14617:71;:::i;:::-;14473:222;;;;:::o;14701:553::-;14878:4;14916:3;14905:9;14901:19;14893:27;;14930:71;14998:1;14987:9;14983:17;14974:6;14930:71;:::i;:::-;15011:72;15079:2;15068:9;15064:18;15055:6;15011:72;:::i;:::-;15093;15161:2;15150:9;15146:18;15137:6;15093:72;:::i;:::-;15175;15243:2;15232:9;15228:18;15219:6;15175:72;:::i;:::-;14701:553;;;;;;;:::o;15260:442::-;15409:4;15447:2;15436:9;15432:18;15424:26;;15460:71;15528:1;15517:9;15513:17;15504:6;15460:71;:::i;:::-;15541:72;15609:2;15598:9;15594:18;15585:6;15541:72;:::i;:::-;15623;15691:2;15680:9;15676:18;15667:6;15623:72;:::i;:::-;15260:442;;;;;;:::o;15708:210::-;15795:4;15833:2;15822:9;15818:18;15810:26;;15846:65;15908:1;15897:9;15893:17;15884:6;15846:65;:::i;:::-;15708:210;;;;:::o;15924:276::-;16044:4;16082:2;16071:9;16067:18;16059:26;;16095:98;16190:1;16179:9;16175:17;16166:6;16095:98;:::i;:::-;15924:276;;;;:::o;16206:313::-;16319:4;16357:2;16346:9;16342:18;16334:26;;16406:9;16400:4;16396:20;16392:1;16381:9;16377:17;16370:47;16434:78;16507:4;16498:6;16434:78;:::i;:::-;16426:86;;16206:313;;;;:::o;16525:419::-;16691:4;16729:2;16718:9;16714:18;16706:26;;16778:9;16772:4;16768:20;16764:1;16753:9;16749:17;16742:47;16806:131;16932:4;16806:131;:::i;:::-;16798:139;;16525:419;;;:::o;16950:::-;17116:4;17154:2;17143:9;17139:18;17131:26;;17203:9;17197:4;17193:20;17189:1;17178:9;17174:17;17167:47;17231:131;17357:4;17231:131;:::i;:::-;17223:139;;16950:419;;;:::o;17375:::-;17541:4;17579:2;17568:9;17564:18;17556:26;;17628:9;17622:4;17618:20;17614:1;17603:9;17599:17;17592:47;17656:131;17782:4;17656:131;:::i;:::-;17648:139;;17375:419;;;:::o;17800:::-;17966:4;18004:2;17993:9;17989:18;17981:26;;18053:9;18047:4;18043:20;18039:1;18028:9;18024:17;18017:47;18081:131;18207:4;18081:131;:::i;:::-;18073:139;;17800:419;;;:::o;18225:::-;18391:4;18429:2;18418:9;18414:18;18406:26;;18478:9;18472:4;18468:20;18464:1;18453:9;18449:17;18442:47;18506:131;18632:4;18506:131;:::i;:::-;18498:139;;18225:419;;;:::o;18650:::-;18816:4;18854:2;18843:9;18839:18;18831:26;;18903:9;18897:4;18893:20;18889:1;18878:9;18874:17;18867:47;18931:131;19057:4;18931:131;:::i;:::-;18923:139;;18650:419;;;:::o;19075:::-;19241:4;19279:2;19268:9;19264:18;19256:26;;19328:9;19322:4;19318:20;19314:1;19303:9;19299:17;19292:47;19356:131;19482:4;19356:131;:::i;:::-;19348:139;;19075:419;;;:::o;19500:::-;19666:4;19704:2;19693:9;19689:18;19681:26;;19753:9;19747:4;19743:20;19739:1;19728:9;19724:17;19717:47;19781:131;19907:4;19781:131;:::i;:::-;19773:139;;19500:419;;;:::o;19925:::-;20091:4;20129:2;20118:9;20114:18;20106:26;;20178:9;20172:4;20168:20;20164:1;20153:9;20149:17;20142:47;20206:131;20332:4;20206:131;:::i;:::-;20198:139;;19925:419;;;:::o;20350:::-;20516:4;20554:2;20543:9;20539:18;20531:26;;20603:9;20597:4;20593:20;20589:1;20578:9;20574:17;20567:47;20631:131;20757:4;20631:131;:::i;:::-;20623:139;;20350:419;;;:::o;20775:::-;20941:4;20979:2;20968:9;20964:18;20956:26;;21028:9;21022:4;21018:20;21014:1;21003:9;20999:17;20992:47;21056:131;21182:4;21056:131;:::i;:::-;21048:139;;20775:419;;;:::o;21200:::-;21366:4;21404:2;21393:9;21389:18;21381:26;;21453:9;21447:4;21443:20;21439:1;21428:9;21424:17;21417:47;21481:131;21607:4;21481:131;:::i;:::-;21473:139;;21200:419;;;:::o;21625:::-;21791:4;21829:2;21818:9;21814:18;21806:26;;21878:9;21872:4;21868:20;21864:1;21853:9;21849:17;21842:47;21906:131;22032:4;21906:131;:::i;:::-;21898:139;;21625:419;;;:::o;22050:::-;22216:4;22254:2;22243:9;22239:18;22231:26;;22303:9;22297:4;22293:20;22289:1;22278:9;22274:17;22267:47;22331:131;22457:4;22331:131;:::i;:::-;22323:139;;22050:419;;;:::o;22475:::-;22641:4;22679:2;22668:9;22664:18;22656:26;;22728:9;22722:4;22718:20;22714:1;22703:9;22699:17;22692:47;22756:131;22882:4;22756:131;:::i;:::-;22748:139;;22475:419;;;:::o;22900:::-;23066:4;23104:2;23093:9;23089:18;23081:26;;23153:9;23147:4;23143:20;23139:1;23128:9;23124:17;23117:47;23181:131;23307:4;23181:131;:::i;:::-;23173:139;;22900:419;;;:::o;23325:::-;23491:4;23529:2;23518:9;23514:18;23506:26;;23578:9;23572:4;23568:20;23564:1;23553:9;23549:17;23542:47;23606:131;23732:4;23606:131;:::i;:::-;23598:139;;23325:419;;;:::o;23750:::-;23916:4;23954:2;23943:9;23939:18;23931:26;;24003:9;23997:4;23993:20;23989:1;23978:9;23974:17;23967:47;24031:131;24157:4;24031:131;:::i;:::-;24023:139;;23750:419;;;:::o;24175:::-;24341:4;24379:2;24368:9;24364:18;24356:26;;24428:9;24422:4;24418:20;24414:1;24403:9;24399:17;24392:47;24456:131;24582:4;24456:131;:::i;:::-;24448:139;;24175:419;;;:::o;24600:::-;24766:4;24804:2;24793:9;24789:18;24781:26;;24853:9;24847:4;24843:20;24839:1;24828:9;24824:17;24817:47;24881:131;25007:4;24881:131;:::i;:::-;24873:139;;24600:419;;;:::o;25025:::-;25191:4;25229:2;25218:9;25214:18;25206:26;;25278:9;25272:4;25268:20;25264:1;25253:9;25249:17;25242:47;25306:131;25432:4;25306:131;:::i;:::-;25298:139;;25025:419;;;:::o;25450:222::-;25543:4;25581:2;25570:9;25566:18;25558:26;;25594:71;25662:1;25651:9;25647:17;25638:6;25594:71;:::i;:::-;25450:222;;;;:::o;25678:214::-;25767:4;25805:2;25794:9;25790:18;25782:26;;25818:67;25882:1;25871:9;25867:17;25858:6;25818:67;:::i;:::-;25678:214;;;;:::o;25898:129::-;25932:6;25959:20;;:::i;:::-;25949:30;;25988:33;26016:4;26008:6;25988:33;:::i;:::-;25898:129;;;:::o;26033:75::-;26066:6;26099:2;26093:9;26083:19;;26033:75;:::o;26114:307::-;26175:4;26265:18;26257:6;26254:30;26251:56;;;26287:18;;:::i;:::-;26251:56;26325:29;26347:6;26325:29;:::i;:::-;26317:37;;26409:4;26403;26399:15;26391:23;;26114:307;;;:::o;26427:99::-;26479:6;26513:5;26507:12;26497:22;;26427:99;;;:::o;26532:169::-;26616:11;26650:6;26645:3;26638:19;26690:4;26685:3;26681:14;26666:29;;26532:169;;;;:::o;26707:305::-;26747:3;26766:20;26784:1;26766:20;:::i;:::-;26761:25;;26800:20;26818:1;26800:20;:::i;:::-;26795:25;;26954:1;26886:66;26882:74;26879:1;26876:81;26873:107;;;26960:18;;:::i;:::-;26873:107;27004:1;27001;26997:9;26990:16;;26707:305;;;;:::o;27018:191::-;27058:4;27078:20;27096:1;27078:20;:::i;:::-;27073:25;;27112:20;27130:1;27112:20;:::i;:::-;27107:25;;27151:1;27148;27145:8;27142:34;;;27156:18;;:::i;:::-;27142:34;27201:1;27198;27194:9;27186:17;;27018:191;;;;:::o;27215:96::-;27252:7;27281:24;27299:5;27281:24;:::i;:::-;27270:35;;27215:96;;;:::o;27317:90::-;27351:7;27394:5;27387:13;27380:21;27369:32;;27317:90;;;:::o;27413:77::-;27450:7;27479:5;27468:16;;27413:77;;;:::o;27496:126::-;27533:7;27573:42;27566:5;27562:54;27551:65;;27496:126;;;:::o;27628:77::-;27665:7;27694:5;27683:16;;27628:77;;;:::o;27711:86::-;27746:7;27786:4;27779:5;27775:16;27764:27;;27711:86;;;:::o;27803:153::-;27880:9;27913:37;27944:5;27913:37;:::i;:::-;27900:50;;27803:153;;;:::o;27962:126::-;28012:9;28045:37;28076:5;28045:37;:::i;:::-;28032:50;;27962:126;;;:::o;28094:113::-;28144:9;28177:24;28195:5;28177:24;:::i;:::-;28164:37;;28094:113;;;:::o;28213:154::-;28297:6;28292:3;28287;28274:30;28359:1;28350:6;28345:3;28341:16;28334:27;28213:154;;;:::o;28373:307::-;28441:1;28451:113;28465:6;28462:1;28459:13;28451:113;;;28550:1;28545:3;28541:11;28535:18;28531:1;28526:3;28522:11;28515:39;28487:2;28484:1;28480:10;28475:15;;28451:113;;;28582:6;28579:1;28576:13;28573:101;;;28662:1;28653:6;28648:3;28644:16;28637:27;28573:101;28422:258;28373:307;;;:::o;28686:281::-;28769:27;28791:4;28769:27;:::i;:::-;28761:6;28757:40;28899:6;28887:10;28884:22;28863:18;28851:10;28848:34;28845:62;28842:88;;;28910:18;;:::i;:::-;28842:88;28950:10;28946:2;28939:22;28729:238;28686:281;;:::o;28973:233::-;29012:3;29035:24;29053:5;29035:24;:::i;:::-;29026:33;;29081:66;29074:5;29071:77;29068:103;;;29151:18;;:::i;:::-;29068:103;29198:1;29191:5;29187:13;29180:20;;28973:233;;;:::o;29212:180::-;29260:77;29257:1;29250:88;29357:4;29354:1;29347:15;29381:4;29378:1;29371:15;29398:180;29446:77;29443:1;29436:88;29543:4;29540:1;29533:15;29567:4;29564:1;29557:15;29584:180;29632:77;29629:1;29622:88;29729:4;29726:1;29719:15;29753:4;29750:1;29743:15;29770:117;29879:1;29876;29869:12;29893:117;30002:1;29999;29992:12;30016:117;30125:1;30122;30115:12;30139:117;30248:1;30245;30238:12;30262:117;30371:1;30368;30361:12;30385:117;30494:1;30491;30484:12;30508:102;30549:6;30600:2;30596:7;30591:2;30584:5;30580:14;30576:28;30566:38;;30508:102;;;:::o;30616:222::-;30756:34;30752:1;30744:6;30740:14;30733:58;30825:5;30820:2;30812:6;30808:15;30801:30;30616:222;:::o;30844:170::-;30984:22;30980:1;30972:6;30968:14;30961:46;30844:170;:::o;31020:221::-;31160:34;31156:1;31148:6;31144:14;31137:58;31229:4;31224:2;31216:6;31212:15;31205:29;31020:221;:::o;31247:179::-;31387:31;31383:1;31375:6;31371:14;31364:55;31247:179;:::o;31432:225::-;31572:34;31568:1;31560:6;31556:14;31549:58;31641:8;31636:2;31628:6;31624:15;31617:33;31432:225;:::o;31663:221::-;31803:34;31799:1;31791:6;31787:14;31780:58;31872:4;31867:2;31859:6;31855:15;31848:29;31663:221;:::o;31890:169::-;32030:21;32026:1;32018:6;32014:14;32007:45;31890:169;:::o;32065:225::-;32205:34;32201:1;32193:6;32189:14;32182:58;32274:8;32269:2;32261:6;32257:15;32250:33;32065:225;:::o;32296:178::-;32436:30;32432:1;32424:6;32420:14;32413:54;32296:178;:::o;32480:166::-;32620:18;32616:1;32608:6;32604:14;32597:42;32480:166;:::o;32652:175::-;32792:27;32788:1;32780:6;32776:14;32769:51;32652:175;:::o;32833:180::-;32973:32;32969:1;32961:6;32957:14;32950:56;32833:180;:::o;33019:227::-;33159:34;33155:1;33147:6;33143:14;33136:58;33228:10;33223:2;33215:6;33211:15;33204:35;33019:227;:::o;33252:182::-;33392:34;33388:1;33380:6;33376:14;33369:58;33252:182;:::o;33440:180::-;33580:32;33576:1;33568:6;33564:14;33557:56;33440:180;:::o;33626:220::-;33766:34;33762:1;33754:6;33750:14;33743:58;33835:3;33830:2;33822:6;33818:15;33811:28;33626:220;:::o;33852:180::-;33992:32;33988:1;33980:6;33976:14;33969:56;33852:180;:::o;34038:224::-;34178:34;34174:1;34166:6;34162:14;34155:58;34247:7;34242:2;34234:6;34230:15;34223:32;34038:224;:::o;34268:223::-;34408:34;34404:1;34396:6;34392:14;34385:58;34477:6;34472:2;34464:6;34460:15;34453:31;34268:223;:::o;34497:224::-;34637:34;34633:1;34625:6;34621:14;34614:58;34706:7;34701:2;34693:6;34689:15;34682:32;34497:224;:::o;34727:229::-;34867:34;34863:1;34855:6;34851:14;34844:58;34936:12;34931:2;34923:6;34919:15;34912:37;34727:229;:::o;34962:122::-;35035:24;35053:5;35035:24;:::i;:::-;35028:5;35025:35;35015:63;;35074:1;35071;35064:12;35015:63;34962:122;:::o;35090:::-;35163:24;35181:5;35163:24;:::i;:::-;35156:5;35153:35;35143:63;;35202:1;35199;35192:12;35143:63;35090:122;:::o;35218:::-;35291:24;35309:5;35291:24;:::i;:::-;35284:5;35281:35;35271:63;;35330:1;35327;35320:12;35271:63;35218:122;:::o

Swarm Source

ipfs://925f7a2cabf5b04a2dcb69ef72355ab598a39a02c577bd1aa9f5b94a47387ae7
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.