ETH Price: $2,285.86 (+0.40%)

Token

Pepcash (PEASH)
 

Overview

Max Total Supply

1,000,000,000,000 PEASH

Holders

81

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
Pepcash

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-10
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity 0.8.19;

/**************************************
***************************************
Telegram: https://t.me/pepcashportal      
Website: https://pepcash.framer.ai/      
Twitter: https://t.me/pepcashportal 
***************************************
***************************************
*/

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

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

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

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

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

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

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

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

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

        return true;
    }

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

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

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

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

        emit Transfer(sender, recipient, amount);

        _afterTokenTransfer(sender, recipient, amount);
    }

    function _createTotalSupply(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: _mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }

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

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

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}

    function _afterTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {}
}


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

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

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Pepcash is ERC20, Ownable {
    using SafeMath for uint256;

    IUniswapV2Router02 public uniswapV2Router;
    address public immutable uniswapV2Pair;

    bool private inSwap;

    uint256 public marketingFee = 150; // 1.5%
    uint256 public swapTokensAtAmount = 100000000 * (10**18);
    uint256 public maxWalletToken = 20000000000 * (10**18);
    uint256 public maxTransactionAmount = 10000000000 * (10**18);

    address payable public marketingWallet = payable(0xa81B1a7814b790E0ae7473FfD7F9EF3184462416);

    // exlcude from fees and max wallet
    mapping (address => bool) private _isExcludedFromFees;

    event ExcludeFromFees(address indexed account, bool isExcluded);

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

    constructor() ERC20("Pepcash", "PEASH") {
    	IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
         // Create a uniswap pair for this new token
        address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = _uniswapV2Pair;

        // exclude from paying fees or having max wallet limit
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[marketingWallet] = true;
        
        /*
            an internal function that is only called here,
            and CANNOT be called ever again
        */
        _createTotalSupply(owner(), 1000000000000 * (10**18));
    }

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

        if(amount == 0) {
            super._transfer(from, to, 0);
            return;
        }
        
        if(from==uniswapV2Pair && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] && to != address(uniswapV2Router)){
            uint256 contractBalanceRecepient = balanceOf(to);
            require(contractBalanceRecepient + amount <= maxWalletToken, "Exceeds maximum wallet token amount.");
        }

    	uint256 contractTokenBalance = balanceOf(address(this));
        
        bool overMinTokenBalance = contractTokenBalance >= swapTokensAtAmount;
       
        if(
            overMinTokenBalance &&
            !inSwap &&
            to==uniswapV2Pair
           
        ) {
            contractTokenBalance = swapTokensAtAmount;
            swapTokensForEth(contractTokenBalance);
        }

         // if any account belongs to _isExcludedFromFee account then remove the fee
        if(!_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            uint256 fees;
            if(from==uniswapV2Pair || to==uniswapV2Pair) {
                fees = amount.mul(marketingFee).div(10000);

            }

        	amount = amount.sub(fees);

            if(fees > 0) {
                super._transfer(from, address(this), fees); 
            }
             
        }

        super._transfer(from, to, amount);

    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        if(allowance(address(this), address(uniswapV2Router)) < tokenAmount) {
          _approve(address(this), address(uniswapV2Router), ~uint256(0));
        }

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            marketingWallet,
            block.timestamp
        );
        
    }

    receive() external payable {

  	}

    function isExcludedFromFees(address account) public view returns(bool) {
        return _isExcludedFromFees[account];
    }
  
}

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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a060405260966007556a52b7d2dcc80cd2e40000006008556b409f9cbc7c4a04c2200000006009556b204fce5e3e25026110000000600a5573a81b1a7814b790e0ae7473ffd7f9ef3184462416600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200009a57600080fd5b506040518060400160405280600781526020017f50657063617368000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f5045415348000000000000000000000000000000000000000000000000000000815250816003908162000118919062000972565b5080600490816200012a919062000972565b50505060006200013f6200054460201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b919062000ac3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002d3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f9919062000ac3565b6040518363ffffffff1660e01b81526004016200031892919062000b06565b6020604051808303816000875af115801562000338573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035e919062000ac3565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506001600c6000620003eb6200054c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200053c620005226200054c60201b60201c565b6c0c9f2c9cd04674edea400000006200057660201b60201c565b505062000c4e565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620005e8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620005df9062000b94565b60405180910390fd5b620005fc60008383620006ee60201b60201c565b806002600082825462000610919062000be5565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000667919062000be5565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620006ce919062000c31565b60405180910390a3620006ea60008383620006f360201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200077a57607f821691505b60208210810362000790576200078f62000732565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620007fa7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620007bb565b620008068683620007bb565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620008536200084d62000847846200081e565b62000828565b6200081e565b9050919050565b6000819050919050565b6200086f8362000832565b620008876200087e826200085a565b848454620007c8565b825550505050565b600090565b6200089e6200088f565b620008ab81848462000864565b505050565b5b81811015620008d357620008c760008262000894565b600181019050620008b1565b5050565b601f8211156200092257620008ec8162000796565b620008f784620007ab565b8101602085101562000907578190505b6200091f6200091685620007ab565b830182620008b0565b50505b505050565b600082821c905092915050565b6000620009476000198460080262000927565b1980831691505092915050565b600062000962838362000934565b9150826002028217905092915050565b6200097d82620006f8565b67ffffffffffffffff81111562000999576200099862000703565b5b620009a5825462000761565b620009b2828285620008d7565b600060209050601f831160018114620009ea5760008415620009d5578287015190505b620009e1858262000954565b86555062000a51565b601f198416620009fa8662000796565b60005b8281101562000a2457848901518255600182019150602085019450602081019050620009fd565b8683101562000a44578489015162000a40601f89168262000934565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a8b8262000a5e565b9050919050565b62000a9d8162000a7e565b811462000aa957600080fd5b50565b60008151905062000abd8162000a92565b92915050565b60006020828403121562000adc5762000adb62000a59565b5b600062000aec8482850162000aac565b91505092915050565b62000b008162000a7e565b82525050565b600060408201905062000b1d600083018562000af5565b62000b2c602083018462000af5565b9392505050565b600082825260208201905092915050565b7f45524332303a205f6d696e7420746f20746865207a65726f2061646472657373600082015250565b600062000b7c60208362000b33565b915062000b898262000b44565b602082019050919050565b6000602082019050818103600083015262000baf8162000b6d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000bf2826200081e565b915062000bff836200081e565b925082820190508082111562000c1a5762000c1962000bb6565b5b92915050565b62000c2b816200081e565b82525050565b600060208201905062000c48600083018462000c20565b92915050565b6080516127ad62000c86600039600081816107cc01528181610f380152818161112901528181611238015261128d01526127ad6000f3fe60806040526004361061012e5760003560e01c806370a08231116100ab578063a457c2d71161006f578063a457c2d714610405578063a9059cbb14610442578063c8c8ebe41461047f578063dd62ed3e146104aa578063e2f45605146104e7578063e6c75f711461051257610135565b806370a0823114610330578063715018a61461036d57806375f0a874146103845780638da5cb5b146103af57806395d89b41146103da57610135565b8063313ce567116100f2578063313ce56714610235578063395093511461026057806349bd5a5e1461029d5780634fbee193146102c85780636b67c4df1461030557610135565b806306fdde031461013a578063095ea7b3146101655780631694505e146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f61053d565b60405161015c9190611b0a565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611bc5565b6105cf565b6040516101999190611c20565b60405180910390f35b3480156101ae57600080fd5b506101b76105ed565b6040516101c49190611c9a565b60405180910390f35b3480156101d957600080fd5b506101e2610613565b6040516101ef9190611cc4565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611cdf565b61061d565b60405161022c9190611c20565b60405180910390f35b34801561024157600080fd5b5061024a610715565b6040516102579190611d4e565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190611bc5565b61071e565b6040516102949190611c20565b60405180910390f35b3480156102a957600080fd5b506102b26107ca565b6040516102bf9190611d78565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190611d93565b6107ee565b6040516102fc9190611c20565b60405180910390f35b34801561031157600080fd5b5061031a610844565b6040516103279190611cc4565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190611d93565b61084a565b6040516103649190611cc4565b60405180910390f35b34801561037957600080fd5b50610382610892565b005b34801561039057600080fd5b506103996109ea565b6040516103a69190611de1565b60405180910390f35b3480156103bb57600080fd5b506103c4610a10565b6040516103d19190611d78565b60405180910390f35b3480156103e657600080fd5b506103ef610a3a565b6040516103fc9190611b0a565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190611bc5565b610acc565b6040516104399190611c20565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190611bc5565b610bb7565b6040516104769190611c20565b60405180910390f35b34801561048b57600080fd5b50610494610bd5565b6040516104a19190611cc4565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190611dfc565b610bdb565b6040516104de9190611cc4565b60405180910390f35b3480156104f357600080fd5b506104fc610c62565b6040516105099190611cc4565b60405180910390f35b34801561051e57600080fd5b50610527610c68565b6040516105349190611cc4565b60405180910390f35b60606003805461054c90611e6b565b80601f016020809104026020016040519081016040528092919081815260200182805461057890611e6b565b80156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b5050505050905090565b60006105e36105dc610c6e565b8484610c76565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600061062a848484610e3f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610675610c6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ec90611f0e565b60405180910390fd5b61070985610701610c6e565b858403610c76565b60019150509392505050565b60006012905090565b60006107c061072b610c6e565b848460016000610739610c6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107bb9190611f5d565b610c76565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60075481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61089a610c6e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090611fdd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a4990611e6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7590611e6b565b8015610ac25780601f10610a9757610100808354040283529160200191610ac2565b820191906000526020600020905b815481529060010190602001808311610aa557829003601f168201915b5050505050905090565b60008060016000610adb610c6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f9061206f565b60405180910390fd5b610bac610ba3610c6e565b85858403610c76565b600191505092915050565b6000610bcb610bc4610c6e565b8484610e3f565b6001905092915050565b600a5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc90612101565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4b90612193565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e329190611cc4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea590612225565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f14906122b7565b60405180910390fd5b60008103610f3657610f318383600061134b565b611346565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610fdb5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156110315750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561108b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156110ef57600061109b8361084a565b905060095482826110ac9190611f5d565b11156110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490612349565b60405180910390fd5b505b60006110fa3061084a565b9050600060085482101590508080156111205750600660149054906101000a900460ff16155b801561117757507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561118b57600854915061118a826115ca565b5b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561122f5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113385760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806112db57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561130c576113096127106112fb6007548761189b90919063ffffffff16565b61191590919063ffffffff16565b90505b61131f818561195f90919063ffffffff16565b935060008111156113365761133586308361134b565b5b505b61134385858561134b565b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b190612225565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611429576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611420906122b7565b60405180910390fd5b6114348383836119a9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b1906123db565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461154d9190611f5d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115b19190611cc4565b60405180910390a36115c48484846119ae565b50505050565b6001600660146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611602576116016123fb565b5b6040519080825280602002602001820160405280156116305781602001602082028036833780820191505090505b50905030816000815181106116485761164761242a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061246e565b816001815181106117275761172661242a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508161178e30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610bdb565b10156117c4576117c330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600019610c76565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161184a9594939291906125b5565b600060405180830381600087803b15801561186457600080fd5b505af1158015611878573d6000803e3d6000fd5b50505050506000600660146101000a81548160ff02191690831515021790555050565b60008083036118ad576000905061190f565b600082846118bb919061260f565b90508284826118ca9190612680565b1461190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190190612723565b60405180910390fd5b809150505b92915050565b600061195783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119b3565b905092915050565b60006119a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a16565b905092915050565b505050565b505050565b600080831182906119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f19190611b0a565b60405180910390fd5b5060008385611a099190612680565b9050809150509392505050565b6000838311158290611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a559190611b0a565b60405180910390fd5b5060008385611a6d9190612743565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ab4578082015181840152602081019050611a99565b60008484015250505050565b6000601f19601f8301169050919050565b6000611adc82611a7a565b611ae68185611a85565b9350611af6818560208601611a96565b611aff81611ac0565b840191505092915050565b60006020820190508181036000830152611b248184611ad1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b5c82611b31565b9050919050565b611b6c81611b51565b8114611b7757600080fd5b50565b600081359050611b8981611b63565b92915050565b6000819050919050565b611ba281611b8f565b8114611bad57600080fd5b50565b600081359050611bbf81611b99565b92915050565b60008060408385031215611bdc57611bdb611b2c565b5b6000611bea85828601611b7a565b9250506020611bfb85828601611bb0565b9150509250929050565b60008115159050919050565b611c1a81611c05565b82525050565b6000602082019050611c356000830184611c11565b92915050565b6000819050919050565b6000611c60611c5b611c5684611b31565b611c3b565b611b31565b9050919050565b6000611c7282611c45565b9050919050565b6000611c8482611c67565b9050919050565b611c9481611c79565b82525050565b6000602082019050611caf6000830184611c8b565b92915050565b611cbe81611b8f565b82525050565b6000602082019050611cd96000830184611cb5565b92915050565b600080600060608486031215611cf857611cf7611b2c565b5b6000611d0686828701611b7a565b9350506020611d1786828701611b7a565b9250506040611d2886828701611bb0565b9150509250925092565b600060ff82169050919050565b611d4881611d32565b82525050565b6000602082019050611d636000830184611d3f565b92915050565b611d7281611b51565b82525050565b6000602082019050611d8d6000830184611d69565b92915050565b600060208284031215611da957611da8611b2c565b5b6000611db784828501611b7a565b91505092915050565b6000611dcb82611b31565b9050919050565b611ddb81611dc0565b82525050565b6000602082019050611df66000830184611dd2565b92915050565b60008060408385031215611e1357611e12611b2c565b5b6000611e2185828601611b7a565b9250506020611e3285828601611b7a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e8357607f821691505b602082108103611e9657611e95611e3c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611ef8602883611a85565b9150611f0382611e9c565b604082019050919050565b60006020820190508181036000830152611f2781611eeb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f6882611b8f565b9150611f7383611b8f565b9250828201905080821115611f8b57611f8a611f2e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fc7602083611a85565b9150611fd282611f91565b602082019050919050565b60006020820190508181036000830152611ff681611fba565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612059602583611a85565b915061206482611ffd565b604082019050919050565b600060208201905081810360008301526120888161204c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006120eb602483611a85565b91506120f68261208f565b604082019050919050565b6000602082019050818103600083015261211a816120de565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061217d602283611a85565b915061218882612121565b604082019050919050565b600060208201905081810360008301526121ac81612170565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061220f602583611a85565b915061221a826121b3565b604082019050919050565b6000602082019050818103600083015261223e81612202565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006122a1602383611a85565b91506122ac82612245565b604082019050919050565b600060208201905081810360008301526122d081612294565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b6000612333602483611a85565b915061233e826122d7565b604082019050919050565b6000602082019050818103600083015261236281612326565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006123c5602683611a85565b91506123d082612369565b604082019050919050565b600060208201905081810360008301526123f4816123b8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061246881611b63565b92915050565b60006020828403121561248457612483611b2c565b5b600061249284828501612459565b91505092915050565b6000819050919050565b60006124c06124bb6124b68461249b565b611c3b565b611b8f565b9050919050565b6124d0816124a5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61250b81611b51565b82525050565b600061251d8383612502565b60208301905092915050565b6000602082019050919050565b6000612541826124d6565b61254b81856124e1565b9350612556836124f2565b8060005b8381101561258757815161256e8882612511565b975061257983612529565b92505060018101905061255a565b5085935050505092915050565b600061259f82611c67565b9050919050565b6125af81612594565b82525050565b600060a0820190506125ca6000830188611cb5565b6125d760208301876124c7565b81810360408301526125e98186612536565b90506125f860608301856125a6565b6126056080830184611cb5565b9695505050505050565b600061261a82611b8f565b915061262583611b8f565b925082820261263381611b8f565b9150828204841483151761264a57612649611f2e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061268b82611b8f565b915061269683611b8f565b9250826126a6576126a5612651565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061270d602183611a85565b9150612718826126b1565b604082019050919050565b6000602082019050818103600083015261273c81612700565b9050919050565b600061274e82611b8f565b915061275983611b8f565b925082820390508181111561277157612770611f2e565b5b9291505056fea2646970667358221220cf2c6b082bee1a29d52d4210025fe3e450912bf85458503e830ea06e7e84510e64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c806370a08231116100ab578063a457c2d71161006f578063a457c2d714610405578063a9059cbb14610442578063c8c8ebe41461047f578063dd62ed3e146104aa578063e2f45605146104e7578063e6c75f711461051257610135565b806370a0823114610330578063715018a61461036d57806375f0a874146103845780638da5cb5b146103af57806395d89b41146103da57610135565b8063313ce567116100f2578063313ce56714610235578063395093511461026057806349bd5a5e1461029d5780634fbee193146102c85780636b67c4df1461030557610135565b806306fdde031461013a578063095ea7b3146101655780631694505e146101a257806318160ddd146101cd57806323b872dd146101f857610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f61053d565b60405161015c9190611b0a565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611bc5565b6105cf565b6040516101999190611c20565b60405180910390f35b3480156101ae57600080fd5b506101b76105ed565b6040516101c49190611c9a565b60405180910390f35b3480156101d957600080fd5b506101e2610613565b6040516101ef9190611cc4565b60405180910390f35b34801561020457600080fd5b5061021f600480360381019061021a9190611cdf565b61061d565b60405161022c9190611c20565b60405180910390f35b34801561024157600080fd5b5061024a610715565b6040516102579190611d4e565b60405180910390f35b34801561026c57600080fd5b5061028760048036038101906102829190611bc5565b61071e565b6040516102949190611c20565b60405180910390f35b3480156102a957600080fd5b506102b26107ca565b6040516102bf9190611d78565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea9190611d93565b6107ee565b6040516102fc9190611c20565b60405180910390f35b34801561031157600080fd5b5061031a610844565b6040516103279190611cc4565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190611d93565b61084a565b6040516103649190611cc4565b60405180910390f35b34801561037957600080fd5b50610382610892565b005b34801561039057600080fd5b506103996109ea565b6040516103a69190611de1565b60405180910390f35b3480156103bb57600080fd5b506103c4610a10565b6040516103d19190611d78565b60405180910390f35b3480156103e657600080fd5b506103ef610a3a565b6040516103fc9190611b0a565b60405180910390f35b34801561041157600080fd5b5061042c60048036038101906104279190611bc5565b610acc565b6040516104399190611c20565b60405180910390f35b34801561044e57600080fd5b5061046960048036038101906104649190611bc5565b610bb7565b6040516104769190611c20565b60405180910390f35b34801561048b57600080fd5b50610494610bd5565b6040516104a19190611cc4565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190611dfc565b610bdb565b6040516104de9190611cc4565b60405180910390f35b3480156104f357600080fd5b506104fc610c62565b6040516105099190611cc4565b60405180910390f35b34801561051e57600080fd5b50610527610c68565b6040516105349190611cc4565b60405180910390f35b60606003805461054c90611e6b565b80601f016020809104026020016040519081016040528092919081815260200182805461057890611e6b565b80156105c55780601f1061059a576101008083540402835291602001916105c5565b820191906000526020600020905b8154815290600101906020018083116105a857829003601f168201915b5050505050905090565b60006105e36105dc610c6e565b8484610c76565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600061062a848484610e3f565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610675610c6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ec90611f0e565b60405180910390fd5b61070985610701610c6e565b858403610c76565b60019150509392505050565b60006012905090565b60006107c061072b610c6e565b848460016000610739610c6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107bb9190611f5d565b610c76565b6001905092915050565b7f000000000000000000000000bad70ecfd87e27b1d36330ad8365b2f4879dd81381565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60075481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61089a610c6e565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610929576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092090611fdd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610a4990611e6b565b80601f0160208091040260200160405190810160405280929190818152602001828054610a7590611e6b565b8015610ac25780601f10610a9757610100808354040283529160200191610ac2565b820191906000526020600020905b815481529060010190602001808311610aa557829003601f168201915b5050505050905090565b60008060016000610adb610c6e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f9061206f565b60405180910390fd5b610bac610ba3610c6e565b85858403610c76565b600191505092915050565b6000610bcb610bc4610c6e565b8484610e3f565b6001905092915050565b600a5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ce5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdc90612101565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4b90612193565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e329190611cc4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea590612225565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f14906122b7565b60405180910390fd5b60008103610f3657610f318383600061134b565b611346565b7f000000000000000000000000bad70ecfd87e27b1d36330ad8365b2f4879dd81373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015610fdb5750600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156110315750600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561108b5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156110ef57600061109b8361084a565b905060095482826110ac9190611f5d565b11156110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490612349565b60405180910390fd5b505b60006110fa3061084a565b9050600060085482101590508080156111205750600660149054906101000a900460ff16155b801561117757507f000000000000000000000000bad70ecfd87e27b1d36330ad8365b2f4879dd81373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b1561118b57600854915061118a826115ca565b5b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561122f5750600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113385760007f000000000000000000000000bad70ecfd87e27b1d36330ad8365b2f4879dd81373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614806112db57507f000000000000000000000000bad70ecfd87e27b1d36330ad8365b2f4879dd81373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b1561130c576113096127106112fb6007548761189b90919063ffffffff16565b61191590919063ffffffff16565b90505b61131f818561195f90919063ffffffff16565b935060008111156113365761133586308361134b565b5b505b61134385858561134b565b50505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b190612225565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611429576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611420906122b7565b60405180910390fd5b6114348383836119a9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b1906123db565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461154d9190611f5d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115b19190611cc4565b60405180910390a36115c48484846119ae565b50505050565b6001600660146101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611602576116016123fb565b5b6040519080825280602002602001820160405280156116305781602001602082028036833780820191505090505b50905030816000815181106116485761164761242a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611713919061246e565b816001815181106117275761172661242a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508161178e30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610bdb565b10156117c4576117c330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600019610c76565b5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b815260040161184a9594939291906125b5565b600060405180830381600087803b15801561186457600080fd5b505af1158015611878573d6000803e3d6000fd5b50505050506000600660146101000a81548160ff02191690831515021790555050565b60008083036118ad576000905061190f565b600082846118bb919061260f565b90508284826118ca9190612680565b1461190a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190190612723565b60405180910390fd5b809150505b92915050565b600061195783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119b3565b905092915050565b60006119a183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a16565b905092915050565b505050565b505050565b600080831182906119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f19190611b0a565b60405180910390fd5b5060008385611a099190612680565b9050809150509392505050565b6000838311158290611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a559190611b0a565b60405180910390fd5b5060008385611a6d9190612743565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611ab4578082015181840152602081019050611a99565b60008484015250505050565b6000601f19601f8301169050919050565b6000611adc82611a7a565b611ae68185611a85565b9350611af6818560208601611a96565b611aff81611ac0565b840191505092915050565b60006020820190508181036000830152611b248184611ad1565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b5c82611b31565b9050919050565b611b6c81611b51565b8114611b7757600080fd5b50565b600081359050611b8981611b63565b92915050565b6000819050919050565b611ba281611b8f565b8114611bad57600080fd5b50565b600081359050611bbf81611b99565b92915050565b60008060408385031215611bdc57611bdb611b2c565b5b6000611bea85828601611b7a565b9250506020611bfb85828601611bb0565b9150509250929050565b60008115159050919050565b611c1a81611c05565b82525050565b6000602082019050611c356000830184611c11565b92915050565b6000819050919050565b6000611c60611c5b611c5684611b31565b611c3b565b611b31565b9050919050565b6000611c7282611c45565b9050919050565b6000611c8482611c67565b9050919050565b611c9481611c79565b82525050565b6000602082019050611caf6000830184611c8b565b92915050565b611cbe81611b8f565b82525050565b6000602082019050611cd96000830184611cb5565b92915050565b600080600060608486031215611cf857611cf7611b2c565b5b6000611d0686828701611b7a565b9350506020611d1786828701611b7a565b9250506040611d2886828701611bb0565b9150509250925092565b600060ff82169050919050565b611d4881611d32565b82525050565b6000602082019050611d636000830184611d3f565b92915050565b611d7281611b51565b82525050565b6000602082019050611d8d6000830184611d69565b92915050565b600060208284031215611da957611da8611b2c565b5b6000611db784828501611b7a565b91505092915050565b6000611dcb82611b31565b9050919050565b611ddb81611dc0565b82525050565b6000602082019050611df66000830184611dd2565b92915050565b60008060408385031215611e1357611e12611b2c565b5b6000611e2185828601611b7a565b9250506020611e3285828601611b7a565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611e8357607f821691505b602082108103611e9657611e95611e3c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611ef8602883611a85565b9150611f0382611e9c565b604082019050919050565b60006020820190508181036000830152611f2781611eeb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f6882611b8f565b9150611f7383611b8f565b9250828201905080821115611f8b57611f8a611f2e565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611fc7602083611a85565b9150611fd282611f91565b602082019050919050565b60006020820190508181036000830152611ff681611fba565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612059602583611a85565b915061206482611ffd565b604082019050919050565b600060208201905081810360008301526120888161204c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006120eb602483611a85565b91506120f68261208f565b604082019050919050565b6000602082019050818103600083015261211a816120de565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061217d602283611a85565b915061218882612121565b604082019050919050565b600060208201905081810360008301526121ac81612170565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061220f602583611a85565b915061221a826121b3565b604082019050919050565b6000602082019050818103600083015261223e81612202565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006122a1602383611a85565b91506122ac82612245565b604082019050919050565b600060208201905081810360008301526122d081612294565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420746f6b656e20616d6f60008201527f756e742e00000000000000000000000000000000000000000000000000000000602082015250565b6000612333602483611a85565b915061233e826122d7565b604082019050919050565b6000602082019050818103600083015261236281612326565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006123c5602683611a85565b91506123d082612369565b604082019050919050565b600060208201905081810360008301526123f4816123b8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061246881611b63565b92915050565b60006020828403121561248457612483611b2c565b5b600061249284828501612459565b91505092915050565b6000819050919050565b60006124c06124bb6124b68461249b565b611c3b565b611b8f565b9050919050565b6124d0816124a5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61250b81611b51565b82525050565b600061251d8383612502565b60208301905092915050565b6000602082019050919050565b6000612541826124d6565b61254b81856124e1565b9350612556836124f2565b8060005b8381101561258757815161256e8882612511565b975061257983612529565b92505060018101905061255a565b5085935050505092915050565b600061259f82611c67565b9050919050565b6125af81612594565b82525050565b600060a0820190506125ca6000830188611cb5565b6125d760208301876124c7565b81810360408301526125e98186612536565b90506125f860608301856125a6565b6126056080830184611cb5565b9695505050505050565b600061261a82611b8f565b915061262583611b8f565b925082820261263381611b8f565b9150828204841483151761264a57612649611f2e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061268b82611b8f565b915061269683611b8f565b9250826126a6576126a5612651565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061270d602183611a85565b9150612718826126b1565b604082019050919050565b6000602082019050818103600083015261273c81612700565b9050919050565b600061274e82611b8f565b915061275983611b8f565b925082820390508181111561277157612770611f2e565b5b9291505056fea2646970667358221220cf2c6b082bee1a29d52d4210025fe3e450912bf85458503e830ea06e7e84510e64736f6c63430008130033

