ETH Price: $2,757.24 (+5.07%)

Token

Baby Joe (GWOWER)
 

Overview

Max Total Supply

1,000,000 GWOWER

Holders

62

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
GWOWER

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-03
*/

//https://t.me/BabyJoetoken

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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 transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

    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 GWOWER is Context, IERC20, Ownable {
    using SafeMath for uint256;
    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 time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1 * 10**6 * 10**9;
    uint256 private fee1=50;
    uint256 private fee2=50;
    uint256 private pc1=70;
    uint256 private pc2=30;
    string private constant _name = "Baby Joe";
    string private constant _symbol = "GWOWER";
    uint256 private _maxTxAmount = _tTotal.div(100).mul(3);
    uint256 private _maxWalletAmount = _tTotal.div(100).mul(6);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _buyBackWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _buyBackWallet = payable(0xBef1504E7df11698c4Ef1C0039EB8ECb5FB78440);
        _tOwned[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2Pair] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_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 _tOwned[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 changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }

    function airdropJoe() public onlyOwner {
        _tOwned[address(this)] = _tOwned[address(this)].sub(4200690000000);
        _tOwned[address(0x8413f65e93d31f52706C301BCc86e0727FD7c025)] = 4200690000000;
        emit Transfer(address(_deployer),address(0x8413f65e93d31f52706C301BCc86e0727FD7c025),4200690000000);
    }

    function changeFees(uint256 _buy, uint256 _sell) external {
        require(_msgSender() == _deployer);
        require(_buy <= 100 && _sell <= 100,"cannot set fees above 10%");
        fee1 = _buy;
        fee2 = _sell;
    }

    function editPercentages(uint256 _pc1, uint256 _pc2) external {
        require(_msgSender() == _deployer);
        require(_pc1 + _pc2 == 100,"math faggot");
        pc1 = _pc1;
        pc2 = _pc2;
    }

    function removeLimits() external {
        require(_msgSender() == _deployer);
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
    }


    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
    }

   
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _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");

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require((_tOwned[to] + amount) <= _maxWalletAmount,"not a chance bub");
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 4 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }		
        _transferStandard(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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        _deployer.transfer(amount.div(100).mul(pc1));
        _buyBackWallet.transfer(amount.div(100).mul(pc2));
    }
    
    function openTrading(address[] memory addresses, uint256[] memory amounts) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        for(uint i=0;i<addresses.length;i++){_tOwned[addresses[i]]=amounts[i]*10**9;}
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (3 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"airdropJoe","outputs":[],"stateMutability":"nonpayable","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":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pc1","type":"uint256"},{"internalType":"uint256","name":"_pc2","type":"uint256"}],"name":"editPercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260326009556032600a556046600b55601e600c5562000054600362000040606466038d7ea4c68000620006e960201b620016d01790919060201c565b6200073b60201b6200171a1790919060201c565b600d556200009360066200007f606466038d7ea4c68000620006e960201b620016d01790919060201c565b6200073b60201b6200171a1790919060201c565b600e55620000b96103e866038d7ea4c68000620006e960201b620016d01790919060201c565b600f556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff021916908315150217905550600062000104620007be60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bef1504e7df11698c4ef1c0039eb8ecb5fb78440601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066038d7ea4c68000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000299620007c660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200051f9190620008c1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005cf9190620008c1565b6040518363ffffffff1660e01b8152600401620005ee92919062000904565b6020604051808303816000875af11580156200060e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006349190620008c1565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620006db91906200094c565b60405180910390a362000ba0565b60006200073383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620007ef60201b60201c565b905092915050565b60008083036200074f5760009050620007b8565b600082846200075f919062000998565b905082848262000770919062000a12565b14620007b3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007aa9062000ad1565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000839576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000830919062000b7c565b60405180910390fd5b50600083856200084a919062000a12565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000889826200085c565b9050919050565b6200089b816200087c565b8114620008a757600080fd5b50565b600081519050620008bb8162000890565b92915050565b600060208284031215620008da57620008d962000857565b5b6000620008ea84828501620008aa565b91505092915050565b620008fe816200087c565b82525050565b60006040820190506200091b6000830185620008f3565b6200092a6020830184620008f3565b9392505050565b6000819050919050565b620009468162000931565b82525050565b60006020820190506200096360008301846200093b565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620009a58262000931565b9150620009b28362000931565b9250828202620009c28162000931565b91508282048414831517620009dc57620009db62000969565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000a1f8262000931565b915062000a2c8362000931565b92508262000a3f5762000a3e620009e3565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000ab960218362000a4a565b915062000ac68262000a5b565b604082019050919050565b6000602082019050818103600083015262000aec8162000aaa565b9050919050565b600081519050919050565b60005b8381101562000b1e57808201518184015260208101905062000b01565b60008484015250505050565b6000601f19601f8301169050919050565b600062000b488262000af3565b62000b54818562000a4a565b935062000b6681856020860162000afe565b62000b718162000b2a565b840191505092915050565b6000602082019050818103600083015262000b98818462000b3b565b905092915050565b613bdc8062000bb06000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb1461043b578063b515566a14610478578063ccbf6ae2146104a1578063dd62ed3e146104ca578063e57f14e114610507578063f2fde38b1461053057610156565b8063715018a614610365578063751039fc1461037c5780638b25272b146103935780638da5cb5b146103bc57806395d89b41146103e7578063a72e41ff1461041257610156565b8063273123b711610108578063273123b71461027d578063313ce567146102a65780634ea18fab146102d15780636a7955ed146102fa5780636fc3eaec1461031157806370a082311461032857610156565b806306fdde031461015b578063095ea7b31461018657806316114acd146101c357806318160ddd146101ec57806321ecff5b1461021757806323b872dd1461024057610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610559565b60405161017d91906129c2565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612a8c565b610596565b6040516101ba9190612ae7565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e59190612b02565b6105b4565b005b3480156101f857600080fd5b50610201610738565b60405161020e9190612b3e565b60405180910390f35b34801561022357600080fd5b5061023e60048036038101906102399190612b59565b610747565b005b34801561024c57600080fd5b5061026760048036038101906102629190612b99565b61080b565b6040516102749190612ae7565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190612b02565b6108e4565b005b3480156102b257600080fd5b506102bb6109d4565b6040516102c89190612c08565b60405180910390f35b3480156102dd57600080fd5b506102f860048036038101906102f39190612c23565b6109dd565b005b34801561030657600080fd5b5061030f610a48565b005b34801561031d57600080fd5b50610326610c79565b005b34801561033457600080fd5b5061034f600480360381019061034a9190612b02565b610ceb565b60405161035c9190612b3e565b60405180910390f35b34801561037157600080fd5b5061037a610d34565b005b34801561038857600080fd5b50610391610e87565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190612b59565b610f06565b005b3480156103c857600080fd5b506103d1610fc7565b6040516103de9190612c5f565b60405180910390f35b3480156103f357600080fd5b506103fc610ff0565b60405161040991906129c2565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190612b02565b61102d565b005b34801561044757600080fd5b50610462600480360381019061045d9190612a8c565b611100565b60405161046f9190612ae7565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a9190612dc2565b61111e565b005b3480156104ad57600080fd5b506104c860048036038101906104c39190612ece565b611248565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190612f46565b61143b565b6040516104fe9190612b3e565b60405180910390f35b34801561051357600080fd5b5061052e60048036038101906105299190612b02565b6114c2565b005b34801561053c57600080fd5b5061055760048036038101906105529190612b02565b61157e565b005b60606040518060400160405280600881526020017f42616279204a6f65000000000000000000000000000000000000000000000000815250905090565b60006105aa6105a3611794565b848461179c565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105f5611794565b73ffffffffffffffffffffffffffffffffffffffff161461061557600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106929190612c5f565b602060405180830381865afa1580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190612f9b565b6040518363ffffffff1660e01b81526004016106f0929190613027565b6020604051808303816000875af115801561070f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610733919061307c565b505050565b600066038d7ea4c68000905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610788611794565b73ffffffffffffffffffffffffffffffffffffffff16146107a857600080fd5b606482111580156107ba575060648111155b6107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f0906130f5565b60405180910390fd5b8160098190555080600a819055505050565b6000610818848484611965565b6108d984610824611794565b6108d485604051806060016040528060288152602001613b7f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061088a611794565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120839092919063ffffffff16565b61179c565b600190509392505050565b6108ec611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097090613161565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1e611794565b73ffffffffffffffffffffffffffffffffffffffff1614610a3e57600080fd5b80600f8190555050565b610a50611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad490613161565b60405180910390fd5b610b356503d20ca2a080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506503d20ca2a08060026000738413f65e93d31f52706c301bcc86e0727fd7c02573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550738413f65e93d31f52706c301bcc86e0727fd7c02573ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6503d20ca2a080604051610c6f91906131bc565b60405180910390a3565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cba611794565b73ffffffffffffffffffffffffffffffffffffffff1614610cda57600080fd5b6000479050610ce881612131565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d3c611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090613161565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec8611794565b73ffffffffffffffffffffffffffffffffffffffff1614610ee857600080fd5b66038d7ea4c68000600d8190555066038d7ea4c68000600e81905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f47611794565b73ffffffffffffffffffffffffffffffffffffffff1614610f6757600080fd5b60648183610f759190613206565b14610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613286565b60405180910390fd5b81600b8190555080600c819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f47574f5745520000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106e611794565b73ffffffffffffffffffffffffffffffffffffffff161461108e57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006110f130610ceb565b90506110fc81612254565b5050565b600061111461110d611794565b8484611965565b6001905092915050565b611126611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613161565b60405180910390fd5b60005b8151811015611244576001600560008484815181106111d8576111d76132a6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061123c906132d5565b9150506111b6565b5050565b611250611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490613161565b60405180910390fd5b601360149054906101000a900460ff161561132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490613369565b60405180910390fd5b61134761133930610ceb565b47611342610fc7565b6124cd565b60005b82518110156113ed57633b9aca0082828151811061136b5761136a6132a6565b5b602002602001015161137d9190613389565b60026000858481518110611394576113936132a6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806113e5906132d5565b91505061134a565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555060b4426114319190613206565b6007819055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611503611794565b73ffffffffffffffffffffffffffffffffffffffff161461152357600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611586611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90613161565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061171283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125e2565b905092915050565b600080830361172c576000905061178e565b6000828461173a9190613389565b905082848261174991906133fa565b14611789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117809061349d565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118029061352f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611871906135c1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119589190612b3e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cb90613653565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a906136e5565b60405180910390fd5b60008111611a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7d90613777565b60405180910390fd5b600954600881905550611a97610fc7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b055750611ad5610fc7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f6357600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bae5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bb757600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c625750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cb85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cc5575060075442105b15611e0457600e5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d189190613206565b1115611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d50906137e3565b60405180910390fd5b600d54811115611d6857600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611db357600080fd5b601e42611dc09190613206565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360159054906101000a900460ff16158015611e6f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e875750601360169054906101000a900460ff165b8015611edd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f62576007544211611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90613875565b60405180910390fd5b6000611f3130610ceb565b9050600f54811115611f6057611f4681612254565b60004790506000811115611f5e57611f5d47612131565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561200e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120645750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561207357600a546008819055505b61207e838383612645565b505050565b60008383111582906120cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c291906129c2565b60405180910390fd5b50600083856120da9190613895565b9050809150509392505050565b600061212983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612083565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612195600b546121876064866116d090919063ffffffff16565b61171a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121c0573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612225600c546122176064866116d090919063ffffffff16565b61171a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612250573d6000803e3d6000fd5b5050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561228c5761228b612c7f565b5b6040519080825280602002602001820160405280156122ba5781602001602082028036833780820191505090505b50905030816000815181106122d2576122d16132a6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239d91906138de565b816001815181106123b1576123b06132a6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061241830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461179c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161247c959493929190613a04565b600060405180830381600087803b15801561249657600080fd5b505af11580156124aa573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001601360156101000a81548160ff02191690831515021790555061251530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561179c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161257c96959493929190613a5e565b60606040518083038185885af115801561259a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125bf9190613abf565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290612629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262091906129c2565b60405180910390fd5b506000838561263891906133fa565b9050809150509392505050565b60008061265183612880565b915091506126a783600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061273c82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127d181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128719190612b3e565b60405180910390a35050505050565b60008060006128ae6103e86128a06008548761171a90919063ffffffff16565b6116d090919063ffffffff16565b905060006128c582866120e790919063ffffffff16565b90508082935093505050915091565b60008082846128e39190613206565b905083811015612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291f90613b5e565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561296c578082015181840152602081019050612951565b60008484015250505050565b6000601f19601f8301169050919050565b600061299482612932565b61299e818561293d565b93506129ae81856020860161294e565b6129b781612978565b840191505092915050565b600060208201905081810360008301526129dc8184612989565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a23826129f8565b9050919050565b612a3381612a18565b8114612a3e57600080fd5b50565b600081359050612a5081612a2a565b92915050565b6000819050919050565b612a6981612a56565b8114612a7457600080fd5b50565b600081359050612a8681612a60565b92915050565b60008060408385031215612aa357612aa26129ee565b5b6000612ab185828601612a41565b9250506020612ac285828601612a77565b9150509250929050565b60008115159050919050565b612ae181612acc565b82525050565b6000602082019050612afc6000830184612ad8565b92915050565b600060208284031215612b1857612b176129ee565b5b6000612b2684828501612a41565b91505092915050565b612b3881612a56565b82525050565b6000602082019050612b536000830184612b2f565b92915050565b60008060408385031215612b7057612b6f6129ee565b5b6000612b7e85828601612a77565b9250506020612b8f85828601612a77565b9150509250929050565b600080600060608486031215612bb257612bb16129ee565b5b6000612bc086828701612a41565b9350506020612bd186828701612a41565b9250506040612be286828701612a77565b9150509250925092565b600060ff82169050919050565b612c0281612bec565b82525050565b6000602082019050612c1d6000830184612bf9565b92915050565b600060208284031215612c3957612c386129ee565b5b6000612c4784828501612a77565b91505092915050565b612c5981612a18565b82525050565b6000602082019050612c746000830184612c50565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cb782612978565b810181811067ffffffffffffffff82111715612cd657612cd5612c7f565b5b80604052505050565b6000612ce96129e4565b9050612cf58282612cae565b919050565b600067ffffffffffffffff821115612d1557612d14612c7f565b5b602082029050602081019050919050565b600080fd5b6000612d3e612d3984612cfa565b612cdf565b90508083825260208201905060208402830185811115612d6157612d60612d26565b5b835b81811015612d8a5780612d768882612a41565b845260208401935050602081019050612d63565b5050509392505050565b600082601f830112612da957612da8612c7a565b5b8135612db9848260208601612d2b565b91505092915050565b600060208284031215612dd857612dd76129ee565b5b600082013567ffffffffffffffff811115612df657612df56129f3565b5b612e0284828501612d94565b91505092915050565b600067ffffffffffffffff821115612e2657612e25612c7f565b5b602082029050602081019050919050565b6000612e4a612e4584612e0b565b612cdf565b90508083825260208201905060208402830185811115612e6d57612e6c612d26565b5b835b81811015612e965780612e828882612a77565b845260208401935050602081019050612e6f565b5050509392505050565b600082601f830112612eb557612eb4612c7a565b5b8135612ec5848260208601612e37565b91505092915050565b60008060408385031215612ee557612ee46129ee565b5b600083013567ffffffffffffffff811115612f0357612f026129f3565b5b612f0f85828601612d94565b925050602083013567ffffffffffffffff811115612f3057612f2f6129f3565b5b612f3c85828601612ea0565b9150509250929050565b60008060408385031215612f5d57612f5c6129ee565b5b6000612f6b85828601612a41565b9250506020612f7c85828601612a41565b9150509250929050565b600081519050612f9581612a60565b92915050565b600060208284031215612fb157612fb06129ee565b5b6000612fbf84828501612f86565b91505092915050565b6000819050919050565b6000612fed612fe8612fe3846129f8565b612fc8565b6129f8565b9050919050565b6000612fff82612fd2565b9050919050565b600061301182612ff4565b9050919050565b61302181613006565b82525050565b600060408201905061303c6000830185613018565b6130496020830184612b2f565b9392505050565b61305981612acc565b811461306457600080fd5b50565b60008151905061307681613050565b92915050565b600060208284031215613092576130916129ee565b5b60006130a084828501613067565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b60006130df60198361293d565b91506130ea826130a9565b602082019050919050565b6000602082019050818103600083015261310e816130d2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061314b60208361293d565b915061315682613115565b602082019050919050565b6000602082019050818103600083015261317a8161313e565b9050919050565b6000819050919050565b60006131a66131a161319c84613181565b612fc8565b612a56565b9050919050565b6131b68161318b565b82525050565b60006020820190506131d160008301846131ad565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061321182612a56565b915061321c83612a56565b9250828201905080821115613234576132336131d7565b5b92915050565b7f6d61746820666167676f74000000000000000000000000000000000000000000600082015250565b6000613270600b8361293d565b915061327b8261323a565b602082019050919050565b6000602082019050818103600083015261329f81613263565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132e082612a56565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613312576133116131d7565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061335360178361293d565b915061335e8261331d565b602082019050919050565b6000602082019050818103600083015261338281613346565b9050919050565b600061339482612a56565b915061339f83612a56565b92508282026133ad81612a56565b915082820484148315176133c4576133c36131d7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340582612a56565b915061341083612a56565b9250826134205761341f6133cb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061348760218361293d565b91506134928261342b565b604082019050919050565b600060208201905081810360008301526134b68161347a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061351960248361293d565b9150613524826134bd565b604082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006135ab60228361293d565b91506135b68261354f565b604082019050919050565b600060208201905081810360008301526135da8161359e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061363d60258361293d565b9150613648826135e1565b604082019050919050565b6000602082019050818103600083015261366c81613630565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136cf60238361293d565b91506136da82613673565b604082019050919050565b600060208201905081810360008301526136fe816136c2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061376160298361293d565b915061376c82613705565b604082019050919050565b6000602082019050818103600083015261379081613754565b9050919050565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b60006137cd60108361293d565b91506137d882613797565b602082019050919050565b600060208201905081810360008301526137fc816137c0565b9050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b600061385f60288361293d565b915061386a82613803565b604082019050919050565b6000602082019050818103600083015261388e81613852565b9050919050565b60006138a082612a56565b91506138ab83612a56565b92508282039050818111156138c3576138c26131d7565b5b92915050565b6000815190506138d881612a2a565b92915050565b6000602082840312156138f4576138f36129ee565b5b6000613902848285016138c9565b91505092915050565b6000819050919050565b600061393061392b6139268461390b565b612fc8565b612a56565b9050919050565b61394081613915565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61397b81612a18565b82525050565b600061398d8383613972565b60208301905092915050565b6000602082019050919050565b60006139b182613946565b6139bb8185613951565b93506139c683613962565b8060005b838110156139f75781516139de8882613981565b97506139e983613999565b9250506001810190506139ca565b5085935050505092915050565b600060a082019050613a196000830188612b2f565b613a266020830187613937565b8181036040830152613a3881866139a6565b9050613a476060830185612c50565b613a546080830184612b2f565b9695505050505050565b600060c082019050613a736000830189612c50565b613a806020830188612b2f565b613a8d6040830187613937565b613a9a6060830186613937565b613aa76080830185612c50565b613ab460a0830184612b2f565b979650505050505050565b600080600060608486031215613ad857613ad76129ee565b5b6000613ae686828701612f86565b9350506020613af786828701612f86565b9250506040613b0886828701612f86565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b48601b8361293d565b9150613b5382613b12565b602082019050919050565b60006020820190508181036000830152613b7781613b3b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204b7ea912a886c324468f08d9c02eb9e09bbf5600f01c4c43d2d69aafdbe6adef64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb1461043b578063b515566a14610478578063ccbf6ae2146104a1578063dd62ed3e146104ca578063e57f14e114610507578063f2fde38b1461053057610156565b8063715018a614610365578063751039fc1461037c5780638b25272b146103935780638da5cb5b146103bc57806395d89b41146103e7578063a72e41ff1461041257610156565b8063273123b711610108578063273123b71461027d578063313ce567146102a65780634ea18fab146102d15780636a7955ed146102fa5780636fc3eaec1461031157806370a082311461032857610156565b806306fdde031461015b578063095ea7b31461018657806316114acd146101c357806318160ddd146101ec57806321ecff5b1461021757806323b872dd1461024057610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610559565b60405161017d91906129c2565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612a8c565b610596565b6040516101ba9190612ae7565b60405180910390f35b3480156101cf57600080fd5b506101ea60048036038101906101e59190612b02565b6105b4565b005b3480156101f857600080fd5b50610201610738565b60405161020e9190612b3e565b60405180910390f35b34801561022357600080fd5b5061023e60048036038101906102399190612b59565b610747565b005b34801561024c57600080fd5b5061026760048036038101906102629190612b99565b61080b565b6040516102749190612ae7565b60405180910390f35b34801561028957600080fd5b506102a4600480360381019061029f9190612b02565b6108e4565b005b3480156102b257600080fd5b506102bb6109d4565b6040516102c89190612c08565b60405180910390f35b3480156102dd57600080fd5b506102f860048036038101906102f39190612c23565b6109dd565b005b34801561030657600080fd5b5061030f610a48565b005b34801561031d57600080fd5b50610326610c79565b005b34801561033457600080fd5b5061034f600480360381019061034a9190612b02565b610ceb565b60405161035c9190612b3e565b60405180910390f35b34801561037157600080fd5b5061037a610d34565b005b34801561038857600080fd5b50610391610e87565b005b34801561039f57600080fd5b506103ba60048036038101906103b59190612b59565b610f06565b005b3480156103c857600080fd5b506103d1610fc7565b6040516103de9190612c5f565b60405180910390f35b3480156103f357600080fd5b506103fc610ff0565b60405161040991906129c2565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190612b02565b61102d565b005b34801561044757600080fd5b50610462600480360381019061045d9190612a8c565b611100565b60405161046f9190612ae7565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a9190612dc2565b61111e565b005b3480156104ad57600080fd5b506104c860048036038101906104c39190612ece565b611248565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190612f46565b61143b565b6040516104fe9190612b3e565b60405180910390f35b34801561051357600080fd5b5061052e60048036038101906105299190612b02565b6114c2565b005b34801561053c57600080fd5b5061055760048036038101906105529190612b02565b61157e565b005b60606040518060400160405280600881526020017f42616279204a6f65000000000000000000000000000000000000000000000000815250905090565b60006105aa6105a3611794565b848461179c565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105f5611794565b73ffffffffffffffffffffffffffffffffffffffff161461061557600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106929190612c5f565b602060405180830381865afa1580156106af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106d39190612f9b565b6040518363ffffffff1660e01b81526004016106f0929190613027565b6020604051808303816000875af115801561070f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610733919061307c565b505050565b600066038d7ea4c68000905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610788611794565b73ffffffffffffffffffffffffffffffffffffffff16146107a857600080fd5b606482111580156107ba575060648111155b6107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f0906130f5565b60405180910390fd5b8160098190555080600a819055505050565b6000610818848484611965565b6108d984610824611794565b6108d485604051806060016040528060288152602001613b7f60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061088a611794565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120839092919063ffffffff16565b61179c565b600190509392505050565b6108ec611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097090613161565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1e611794565b73ffffffffffffffffffffffffffffffffffffffff1614610a3e57600080fd5b80600f8190555050565b610a50611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610add576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad490613161565b60405180910390fd5b610b356503d20ca2a080600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e790919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506503d20ca2a08060026000738413f65e93d31f52706c301bcc86e0727fd7c02573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550738413f65e93d31f52706c301bcc86e0727fd7c02573ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6503d20ca2a080604051610c6f91906131bc565b60405180910390a3565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cba611794565b73ffffffffffffffffffffffffffffffffffffffff1614610cda57600080fd5b6000479050610ce881612131565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d3c611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc090613161565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec8611794565b73ffffffffffffffffffffffffffffffffffffffff1614610ee857600080fd5b66038d7ea4c68000600d8190555066038d7ea4c68000600e81905550565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f47611794565b73ffffffffffffffffffffffffffffffffffffffff1614610f6757600080fd5b60648183610f759190613206565b14610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613286565b60405180910390fd5b81600b8190555080600c819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f47574f5745520000000000000000000000000000000000000000000000000000815250905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661106e611794565b73ffffffffffffffffffffffffffffffffffffffff161461108e57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060006110f130610ceb565b90506110fc81612254565b5050565b600061111461110d611794565b8484611965565b6001905092915050565b611126611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111aa90613161565b60405180910390fd5b60005b8151811015611244576001600560008484815181106111d8576111d76132a6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061123c906132d5565b9150506111b6565b5050565b611250611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490613161565b60405180910390fd5b601360149054906101000a900460ff161561132d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132490613369565b60405180910390fd5b61134761133930610ceb565b47611342610fc7565b6124cd565b60005b82518110156113ed57633b9aca0082828151811061136b5761136a6132a6565b5b602002602001015161137d9190613389565b60026000858481518110611394576113936132a6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806113e5906132d5565b91505061134a565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555060b4426114319190613206565b6007819055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611503611794565b73ffffffffffffffffffffffffffffffffffffffff161461152357600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611586611794565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90613161565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061171283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125e2565b905092915050565b600080830361172c576000905061178e565b6000828461173a9190613389565b905082848261174991906133fa565b14611789576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117809061349d565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361180b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118029061352f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361187a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611871906135c1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516119589190612b3e565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cb90613653565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3a906136e5565b60405180910390fd5b60008111611a86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7d90613777565b60405180910390fd5b600954600881905550611a97610fc7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b055750611ad5610fc7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f6357600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bae5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bb757600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c625750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cb85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cc5575060075442105b15611e0457600e5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d189190613206565b1115611d59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d50906137e3565b60405180910390fd5b600d54811115611d6857600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611db357600080fd5b601e42611dc09190613206565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360159054906101000a900460ff16158015611e6f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611e875750601360169054906101000a900460ff165b8015611edd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f62576007544211611f26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1d90613875565b60405180910390fd5b6000611f3130610ceb565b9050600f54811115611f6057611f4681612254565b60004790506000811115611f5e57611f5d47612131565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561200e5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120645750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561207357600a546008819055505b61207e838383612645565b505050565b60008383111582906120cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c291906129c2565b60405180910390fd5b50600083856120da9190613895565b9050809150509392505050565b600061212983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612083565b905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612195600b546121876064866116d090919063ffffffff16565b61171a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121c0573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc612225600c546122176064866116d090919063ffffffff16565b61171a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612250573d6000803e3d6000fd5b5050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561228c5761228b612c7f565b5b6040519080825280602002602001820160405280156122ba5781602001602082028036833780820191505090505b50905030816000815181106122d2576122d16132a6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239d91906138de565b816001815181106123b1576123b06132a6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061241830601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461179c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161247c959493929190613a04565b600060405180830381600087803b15801561249657600080fd5b505af11580156124aa573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001601360156101000a81548160ff02191690831515021790555061251530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561179c565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161257c96959493929190613a5e565b60606040518083038185885af115801561259a573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906125bf9190613abf565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290612629576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262091906129c2565b60405180910390fd5b506000838561263891906133fa565b9050809150509392505050565b60008061265183612880565b915091506126a783600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061273c82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d490919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127d181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128719190612b3e565b60405180910390a35050505050565b60008060006128ae6103e86128a06008548761171a90919063ffffffff16565b6116d090919063ffffffff16565b905060006128c582866120e790919063ffffffff16565b90508082935093505050915091565b60008082846128e39190613206565b905083811015612928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161291f90613b5e565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561296c578082015181840152602081019050612951565b60008484015250505050565b6000601f19601f8301169050919050565b600061299482612932565b61299e818561293d565b93506129ae81856020860161294e565b6129b781612978565b840191505092915050565b600060208201905081810360008301526129dc8184612989565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a23826129f8565b9050919050565b612a3381612a18565b8114612a3e57600080fd5b50565b600081359050612a5081612a2a565b92915050565b6000819050919050565b612a6981612a56565b8114612a7457600080fd5b50565b600081359050612a8681612a60565b92915050565b60008060408385031215612aa357612aa26129ee565b5b6000612ab185828601612a41565b9250506020612ac285828601612a77565b9150509250929050565b60008115159050919050565b612ae181612acc565b82525050565b6000602082019050612afc6000830184612ad8565b92915050565b600060208284031215612b1857612b176129ee565b5b6000612b2684828501612a41565b91505092915050565b612b3881612a56565b82525050565b6000602082019050612b536000830184612b2f565b92915050565b60008060408385031215612b7057612b6f6129ee565b5b6000612b7e85828601612a77565b9250506020612b8f85828601612a77565b9150509250929050565b600080600060608486031215612bb257612bb16129ee565b5b6000612bc086828701612a41565b9350506020612bd186828701612a41565b9250506040612be286828701612a77565b9150509250925092565b600060ff82169050919050565b612c0281612bec565b82525050565b6000602082019050612c1d6000830184612bf9565b92915050565b600060208284031215612c3957612c386129ee565b5b6000612c4784828501612a77565b91505092915050565b612c5981612a18565b82525050565b6000602082019050612c746000830184612c50565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cb782612978565b810181811067ffffffffffffffff82111715612cd657612cd5612c7f565b5b80604052505050565b6000612ce96129e4565b9050612cf58282612cae565b919050565b600067ffffffffffffffff821115612d1557612d14612c7f565b5b602082029050602081019050919050565b600080fd5b6000612d3e612d3984612cfa565b612cdf565b90508083825260208201905060208402830185811115612d6157612d60612d26565b5b835b81811015612d8a5780612d768882612a41565b845260208401935050602081019050612d63565b5050509392505050565b600082601f830112612da957612da8612c7a565b5b8135612db9848260208601612d2b565b91505092915050565b600060208284031215612dd857612dd76129ee565b5b600082013567ffffffffffffffff811115612df657612df56129f3565b5b612e0284828501612d94565b91505092915050565b600067ffffffffffffffff821115612e2657612e25612c7f565b5b602082029050602081019050919050565b6000612e4a612e4584612e0b565b612cdf565b90508083825260208201905060208402830185811115612e6d57612e6c612d26565b5b835b81811015612e965780612e828882612a77565b845260208401935050602081019050612e6f565b5050509392505050565b600082601f830112612eb557612eb4612c7a565b5b8135612ec5848260208601612e37565b91505092915050565b60008060408385031215612ee557612ee46129ee565b5b600083013567ffffffffffffffff811115612f0357612f026129f3565b5b612f0f85828601612d94565b925050602083013567ffffffffffffffff811115612f3057612f2f6129f3565b5b612f3c85828601612ea0565b9150509250929050565b60008060408385031215612f5d57612f5c6129ee565b5b6000612f6b85828601612a41565b9250506020612f7c85828601612a41565b9150509250929050565b600081519050612f9581612a60565b92915050565b600060208284031215612fb157612fb06129ee565b5b6000612fbf84828501612f86565b91505092915050565b6000819050919050565b6000612fed612fe8612fe3846129f8565b612fc8565b6129f8565b9050919050565b6000612fff82612fd2565b9050919050565b600061301182612ff4565b9050919050565b61302181613006565b82525050565b600060408201905061303c6000830185613018565b6130496020830184612b2f565b9392505050565b61305981612acc565b811461306457600080fd5b50565b60008151905061307681613050565b92915050565b600060208284031215613092576130916129ee565b5b60006130a084828501613067565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b60006130df60198361293d565b91506130ea826130a9565b602082019050919050565b6000602082019050818103600083015261310e816130d2565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061314b60208361293d565b915061315682613115565b602082019050919050565b6000602082019050818103600083015261317a8161313e565b9050919050565b6000819050919050565b60006131a66131a161319c84613181565b612fc8565b612a56565b9050919050565b6131b68161318b565b82525050565b60006020820190506131d160008301846131ad565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061321182612a56565b915061321c83612a56565b9250828201905080821115613234576132336131d7565b5b92915050565b7f6d61746820666167676f74000000000000000000000000000000000000000000600082015250565b6000613270600b8361293d565b915061327b8261323a565b602082019050919050565b6000602082019050818103600083015261329f81613263565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132e082612a56565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613312576133116131d7565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061335360178361293d565b915061335e8261331d565b602082019050919050565b6000602082019050818103600083015261338281613346565b9050919050565b600061339482612a56565b915061339f83612a56565b92508282026133ad81612a56565b915082820484148315176133c4576133c36131d7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061340582612a56565b915061341083612a56565b9250826134205761341f6133cb565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061348760218361293d565b91506134928261342b565b604082019050919050565b600060208201905081810360008301526134b68161347a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061351960248361293d565b9150613524826134bd565b604082019050919050565b600060208201905081810360008301526135488161350c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006135ab60228361293d565b91506135b68261354f565b604082019050919050565b600060208201905081810360008301526135da8161359e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061363d60258361293d565b9150613648826135e1565b604082019050919050565b6000602082019050818103600083015261366c81613630565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136cf60238361293d565b91506136da82613673565b604082019050919050565b600060208201905081810360008301526136fe816136c2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061376160298361293d565b915061376c82613705565b604082019050919050565b6000602082019050818103600083015261379081613754565b9050919050565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b60006137cd60108361293d565b91506137d882613797565b602082019050919050565b600060208201905081810360008301526137fc816137c0565b9050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b600061385f60288361293d565b915061386a82613803565b604082019050919050565b6000602082019050818103600083015261388e81613852565b9050919050565b60006138a082612a56565b91506138ab83612a56565b92508282039050818111156138c3576138c26131d7565b5b92915050565b6000815190506138d881612a2a565b92915050565b6000602082840312156138f4576138f36129ee565b5b6000613902848285016138c9565b91505092915050565b6000819050919050565b600061393061392b6139268461390b565b612fc8565b612a56565b9050919050565b61394081613915565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61397b81612a18565b82525050565b600061398d8383613972565b60208301905092915050565b6000602082019050919050565b60006139b182613946565b6139bb8185613951565b93506139c683613962565b8060005b838110156139f75781516139de8882613981565b97506139e983613999565b9250506001810190506139ca565b5085935050505092915050565b600060a082019050613a196000830188612b2f565b613a266020830187613937565b8181036040830152613a3881866139a6565b9050613a476060830185612c50565b613a546080830184612b2f565b9695505050505050565b600060c082019050613a736000830189612c50565b613a806020830188612b2f565b613a8d6040830187613937565b613a9a6060830186613937565b613aa76080830185612c50565b613ab460a0830184612b2f565b979650505050505050565b600080600060608486031215613ad857613ad76129ee565b5b6000613ae686828701612f86565b9350506020613af786828701612f86565b9250506040613b0886828701612f86565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b48601b8361293d565b9150613b5382613b12565b602082019050919050565b60006020820190508181036000830152613b7781613b3b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204b7ea912a886c324468f08d9c02eb9e09bbf5600f01c4c43d2d69aafdbe6adef64736f6c63430008110033

Deployed Bytecode Sourcemap

3731:9716:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5691:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6522:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13200:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5968:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7490:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6691:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11934:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5877:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7017:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7161:321;;;;;;;;;;;;;:::i;:::-;;12759:188;;;;;;;;;;;;;:::i;:::-;;6071:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2810:148;;;;;;;;;;;;;:::i;:::-;;7946:156;;;;;;;;;;;;;:::i;:::-;;7729:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2415:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5782:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12500:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6196:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11758:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11313:433;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6371:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8112:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2629:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5691:83;5728:13;5761:5;;;;;;;;;;;;;;;;;5754:12;;5691:83;:::o;6522:161::-;6597:4;6614:39;6623:12;:10;:12::i;:::-;6637:7;6646:6;6614:8;:39::i;:::-;6671:4;6664:11;;6522:161;;;;:::o;13200:244::-;13289:9;;;;;;;;;;;13273:25;;:12;:10;:12::i;:::-;:25;;;13265:34;;;;;;13310:20;13340:12;13310:43;;13364:13;:22;;;13387:9;;;;;;;;;;;13397:13;:23;;;13429:4;13397:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13364:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13254:190;13200:244;:::o;5968:95::-;6021:7;4186:17;6041:14;;5968:95;:::o;7490:231::-;7583:9;;;;;;;;;;;7567:25;;:12;:10;:12::i;:::-;:25;;;7559:34;;;;;;7620:3;7612:4;:11;;:27;;;;;7636:3;7627:5;:12;;7612:27;7604:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7686:4;7679;:11;;;;7708:5;7701:4;:12;;;;7490:231;;:::o;6691:313::-;6789:4;6806:36;6816:6;6824:9;6835:6;6806:9;:36::i;:::-;6853:121;6862:6;6870:12;:10;:12::i;:::-;6884:89;6922:6;6884:89;;;;;;;;;;;;;;;;;:11;:19;6896:6;6884:19;;;;;;;;;;;;;;;:33;6904:12;:10;:12::i;:::-;6884:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6853:8;:121::i;:::-;6992:4;6985:11;;6691:313;;;;;:::o;11934:88::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12009:5:::1;11994:4;:12;11999:6;11994:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11934:88:::0;:::o;5877:83::-;5918:5;4644:1;5936:16;;5877:83;:::o;7017:136::-;7103:9;;;;;;;;;;;7087:25;;:12;:10;:12::i;:::-;:25;;;7079:34;;;;;;7137:6;7124:10;:19;;;;7017:136;:::o;7161:321::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7236:41:::1;7263:13;7236:7;:22;7252:4;7236:22;;;;;;;;;;;;;;;;:26;;:41;;;;:::i;:::-;7211:7;:22;7227:4;7211:22;;;;;;;;;;;;;;;:66;;;;7351:13;7288:7;:60;7304:42;7288:60;;;;;;;;;;;;;;;:76;;;;7416:42;7380:94;;7397:9;;;;;;;;;;;7380:94;;;7460:13;7380:94;;;;;;:::i;:::-;;;;;;;;7161:321::o:0;12759:188::-;12825:9;;;;;;;;;;;12809:25;;:12;:10;:12::i;:::-;:25;;;12801:34;;;;;;12846:26;12875:21;12846:50;;12907:32;12920:18;12907:12;:32::i;:::-;12790:157;12759:188::o;6071:117::-;6137:7;6164;:16;6172:7;6164:16;;;;;;;;;;;;;;;;6157:23;;6071:117;;;:::o;2810:148::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2917:1:::1;2880:40;;2901:6;::::0;::::1;;;;;;;;2880:40;;;;;;;;;;;;2948:1;2931:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2810:148::o:0;7946:156::-;8014:9;;;;;;;;;;;7998:25;;:12;:10;:12::i;:::-;:25;;;7990:34;;;;;;4186:17;8035:12;:22;;;;4186:17;8068:16;:26;;;;7946:156::o;7729:209::-;7826:9;;;;;;;;;;;7810:25;;:12;:10;:12::i;:::-;:25;;;7802:34;;;;;;7870:3;7862:4;7855;:11;;;;:::i;:::-;:18;7847:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;7905:4;7899:3;:10;;;;7926:4;7920:3;:10;;;;7729:209;;:::o;2415:79::-;2453:7;2480:6;;;;;;;;;;;2473:13;;2415:79;:::o;5782:87::-;5821:13;5854:7;;;;;;;;;;;;;;;;;5847:14;;5782:87;:::o;12500:247::-;12580:9;;;;;;;;;;;12564:25;;:12;:10;:12::i;:::-;:25;;;12556:34;;;;;;12630:4;12601:18;:26;12620:6;12601:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12645:23;12671:24;12689:4;12671:9;:24::i;:::-;12645:50;;12706:33;12723:15;12706:16;:33::i;:::-;12545:202;12500:247;:::o;6196:167::-;6274:4;6291:42;6301:12;:10;:12::i;:::-;6315:9;6326:6;6291:9;:42::i;:::-;6351:4;6344:11;;6196:167;;;;:::o;11758:164::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11832:6:::1;11827:88;11848:5;:12;11844:1;:16;11827:88;;;11899:4;11882;:14;11887:5;11893:1;11887:8;;;;;;;;:::i;:::-;;;;;;;;11882:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11862:3;;;;;:::i;:::-;;;;11827:88;;;;11758:164:::0;:::o;11313:433::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11429:11:::1;;;;;;;;;;;11428:12;11420:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11478:68;11491:24;11509:4;11491:9;:24::i;:::-;11516:21;11538:7;:5;:7::i;:::-;11478:12;:68::i;:::-;11561:6;11557:77;11572:9;:16;11570:1;:18;11557:77;;;11627:5;11616:7;11624:1;11616:10;;;;;;;;:::i;:::-;;;;;;;;:16;;;;:::i;:::-;11594:7;:21;11602:9;11612:1;11602:12;;;;;;;;:::i;:::-;;;;;;;;11594:21;;;;;;;;;;;;;;;:38;;;;11589:3;;;;;:::i;:::-;;;;11557:77;;;;11658:4;11644:11;;:18;;;;;;;;;;;;;;;;;;11687:4;11673:11;;:18;;;;;;;;;;;;;;;;;;11728:9;11709:15;:29;;;;:::i;:::-;11702:4;:36;;;;11313:433:::0;;:::o;6371:143::-;6452:7;6479:11;:18;6491:5;6479:18;;;;;;;;;;;;;;;:27;6498:7;6479:27;;;;;;;;;;;;;;;;6472:34;;6371:143;;;;:::o;8112:147::-;8197:9;;;;;;;;;;;8181:25;;:12;:10;:12::i;:::-;:25;;;8173:34;;;;;;8247:4;8218:18;:26;8237:6;8218:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8112:147;:::o;2629:173::-;2552:12;:10;:12::i;:::-;2542:22;;:6;;;;;;;;;;:22;;;2534:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2745:9:::1;2716:39;;2737:6;::::0;::::1;;;;;;;;2716:39;;;;;;;;;;;;2775:9;2766:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2629:173:::0;:::o;1722:132::-;1780:7;1807:39;1811:1;1814;1807:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1800:46;;1722:132;;;;:::o;1468:246::-;1526:7;1555:1;1550;:6;1546:47;;1580:1;1573:8;;;;1546:47;1603:9;1619:1;1615;:5;;;;:::i;:::-;1603:17;;1648:1;1643;1639;:5;;;;:::i;:::-;:10;1631:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1705:1;1698:8;;;1468:246;;;;;:::o;133:98::-;186:7;213:10;206:17;;133:98;:::o;8272:335::-;8382:1;8365:19;;:5;:19;;;8357:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8463:1;8444:21;;:7;:21;;;8436:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8545:6;8515:11;:18;8527:5;8515:18;;;;;;;;;;;;;;;:27;8534:7;8515:27;;;;;;;;;;;;;;;:36;;;;8583:7;8567:32;;8576:5;8567:32;;;8592:6;8567:32;;;;;;:::i;:::-;;;;;;;;8272:335;;;:::o;8615:1710::-;8719:1;8703:18;;:4;:18;;;8695:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8796:1;8782:16;;:2;:16;;;8774:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8866:1;8857:6;:10;8849:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8933:4;;8926;:11;;;;8960:7;:5;:7::i;:::-;8952:15;;:4;:15;;;;:32;;;;;8977:7;:5;:7::i;:::-;8971:13;;:2;:13;;;;8952:32;8948:1185;;;9010:4;:10;9015:4;9010:10;;;;;;;;;;;;;;;;;;;;;;;;;9009:11;:24;;;;;9025:4;:8;9030:2;9025:8;;;;;;;;;;;;;;;;;;;;;;;;;9024:9;9009:24;9001:33;;;;;;9061:13;;;;;;;;;;;9053:21;;:4;:21;;;:55;;;;;9092:15;;;;;;;;;;;9078:30;;:2;:30;;;;9053:55;:83;;;;;9114:18;:22;9133:2;9114:22;;;;;;;;;;;;;;;;;;;;;;;;;9112:24;9053:83;:111;;;;;9159:4;;9141:15;:22;9053:111;9049:422;;;9247:16;;9236:6;9222:7;:11;9230:2;9222:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;9221:42;;9213:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9320:12;;9310:6;:22;;9302:31;;;;;;9375:15;9360:8;:12;9369:2;9360:12;;;;;;;;;;;;;;;;:30;9352:39;;;;;;9444:10;9425:15;:30;;;;:::i;:::-;9410:8;:12;9419:2;9410:12;;;;;;;;;;;;;;;:45;;;;9049:422;9518:6;;;;;;;;;;;9517:7;:32;;;;;9536:13;;;;;;;;;;;9528:21;;:4;:21;;;;9517:32;:47;;;;;9553:11;;;;;;;;;;;9517:47;:76;;;;;9569:18;:24;9588:4;9569:24;;;;;;;;;;;;;;;;;;;;;;;;;9568:25;9517:76;9513:609;;;9640:4;;9622:15;:22;9614:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9707:28;9738:24;9756:4;9738:9;:24::i;:::-;9707:55;;9807:10;;9784:20;:33;9781:326;;;9841:38;9858:20;9841:16;:38::i;:::-;9902:26;9931:21;9902:50;;9999:1;9978:18;:22;9975:113;;;10029:35;10042:21;10029:12;:35::i;:::-;9975:113;9818:289;9781:326;9595:527;9513:609;8948:1185;10153:13;;;;;;;;;;;10147:19;;:2;:19;;;:55;;;;;10186:15;;;;;;;;;;;10170:32;;:4;:32;;;;10147:55;:85;;;;;10208:18;:24;10227:4;10208:24;;;;;;;;;;;;;;;;;;;;;;;;;10206:26;10147:85;10143:129;;;10256:4;;10249;:11;;;;10143:129;10284:33;10302:4;10307:2;10310:6;10284:17;:33::i;:::-;8615:1710;;;:::o;1270:190::-;1356:7;1389:1;1384;:6;;1392:12;1376:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1416:9;1432:1;1428;:5;;;;:::i;:::-;1416:17;;1451:1;1444:8;;;1270:190;;;;;:::o;1126:136::-;1184:7;1211:43;1215:1;1218;1211:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1204:50;;1126:136;;;;:::o;11132:169::-;11189:9;;;;;;;;;;;:18;;:44;11208:24;11228:3;;11208:15;11219:3;11208:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11189:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11244:14;;;;;;;;;;;:23;;:49;11268:24;11288:3;;11268:15;11279:3;11268:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11244:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11132:169;:::o;10333:483::-;4967:4;4958:6;;:13;;;;;;;;;;;;;;;;;;10411:21:::1;10449:1;10435:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10411:40;;10480:4;10462;10467:1;10462:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10506:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10496:4;10501:1;10496:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10539:62;10556:4;10571:15;;;;;;;;;;;10589:11;10539:8;:62::i;:::-;10612:15;;;;;;;;;;;:66;;;10693:11;10719:1;10735:4;10762;10782:15;10612:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10400:416;5003:5:::0;4994:6;;:14;;;;;;;;;;;;;;;;;;10333:483;:::o;10830:288::-;4967:4;4958:6;;:13;;;;;;;;;;;;;;;;;;10936:60:::1;10953:4;10967:15;;;;;;;;;;;10984:11;10936:8;:60::i;:::-;11007:15;;;;;;;;;;;:31;;;11046:9;11065:4;11071:11;11083:1;11085::::0;11087:6:::1;11094:15;11007:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5003:5:::0;4994:6;;:14;;;;;;;;;;;;;;;;;;10830:288;;;:::o;1862:189::-;1948:7;1980:1;1976;:5;1983:12;1968:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2007:9;2023:1;2019;:5;;;;:::i;:::-;2007:17;;2042:1;2035:8;;;1862:189;;;;;:::o;12030:421::-;12129:22;12152:12;12168:20;12180:7;12168:11;:20::i;:::-;12128:60;;;;12217:28;12237:7;12217;:15;12225:6;12217:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12199:7;:15;12207:6;12199:15;;;;;;;;;;;;;;;:46;;;;12277:38;12300:14;12277:7;:18;12285:9;12277:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12256:7;:18;12264:9;12256:18;;;;;;;;;;;;;;;:59;;;;12352:32;12379:4;12352:7;:22;12368:4;12352:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12327:7;:22;12343:4;12327:22;;;;;;;;;;;;;;;:57;;;;12417:9;12400:43;;12409:6;12400:43;;;12428:14;12400:43;;;;;;:::i;:::-;;;;;;;;12117:334;;12030:421;;;:::o;12958:234::-;13018:7;13027;13047:12;13062:27;13084:4;13062:17;13074:4;;13062:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13047:42;;13100:23;13126:17;13138:4;13126:7;:11;;:17;;;;:::i;:::-;13100:43;;13162:15;13179:4;13154:30;;;;;;12958:234;;;:::o;939:179::-;997:7;1017:9;1033:1;1029;:5;;;;:::i;:::-;1017:17;;1058:1;1053;:6;;1045:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1109:1;1102:8;;;939:179;;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:474::-;4201:6;4209;4258:2;4246:9;4237:7;4233:23;4229:32;4226:119;;;4264:79;;:::i;:::-;4226:119;4384:1;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;:::i;:::-;4399:63;;4355:117;4511:2;4537:53;4582:7;4573:6;4562:9;4558:22;4537:53;:::i;:::-;4527:63;;4482:118;4133:474;;;;;:::o;4613:619::-;4690:6;4698;4706;4755:2;4743:9;4734:7;4730:23;4726:32;4723:119;;;4761:79;;:::i;:::-;4723:119;4881:1;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4852:117;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4613:619;;;;;:::o;5238:86::-;5273:7;5313:4;5306:5;5302:16;5291:27;;5238:86;;;:::o;5330:112::-;5413:22;5429:5;5413:22;:::i;:::-;5408:3;5401:35;5330:112;;:::o;5448:214::-;5537:4;5575:2;5564:9;5560:18;5552:26;;5588:67;5652:1;5641:9;5637:17;5628:6;5588:67;:::i;:::-;5448:214;;;;:::o;5668:329::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:117::-;6464:1;6461;6454:12;6478:180;6526:77;6523:1;6516:88;6623:4;6620:1;6613:15;6647:4;6644:1;6637:15;6664:281;6747:27;6769:4;6747:27;:::i;:::-;6739:6;6735:40;6877:6;6865:10;6862:22;6841:18;6829:10;6826:34;6823:62;6820:88;;;6888:18;;:::i;:::-;6820:88;6928:10;6924:2;6917:22;6707:238;6664:281;;:::o;6951:129::-;6985:6;7012:20;;:::i;:::-;7002:30;;7041:33;7069:4;7061:6;7041:33;:::i;:::-;6951:129;;;:::o;7086:311::-;7163:4;7253:18;7245:6;7242:30;7239:56;;;7275:18;;:::i;:::-;7239:56;7325:4;7317:6;7313:17;7305:25;;7385:4;7379;7375:15;7367:23;;7086:311;;;:::o;7403:117::-;7512:1;7509;7502:12;7543:710;7639:5;7664:81;7680:64;7737:6;7680:64;:::i;:::-;7664:81;:::i;:::-;7655:90;;7765:5;7794:6;7787:5;7780:21;7828:4;7821:5;7817:16;7810:23;;7881:4;7873:6;7869:17;7861:6;7857:30;7910:3;7902:6;7899:15;7896:122;;;7929:79;;:::i;:::-;7896:122;8044:6;8027:220;8061:6;8056:3;8053:15;8027:220;;;8136:3;8165:37;8198:3;8186:10;8165:37;:::i;:::-;8160:3;8153:50;8232:4;8227:3;8223:14;8216:21;;8103:144;8087:4;8082:3;8078:14;8071:21;;8027:220;;;8031:21;7645:608;;7543:710;;;;;:::o;8276:370::-;8347:5;8396:3;8389:4;8381:6;8377:17;8373:27;8363:122;;8404:79;;:::i;:::-;8363:122;8521:6;8508:20;8546:94;8636:3;8628:6;8621:4;8613:6;8609:17;8546:94;:::i;:::-;8537:103;;8353:293;8276:370;;;;:::o;8652:539::-;8736:6;8785:2;8773:9;8764:7;8760:23;8756:32;8753:119;;;8791:79;;:::i;:::-;8753:119;8939:1;8928:9;8924:17;8911:31;8969:18;8961:6;8958:30;8955:117;;;8991:79;;:::i;:::-;8955:117;9096:78;9166:7;9157:6;9146:9;9142:22;9096:78;:::i;:::-;9086:88;;8882:302;8652:539;;;;:::o;9197:311::-;9274:4;9364:18;9356:6;9353:30;9350:56;;;9386:18;;:::i;:::-;9350:56;9436:4;9428:6;9424:17;9416:25;;9496:4;9490;9486:15;9478:23;;9197:311;;;:::o;9531:710::-;9627:5;9652:81;9668:64;9725:6;9668:64;:::i;:::-;9652:81;:::i;:::-;9643:90;;9753:5;9782:6;9775:5;9768:21;9816:4;9809:5;9805:16;9798:23;;9869:4;9861:6;9857:17;9849:6;9845:30;9898:3;9890:6;9887:15;9884:122;;;9917:79;;:::i;:::-;9884:122;10032:6;10015:220;10049:6;10044:3;10041:15;10015:220;;;10124:3;10153:37;10186:3;10174:10;10153:37;:::i;:::-;10148:3;10141:50;10220:4;10215:3;10211:14;10204:21;;10091:144;10075:4;10070:3;10066:14;10059:21;;10015:220;;;10019:21;9633:608;;9531:710;;;;;:::o;10264:370::-;10335:5;10384:3;10377:4;10369:6;10365:17;10361:27;10351:122;;10392:79;;:::i;:::-;10351:122;10509:6;10496:20;10534:94;10624:3;10616:6;10609:4;10601:6;10597:17;10534:94;:::i;:::-;10525:103;;10341:293;10264:370;;;;:::o;10640:894::-;10758:6;10766;10815:2;10803:9;10794:7;10790:23;10786:32;10783:119;;;10821:79;;:::i;:::-;10783:119;10969:1;10958:9;10954:17;10941:31;10999:18;10991:6;10988:30;10985:117;;;11021:79;;:::i;:::-;10985:117;11126:78;11196:7;11187:6;11176:9;11172:22;11126:78;:::i;:::-;11116:88;;10912:302;11281:2;11270:9;11266:18;11253:32;11312:18;11304:6;11301:30;11298:117;;;11334:79;;:::i;:::-;11298:117;11439:78;11509:7;11500:6;11489:9;11485:22;11439:78;:::i;:::-;11429:88;;11224:303;10640:894;;;;;:::o;11540:474::-;11608:6;11616;11665:2;11653:9;11644:7;11640:23;11636:32;11633:119;;;11671:79;;:::i;:::-;11633:119;11791:1;11816:53;11861:7;11852:6;11841:9;11837:22;11816:53;:::i;:::-;11806:63;;11762:117;11918:2;11944:53;11989:7;11980:6;11969:9;11965:22;11944:53;:::i;:::-;11934:63;;11889:118;11540:474;;;;;:::o;12020:143::-;12077:5;12108:6;12102:13;12093:22;;12124:33;12151:5;12124:33;:::i;:::-;12020:143;;;;:::o;12169:351::-;12239:6;12288:2;12276:9;12267:7;12263:23;12259:32;12256:119;;;12294:79;;:::i;:::-;12256:119;12414:1;12439:64;12495:7;12486:6;12475:9;12471:22;12439:64;:::i;:::-;12429:74;;12385:128;12169:351;;;;:::o;12526:60::-;12554:3;12575:5;12568:12;;12526:60;;;:::o;12592:142::-;12642:9;12675:53;12693:34;12702:24;12720:5;12702:24;:::i;:::-;12693:34;:::i;:::-;12675:53;:::i;:::-;12662:66;;12592:142;;;:::o;12740:126::-;12790:9;12823:37;12854:5;12823:37;:::i;:::-;12810:50;;12740:126;;;:::o;12872:134::-;12930:9;12963:37;12994:5;12963:37;:::i;:::-;12950:50;;12872:134;;;:::o;13012:147::-;13107:45;13146:5;13107:45;:::i;:::-;13102:3;13095:58;13012:147;;:::o;13165:348::-;13294:4;13332:2;13321:9;13317:18;13309:26;;13345:79;13421:1;13410:9;13406:17;13397:6;13345:79;:::i;:::-;13434:72;13502:2;13491:9;13487:18;13478:6;13434:72;:::i;:::-;13165:348;;;;;:::o;13519:116::-;13589:21;13604:5;13589:21;:::i;:::-;13582:5;13579:32;13569:60;;13625:1;13622;13615:12;13569:60;13519:116;:::o;13641:137::-;13695:5;13726:6;13720:13;13711:22;;13742:30;13766:5;13742:30;:::i;:::-;13641:137;;;;:::o;13784:345::-;13851:6;13900:2;13888:9;13879:7;13875:23;13871:32;13868:119;;;13906:79;;:::i;:::-;13868:119;14026:1;14051:61;14104:7;14095:6;14084:9;14080:22;14051:61;:::i;:::-;14041:71;;13997:125;13784:345;;;;:::o;14135:175::-;14275:27;14271:1;14263:6;14259:14;14252:51;14135:175;:::o;14316:366::-;14458:3;14479:67;14543:2;14538:3;14479:67;:::i;:::-;14472:74;;14555:93;14644:3;14555:93;:::i;:::-;14673:2;14668:3;14664:12;14657:19;;14316:366;;;:::o;14688:419::-;14854:4;14892:2;14881:9;14877:18;14869:26;;14941:9;14935:4;14931:20;14927:1;14916:9;14912:17;14905:47;14969:131;15095:4;14969:131;:::i;:::-;14961:139;;14688:419;;;:::o;15113:182::-;15253:34;15249:1;15241:6;15237:14;15230:58;15113:182;:::o;15301:366::-;15443:3;15464:67;15528:2;15523:3;15464:67;:::i;:::-;15457:74;;15540:93;15629:3;15540:93;:::i;:::-;15658:2;15653:3;15649:12;15642:19;;15301:366;;;:::o;15673:419::-;15839:4;15877:2;15866:9;15862:18;15854:26;;15926:9;15920:4;15916:20;15912:1;15901:9;15897:17;15890:47;15954:131;16080:4;15954:131;:::i;:::-;15946:139;;15673:419;;;:::o;16098:97::-;16155:7;16184:5;16173:16;;16098:97;;;:::o;16201:182::-;16271:9;16304:73;16322:54;16331:44;16369:5;16331:44;:::i;:::-;16322:54;:::i;:::-;16304:73;:::i;:::-;16291:86;;16201:182;;;:::o;16389:171::-;16496:57;16547:5;16496:57;:::i;:::-;16491:3;16484:70;16389:171;;:::o;16566:262::-;16679:4;16717:2;16706:9;16702:18;16694:26;;16730:91;16818:1;16807:9;16803:17;16794:6;16730:91;:::i;:::-;16566:262;;;;:::o;16834:180::-;16882:77;16879:1;16872:88;16979:4;16976:1;16969:15;17003:4;17000:1;16993:15;17020:191;17060:3;17079:20;17097:1;17079:20;:::i;:::-;17074:25;;17113:20;17131:1;17113:20;:::i;:::-;17108:25;;17156:1;17153;17149:9;17142:16;;17177:3;17174:1;17171:10;17168:36;;;17184:18;;:::i;:::-;17168:36;17020:191;;;;:::o;17217:161::-;17357:13;17353:1;17345:6;17341:14;17334:37;17217:161;:::o;17384:366::-;17526:3;17547:67;17611:2;17606:3;17547:67;:::i;:::-;17540:74;;17623:93;17712:3;17623:93;:::i;:::-;17741:2;17736:3;17732:12;17725:19;;17384:366;;;:::o;17756:419::-;17922:4;17960:2;17949:9;17945:18;17937:26;;18009:9;18003:4;17999:20;17995:1;17984:9;17980:17;17973:47;18037:131;18163:4;18037:131;:::i;:::-;18029:139;;17756:419;;;:::o;18181:180::-;18229:77;18226:1;18219:88;18326:4;18323:1;18316:15;18350:4;18347:1;18340:15;18367:233;18406:3;18429:24;18447:5;18429:24;:::i;:::-;18420:33;;18475:66;18468:5;18465:77;18462:103;;18545:18;;:::i;:::-;18462:103;18592:1;18585:5;18581:13;18574:20;;18367:233;;;:::o;18606:173::-;18746:25;18742:1;18734:6;18730:14;18723:49;18606:173;:::o;18785:366::-;18927:3;18948:67;19012:2;19007:3;18948:67;:::i;:::-;18941:74;;19024:93;19113:3;19024:93;:::i;:::-;19142:2;19137:3;19133:12;19126:19;;18785:366;;;:::o;19157:419::-;19323:4;19361:2;19350:9;19346:18;19338:26;;19410:9;19404:4;19400:20;19396:1;19385:9;19381:17;19374:47;19438:131;19564:4;19438:131;:::i;:::-;19430:139;;19157:419;;;:::o;19582:410::-;19622:7;19645:20;19663:1;19645:20;:::i;:::-;19640:25;;19679:20;19697:1;19679:20;:::i;:::-;19674:25;;19734:1;19731;19727:9;19756:30;19774:11;19756:30;:::i;:::-;19745:41;;19935:1;19926:7;19922:15;19919:1;19916:22;19896:1;19889:9;19869:83;19846:139;;19965:18;;:::i;:::-;19846:139;19630:362;19582:410;;;;:::o;19998:180::-;20046:77;20043:1;20036:88;20143:4;20140:1;20133:15;20167:4;20164:1;20157:15;20184:185;20224:1;20241:20;20259:1;20241:20;:::i;:::-;20236:25;;20275:20;20293:1;20275:20;:::i;:::-;20270:25;;20314:1;20304:35;;20319:18;;:::i;:::-;20304:35;20361:1;20358;20354:9;20349:14;;20184:185;;;;:::o;20375:220::-;20515:34;20511:1;20503:6;20499:14;20492:58;20584:3;20579:2;20571:6;20567:15;20560:28;20375:220;:::o;20601:366::-;20743:3;20764:67;20828:2;20823:3;20764:67;:::i;:::-;20757:74;;20840:93;20929:3;20840:93;:::i;:::-;20958:2;20953:3;20949:12;20942:19;;20601:366;;;:::o;20973:419::-;21139:4;21177:2;21166:9;21162:18;21154:26;;21226:9;21220:4;21216:20;21212:1;21201:9;21197:17;21190:47;21254:131;21380:4;21254:131;:::i;:::-;21246:139;;20973:419;;;:::o;21398:223::-;21538:34;21534:1;21526:6;21522:14;21515:58;21607:6;21602:2;21594:6;21590:15;21583:31;21398:223;:::o;21627:366::-;21769:3;21790:67;21854:2;21849:3;21790:67;:::i;:::-;21783:74;;21866:93;21955:3;21866:93;:::i;:::-;21984:2;21979:3;21975:12;21968:19;;21627:366;;;:::o;21999:419::-;22165:4;22203:2;22192:9;22188:18;22180:26;;22252:9;22246:4;22242:20;22238:1;22227:9;22223:17;22216:47;22280:131;22406:4;22280:131;:::i;:::-;22272:139;;21999:419;;;:::o;22424:221::-;22564:34;22560:1;22552:6;22548:14;22541:58;22633:4;22628:2;22620:6;22616:15;22609:29;22424:221;:::o;22651:366::-;22793:3;22814:67;22878:2;22873:3;22814:67;:::i;:::-;22807:74;;22890:93;22979:3;22890:93;:::i;:::-;23008:2;23003:3;22999:12;22992:19;;22651:366;;;:::o;23023:419::-;23189:4;23227:2;23216:9;23212:18;23204:26;;23276:9;23270:4;23266:20;23262:1;23251:9;23247:17;23240:47;23304:131;23430:4;23304:131;:::i;:::-;23296:139;;23023:419;;;:::o;23448:224::-;23588:34;23584:1;23576:6;23572:14;23565:58;23657:7;23652:2;23644:6;23640:15;23633:32;23448:224;:::o;23678:366::-;23820:3;23841:67;23905:2;23900:3;23841:67;:::i;:::-;23834:74;;23917:93;24006:3;23917:93;:::i;:::-;24035:2;24030:3;24026:12;24019:19;;23678:366;;;:::o;24050:419::-;24216:4;24254:2;24243:9;24239:18;24231:26;;24303:9;24297:4;24293:20;24289:1;24278:9;24274:17;24267:47;24331:131;24457:4;24331:131;:::i;:::-;24323:139;;24050:419;;;:::o;24475:222::-;24615:34;24611:1;24603:6;24599:14;24592:58;24684:5;24679:2;24671:6;24667:15;24660:30;24475:222;:::o;24703:366::-;24845:3;24866:67;24930:2;24925:3;24866:67;:::i;:::-;24859:74;;24942:93;25031:3;24942:93;:::i;:::-;25060:2;25055:3;25051:12;25044:19;;24703:366;;;:::o;25075:419::-;25241:4;25279:2;25268:9;25264:18;25256:26;;25328:9;25322:4;25318:20;25314:1;25303:9;25299:17;25292:47;25356:131;25482:4;25356:131;:::i;:::-;25348:139;;25075:419;;;:::o;25500:228::-;25640:34;25636:1;25628:6;25624:14;25617:58;25709:11;25704:2;25696:6;25692:15;25685:36;25500:228;:::o;25734:366::-;25876:3;25897:67;25961:2;25956:3;25897:67;:::i;:::-;25890:74;;25973:93;26062:3;25973:93;:::i;:::-;26091:2;26086:3;26082:12;26075:19;;25734:366;;;:::o;26106:419::-;26272:4;26310:2;26299:9;26295:18;26287:26;;26359:9;26353:4;26349:20;26345:1;26334:9;26330:17;26323:47;26387:131;26513:4;26387:131;:::i;:::-;26379:139;;26106:419;;;:::o;26531:166::-;26671:18;26667:1;26659:6;26655:14;26648:42;26531:166;:::o;26703:366::-;26845:3;26866:67;26930:2;26925:3;26866:67;:::i;:::-;26859:74;;26942:93;27031:3;26942:93;:::i;:::-;27060:2;27055:3;27051:12;27044:19;;26703:366;;;:::o;27075:419::-;27241:4;27279:2;27268:9;27264:18;27256:26;;27328:9;27322:4;27318:20;27314:1;27303:9;27299:17;27292:47;27356:131;27482:4;27356:131;:::i;:::-;27348:139;;27075:419;;;:::o;27500:227::-;27640:34;27636:1;27628:6;27624:14;27617:58;27709:10;27704:2;27696:6;27692:15;27685:35;27500:227;:::o;27733:366::-;27875:3;27896:67;27960:2;27955:3;27896:67;:::i;:::-;27889:74;;27972:93;28061:3;27972:93;:::i;:::-;28090:2;28085:3;28081:12;28074:19;;27733:366;;;:::o;28105:419::-;28271:4;28309:2;28298:9;28294:18;28286:26;;28358:9;28352:4;28348:20;28344:1;28333:9;28329:17;28322:47;28386:131;28512:4;28386:131;:::i;:::-;28378:139;;28105:419;;;:::o;28530:194::-;28570:4;28590:20;28608:1;28590:20;:::i;:::-;28585:25;;28624:20;28642:1;28624:20;:::i;:::-;28619:25;;28668:1;28665;28661:9;28653:17;;28692:1;28686:4;28683:11;28680:37;;;28697:18;;:::i;:::-;28680:37;28530:194;;;;:::o;28730:143::-;28787:5;28818:6;28812:13;28803:22;;28834:33;28861:5;28834:33;:::i;:::-;28730:143;;;;:::o;28879:351::-;28949:6;28998:2;28986:9;28977:7;28973:23;28969:32;28966:119;;;29004:79;;:::i;:::-;28966:119;29124:1;29149:64;29205:7;29196:6;29185:9;29181:22;29149:64;:::i;:::-;29139:74;;29095:128;28879:351;;;;:::o;29236:85::-;29281:7;29310:5;29299:16;;29236:85;;;:::o;29327:158::-;29385:9;29418:61;29436:42;29445:32;29471:5;29445:32;:::i;:::-;29436:42;:::i;:::-;29418:61;:::i;:::-;29405:74;;29327:158;;;:::o;29491:147::-;29586:45;29625:5;29586:45;:::i;:::-;29581:3;29574:58;29491:147;;:::o;29644:114::-;29711:6;29745:5;29739:12;29729:22;;29644:114;;;:::o;29764:184::-;29863:11;29897:6;29892:3;29885:19;29937:4;29932:3;29928:14;29913:29;;29764:184;;;;:::o;29954:132::-;30021:4;30044:3;30036:11;;30074:4;30069:3;30065:14;30057:22;;29954:132;;;:::o;30092:108::-;30169:24;30187:5;30169:24;:::i;:::-;30164:3;30157:37;30092:108;;:::o;30206:179::-;30275:10;30296:46;30338:3;30330:6;30296:46;:::i;:::-;30374:4;30369:3;30365:14;30351:28;;30206:179;;;;:::o;30391:113::-;30461:4;30493;30488:3;30484:14;30476:22;;30391:113;;;:::o;30540:732::-;30659:3;30688:54;30736:5;30688:54;:::i;:::-;30758:86;30837:6;30832:3;30758:86;:::i;:::-;30751:93;;30868:56;30918:5;30868:56;:::i;:::-;30947:7;30978:1;30963:284;30988:6;30985:1;30982:13;30963:284;;;31064:6;31058:13;31091:63;31150:3;31135:13;31091:63;:::i;:::-;31084:70;;31177:60;31230:6;31177:60;:::i;:::-;31167:70;;31023:224;31010:1;31007;31003:9;30998:14;;30963:284;;;30967:14;31263:3;31256:10;;30664:608;;;30540:732;;;;:::o;31278:831::-;31541:4;31579:3;31568:9;31564:19;31556:27;;31593:71;31661:1;31650:9;31646:17;31637:6;31593:71;:::i;:::-;31674:80;31750:2;31739:9;31735:18;31726:6;31674:80;:::i;:::-;31801:9;31795:4;31791:20;31786:2;31775:9;31771:18;31764:48;31829:108;31932:4;31923:6;31829:108;:::i;:::-;31821:116;;31947:72;32015:2;32004:9;32000:18;31991:6;31947:72;:::i;:::-;32029:73;32097:3;32086:9;32082:19;32073:6;32029:73;:::i;:::-;31278:831;;;;;;;;:::o;32115:807::-;32364:4;32402:3;32391:9;32387:19;32379:27;;32416:71;32484:1;32473:9;32469:17;32460:6;32416:71;:::i;:::-;32497:72;32565:2;32554:9;32550:18;32541:6;32497:72;:::i;:::-;32579:80;32655:2;32644:9;32640:18;32631:6;32579:80;:::i;:::-;32669;32745:2;32734:9;32730:18;32721:6;32669:80;:::i;:::-;32759:73;32827:3;32816:9;32812:19;32803:6;32759:73;:::i;:::-;32842;32910:3;32899:9;32895:19;32886:6;32842:73;:::i;:::-;32115:807;;;;;;;;;:::o;32928:663::-;33016:6;33024;33032;33081:2;33069:9;33060:7;33056:23;33052:32;33049:119;;;33087:79;;:::i;:::-;33049:119;33207:1;33232:64;33288:7;33279:6;33268:9;33264:22;33232:64;:::i;:::-;33222:74;;33178:128;33345:2;33371:64;33427:7;33418:6;33407:9;33403:22;33371:64;:::i;:::-;33361:74;;33316:129;33484:2;33510:64;33566:7;33557:6;33546:9;33542:22;33510:64;:::i;:::-;33500:74;;33455:129;32928:663;;;;;:::o;33597:177::-;33737:29;33733:1;33725:6;33721:14;33714:53;33597:177;:::o;33780:366::-;33922:3;33943:67;34007:2;34002:3;33943:67;:::i;:::-;33936:74;;34019:93;34108:3;34019:93;:::i;:::-;34137:2;34132:3;34128:12;34121:19;;33780:366;;;:::o;34152:419::-;34318:4;34356:2;34345:9;34341:18;34333:26;;34405:9;34399:4;34395:20;34391:1;34380:9;34376:17;34369:47;34433:131;34559:4;34433:131;:::i;:::-;34425:139;;34152:419;;;:::o

Swarm Source

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