ETH Price: $2,516.78 (+3.10%)

Token

BOB the Builder (BTB)
 

Overview

Max Total Supply

1,000,000,000 BTB

Holders

6

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
bokotankryze.eth
Balance
0.000000005 BTB

Value
$0.00
0x710e72a2a612fb2e917fd744c520d39b75146a38
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:
BOBtheBuilder

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-30
*/

pragma solidity 0.8.17;
// SPDX-License-Identifier: UNLICENSED
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);
}

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;
    address private _previousOwner;
    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 BOBtheBuilder is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _standardTax;
    address payable private _feeAddrWallet;

    string private constant _name = "BOB the Builder";
    string private constant _symbol = "BTB";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 30000000 * 10**9;
    uint256 private _maxWalletSize = 30000000 * 10**9;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _standardTax = 4;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

    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 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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = _standardTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");

            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function setStandardTax(uint256 newTax) external onlyOwner{
      require(newTax<_standardTax);
      _standardTax=newTax;
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"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":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"setStandardTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052670de0b6b3a76400006000196200001c919062000428565b6000196200002b91906200048f565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550666a94d74f430000601055666a94d74f430000601155348015620000a257600080fd5b506000620000b5620003be60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000163620003be60201b60201c565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460026000620001ba620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200020e620003c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506004600c8190555062000349620003be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003b09190620004db565b60405180910390a3620004f8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200043582620003ef565b91506200044283620003ef565b925082620004555762000454620003f9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200049c82620003ef565b9150620004a983620003ef565b9250828203905081811115620004c457620004c362000460565b5b92915050565b620004d581620003ef565b82525050565b6000602082019050620004f26000830184620004ca565b92915050565b612fb080620005086000396000f3fe6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b60405161013091906121a3565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b919061225e565b610418565b60405161016d91906122b9565b60405180910390f35b34801561018257600080fd5b5061018b610436565b60405161019891906122e3565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906122fe565b610446565b6040516101d591906122b9565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b604051610200919061236d565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906123b4565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b91906123e1565b61064c565b60405161027d91906122e3565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d6919061240e565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff919061244a565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a91906121a3565b60405180910390f35b34801561033f57600080fd5b5061035a6004803603810190610355919061225e565b6109b8565b60405161036791906122b9565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c09190612465565b610f51565b6040516103d291906122e3565b60405180910390f35b60606040518060400160405280600f81526020017f424f4220746865204275696c6465720000000000000000000000000000000000815250905090565b600061042c610425610fd8565b8484610fe0565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104538484846111a9565b6105148461045f610fd8565b61050f85604051806060016040528060288152602001612f5360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5610fd8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116aa9092919063ffffffff16565b610fe0565b600190509392505050565b60006009905090565b610530610fd8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b4906124f1565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b610fd8565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161170e565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461177a565b9050919050565b6106a5610fd8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610729906124f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8610fd8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c906124f1565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6108ad610fd8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610931906124f1565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4254420000000000000000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5610fd8565b84846111a9565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17610fd8565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d816117e8565b50565b610a58610fd8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906124f1565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c9061255d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000610fe0565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c339190612592565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbe9190612592565b6040518363ffffffff1660e01b8152600401610cdb9291906125bf565b6020604051808303816000875af1158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1e9190612592565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610da73061064c565b600080610db2610952565b426040518863ffffffff1660e01b8152600401610dd49695949392919061262d565b60606040518083038185885af1158015610df2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e1791906126a3565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f0a9291906126f6565b6020604051808303816000875af1158015610f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4d9190612734565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361104f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611046906127d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612865565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161119c91906122e3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f906128f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127e90612989565b60405180910390fd5b600081116112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c190612a1b565b60405180910390fd5b6112d2610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113405750611310610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561168957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113e95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6113f257600080fd5b6000600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114ae5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115045750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561151c5750600f60179054906101000a900460ff165b156115bf57601054811115611566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155d90612a87565b60405180910390fd5b601154816115738461064c565b61157d9190612ad6565b11156115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b590612b56565b60405180910390fd5b5b60006115ca3061064c565b9050600f60159054906101000a900460ff161580156116375750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561164f5750600f60169054906101000a900460ff165b801561165b5750600081115b1561168357611669816117e8565b60004790506000811115611681576116804761170e565b5b505b5061169a565b6000600a819055506000600b819055505b6116a5838383611a61565b505050565b60008383111582906116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e991906121a3565b60405180910390fd5b50600083856117019190612b76565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611776573d6000803e3d6000fd5b5050565b60006008548211156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612c1c565b60405180910390fd5b60006117cb611a71565b90506117e08184611a9c90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156118205761181f612c3c565b5b60405190808252806020026020018201604052801561184e5781602001602082028036833780820191505090505b509050308160008151811061186657611865612c6b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561190d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119319190612592565b8160018151811061194557611944612c6b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119ac30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fe0565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a10959493929190612d58565b600060405180830381600087803b158015611a2a57600080fd5b505af1158015611a3e573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611a6c838383611ae6565b505050565b6000806000611a7e611cb1565b91509150611a958183611a9c90919063ffffffff16565b9250505090565b6000611ade83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d10565b905092915050565b600080600080600080611af887611d73565b955095509550955095509550611b5686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611beb85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c3781611e83565b611c418483611f40565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c9e91906122e3565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611ce5670de0b6b3a7640000600854611a9c90919063ffffffff16565b821015611d0357600854670de0b6b3a7640000935093505050611d0c565b81819350935050505b9091565b60008083118290611d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4e91906121a3565b60405180910390fd5b5060008385611d669190612de1565b9050809150509392505050565b6000806000806000806000806000611d908a600a54600b54611f7a565b9250925092506000611da0611a71565b90506000806000611db38e878787612010565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e1d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116aa565b905092915050565b6000808284611e349190612ad6565b905083811015611e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7090612e5e565b60405180910390fd5b8091505092915050565b6000611e8d611a71565b90506000611ea4828461209990919063ffffffff16565b9050611ef881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611f5582600854611ddb90919063ffffffff16565b600881905550611f7081600954611e2590919063ffffffff16565b6009819055505050565b600080600080611fa66064611f98888a61209990919063ffffffff16565b611a9c90919063ffffffff16565b90506000611fd06064611fc2888b61209990919063ffffffff16565b611a9c90919063ffffffff16565b90506000611ff982611feb858c611ddb90919063ffffffff16565b611ddb90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612029858961209990919063ffffffff16565b90506000612040868961209990919063ffffffff16565b90506000612057878961209990919063ffffffff16565b90506000612080826120728587611ddb90919063ffffffff16565b611ddb90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036120ab576000905061210d565b600082846120b99190612e7e565b90508284826120c89190612de1565b14612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ff90612f32565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561214d578082015181840152602081019050612132565b60008484015250505050565b6000601f19601f8301169050919050565b600061217582612113565b61217f818561211e565b935061218f81856020860161212f565b61219881612159565b840191505092915050565b600060208201905081810360008301526121bd818461216a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121f5826121ca565b9050919050565b612205816121ea565b811461221057600080fd5b50565b600081359050612222816121fc565b92915050565b6000819050919050565b61223b81612228565b811461224657600080fd5b50565b60008135905061225881612232565b92915050565b60008060408385031215612275576122746121c5565b5b600061228385828601612213565b925050602061229485828601612249565b9150509250929050565b60008115159050919050565b6122b38161229e565b82525050565b60006020820190506122ce60008301846122aa565b92915050565b6122dd81612228565b82525050565b60006020820190506122f860008301846122d4565b92915050565b600080600060608486031215612317576123166121c5565b5b600061232586828701612213565b935050602061233686828701612213565b925050604061234786828701612249565b9150509250925092565b600060ff82169050919050565b61236781612351565b82525050565b6000602082019050612382600083018461235e565b92915050565b6123918161229e565b811461239c57600080fd5b50565b6000813590506123ae81612388565b92915050565b6000602082840312156123ca576123c96121c5565b5b60006123d88482850161239f565b91505092915050565b6000602082840312156123f7576123f66121c5565b5b600061240584828501612213565b91505092915050565b600060208284031215612424576124236121c5565b5b600061243284828501612249565b91505092915050565b612444816121ea565b82525050565b600060208201905061245f600083018461243b565b92915050565b6000806040838503121561247c5761247b6121c5565b5b600061248a85828601612213565b925050602061249b85828601612213565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124db60208361211e565b91506124e6826124a5565b602082019050919050565b6000602082019050818103600083015261250a816124ce565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061254760178361211e565b915061255282612511565b602082019050919050565b600060208201905081810360008301526125768161253a565b9050919050565b60008151905061258c816121fc565b92915050565b6000602082840312156125a8576125a76121c5565b5b60006125b68482850161257d565b91505092915050565b60006040820190506125d4600083018561243b565b6125e1602083018461243b565b9392505050565b6000819050919050565b6000819050919050565b600061261761261261260d846125e8565b6125f2565b612228565b9050919050565b612627816125fc565b82525050565b600060c082019050612642600083018961243b565b61264f60208301886122d4565b61265c604083018761261e565b612669606083018661261e565b612676608083018561243b565b61268360a08301846122d4565b979650505050505050565b60008151905061269d81612232565b92915050565b6000806000606084860312156126bc576126bb6121c5565b5b60006126ca8682870161268e565b93505060206126db8682870161268e565b92505060406126ec8682870161268e565b9150509250925092565b600060408201905061270b600083018561243b565b61271860208301846122d4565b9392505050565b60008151905061272e81612388565b92915050565b60006020828403121561274a576127496121c5565b5b60006127588482850161271f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006127bd60248361211e565b91506127c882612761565b604082019050919050565b600060208201905081810360008301526127ec816127b0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061284f60228361211e565b915061285a826127f3565b604082019050919050565b6000602082019050818103600083015261287e81612842565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006128e160258361211e565b91506128ec82612885565b604082019050919050565b60006020820190508181036000830152612910816128d4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061297360238361211e565b915061297e82612917565b604082019050919050565b600060208201905081810360008301526129a281612966565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a0560298361211e565b9150612a10826129a9565b604082019050919050565b60006020820190508181036000830152612a34816129f8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612a7160198361211e565b9150612a7c82612a3b565b602082019050919050565b60006020820190508181036000830152612aa081612a64565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ae182612228565b9150612aec83612228565b9250828201905080821115612b0457612b03612aa7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612b40601a8361211e565b9150612b4b82612b0a565b602082019050919050565b60006020820190508181036000830152612b6f81612b33565b9050919050565b6000612b8182612228565b9150612b8c83612228565b9250828203905081811115612ba457612ba3612aa7565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c06602a8361211e565b9150612c1182612baa565b604082019050919050565b60006020820190508181036000830152612c3581612bf9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ccf816121ea565b82525050565b6000612ce18383612cc6565b60208301905092915050565b6000602082019050919050565b6000612d0582612c9a565b612d0f8185612ca5565b9350612d1a83612cb6565b8060005b83811015612d4b578151612d328882612cd5565b9750612d3d83612ced565b925050600181019050612d1e565b5085935050505092915050565b600060a082019050612d6d60008301886122d4565b612d7a602083018761261e565b8181036040830152612d8c8186612cfa565b9050612d9b606083018561243b565b612da860808301846122d4565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612dec82612228565b9150612df783612228565b925082612e0757612e06612db2565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612e48601b8361211e565b9150612e5382612e12565b602082019050919050565b60006020820190508181036000830152612e7781612e3b565b9050919050565b6000612e8982612228565b9150612e9483612228565b9250828202612ea281612228565b91508282048414831517612eb957612eb8612aa7565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f1c60218361211e565b9150612f2782612ec0565b604082019050919050565b60006020820190508181036000830152612f4b81612f0f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200b49266aea7951cb0fff7766c90f266f129fdfc41f7ee3cac9b8a32cd38cdec764736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a61161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b8063715018a614610286578063751039fc1461029d578063843f7be2146102b45780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b60405161013091906121a3565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b919061225e565b610418565b60405161016d91906122b9565b60405180910390f35b34801561018257600080fd5b5061018b610436565b60405161019891906122e3565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906122fe565b610446565b6040516101d591906122b9565b60405180910390f35b3480156101ea57600080fd5b506101f361051f565b604051610200919061236d565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906123b4565b610528565b005b34801561023e57600080fd5b506102476105da565b005b34801561025557600080fd5b50610270600480360381019061026b91906123e1565b61064c565b60405161027d91906122e3565b60405180910390f35b34801561029257600080fd5b5061029b61069d565b005b3480156102a957600080fd5b506102b26107f0565b005b3480156102c057600080fd5b506102db60048036038101906102d6919061240e565b6108a5565b005b3480156102e957600080fd5b506102f2610952565b6040516102ff919061244a565b60405180910390f35b34801561031457600080fd5b5061031d61097b565b60405161032a91906121a3565b60405180910390f35b34801561033f57600080fd5b5061035a6004803603810190610355919061225e565b6109b8565b60405161036791906122b9565b60405180910390f35b34801561037c57600080fd5b506103856109d6565b005b34801561039357600080fd5b5061039c610a50565b005b3480156103aa57600080fd5b506103c560048036038101906103c09190612465565b610f51565b6040516103d291906122e3565b60405180910390f35b60606040518060400160405280600f81526020017f424f4220746865204275696c6465720000000000000000000000000000000000815250905090565b600061042c610425610fd8565b8484610fe0565b6001905092915050565b6000670de0b6b3a7640000905090565b60006104538484846111a9565b6105148461045f610fd8565b61050f85604051806060016040528060288152602001612f5360289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c5610fd8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116aa9092919063ffffffff16565b610fe0565b600190509392505050565b60006009905090565b610530610fd8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b4906124f1565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061b610fd8565b73ffffffffffffffffffffffffffffffffffffffff161461063b57600080fd5b60004790506106498161170e565b50565b6000610696600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461177a565b9050919050565b6106a5610fd8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610732576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610729906124f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6107f8610fd8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087c906124f1565b60405180910390fd5b670de0b6b3a7640000601081905550670de0b6b3a7640000601181905550565b6108ad610fd8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461093a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610931906124f1565b60405180910390fd5b600c54811061094857600080fd5b80600c8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4254420000000000000000000000000000000000000000000000000000000000815250905090565b60006109cc6109c5610fd8565b84846111a9565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a17610fd8565b73ffffffffffffffffffffffffffffffffffffffff1614610a3757600080fd5b6000610a423061064c565b9050610a4d816117e8565b50565b610a58610fd8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adc906124f1565b60405180910390fd5b600f60149054906101000a900460ff1615610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c9061255d565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bc430600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000610fe0565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c339190612592565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cbe9190612592565b6040518363ffffffff1660e01b8152600401610cdb9291906125bf565b6020604051808303816000875af1158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1e9190612592565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610da73061064c565b600080610db2610952565b426040518863ffffffff1660e01b8152600401610dd49695949392919061262d565b60606040518083038185885af1158015610df2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e1791906126a3565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f0a9291906126f6565b6020604051808303816000875af1158015610f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4d9190612734565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361104f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611046906127d3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b590612865565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161119c91906122e3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f906128f7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127e90612989565b60405180910390fd5b600081116112ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c190612a1b565b60405180910390fd5b6112d2610952565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113405750611310610952565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561168957600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113e95750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6113f257600080fd5b6000600a81905550600c54600b81905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114ae5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115045750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561151c5750600f60179054906101000a900460ff165b156115bf57601054811115611566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155d90612a87565b60405180910390fd5b601154816115738461064c565b61157d9190612ad6565b11156115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b590612b56565b60405180910390fd5b5b60006115ca3061064c565b9050600f60159054906101000a900460ff161580156116375750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561164f5750600f60169054906101000a900460ff165b801561165b5750600081115b1561168357611669816117e8565b60004790506000811115611681576116804761170e565b5b505b5061169a565b6000600a819055506000600b819055505b6116a5838383611a61565b505050565b60008383111582906116f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e991906121a3565b60405180910390fd5b50600083856117019190612b76565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611776573d6000803e3d6000fd5b5050565b60006008548211156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612c1c565b60405180910390fd5b60006117cb611a71565b90506117e08184611a9c90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156118205761181f612c3c565b5b60405190808252806020026020018201604052801561184e5781602001602082028036833780820191505090505b509050308160008151811061186657611865612c6b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561190d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119319190612592565b8160018151811061194557611944612c6b565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119ac30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fe0565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a10959493929190612d58565b600060405180830381600087803b158015611a2a57600080fd5b505af1158015611a3e573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611a6c838383611ae6565b505050565b6000806000611a7e611cb1565b91509150611a958183611a9c90919063ffffffff16565b9250505090565b6000611ade83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d10565b905092915050565b600080600080600080611af887611d73565b955095509550955095509550611b5686600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ddb90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611beb85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2590919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c3781611e83565b611c418483611f40565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611c9e91906122e3565b60405180910390a3505050505050505050565b600080600060085490506000670de0b6b3a76400009050611ce5670de0b6b3a7640000600854611a9c90919063ffffffff16565b821015611d0357600854670de0b6b3a7640000935093505050611d0c565b81819350935050505b9091565b60008083118290611d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4e91906121a3565b60405180910390fd5b5060008385611d669190612de1565b9050809150509392505050565b6000806000806000806000806000611d908a600a54600b54611f7a565b9250925092506000611da0611a71565b90506000806000611db38e878787612010565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611e1d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116aa565b905092915050565b6000808284611e349190612ad6565b905083811015611e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7090612e5e565b60405180910390fd5b8091505092915050565b6000611e8d611a71565b90506000611ea4828461209990919063ffffffff16565b9050611ef881600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e2590919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b611f5582600854611ddb90919063ffffffff16565b600881905550611f7081600954611e2590919063ffffffff16565b6009819055505050565b600080600080611fa66064611f98888a61209990919063ffffffff16565b611a9c90919063ffffffff16565b90506000611fd06064611fc2888b61209990919063ffffffff16565b611a9c90919063ffffffff16565b90506000611ff982611feb858c611ddb90919063ffffffff16565b611ddb90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612029858961209990919063ffffffff16565b90506000612040868961209990919063ffffffff16565b90506000612057878961209990919063ffffffff16565b90506000612080826120728587611ddb90919063ffffffff16565b611ddb90919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036120ab576000905061210d565b600082846120b99190612e7e565b90508284826120c89190612de1565b14612108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ff90612f32565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561214d578082015181840152602081019050612132565b60008484015250505050565b6000601f19601f8301169050919050565b600061217582612113565b61217f818561211e565b935061218f81856020860161212f565b61219881612159565b840191505092915050565b600060208201905081810360008301526121bd818461216a565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121f5826121ca565b9050919050565b612205816121ea565b811461221057600080fd5b50565b600081359050612222816121fc565b92915050565b6000819050919050565b61223b81612228565b811461224657600080fd5b50565b60008135905061225881612232565b92915050565b60008060408385031215612275576122746121c5565b5b600061228385828601612213565b925050602061229485828601612249565b9150509250929050565b60008115159050919050565b6122b38161229e565b82525050565b60006020820190506122ce60008301846122aa565b92915050565b6122dd81612228565b82525050565b60006020820190506122f860008301846122d4565b92915050565b600080600060608486031215612317576123166121c5565b5b600061232586828701612213565b935050602061233686828701612213565b925050604061234786828701612249565b9150509250925092565b600060ff82169050919050565b61236781612351565b82525050565b6000602082019050612382600083018461235e565b92915050565b6123918161229e565b811461239c57600080fd5b50565b6000813590506123ae81612388565b92915050565b6000602082840312156123ca576123c96121c5565b5b60006123d88482850161239f565b91505092915050565b6000602082840312156123f7576123f66121c5565b5b600061240584828501612213565b91505092915050565b600060208284031215612424576124236121c5565b5b600061243284828501612249565b91505092915050565b612444816121ea565b82525050565b600060208201905061245f600083018461243b565b92915050565b6000806040838503121561247c5761247b6121c5565b5b600061248a85828601612213565b925050602061249b85828601612213565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124db60208361211e565b91506124e6826124a5565b602082019050919050565b6000602082019050818103600083015261250a816124ce565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061254760178361211e565b915061255282612511565b602082019050919050565b600060208201905081810360008301526125768161253a565b9050919050565b60008151905061258c816121fc565b92915050565b6000602082840312156125a8576125a76121c5565b5b60006125b68482850161257d565b91505092915050565b60006040820190506125d4600083018561243b565b6125e1602083018461243b565b9392505050565b6000819050919050565b6000819050919050565b600061261761261261260d846125e8565b6125f2565b612228565b9050919050565b612627816125fc565b82525050565b600060c082019050612642600083018961243b565b61264f60208301886122d4565b61265c604083018761261e565b612669606083018661261e565b612676608083018561243b565b61268360a08301846122d4565b979650505050505050565b60008151905061269d81612232565b92915050565b6000806000606084860312156126bc576126bb6121c5565b5b60006126ca8682870161268e565b93505060206126db8682870161268e565b92505060406126ec8682870161268e565b9150509250925092565b600060408201905061270b600083018561243b565b61271860208301846122d4565b9392505050565b60008151905061272e81612388565b92915050565b60006020828403121561274a576127496121c5565b5b60006127588482850161271f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006127bd60248361211e565b91506127c882612761565b604082019050919050565b600060208201905081810360008301526127ec816127b0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061284f60228361211e565b915061285a826127f3565b604082019050919050565b6000602082019050818103600083015261287e81612842565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006128e160258361211e565b91506128ec82612885565b604082019050919050565b60006020820190508181036000830152612910816128d4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061297360238361211e565b915061297e82612917565b604082019050919050565b600060208201905081810360008301526129a281612966565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a0560298361211e565b9150612a10826129a9565b604082019050919050565b60006020820190508181036000830152612a34816129f8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612a7160198361211e565b9150612a7c82612a3b565b602082019050919050565b60006020820190508181036000830152612aa081612a64565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612ae182612228565b9150612aec83612228565b9250828201905080821115612b0457612b03612aa7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612b40601a8361211e565b9150612b4b82612b0a565b602082019050919050565b60006020820190508181036000830152612b6f81612b33565b9050919050565b6000612b8182612228565b9150612b8c83612228565b9250828203905081811115612ba457612ba3612aa7565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000612c06602a8361211e565b9150612c1182612baa565b604082019050919050565b60006020820190508181036000830152612c3581612bf9565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ccf816121ea565b82525050565b6000612ce18383612cc6565b60208301905092915050565b6000602082019050919050565b6000612d0582612c9a565b612d0f8185612ca5565b9350612d1a83612cb6565b8060005b83811015612d4b578151612d328882612cd5565b9750612d3d83612ced565b925050600181019050612d1e565b5085935050505092915050565b600060a082019050612d6d60008301886122d4565b612d7a602083018761261e565b8181036040830152612d8c8186612cfa565b9050612d9b606083018561243b565b612da860808301846122d4565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612dec82612228565b9150612df783612228565b925082612e0757612e06612db2565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612e48601b8361211e565b9150612e5382612e12565b602082019050919050565b60006020820190508181036000830152612e7781612e3b565b9050919050565b6000612e8982612228565b9150612e9483612228565b9250828202612ea281612228565b91508282048414831517612eb957612eb8612aa7565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f1c60218361211e565b9150612f2782612ec0565b604082019050919050565b60006020820190508181036000830152612f4b81612f0f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200b49266aea7951cb0fff7766c90f266f129fdfc41f7ee3cac9b8a32cd38cdec764736f6c63430008110033

Deployed Bytecode Sourcemap

3513:9992:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5276:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6128:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5553:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6297:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5462:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6618:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11620:193;;;;;;;;;;;;;:::i;:::-;;5656:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2594:148;;;;;;;;;;;;;:::i;:::-;;9346:118;;;;;;;;;;;;;:::i;:::-;;9207:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2380:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5367:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5802:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11418:194;;;;;;;;;;;;;:::i;:::-;;9576:773;;;;;;;;;;;;;:::i;:::-;;5977:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5276:83;5313:13;5346:5;;;;;;;;;;;;;;;;;5339:12;;5276:83;:::o;6128:161::-;6203:4;6220:39;6229:12;:10;:12::i;:::-;6243:7;6252:6;6220:8;:39::i;:::-;6277:4;6270:11;;6128:161;;;;:::o;5553:95::-;5606:7;4019:18;5626:14;;5553:95;:::o;6297:313::-;6395:4;6412:36;6422:6;6430:9;6441:6;6412:9;:36::i;:::-;6459:121;6468:6;6476:12;:10;:12::i;:::-;6490:89;6528:6;6490:89;;;;;;;;;;;;;;;;;:11;:19;6502:6;6490:19;;;;;;;;;;;;;;;:33;6510:12;:10;:12::i;:::-;6490:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6459:8;:121::i;:::-;6598:4;6591:11;;6297:313;;;;;:::o;5462:83::-;5503:5;4418:1;5521:16;;5462:83;:::o;6618:103::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6708:5:::1;6690:15;;:23;;;;;;;;;;;;;;;;;;6618:103:::0;:::o;11620:193::-;11686:14;;;;;;;;;;;11670:30;;:12;:10;:12::i;:::-;:30;;;11662:39;;;;;;11712:26;11741:21;11712:50;;11773:32;11786:18;11773:12;:32::i;:::-;11651:162;11620:193::o;5656:138::-;5722:7;5749:37;5769:7;:16;5777:7;5769:16;;;;;;;;;;;;;;;;5749:19;:37::i;:::-;5742:44;;5656:138;;;:::o;2594:148::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2701:1:::1;2664:40;;2685:6;::::0;::::1;;;;;;;;2664:40;;;;;;;;;;;;2732:1;2715:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2594:148::o:0;9346:118::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4019:18:::1;9399:12;:22;;;;4019:18;9432:14;:24;;;;9346:118::o:0;9207:131::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9289:12:::1;;9282:6;:19;9274:28;;;::::0;::::1;;9324:6;9311:12;:19;;;;9207:131:::0;:::o;2380:79::-;2418:7;2445:6;;;;;;;;;;;2438:13;;2380:79;:::o;5367:87::-;5406:13;5439:7;;;;;;;;;;;;;;;;;5432:14;;5367:87;:::o;5802:167::-;5880:4;5897:42;5907:12;:10;:12::i;:::-;5921:9;5932:6;5897:9;:42::i;:::-;5957:4;5950:11;;5802:167;;;;:::o;11418:194::-;11484:14;;;;;;;;;;;11468:30;;:12;:10;:12::i;:::-;:30;;;11460:39;;;;;;11510:23;11536:24;11554:4;11536:9;:24::i;:::-;11510:50;;11571:33;11588:15;11571:16;:33::i;:::-;11449:163;11418:194::o;9576:773::-;2517:12;:10;:12::i;:::-;2507:22;;:6;;;;;;;;;;:22;;;2499:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9640:11:::1;;;;;;;;;;;9639:12;9631:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9689:35;9746:42;9689:100;;9818:16;9800:15;;:34;;;;;;;;;;;;;;;;;;9845:58;9862:4;9877:15;;;;;;;;;;;4019:18;9845:8;:58::i;:::-;9948:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9930:56;;;9995:4;10002:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9930:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9914:13;;:112;;;;;;;;;;;;;;;;;;10037:15;;;;;;;;;;;:31;;;10076:21;10107:4;10113:24;10131:4;10113:9;:24::i;:::-;10138:1;10140::::0;10142:7:::1;:5;:7::i;:::-;10150:15;10037:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10191:4;10177:11;;:18;;;;;;;;;;;;;;;;;;10224:4;10206:15;;:22;;;;;;;;;;;;;;;;;;10255:4;10241:11;;:18;;;;;;;;;;;;;;;;;;10277:13;;;;;;;;;;;10270:29;;;10308:15;;;;;;;;;;;10326:14;10270:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9620:729;9576:773::o:0;5977:143::-;6058:7;6085:11;:18;6097:5;6085:18;;;;;;;;;;;;;;;:27;6104:7;6085:27;;;;;;;;;;;;;;;;6078:34;;5977:143;;;;:::o;98:98::-;151:7;178:10;171:17;;98:98;:::o;6991:335::-;7101:1;7084:19;;:5;:19;;;7076:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7182:1;7163:21;;:7;:21;;;7155:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7264:6;7234:11;:18;7246:5;7234:18;;;;;;;;;;;;;;;:27;7253:7;7234:27;;;;;;;;;;;;;;;:36;;;;7302:7;7286:32;;7295:5;7286:32;;;7311:6;7286:32;;;;;;:::i;:::-;;;;;;;;6991:335;;;:::o;7334:1374::-;7438:1;7422:18;;:4;:18;;;7414:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7515:1;7501:16;;:2;:16;;;7493:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7585:1;7576:6;:10;7568:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7659:7;:5;:7::i;:::-;7651:15;;:4;:15;;;;:32;;;;;7676:7;:5;:7::i;:::-;7670:13;;:2;:13;;;;7651:32;7647:1011;;;7709:4;:10;7714:4;7709:10;;;;;;;;;;;;;;;;;;;;;;;;;7708:11;:24;;;;;7724:4;:8;7729:2;7724:8;;;;;;;;;;;;;;;;;;;;;;;;;7723:9;7708:24;7700:33;;;;;;7760:1;7748:9;:13;;;;7788:12;;7776:9;:24;;;;7827:13;;;;;;;;;;;7819:21;;:4;:21;;;:55;;;;;7858:15;;;;;;;;;;;7844:30;;:2;:30;;;;7819:55;:83;;;;;7880:18;:22;7899:2;7880:22;;;;;;;;;;;;;;;;;;;;;;;;;7878:24;7819:83;:102;;;;;7906:15;;;;;;;;;;;7819:102;7815:332;;;7989:12;;7979:6;:22;;7971:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8084:14;;8074:6;8058:13;8068:2;8058:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8050:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7815:332;8165:28;8196:24;8214:4;8196:9;:24::i;:::-;8165:55;;8240:6;;;;;;;;;;;8239:7;:32;;;;;8258:13;;;;;;;;;;;8250:21;;:4;:21;;;;8239:32;:47;;;;;8275:11;;;;;;;;;;;8239:47;:73;;;;;8311:1;8290:20;:22;8239:73;8235:344;;;8333:38;8350:20;8333:16;:38::i;:::-;8390:26;8419:21;8390:50;;8483:1;8462:18;:22;8459:105;;;8509:35;8522:21;8509:12;:35::i;:::-;8459:105;8314:265;8235:344;7685:905;7647:1011;;;8619:1;8607:9;:13;;;;8645:1;8633:9;:13;;;;7647:1011;8670:30;8685:4;8690:2;8693:6;8670:14;:30::i;:::-;7334:1374;;;:::o;1235:190::-;1321:7;1354:1;1349;:6;;1357:12;1341:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1381:9;1397:1;1393;:5;;;;:::i;:::-;1381:17;;1416:1;1409:8;;;1235:190;;;;;:::o;9472:96::-;9529:14;;;;;;;;;;;:23;;:31;9553:6;9529:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9472:96;:::o;6729:254::-;6796:7;6835;;6824;:18;;6816:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6900:19;6923:10;:8;:10::i;:::-;6900:33;;6951:24;6963:11;6951:7;:11;;:24;;;;:::i;:::-;6944:31;;;6729:254;;;:::o;8716:483::-;4861:4;4852:6;;:13;;;;;;;;;;;;;;;;;;8794:21:::1;8832:1;8818:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8794:40;;8863:4;8845;8850:1;8845:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8889:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8879:4;8884:1;8879:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;8922:62;8939:4;8954:15;;;;;;;;;;;8972:11;8922:8;:62::i;:::-;8995:15;;;;;;;;;;;:66;;;9076:11;9102:1;9118:4;9145;9165:15;8995:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8783:416;4897:5:::0;4888:6;;:14;;;;;;;;;;;;;;;;;;8716:483;:::o;10357:146::-;10451:44;10469:6;10477:9;10488:6;10451:17;:44::i;:::-;10357:146;;;:::o;13075:163::-;13116:7;13137:15;13154;13173:19;:17;:19::i;:::-;13136:56;;;;13210:20;13222:7;13210;:11;;:20;;;;:::i;:::-;13203:27;;;;13075:163;:::o;1687:132::-;1745:7;1772:39;1776:1;1779;1772:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1765:46;;1687:132;;;;:::o;10511:487::-;10610:15;10627:23;10652:12;10666:23;10691:12;10705:13;10722:19;10733:7;10722:10;:19::i;:::-;10609:132;;;;;;;;;;;;10770:28;10790:7;10770;:15;10778:6;10770:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10752:7;:15;10760:6;10752:15;;;;;;;;;;;;;;;:46;;;;10830:39;10853:15;10830:7;:18;10838:9;10830:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10809:7;:18;10817:9;10809:18;;;;;;;;;;;;;;;:60;;;;10880:16;10890:5;10880:9;:16::i;:::-;10907:23;10919:4;10925;10907:11;:23::i;:::-;10963:9;10946:44;;10955:6;10946:44;;;10974:15;10946:44;;;;;;:::i;:::-;;;;;;;;10598:400;;;;;;10511:487;;;:::o;13246:256::-;13296:7;13305;13325:15;13343:7;;13325:25;;13361:15;4019:18;13361:25;;13411:20;4019:18;13411:7;;:11;;:20;;;;:::i;:::-;13401:7;:30;13397:61;;;13441:7;;4019:18;13433:25;;;;;;;;13397:61;13477:7;13486;13469:25;;;;;;13246:256;;;:::o;1827:189::-;1913:7;1945:1;1941;:5;1948:12;1933:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1972:9;1988:1;1984;:5;;;;:::i;:::-;1972:17;;2007:1;2000:8;;;1827:189;;;;;:::o;11823:471::-;11882:7;11891;11900;11909;11918;11927;11948:23;11973:12;11987:13;12004:42;12016:7;12025:9;;12036;;12004:11;:42::i;:::-;11947:99;;;;;;12057:19;12080:10;:8;:10::i;:::-;12057:33;;12102:15;12119:23;12144:12;12160:46;12172:7;12181:4;12187:5;12194:11;12160;:46::i;:::-;12101:105;;;;;;12225:7;12234:15;12251:4;12257:15;12274:4;12280:5;12217:69;;;;;;;;;;;;;;;;;;;11823:471;;;;;;;:::o;1091:136::-;1149:7;1176:43;1180:1;1183;1176:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1169:50;;1091:136;;;;:::o;904:179::-;962:7;982:9;998:1;994;:5;;;;:::i;:::-;982:17;;1023:1;1018;:6;;1010:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1074:1;1067:8;;;904:179;;;;:::o;11006:212::-;11059:19;11082:10;:8;:10::i;:::-;11059:33;;11103:13;11119:22;11129:11;11119:5;:9;;:22;;;;:::i;:::-;11103:38;;11177:33;11204:5;11177:7;:22;11193:4;11177:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11152:7;:22;11168:4;11152:22;;;;;;;;;;;;;;;:58;;;;11048:170;;11006:212;:::o;11226:147::-;11304:17;11316:4;11304:7;;:11;;:17;;;;:::i;:::-;11294:7;:27;;;;11345:20;11360:4;11345:10;;:14;;:20;;;;:::i;:::-;11332:10;:33;;;;11226:147;;:::o;12302:351::-;12395:7;12404;12413;12433:12;12448:28;12472:3;12448:19;12460:6;12448:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12433:43;;12487:13;12503:29;12528:3;12503:20;12515:7;12503;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12487:45;;12543:23;12569:28;12591:5;12569:17;12581:4;12569:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12543:54;;12616:15;12633:4;12639:5;12608:37;;;;;;;;;12302:351;;;;;;;:::o;12661:409::-;12771:7;12780;12789;12809:15;12827:24;12839:11;12827:7;:11;;:24;;;;:::i;:::-;12809:42;;12862:12;12877:21;12886:11;12877:4;:8;;:21;;;;:::i;:::-;12862:36;;12909:13;12925:22;12935:11;12925:5;:9;;:22;;;;:::i;:::-;12909:38;;12958:23;12984:28;13006:5;12984:17;12996:4;12984:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12958:54;;13031:7;13040:15;13057:4;13023:39;;;;;;;;;;12661:409;;;;;;;;:::o;1433:246::-;1491:7;1520:1;1515;:6;1511:47;;1545:1;1538:8;;;;1511:47;1568:9;1584:1;1580;:5;;;;:::i;:::-;1568:17;;1613:1;1608;1604;:5;;;;:::i;:::-;:10;1596:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1670:1;1663:8;;;1433:246;;;;;:::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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:116::-;4923:21;4938:5;4923:21;:::i;:::-;4916:5;4913:32;4903:60;;4959:1;4956;4949:12;4903:60;4853:116;:::o;4975:133::-;5018:5;5056:6;5043:20;5034:29;;5072:30;5096:5;5072:30;:::i;:::-;4975:133;;;;:::o;5114:323::-;5170:6;5219:2;5207:9;5198:7;5194:23;5190:32;5187:119;;;5225:79;;:::i;:::-;5187:119;5345:1;5370:50;5412:7;5403:6;5392:9;5388:22;5370:50;:::i;:::-;5360:60;;5316:114;5114:323;;;;:::o;5443:329::-;5502:6;5551:2;5539:9;5530:7;5526:23;5522:32;5519:119;;;5557:79;;:::i;:::-;5519:119;5677:1;5702:53;5747:7;5738:6;5727:9;5723:22;5702:53;:::i;:::-;5692:63;;5648:117;5443:329;;;;:::o;5778:::-;5837:6;5886:2;5874:9;5865:7;5861:23;5857:32;5854:119;;;5892:79;;:::i;:::-;5854:119;6012:1;6037:53;6082:7;6073:6;6062:9;6058:22;6037:53;:::i;:::-;6027:63;;5983:117;5778:329;;;;:::o;6113:118::-;6200:24;6218:5;6200:24;:::i;:::-;6195:3;6188:37;6113:118;;:::o;6237:222::-;6330:4;6368:2;6357:9;6353:18;6345:26;;6381:71;6449:1;6438:9;6434:17;6425:6;6381:71;:::i;:::-;6237:222;;;;:::o;6465:474::-;6533:6;6541;6590:2;6578:9;6569:7;6565:23;6561:32;6558:119;;;6596:79;;:::i;:::-;6558:119;6716:1;6741:53;6786:7;6777:6;6766:9;6762:22;6741:53;:::i;:::-;6731:63;;6687:117;6843:2;6869:53;6914:7;6905:6;6894:9;6890:22;6869:53;:::i;:::-;6859:63;;6814:118;6465:474;;;;;:::o;6945:182::-;7085:34;7081:1;7073:6;7069:14;7062:58;6945:182;:::o;7133:366::-;7275:3;7296:67;7360:2;7355:3;7296:67;:::i;:::-;7289:74;;7372:93;7461:3;7372:93;:::i;:::-;7490:2;7485:3;7481:12;7474:19;;7133:366;;;:::o;7505:419::-;7671:4;7709:2;7698:9;7694:18;7686:26;;7758:9;7752:4;7748:20;7744:1;7733:9;7729:17;7722:47;7786:131;7912:4;7786:131;:::i;:::-;7778:139;;7505:419;;;:::o;7930:173::-;8070:25;8066:1;8058:6;8054:14;8047:49;7930:173;:::o;8109:366::-;8251:3;8272:67;8336:2;8331:3;8272:67;:::i;:::-;8265:74;;8348:93;8437:3;8348:93;:::i;:::-;8466:2;8461:3;8457:12;8450:19;;8109:366;;;:::o;8481:419::-;8647:4;8685:2;8674:9;8670:18;8662:26;;8734:9;8728:4;8724:20;8720:1;8709:9;8705:17;8698:47;8762:131;8888:4;8762:131;:::i;:::-;8754:139;;8481:419;;;:::o;8906:143::-;8963:5;8994:6;8988:13;8979:22;;9010:33;9037:5;9010:33;:::i;:::-;8906:143;;;;:::o;9055:351::-;9125:6;9174:2;9162:9;9153:7;9149:23;9145:32;9142:119;;;9180:79;;:::i;:::-;9142:119;9300:1;9325:64;9381:7;9372:6;9361:9;9357:22;9325:64;:::i;:::-;9315:74;;9271:128;9055:351;;;;:::o;9412:332::-;9533:4;9571:2;9560:9;9556:18;9548:26;;9584:71;9652:1;9641:9;9637:17;9628:6;9584:71;:::i;:::-;9665:72;9733:2;9722:9;9718:18;9709:6;9665:72;:::i;:::-;9412:332;;;;;:::o;9750:85::-;9795:7;9824:5;9813:16;;9750:85;;;:::o;9841:60::-;9869:3;9890:5;9883:12;;9841:60;;;:::o;9907:158::-;9965:9;9998:61;10016:42;10025:32;10051:5;10025:32;:::i;:::-;10016:42;:::i;:::-;9998:61;:::i;:::-;9985:74;;9907:158;;;:::o;10071:147::-;10166:45;10205:5;10166:45;:::i;:::-;10161:3;10154:58;10071:147;;:::o;10224:807::-;10473:4;10511:3;10500:9;10496:19;10488:27;;10525:71;10593:1;10582:9;10578:17;10569:6;10525:71;:::i;:::-;10606:72;10674:2;10663:9;10659:18;10650:6;10606:72;:::i;:::-;10688:80;10764:2;10753:9;10749:18;10740:6;10688:80;:::i;:::-;10778;10854:2;10843:9;10839:18;10830:6;10778:80;:::i;:::-;10868:73;10936:3;10925:9;10921:19;10912:6;10868:73;:::i;:::-;10951;11019:3;11008:9;11004:19;10995:6;10951:73;:::i;:::-;10224:807;;;;;;;;;:::o;11037:143::-;11094:5;11125:6;11119:13;11110:22;;11141:33;11168:5;11141:33;:::i;:::-;11037:143;;;;:::o;11186:663::-;11274:6;11282;11290;11339:2;11327:9;11318:7;11314:23;11310:32;11307:119;;;11345:79;;:::i;:::-;11307:119;11465:1;11490:64;11546:7;11537:6;11526:9;11522:22;11490:64;:::i;:::-;11480:74;;11436:128;11603:2;11629:64;11685:7;11676:6;11665:9;11661:22;11629:64;:::i;:::-;11619:74;;11574:129;11742:2;11768:64;11824:7;11815:6;11804:9;11800:22;11768:64;:::i;:::-;11758:74;;11713:129;11186:663;;;;;:::o;11855:332::-;11976:4;12014:2;12003:9;11999:18;11991:26;;12027:71;12095:1;12084:9;12080:17;12071:6;12027:71;:::i;:::-;12108:72;12176:2;12165:9;12161:18;12152:6;12108:72;:::i;:::-;11855:332;;;;;:::o;12193:137::-;12247:5;12278:6;12272:13;12263:22;;12294:30;12318:5;12294:30;:::i;:::-;12193:137;;;;:::o;12336:345::-;12403:6;12452:2;12440:9;12431:7;12427:23;12423:32;12420:119;;;12458:79;;:::i;:::-;12420:119;12578:1;12603:61;12656:7;12647:6;12636:9;12632:22;12603:61;:::i;:::-;12593:71;;12549:125;12336:345;;;;:::o;12687:223::-;12827:34;12823:1;12815:6;12811:14;12804:58;12896:6;12891:2;12883:6;12879:15;12872:31;12687:223;:::o;12916:366::-;13058:3;13079:67;13143:2;13138:3;13079:67;:::i;:::-;13072:74;;13155:93;13244:3;13155:93;:::i;:::-;13273:2;13268:3;13264:12;13257:19;;12916:366;;;:::o;13288:419::-;13454:4;13492:2;13481:9;13477:18;13469:26;;13541:9;13535:4;13531:20;13527:1;13516:9;13512:17;13505:47;13569:131;13695:4;13569:131;:::i;:::-;13561:139;;13288:419;;;:::o;13713:221::-;13853:34;13849:1;13841:6;13837:14;13830:58;13922:4;13917:2;13909:6;13905:15;13898:29;13713:221;:::o;13940:366::-;14082:3;14103:67;14167:2;14162:3;14103:67;:::i;:::-;14096:74;;14179:93;14268:3;14179:93;:::i;:::-;14297:2;14292:3;14288:12;14281:19;;13940:366;;;:::o;14312:419::-;14478:4;14516:2;14505:9;14501:18;14493:26;;14565:9;14559:4;14555:20;14551:1;14540:9;14536:17;14529:47;14593:131;14719:4;14593:131;:::i;:::-;14585:139;;14312:419;;;:::o;14737:224::-;14877:34;14873:1;14865:6;14861:14;14854:58;14946:7;14941:2;14933:6;14929:15;14922:32;14737:224;:::o;14967:366::-;15109:3;15130:67;15194:2;15189:3;15130:67;:::i;:::-;15123:74;;15206:93;15295:3;15206:93;:::i;:::-;15324:2;15319:3;15315:12;15308:19;;14967:366;;;:::o;15339:419::-;15505:4;15543:2;15532:9;15528:18;15520:26;;15592:9;15586:4;15582:20;15578:1;15567:9;15563:17;15556:47;15620:131;15746:4;15620:131;:::i;:::-;15612:139;;15339:419;;;:::o;15764:222::-;15904:34;15900:1;15892:6;15888:14;15881:58;15973:5;15968:2;15960:6;15956:15;15949:30;15764:222;:::o;15992:366::-;16134:3;16155:67;16219:2;16214:3;16155:67;:::i;:::-;16148:74;;16231:93;16320:3;16231:93;:::i;:::-;16349:2;16344:3;16340:12;16333:19;;15992:366;;;:::o;16364:419::-;16530:4;16568:2;16557:9;16553:18;16545:26;;16617:9;16611:4;16607:20;16603:1;16592:9;16588:17;16581:47;16645:131;16771:4;16645:131;:::i;:::-;16637:139;;16364:419;;;:::o;16789:228::-;16929:34;16925:1;16917:6;16913:14;16906:58;16998:11;16993:2;16985:6;16981:15;16974:36;16789:228;:::o;17023:366::-;17165:3;17186:67;17250:2;17245:3;17186:67;:::i;:::-;17179:74;;17262:93;17351:3;17262:93;:::i;:::-;17380:2;17375:3;17371:12;17364:19;;17023:366;;;:::o;17395:419::-;17561:4;17599:2;17588:9;17584:18;17576:26;;17648:9;17642:4;17638:20;17634:1;17623:9;17619:17;17612:47;17676:131;17802:4;17676:131;:::i;:::-;17668:139;;17395:419;;;:::o;17820:175::-;17960:27;17956:1;17948:6;17944:14;17937:51;17820:175;:::o;18001:366::-;18143:3;18164:67;18228:2;18223:3;18164:67;:::i;:::-;18157:74;;18240:93;18329:3;18240:93;:::i;:::-;18358:2;18353:3;18349:12;18342:19;;18001:366;;;:::o;18373:419::-;18539:4;18577:2;18566:9;18562:18;18554:26;;18626:9;18620:4;18616:20;18612:1;18601:9;18597:17;18590:47;18654:131;18780:4;18654:131;:::i;:::-;18646:139;;18373:419;;;:::o;18798:180::-;18846:77;18843:1;18836:88;18943:4;18940:1;18933:15;18967:4;18964:1;18957:15;18984:191;19024:3;19043:20;19061:1;19043:20;:::i;:::-;19038:25;;19077:20;19095:1;19077:20;:::i;:::-;19072:25;;19120:1;19117;19113:9;19106:16;;19141:3;19138:1;19135:10;19132:36;;;19148:18;;:::i;:::-;19132:36;18984:191;;;;:::o;19181:176::-;19321:28;19317:1;19309:6;19305:14;19298:52;19181:176;:::o;19363:366::-;19505:3;19526:67;19590:2;19585:3;19526:67;:::i;:::-;19519:74;;19602:93;19691:3;19602:93;:::i;:::-;19720:2;19715:3;19711:12;19704:19;;19363:366;;;:::o;19735:419::-;19901:4;19939:2;19928:9;19924:18;19916:26;;19988:9;19982:4;19978:20;19974:1;19963:9;19959:17;19952:47;20016:131;20142:4;20016:131;:::i;:::-;20008:139;;19735:419;;;:::o;20160:194::-;20200:4;20220:20;20238:1;20220:20;:::i;:::-;20215:25;;20254:20;20272:1;20254:20;:::i;:::-;20249:25;;20298:1;20295;20291:9;20283:17;;20322:1;20316:4;20313:11;20310:37;;;20327:18;;:::i;:::-;20310:37;20160:194;;;;:::o;20360:229::-;20500:34;20496:1;20488:6;20484:14;20477:58;20569:12;20564:2;20556:6;20552:15;20545:37;20360:229;:::o;20595:366::-;20737:3;20758:67;20822:2;20817:3;20758:67;:::i;:::-;20751:74;;20834:93;20923:3;20834:93;:::i;:::-;20952:2;20947:3;20943:12;20936:19;;20595:366;;;:::o;20967:419::-;21133:4;21171:2;21160:9;21156:18;21148:26;;21220:9;21214:4;21210:20;21206:1;21195:9;21191:17;21184:47;21248:131;21374:4;21248:131;:::i;:::-;21240:139;;20967:419;;;:::o;21392:180::-;21440:77;21437:1;21430:88;21537:4;21534:1;21527:15;21561:4;21558:1;21551:15;21578:180;21626:77;21623:1;21616:88;21723:4;21720:1;21713:15;21747:4;21744:1;21737:15;21764:114;21831:6;21865:5;21859:12;21849:22;;21764:114;;;:::o;21884:184::-;21983:11;22017:6;22012:3;22005:19;22057:4;22052:3;22048:14;22033:29;;21884:184;;;;:::o;22074:132::-;22141:4;22164:3;22156:11;;22194:4;22189:3;22185:14;22177:22;;22074:132;;;:::o;22212:108::-;22289:24;22307:5;22289:24;:::i;:::-;22284:3;22277:37;22212:108;;:::o;22326:179::-;22395:10;22416:46;22458:3;22450:6;22416:46;:::i;:::-;22494:4;22489:3;22485:14;22471:28;;22326:179;;;;:::o;22511:113::-;22581:4;22613;22608:3;22604:14;22596:22;;22511:113;;;:::o;22660:732::-;22779:3;22808:54;22856:5;22808:54;:::i;:::-;22878:86;22957:6;22952:3;22878:86;:::i;:::-;22871:93;;22988:56;23038:5;22988:56;:::i;:::-;23067:7;23098:1;23083:284;23108:6;23105:1;23102:13;23083:284;;;23184:6;23178:13;23211:63;23270:3;23255:13;23211:63;:::i;:::-;23204:70;;23297:60;23350:6;23297:60;:::i;:::-;23287:70;;23143:224;23130:1;23127;23123:9;23118:14;;23083:284;;;23087:14;23383:3;23376:10;;22784:608;;;22660:732;;;;:::o;23398:831::-;23661:4;23699:3;23688:9;23684:19;23676:27;;23713:71;23781:1;23770:9;23766:17;23757:6;23713:71;:::i;:::-;23794:80;23870:2;23859:9;23855:18;23846:6;23794:80;:::i;:::-;23921:9;23915:4;23911:20;23906:2;23895:9;23891:18;23884:48;23949:108;24052:4;24043:6;23949:108;:::i;:::-;23941:116;;24067:72;24135:2;24124:9;24120:18;24111:6;24067:72;:::i;:::-;24149:73;24217:3;24206:9;24202:19;24193:6;24149:73;:::i;:::-;23398:831;;;;;;;;:::o;24235:180::-;24283:77;24280:1;24273:88;24380:4;24377:1;24370:15;24404:4;24401:1;24394:15;24421:185;24461:1;24478:20;24496:1;24478:20;:::i;:::-;24473:25;;24512:20;24530:1;24512:20;:::i;:::-;24507:25;;24551:1;24541:35;;24556:18;;:::i;:::-;24541:35;24598:1;24595;24591:9;24586:14;;24421:185;;;;:::o;24612:177::-;24752:29;24748:1;24740:6;24736:14;24729:53;24612:177;:::o;24795:366::-;24937:3;24958:67;25022:2;25017:3;24958:67;:::i;:::-;24951:74;;25034:93;25123:3;25034:93;:::i;:::-;25152:2;25147:3;25143:12;25136:19;;24795:366;;;:::o;25167:419::-;25333:4;25371:2;25360:9;25356:18;25348:26;;25420:9;25414:4;25410:20;25406:1;25395:9;25391:17;25384:47;25448:131;25574:4;25448:131;:::i;:::-;25440:139;;25167:419;;;:::o;25592:410::-;25632:7;25655:20;25673:1;25655:20;:::i;:::-;25650:25;;25689:20;25707:1;25689:20;:::i;:::-;25684:25;;25744:1;25741;25737:9;25766:30;25784:11;25766:30;:::i;:::-;25755:41;;25945:1;25936:7;25932:15;25929:1;25926:22;25906:1;25899:9;25879:83;25856:139;;25975:18;;:::i;:::-;25856:139;25640:362;25592:410;;;;:::o;26008:220::-;26148:34;26144:1;26136:6;26132:14;26125:58;26217:3;26212:2;26204:6;26200:15;26193:28;26008:220;:::o;26234:366::-;26376:3;26397:67;26461:2;26456:3;26397:67;:::i;:::-;26390:74;;26473:93;26562:3;26473:93;:::i;:::-;26591:2;26586:3;26582:12;26575:19;;26234:366;;;:::o;26606:419::-;26772:4;26810:2;26799:9;26795:18;26787:26;;26859:9;26853:4;26849:20;26845:1;26834:9;26830:17;26823:47;26887:131;27013:4;26887:131;:::i;:::-;26879:139;;26606:419;;;:::o

Swarm Source

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