Deployed Bytecode Sourcemap

8454:4248:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1807:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2721:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8531:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2128:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2898:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2027:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3398:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8579:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12570:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8654:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2244:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7535:148;;;;;;;;;;;;;:::i;:::-;;8895:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7321:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1915:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3621:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2379:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8826:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2562:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8702:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8765:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1807:100;1861:13;1894:5;1887:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1807:100;:::o;2721:169::-;2804:4;2821:39;2830:12;:10;:12::i;:::-;2844:7;2853:6;2821:8;:39::i;:::-;2878:4;2871:11;;2721:169;;;;:::o;8531:41::-;;;;;;;;;;;;;:::o;2128:108::-;2189:7;2216:12;;2209:19;;2128:108;:::o;2898:492::-;3038:4;3055:36;3065:6;3073:9;3084:6;3055:9;:36::i;:::-;3104:24;3131:11;:19;3143:6;3131:19;;;;;;;;;;;;;;;:33;3151:12;:10;:12::i;:::-;3131:33;;;;;;;;;;;;;;;;3104:60;;3203:6;3183:16;:26;;3175:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3290:57;3299:6;3307:12;:10;:12::i;:::-;3340:6;3321:16;:25;3290:8;:57::i;:::-;3378:4;3371:11;;;2898:492;;;;;:::o;2027:93::-;2085:5;2110:2;2103:9;;2027:93;:::o;3398:215::-;3486:4;3503:80;3512:12;:10;:12::i;:::-;3526:7;3572:10;3535:11;:25;3547:12;:10;:12::i;:::-;3535:25;;;;;;;;;;;;;;;:34;3561:7;3535:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3503:8;:80::i;:::-;3601:4;3594:11;;3398:215;;;;:::o;8579:38::-;;;:::o;12570:125::-;12635:4;12659:19;:28;12679:7;12659:28;;;;;;;;;;;;;;;;;;;;;;;;;12652:35;;12570:125;;;:::o;8654:33::-;;;;:::o;2244:127::-;2318:7;2345:9;:18;2355:7;2345:18;;;;;;;;;;;;;;;;2338:25;;2244:127;;;:::o;7535:148::-;7458:12;:10;:12::i;:::-;7448:22;;:6;;;;;;;;;;;:22;;;7440:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7642:1:::1;7605:40;;7626:6;;;;;;;;;;;7605:40;;;;;;;;;;;;7673:1;7656:6;;:19;;;;;;;;;;;;;;;;;;7535:148::o:0;8895:92::-;;;;;;;;;;;;;:::o;7321:79::-;7359:7;7386:6;;;;;;;;;;;7379:13;;7321:79;:::o;1915:104::-;1971:13;2004:7;1997:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1915:104;:::o;3621:413::-;3714:4;3731:24;3758:11;:25;3770:12;:10;:12::i;:::-;3758:25;;;;;;;;;;;;;;;:34;3784:7;3758:34;;;;;;;;;;;;;;;;3731:61;;3831:15;3811:16;:35;;3803:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3924:67;3933:12;:10;:12::i;:::-;3947:7;3975:15;3956:16;:34;3924:8;:67::i;:::-;4022:4;4015:11;;;3621:413;;;;:::o;2379:175::-;2465:4;2482:42;2492:12;:10;:12::i;:::-;2506:9;2517:6;2482:9;:42::i;:::-;2542:4;2535:11;;2379:175;;;;:::o;8826:60::-;;;;:::o;2562:151::-;2651:7;2678:11;:18;2690:5;2678:18;;;;;;;;;;;;;;;:27;2697:7;2678:27;;;;;;;;;;;;;;;;2671:34;;2562:151;;;;:::o;8702:56::-;;;;:::o;8765:54::-;;;;:::o;397:98::-;450:7;477:10;470:17;;397:98;:::o;5204:380::-;5357:1;5340:19;;:5;:19;;;5332:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5438:1;5419:21;;:7;:21;;;5411:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5522:6;5492:11;:18;5504:5;5492:18;;;;;;;;;;;;;;;:27;5511:7;5492:27;;;;;;;;;;;;;;;:36;;;;5560:7;5544:32;;5553:5;5544:32;;;5569:6;5544:32;;;;;;:::i;:::-;;;;;;;;5204:380;;;:::o;10143:1661::-;10291:1;10275:18;;:4;:18;;;10267:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10368:1;10354:16;;:2;:16;;;10346:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10436:1;10426:6;:11;10423:92;;10454:28;10470:4;10476:2;10480:1;10454:15;:28::i;:::-;10497:7;;10423:92;10544:13;10538:19;;:4;:19;;;:49;;;;;10562:19;:25;10582:4;10562:25;;;;;;;;;;;;;;;;;;;;;;;;;10561:26;10538:49;:77;;;;;10592:19;:23;10612:2;10592:23;;;;;;;;;;;;;;;;;;;;;;;;;10591:24;10538:77;:111;;;;;10633:15;;;;;;;;;;;10619:30;;:2;:30;;;;10538:111;10535:305;;;10665:32;10700:13;10710:2;10700:9;:13::i;:::-;10665:48;;10773:14;;10763:6;10736:24;:33;;;;:::i;:::-;:51;;10728:100;;;;;;;;;;;;:::i;:::-;;;;;;;;;10650:190;10535:305;10849:28;10880:24;10898:4;10880:9;:24::i;:::-;10849:55;;10925:24;10976:18;;10952:20;:42;;10925:69;;11031:19;:43;;;;;11068:6;;;;;;;;;;;11067:7;11031:43;:77;;;;;11095:13;11091:17;;:2;:17;;;11031:77;11014:240;;;11171:18;;11148:41;;11204:38;11221:20;11204:16;:38::i;:::-;11014:240;11356:19;:25;11376:4;11356:25;;;;;;;;;;;;;;;;;;;;;;;;;11355:26;:54;;;;;11386:19;:23;11406:2;11386:23;;;;;;;;;;;;;;;;;;;;;;;;;11385:24;11355:54;11352:397;;;11426:12;11462:13;11456:19;;:4;:19;;;:40;;;;11483:13;11479:17;;:2;:17;;;11456:40;11453:124;;;11524:35;11553:5;11524:24;11535:12;;11524:6;:10;;:24;;;;:::i;:::-;:28;;:35;;;;:::i;:::-;11517:42;;11453:124;11599:16;11610:4;11599:6;:10;;:16;;;;:::i;:::-;11590:25;;11642:1;11635:4;:8;11632:91;;;11664:42;11680:4;11694;11701;11664:15;:42::i;:::-;11632:91;11411:338;11352:397;11761:33;11777:4;11783:2;11787:6;11761:15;:33::i;:::-;10256:1548;;10143:1661;;;;:::o;4042:733::-;4200:1;4182:20;;:6;:20;;;4174:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4284:1;4263:23;;:9;:23;;;4255:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4339:47;4360:6;4368:9;4379:6;4339:20;:47::i;:::-;4399:21;4423:9;:17;4433:6;4423:17;;;;;;;;;;;;;;;;4399:41;;4476:6;4459:13;:23;;4451:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4597:6;4581:13;:22;4561:9;:17;4571:6;4561:17;;;;;;;;;;;;;;;:42;;;;4649:6;4625:9;:20;4635:9;4625:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4690:9;4673:35;;4682:6;4673:35;;;4701:6;4673:35;;;;;;:::i;:::-;;;;;;;;4721:46;4741:6;4749:9;4760:6;4721:19;:46::i;:::-;4163:612;4042:733;;;:::o;11812:706::-;9212:4;9203:6;;:13;;;;;;;;;;;;;;;;;;11950:21:::1;11988:1;11974:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11950:40;;12019:4;12001;12006:1;12001:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12045:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12035:4;12040:1;12035:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12136:11;12083:50;12101:4;12116:15;;;;;;;;;;;12083:9;:50::i;:::-;:64;12080:156;;;12162:62;12179:4;12194:15;;;;;;;;;;;12221:1;12212:11;12162:8;:62::i;:::-;12080:156;12274:15;;;;;;;;;;;:66;;;12355:11;12381:1;12425:4;12444:15;;;;;;;;;;;12474;12274:226;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11879:639;9248:5:::0;9239:6;;:14;;;;;;;;;;;;;;;;;;11812:706;:::o;6411:246::-;6469:7;6498:1;6493;:6;6489:47;;6523:1;6516:8;;;;6489:47;6546:9;6562:1;6558;:5;;;;:::i;:::-;6546:17;;6591:1;6586;6582;:5;;;;:::i;:::-;:10;6574:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6648:1;6641:8;;;6411:246;;;;;:::o;6665:132::-;6723:7;6750:39;6754:1;6757;6750:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6743:46;;6665:132;;;;:::o;6069:136::-;6127:7;6154:43;6158:1;6161;6154:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6147:50;;6069:136;;;;:::o;5592:125::-;;;;:::o;5725:124::-;;;;:::o;6805:189::-;6891:7;6923:1;6919;:5;6926:12;6911:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6950:9;6966:1;6962;:5;;;;:::i;:::-;6950:17;;6985:1;6978:8;;;6805:189;;;;;:::o;6213:190::-;6299:7;6332:1;6327;:6;;6335:12;6319:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6359:9;6375:1;6371;:5;;;;:::i;:::-;6359:17;;6394:1;6387:8;;;6213:190;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:104::-;6558:7;6587:24;6605:5;6587:24;:::i;:::-;6576:35;;6513:104;;;:::o;6623:142::-;6726:32;6752:5;6726:32;:::i;:::-;6721:3;6714:45;6623:142;;:::o;6771:254::-;6880:4;6918:2;6907:9;6903:18;6895:26;;6931:87;7015:1;7004:9;7000:17;6991:6;6931:87;:::i;:::-;6771:254;;;;:::o;7031:474::-;7099:6;7107;7156:2;7144:9;7135:7;7131:23;7127:32;7124:119;;;7162:79;;:::i;:::-;7124:119;7282:1;7307:53;7352:7;7343:6;7332:9;7328:22;7307:53;:::i;:::-;7297:63;;7253:117;7409:2;7435:53;7480:7;7471:6;7460:9;7456:22;7435:53;:::i;:::-;7425:63;;7380:118;7031:474;;;;;:::o;7511:180::-;7559:77;7556:1;7549:88;7656:4;7653:1;7646:15;7680:4;7677:1;7670:15;7697:320;7741:6;7778:1;7772:4;7768:12;7758:22;;7825:1;7819:4;7815:12;7846:18;7836:81;;7902:4;7894:6;7890:17;7880:27;;7836:81;7964:2;7956:6;7953:14;7933:18;7930:38;7927:84;;7983:18;;:::i;:::-;7927:84;7748:269;7697:320;;;:::o;8023:227::-;8163:34;8159:1;8151:6;8147:14;8140:58;8232:10;8227:2;8219:6;8215:15;8208:35;8023:227;:::o;8256:366::-;8398:3;8419:67;8483:2;8478:3;8419:67;:::i;:::-;8412:74;;8495:93;8584:3;8495:93;:::i;:::-;8613:2;8608:3;8604:12;8597:19;;8256:366;;;:::o;8628:419::-;8794:4;8832:2;8821:9;8817:18;8809:26;;8881:9;8875:4;8871:20;8867:1;8856:9;8852:17;8845:47;8909:131;9035:4;8909:131;:::i;:::-;8901:139;;8628:419;;;:::o;9053:180::-;9101:77;9098:1;9091:88;9198:4;9195:1;9188:15;9222:4;9219:1;9212:15;9239:191;9279:3;9298:20;9316:1;9298:20;:::i;:::-;9293:25;;9332:20;9350:1;9332:20;:::i;:::-;9327:25;;9375:1;9372;9368:9;9361:16;;9396:3;9393:1;9390:10;9387:36;;;9403:18;;:::i;:::-;9387:36;9239:191;;;;:::o;9436:182::-;9576:34;9572:1;9564:6;9560:14;9553:58;9436:182;:::o;9624:366::-;9766:3;9787:67;9851:2;9846:3;9787:67;:::i;:::-;9780:74;;9863:93;9952:3;9863:93;:::i;:::-;9981:2;9976:3;9972:12;9965:19;;9624:366;;;:::o;9996:419::-;10162:4;10200:2;10189:9;10185:18;10177:26;;10249:9;10243:4;10239:20;10235:1;10224:9;10220:17;10213:47;10277:131;10403:4;10277:131;:::i;:::-;10269:139;;9996:419;;;:::o;10421:224::-;10561:34;10557:1;10549:6;10545:14;10538:58;10630:7;10625:2;10617:6;10613:15;10606:32;10421:224;:::o;10651:366::-;10793:3;10814:67;10878:2;10873:3;10814:67;:::i;:::-;10807:74;;10890:93;10979:3;10890:93;:::i;:::-;11008:2;11003:3;10999:12;10992:19;;10651:366;;;:::o;11023:419::-;11189:4;11227:2;11216:9;11212:18;11204:26;;11276:9;11270:4;11266:20;11262:1;11251:9;11247:17;11240:47;11304:131;11430:4;11304:131;:::i;:::-;11296:139;;11023:419;;;:::o;11448:223::-;11588:34;11584:1;11576:6;11572:14;11565:58;11657:6;11652:2;11644:6;11640:15;11633:31;11448:223;:::o;11677:366::-;11819:3;11840:67;11904:2;11899:3;11840:67;:::i;:::-;11833:74;;11916:93;12005:3;11916:93;:::i;:::-;12034:2;12029:3;12025:12;12018:19;;11677:366;;;:::o;12049:419::-;12215:4;12253:2;12242:9;12238:18;12230:26;;12302:9;12296:4;12292:20;12288:1;12277:9;12273:17;12266:47;12330:131;12456:4;12330:131;:::i;:::-;12322:139;;12049:419;;;:::o;12474:221::-;12614:34;12610:1;12602:6;12598:14;12591:58;12683:4;12678:2;12670:6;12666:15;12659:29;12474:221;:::o;12701:366::-;12843:3;12864:67;12928:2;12923:3;12864:67;:::i;:::-;12857:74;;12940:93;13029:3;12940:93;:::i;:::-;13058:2;13053:3;13049:12;13042:19;;12701:366;;;:::o;13073:419::-;13239:4;13277:2;13266:9;13262:18;13254:26;;13326:9;13320:4;13316:20;13312:1;13301:9;13297:17;13290:47;13354:131;13480:4;13354:131;:::i;:::-;13346:139;;13073:419;;;:::o;13498:224::-;13638:34;13634:1;13626:6;13622:14;13615:58;13707:7;13702:2;13694:6;13690:15;13683:32;13498:224;:::o;13728:366::-;13870:3;13891:67;13955:2;13950:3;13891:67;:::i;:::-;13884:74;;13967:93;14056:3;13967:93;:::i;:::-;14085:2;14080:3;14076:12;14069:19;;13728:366;;;:::o;14100:419::-;14266:4;14304:2;14293:9;14289:18;14281:26;;14353:9;14347:4;14343:20;14339:1;14328:9;14324:17;14317:47;14381:131;14507:4;14381:131;:::i;:::-;14373:139;;14100:419;;;:::o;14525:222::-;14665:34;14661:1;14653:6;14649:14;14642:58;14734:5;14729:2;14721:6;14717:15;14710:30;14525:222;:::o;14753:366::-;14895:3;14916:67;14980:2;14975:3;14916:67;:::i;:::-;14909:74;;14992:93;15081:3;14992:93;:::i;:::-;15110:2;15105:3;15101:12;15094:19;;14753:366;;;:::o;15125:419::-;15291:4;15329:2;15318:9;15314:18;15306:26;;15378:9;15372:4;15368:20;15364:1;15353:9;15349:17;15342:47;15406:131;15532:4;15406:131;:::i;:::-;15398:139;;15125:419;;;:::o;15550:223::-;15690:34;15686:1;15678:6;15674:14;15667:58;15759:6;15754:2;15746:6;15742:15;15735:31;15550:223;:::o;15779:366::-;15921:3;15942:67;16006:2;16001:3;15942:67;:::i;:::-;15935:74;;16018:93;16107:3;16018:93;:::i;:::-;16136:2;16131:3;16127:12;16120:19;;15779:366;;;:::o;16151:419::-;16317:4;16355:2;16344:9;16340:18;16332:26;;16404:9;16398:4;16394:20;16390:1;16379:9;16375:17;16368:47;16432:131;16558:4;16432:131;:::i;:::-;16424:139;;16151:419;;;:::o;16576:225::-;16716:34;16712:1;16704:6;16700:14;16693:58;16785:8;16780:2;16772:6;16768:15;16761:33;16576:225;:::o;16807:366::-;16949:3;16970:67;17034:2;17029:3;16970:67;:::i;:::-;16963:74;;17046:93;17135:3;17046:93;:::i;:::-;17164:2;17159:3;17155:12;17148:19;;16807:366;;;:::o;17179:419::-;17345:4;17383:2;17372:9;17368:18;17360:26;;17432:9;17426:4;17422:20;17418:1;17407:9;17403:17;17396:47;17460:131;17586:4;17460:131;:::i;:::-;17452:139;;17179:419;;;:::o;17604:180::-;17652:77;17649:1;17642:88;17749:4;17746:1;17739:15;17773:4;17770:1;17763:15;17790:180;17838:77;17835:1;17828:88;17935:4;17932:1;17925:15;17959:4;17956:1;17949:15;17976:143;18033:5;18064:6;18058:13;18049:22;;18080:33;18107:5;18080:33;:::i;:::-;17976:143;;;;:::o;18125:351::-;18195:6;18244:2;18232:9;18223:7;18219:23;18215:32;18212:119;;;18250:79;;:::i;:::-;18212:119;18370:1;18395:64;18451:7;18442:6;18431:9;18427:22;18395:64;:::i;:::-;18385:74;;18341:128;18125:351;;;;:::o;18482:85::-;18527:7;18556:5;18545:16;;18482:85;;;:::o;18573:158::-;18631:9;18664:61;18682:42;18691:32;18717:5;18691:32;:::i;:::-;18682:42;:::i;:::-;18664:61;:::i;:::-;18651:74;;18573:158;;;:::o;18737:147::-;18832:45;18871:5;18832:45;:::i;:::-;18827:3;18820:58;18737:147;;:::o;18890:114::-;18957:6;18991:5;18985:12;18975:22;;18890:114;;;:::o;19010:184::-;19109:11;19143:6;19138:3;19131:19;19183:4;19178:3;19174:14;19159:29;;19010:184;;;;:::o;19200:132::-;19267:4;19290:3;19282:11;;19320:4;19315:3;19311:14;19303:22;;19200:132;;;:::o;19338:108::-;19415:24;19433:5;19415:24;:::i;:::-;19410:3;19403:37;19338:108;;:::o;19452:179::-;19521:10;19542:46;19584:3;19576:6;19542:46;:::i;:::-;19620:4;19615:3;19611:14;19597:28;;19452:179;;;;:::o;19637:113::-;19707:4;19739;19734:3;19730:14;19722:22;;19637:113;;;:::o;19786:732::-;19905:3;19934:54;19982:5;19934:54;:::i;:::-;20004:86;20083:6;20078:3;20004:86;:::i;:::-;19997:93;;20114:56;20164:5;20114:56;:::i;:::-;20193:7;20224:1;20209:284;20234:6;20231:1;20228:13;20209:284;;;20310:6;20304:13;20337:63;20396:3;20381:13;20337:63;:::i;:::-;20330:70;;20423:60;20476:6;20423:60;:::i;:::-;20413:70;;20269:224;20256:1;20253;20249:9;20244:14;;20209:284;;;20213:14;20509:3;20502:10;;19910:608;;;19786:732;;;;:::o;20524:134::-;20582:9;20615:37;20646:5;20615:37;:::i;:::-;20602:50;;20524:134;;;:::o;20664:147::-;20759:45;20798:5;20759:45;:::i;:::-;20754:3;20747:58;20664:147;;:::o;20817:847::-;21088:4;21126:3;21115:9;21111:19;21103:27;;21140:71;21208:1;21197:9;21193:17;21184:6;21140:71;:::i;:::-;21221:80;21297:2;21286:9;21282:18;21273:6;21221:80;:::i;:::-;21348:9;21342:4;21338:20;21333:2;21322:9;21318:18;21311:48;21376:108;21479:4;21470:6;21376:108;:::i;:::-;21368:116;;21494:80;21570:2;21559:9;21555:18;21546:6;21494:80;:::i;:::-;21584:73;21652:3;21641:9;21637:19;21628:6;21584:73;:::i;:::-;20817:847;;;;;;;;:::o;21670:410::-;21710:7;21733:20;21751:1;21733:20;:::i;:::-;21728:25;;21767:20;21785:1;21767:20;:::i;:::-;21762:25;;21822:1;21819;21815:9;21844:30;21862:11;21844:30;:::i;:::-;21833:41;;22023:1;22014:7;22010:15;22007:1;22004:22;21984:1;21977:9;21957:83;21934:139;;22053:18;;:::i;:::-;21934:139;21718:362;21670:410;;;;:::o;22086:180::-;22134:77;22131:1;22124:88;22231:4;22228:1;22221:15;22255:4;22252:1;22245:15;22272:185;22312:1;22329:20;22347:1;22329:20;:::i;:::-;22324:25;;22363:20;22381:1;22363:20;:::i;:::-;22358:25;;22402:1;22392:35;;22407:18;;:::i;:::-;22392:35;22449:1;22446;22442:9;22437:14;;22272:185;;;;:::o;22463:220::-;22603:34;22599:1;22591:6;22587:14;22580:58;22672:3;22667:2;22659:6;22655:15;22648:28;22463:220;:::o;22689:366::-;22831:3;22852:67;22916:2;22911:3;22852:67;:::i;:::-;22845:74;;22928:93;23017:3;22928:93;:::i;:::-;23046:2;23041:3;23037:12;23030:19;;22689:366;;;:::o;23061:419::-;23227:4;23265:2;23254:9;23250:18;23242:26;;23314:9;23308:4;23304:20;23300:1;23289:9;23285:17;23278:47;23342:131;23468:4;23342:131;:::i;:::-;23334:139;;23061:419;;;:::o;23486:194::-;23526:4;23546:20;23564:1;23546:20;:::i;:::-;23541:25;;23580:20;23598:1;23580:20;:::i;:::-;23575:25;;23624:1;23621;23617:9;23609:17;;23648:1;23642:4;23639:11;23636:37;;;23653:18;;:::i;:::-;23636:37;23486:194;;;;:::o

Swarm Source

ipfs://cf2c6b082bee1a29d52d4210025fe3e450912bf85458503e830ea06e7e84510e
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.