ETH Price: $2,952.82 (-3.66%)
Gas: 2 Gwei

Token

AltBoy (ABOY)
 

Overview

Max Total Supply

238,500,000 ABOY

Holders

97

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
261,234.765940706 ABOY

Value
$0.00
0x9f12858fFd44563c7e5fd247ccA756B50331256D
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:
AltBoy

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-08
*/

/**

AltBoy / ABOY

TG: https://t.me/altboyeth
X: https://x.com/altboyeth
Web: https://Www.altboyeth.com
Whitepaper: https://ow.ly/M3AF50QgcxC


*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;


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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

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

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


interface IERC20 {
    function totalSupply() external view returns (uint256);
    function circulatingSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);}

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract AltBoy is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'AltBoy';
    string private constant _symbol = 'ABOY';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 238500000 * (10 ** _decimals);
    uint256 public _maxWalletToken = ( _totalSupply * 200 ) / 10000;
    mapping (address => uint256) _balances;
    mapping (address => uint256) public lastSellBlock;
    mapping (address => mapping (address => uint256)) private _allowances;
    IRouter router;
    address public pair;
    uint256 private marketingFee = 100;
    uint256 private developmentFee = 100;
    uint256 private totalFee = 2000;
    uint256 private sellFee = 2000;
    uint256 private transferFee = 200;
    uint256 private denominator = 10000;
    uint256 private launchTime;
    bool private swapping;
    bool private tradingAllowed = false;
    bool private swapEnabled = true;
    bool private oneSellPerBlock = true;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    mapping(address => bool) private isFeeExempt;
    uint256 private swapThreshold = ( _totalSupply * 300 ) / 100000;
    uint256 private _minTokenAmount = ( _totalSupply * 10 ) / 100000;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal constant development_receiver = 0x8C57B2e19c2041b33f933059fe7bB2370be3d859; 
    address internal constant marketing_receiver = 0xddDc57A707583eCd3961F8D5b99a0d5022f4C3dB;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[development_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    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 getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, 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(msg.sender, spender, amount);return true;}
    function circulatingSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function totalSupply() public view override returns (uint256) {return _totalSupply;}

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){require(tradingAllowed, "tradingAllowed");}
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)){
            require((_balances[recipient].add(amount)) <= _maxWalletToken, "ERC20: exceeds maximum wallet amount.");}
        if(tradingAllowed && launchTime.add(10 minutes) < block.timestamp){
            totalFee = uint256(200); sellFee =uint256(200); oneSellPerBlock = false; _maxWalletToken = _totalSupply;}
        if(tradingAllowed && launchTime.add(72 hours) < block.timestamp){
            totalFee = uint256(0); sellFee =uint256(0); transferFee =uint256(0);}
        if(recipient == pair && !isFeeExempt[sender] && tradingAllowed && oneSellPerBlock){require(lastSellBlock[sender] < block.number);}
        if(recipient == pair && !isFeeExempt[sender] && oneSellPerBlock){lastSellBlock[sender] = block.number;}
        if(shouldSwapBack(sender, recipient, amount)){swapAndLiquify();}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function swapAndLiquify() private lockTheSwap {
        uint256 tokens = swapThreshold;
        if(balanceOf(address(this)) < tokens && sellFee == uint256(0)){
            tokens = balanceOf(address(this));}
        uint256 _denominator = marketingFee.add(developmentFee).mul(uint256(2));
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(tokens);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator);
        uint256 marketingAmount = unitBalance.mul(uint256(2)).mul(marketingFee);
        if(marketingAmount > uint256(0)){payable(marketing_receiver).transfer(marketingAmount);}
        if(address(this).balance > uint256(0)){payable(development_receiver).transfer(address(this).balance);}
    }

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

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _minTokenAmount;
        bool balanceAvailable = balanceOf(address(this)) >= swapThreshold;
        if(balanceOf(address(this)) < swapThreshold && sellFee == uint256(0)){
            balanceAvailable = balanceOf(address(this)) > uint256(0);}
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && balanceAvailable;
    }

    function shouldTakeFee(address sender, address recipient) internal view returns (bool) {
        return !isFeeExempt[sender] && !isFeeExempt[recipient];
    }

    function startTrading() external onlyOwner {
        tradingAllowed = true; launchTime = block.timestamp;
    }

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        _transfer(address(this), address(DEAD), amount.div(denominator).mul(getTotalFee(sender, recipient).div(uint256(2))));
        return amount.sub(feeAmount);} return amount;
    }

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

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"circulatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSellBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTrading","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000734565b630e3738a062000025919062000785565b60015561271060c86001546200003c919062000785565b620000489190620007ff565b600255606460085560646009556107d0600a556107d0600b5560c8600c55612710600d556000600f60016101000a81548160ff0219169083151502179055506001600f60026101000a81548160ff0219169083151502179055506001600f60036101000a81548160ff021916908315150217905550620186a061012c600154620000d3919062000785565b620000df9190620007ff565b601155620186a0600a600154620000f7919062000785565b620001039190620007ff565b6012553480156200011357600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001bd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e39190620008a1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002719190620008a1565b6040518363ffffffff1660e01b815260040162000290929190620008e4565b6020604051808303816000875af1158015620002b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d69190620008a1565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016010600073dddc57a707583ecd3961f8d5b99a0d5022f4c3db73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160106000738c57b2e19c2041b33f933059fe7bb2370be3d85973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600154600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516200058a919062000922565b60405180910390a350506200093f565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000628578086048111156200060057620005ff6200059a565b5b6001851615620006105780820291505b80810290506200062085620005c9565b9450620005e0565b94509492505050565b60008262000643576001905062000716565b8162000653576000905062000716565b81600181146200066c57600281146200067757620006ad565b600191505062000716565b60ff8411156200068c576200068b6200059a565b5b8360020a915084821115620006a657620006a56200059a565b5b5062000716565b5060208310610133831016604e8410600b8410161715620006e75782820a905083811115620006e157620006e06200059a565b5b62000716565b620006f68484846001620005d6565b9250905081840481111562000710576200070f6200059a565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000741826200071d565b91506200074e8362000727565b92506200077d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000631565b905092915050565b600062000792826200071d565b91506200079f836200071d565b9250828202620007af816200071d565b91508282048414831517620007c957620007c86200059a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200080c826200071d565b915062000819836200071d565b9250826200082c576200082b620007d0565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000869826200083c565b9050919050565b6200087b816200085c565b81146200088757600080fd5b50565b6000815190506200089b8162000870565b92915050565b600060208284031215620008ba57620008b962000837565b5b6000620008ca848285016200088a565b91505092915050565b620008de816200085c565b82525050565b6000604082019050620008fb6000830185620008d3565b6200090a6020830184620008d3565b9392505050565b6200091c816200071d565b82525050565b600060208201905062000939600083018462000911565b92915050565b612ae4806200094f6000396000f3fe6080604052600436106101025760003560e01c806378109e5411610095578063a05c3b7211610064578063a05c3b7214610346578063a8aa1b3114610383578063a9059cbb146103ae578063dd62ed3e146103eb578063f2fde38b1461042857610109565b806378109e541461029a578063893d20e8146102c55780639358928b146102f057806395d89b411461031b57610109565b8063293230b8116100d1578063293230b8146101de5780632f54bf6e146101f5578063313ce5671461023257806370a082311461025d57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610451565b6040516101309190611eb7565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611f72565b61048e565b60405161016d9190611fcd565b60405180910390f35b34801561018257600080fd5b5061018b6104a5565b6040516101989190611ff7565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612012565b6104af565b6040516101d59190611fcd565b60405180910390f35b3480156101ea57600080fd5b506101f361057a565b005b34801561020157600080fd5b5061021c60048036038101906102179190612065565b6105e6565b6040516102299190611fcd565b60405180910390f35b34801561023e57600080fd5b5061024761063f565b60405161025491906120ae565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f9190612065565b610648565b6040516102919190611ff7565b60405180910390f35b3480156102a657600080fd5b506102af610691565b6040516102bc9190611ff7565b60405180910390f35b3480156102d157600080fd5b506102da610697565b6040516102e791906120d8565b60405180910390f35b3480156102fc57600080fd5b506103056106c0565b6040516103129190611ff7565b60405180910390f35b34801561032757600080fd5b50610330610701565b60405161033d9190611eb7565b60405180910390f35b34801561035257600080fd5b5061036d60048036038101906103689190612065565b61073e565b60405161037a9190611ff7565b60405180910390f35b34801561038f57600080fd5b50610398610756565b6040516103a591906120d8565b60405180910390f35b3480156103ba57600080fd5b506103d560048036038101906103d09190611f72565b61077c565b6040516103e29190611fcd565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d91906120f3565b610793565b60405161041f9190611ff7565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190612171565b61081a565b005b60606040518060400160405280600681526020017f416c74426f790000000000000000000000000000000000000000000000000000815250905090565b600061049b3384846108dc565b6001905092915050565b6000600154905090565b60006104bc848484610aa5565b61056f843361056a85604051806060016040528060288152602001612a8760289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113599092919063ffffffff16565b6108dc565b600190509392505050565b610583336105e6565b6105c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b9906121ea565b60405180910390fd5b6001600f60016101000a81548160ff02191690831515021790555042600e81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006106fc6106cf6000610648565b6106ee6106dd61dead610648565b6001546113bd90919063ffffffff16565b6113bd90919063ffffffff16565b905090565b60606040518060400160405280600481526020017f41424f5900000000000000000000000000000000000000000000000000000000815250905090565b60046020528060005260406000206000915090505481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610789338484610aa5565b6001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610823336105e6565b610862576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610859906121ea565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516108d19190612269565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361094b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610942906122f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b190612388565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a989190611ff7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b9061241a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a906124ac565b60405180910390fd5b610b8c83610648565b811115610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc59061253e565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610c725750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610cc757600f60019054906101000a900460ff16610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd906125aa565b60405180910390fd5b5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610d6b5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610dc55750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610dff575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610e9b57600254610e5982600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461140790919063ffffffff16565b1115610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e919061263c565b60405180910390fd5b5b600f60019054906101000a900460ff168015610ecc575042610eca610258600e5461140790919063ffffffff16565b105b15610f065760c8600a8190555060c8600b819055506000600f60036101000a81548160ff0219169083151502179055506001546002819055505b600f60019054906101000a900460ff168015610f38575042610f366203f480600e5461140790919063ffffffff16565b105b15610f56576000600a819055506000600b819055506000600c819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015610ffd5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156110155750600f60019054906101000a900460ff165b801561102d5750600f60039054906101000a900460ff165b1561107e5743600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061107d57600080fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156111255750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561113d5750600f60039054906101000a900460ff165b156111875743600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611192838383611465565b156111a05761119f6115be565b5b6111f281600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113bd90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611241848461178d565b61124b5781611257565b61125684848461183b565b5b90506112ab81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461140790919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161134b9190611ff7565b60405180910390a350505050565b60008383111582906113a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113989190611eb7565b60405180910390fd5b50600083856113b0919061268b565b9050809150509392505050565b60006113ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611359565b905092915050565b600080828461141691906126bf565b90508381101561145b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114529061273f565b60405180910390fd5b8091505092915050565b6000806012548310159050600060115461147e30610648565b1015905060115461148e30610648565b10801561149d57506000600b54145b156114b15760006114ad30610648565b1190505b600f60009054906101000a900460ff161580156114da5750600f60029054906101000a900460ff165b80156114f25750600f60019054906101000a900460ff165b80156114fb5750815b80156115515750601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115aa5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156115b35750805b925050509392505050565b6001600f60006101000a81548160ff02191690831515021790555060006011549050806115ea30610648565b1080156115f957506000600b54145b1561160a5761160730610648565b90505b6000611636600261162860095460085461140790919063ffffffff16565b6119f190919063ffffffff16565b9050600047905061164683611a6b565b600061165b82476113bd90919063ffffffff16565b905060006116728483611cae90919063ffffffff16565b9050600061169e6008546116906002856119f190919063ffffffff16565b6119f190919063ffffffff16565b905060008111156117055773dddc57a707583ecd3961f8d5b99a0d5022f4c3db73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611703573d6000803e3d6000fd5b505b600047111561176a57738c57b2e19c2041b33f933059fe7bb2370be3d85973ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611768573d6000803e3d6000fd5b505b5050505050506000600f60006101000a81548160ff021916908315150217905550565b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118335750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000806118488585611cf8565b11156119e657600061188061185d8686611cf8565b611872600d5486611cae90919063ffffffff16565b6119f190919063ffffffff16565b90506118d481600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461140790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119749190611ff7565b60405180910390a36119cb3061dead6119c66119a360026119958b8b611cf8565b611cae90919063ffffffff16565b6119b8600d5489611cae90919063ffffffff16565b6119f190919063ffffffff16565b610aa5565b6119de81846113bd90919063ffffffff16565b9150506119ea565b8190505b9392505050565b6000808303611a035760009050611a65565b60008284611a11919061275f565b9050828482611a2091906127d0565b14611a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5790612873565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff811115611a8857611a87612893565b5b604051908082528060200260200182016040528015611ab65781602001602082028036833780820191505090505b5090503081600081518110611ace57611acd6128c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b999190612906565b81600181518110611bad57611bac6128c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c1430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846108dc565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c78959493929190612a2c565b600060405180830381600087803b158015611c9257600080fd5b505af1158015611ca6573d6000803e3d6000fd5b505050505050565b6000611cf083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dc4565b905092915050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d5957600b549050611dbe565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611db857600a549050611dbe565b600c5490505b92915050565b60008083118290611e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e029190611eb7565b60405180910390fd5b5060008385611e1a91906127d0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e61578082015181840152602081019050611e46565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e8982611e27565b611e938185611e32565b9350611ea3818560208601611e43565b611eac81611e6d565b840191505092915050565b60006020820190508181036000830152611ed18184611e7e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f0982611ede565b9050919050565b611f1981611efe565b8114611f2457600080fd5b50565b600081359050611f3681611f10565b92915050565b6000819050919050565b611f4f81611f3c565b8114611f5a57600080fd5b50565b600081359050611f6c81611f46565b92915050565b60008060408385031215611f8957611f88611ed9565b5b6000611f9785828601611f27565b9250506020611fa885828601611f5d565b9150509250929050565b60008115159050919050565b611fc781611fb2565b82525050565b6000602082019050611fe26000830184611fbe565b92915050565b611ff181611f3c565b82525050565b600060208201905061200c6000830184611fe8565b92915050565b60008060006060848603121561202b5761202a611ed9565b5b600061203986828701611f27565b935050602061204a86828701611f27565b925050604061205b86828701611f5d565b9150509250925092565b60006020828403121561207b5761207a611ed9565b5b600061208984828501611f27565b91505092915050565b600060ff82169050919050565b6120a881612092565b82525050565b60006020820190506120c3600083018461209f565b92915050565b6120d281611efe565b82525050565b60006020820190506120ed60008301846120c9565b92915050565b6000806040838503121561210a57612109611ed9565b5b600061211885828601611f27565b925050602061212985828601611f27565b9150509250929050565b600061213e82611ede565b9050919050565b61214e81612133565b811461215957600080fd5b50565b60008135905061216b81612145565b92915050565b60006020828403121561218757612186611ed9565b5b60006121958482850161215c565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006121d4600683611e32565b91506121df8261219e565b602082019050919050565b60006020820190508181036000830152612203816121c7565b9050919050565b6000819050919050565b600061222f61222a61222584611ede565b61220a565b611ede565b9050919050565b600061224182612214565b9050919050565b600061225382612236565b9050919050565b61226381612248565b82525050565b600060208201905061227e600083018461225a565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006122e0602483611e32565b91506122eb82612284565b604082019050919050565b6000602082019050818103600083015261230f816122d3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612372602283611e32565b915061237d82612316565b604082019050919050565b600060208201905081810360008301526123a181612365565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612404602583611e32565b915061240f826123a8565b604082019050919050565b60006020820190508181036000830152612433816123f7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612496602383611e32565b91506124a18261243a565b604082019050919050565b600060208201905081810360008301526124c581612489565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612528603183611e32565b9150612533826124cc565b604082019050919050565b600060208201905081810360008301526125578161251b565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000612594600e83611e32565b915061259f8261255e565b602082019050919050565b600060208201905081810360008301526125c381612587565b9050919050565b7f45524332303a2065786365656473206d6178696d756d2077616c6c657420616d60008201527f6f756e742e000000000000000000000000000000000000000000000000000000602082015250565b6000612626602583611e32565b9150612631826125ca565b604082019050919050565b6000602082019050818103600083015261265581612619565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061269682611f3c565b91506126a183611f3c565b92508282039050818111156126b9576126b861265c565b5b92915050565b60006126ca82611f3c565b91506126d583611f3c565b92508282019050808211156126ed576126ec61265c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612729601b83611e32565b9150612734826126f3565b602082019050919050565b600060208201905081810360008301526127588161271c565b9050919050565b600061276a82611f3c565b915061277583611f3c565b925082820261278381611f3c565b9150828204841483151761279a5761279961265c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006127db82611f3c565b91506127e683611f3c565b9250826127f6576127f56127a1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061285d602183611e32565b915061286882612801565b604082019050919050565b6000602082019050818103600083015261288c81612850565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061290081611f10565b92915050565b60006020828403121561291c5761291b611ed9565b5b600061292a848285016128f1565b91505092915050565b6000819050919050565b600061295861295361294e84612933565b61220a565b611f3c565b9050919050565b6129688161293d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6129a381611efe565b82525050565b60006129b5838361299a565b60208301905092915050565b6000602082019050919050565b60006129d98261296e565b6129e38185612979565b93506129ee8361298a565b8060005b83811015612a1f578151612a0688826129a9565b9750612a11836129c1565b9250506001810190506129f2565b5085935050505092915050565b600060a082019050612a416000830188611fe8565b612a4e602083018761295f565b8181036040830152612a6081866129ce565b9050612a6f60608301856120c9565b612a7c6080830184611fe8565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b163279d87bf205a38285d6032f96583aaeb696a7267a4f233604304ad0ffff64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101025760003560e01c806378109e5411610095578063a05c3b7211610064578063a05c3b7214610346578063a8aa1b3114610383578063a9059cbb146103ae578063dd62ed3e146103eb578063f2fde38b1461042857610109565b806378109e541461029a578063893d20e8146102c55780639358928b146102f057806395d89b411461031b57610109565b8063293230b8116100d1578063293230b8146101de5780632f54bf6e146101f5578063313ce5671461023257806370a082311461025d57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610451565b6040516101309190611eb7565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611f72565b61048e565b60405161016d9190611fcd565b60405180910390f35b34801561018257600080fd5b5061018b6104a5565b6040516101989190611ff7565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612012565b6104af565b6040516101d59190611fcd565b60405180910390f35b3480156101ea57600080fd5b506101f361057a565b005b34801561020157600080fd5b5061021c60048036038101906102179190612065565b6105e6565b6040516102299190611fcd565b60405180910390f35b34801561023e57600080fd5b5061024761063f565b60405161025491906120ae565b60405180910390f35b34801561026957600080fd5b50610284600480360381019061027f9190612065565b610648565b6040516102919190611ff7565b60405180910390f35b3480156102a657600080fd5b506102af610691565b6040516102bc9190611ff7565b60405180910390f35b3480156102d157600080fd5b506102da610697565b6040516102e791906120d8565b60405180910390f35b3480156102fc57600080fd5b506103056106c0565b6040516103129190611ff7565b60405180910390f35b34801561032757600080fd5b50610330610701565b60405161033d9190611eb7565b60405180910390f35b34801561035257600080fd5b5061036d60048036038101906103689190612065565b61073e565b60405161037a9190611ff7565b60405180910390f35b34801561038f57600080fd5b50610398610756565b6040516103a591906120d8565b60405180910390f35b3480156103ba57600080fd5b506103d560048036038101906103d09190611f72565b61077c565b6040516103e29190611fcd565b60405180910390f35b3480156103f757600080fd5b50610412600480360381019061040d91906120f3565b610793565b60405161041f9190611ff7565b60405180910390f35b34801561043457600080fd5b5061044f600480360381019061044a9190612171565b61081a565b005b60606040518060400160405280600681526020017f416c74426f790000000000000000000000000000000000000000000000000000815250905090565b600061049b3384846108dc565b6001905092915050565b6000600154905090565b60006104bc848484610aa5565b61056f843361056a85604051806060016040528060288152602001612a8760289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113599092919063ffffffff16565b6108dc565b600190509392505050565b610583336105e6565b6105c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b9906121ea565b60405180910390fd5b6001600f60016101000a81548160ff02191690831515021790555042600e81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60025481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006106fc6106cf6000610648565b6106ee6106dd61dead610648565b6001546113bd90919063ffffffff16565b6113bd90919063ffffffff16565b905090565b60606040518060400160405280600481526020017f41424f5900000000000000000000000000000000000000000000000000000000815250905090565b60046020528060005260406000206000915090505481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610789338484610aa5565b6001905092915050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610823336105e6565b610862576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610859906121ea565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163816040516108d19190612269565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361094b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610942906122f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b190612388565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a989190611ff7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0b9061241a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a906124ac565b60405180910390fd5b610b8c83610648565b811115610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc59061253e565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610c725750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610cc757600f60019054906101000a900460ff16610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd906125aa565b60405180910390fd5b5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610d6b5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610dc55750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015610dff575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15610e9b57600254610e5982600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461140790919063ffffffff16565b1115610e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e919061263c565b60405180910390fd5b5b600f60019054906101000a900460ff168015610ecc575042610eca610258600e5461140790919063ffffffff16565b105b15610f065760c8600a8190555060c8600b819055506000600f60036101000a81548160ff0219169083151502179055506001546002819055505b600f60019054906101000a900460ff168015610f38575042610f366203f480600e5461140790919063ffffffff16565b105b15610f56576000600a819055506000600b819055506000600c819055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015610ffd5750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156110155750600f60019054906101000a900460ff165b801561102d5750600f60039054906101000a900460ff165b1561107e5743600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061107d57600080fd5b5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156111255750601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561113d5750600f60039054906101000a900460ff165b156111875743600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b611192838383611465565b156111a05761119f6115be565b5b6111f281600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113bd90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611241848461178d565b61124b5781611257565b61125684848461183b565b5b90506112ab81600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461140790919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161134b9190611ff7565b60405180910390a350505050565b60008383111582906113a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113989190611eb7565b60405180910390fd5b50600083856113b0919061268b565b9050809150509392505050565b60006113ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611359565b905092915050565b600080828461141691906126bf565b90508381101561145b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114529061273f565b60405180910390fd5b8091505092915050565b6000806012548310159050600060115461147e30610648565b1015905060115461148e30610648565b10801561149d57506000600b54145b156114b15760006114ad30610648565b1190505b600f60009054906101000a900460ff161580156114da5750600f60029054906101000a900460ff165b80156114f25750600f60019054906101000a900460ff165b80156114fb5750815b80156115515750601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115aa5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b80156115b35750805b925050509392505050565b6001600f60006101000a81548160ff02191690831515021790555060006011549050806115ea30610648565b1080156115f957506000600b54145b1561160a5761160730610648565b90505b6000611636600261162860095460085461140790919063ffffffff16565b6119f190919063ffffffff16565b9050600047905061164683611a6b565b600061165b82476113bd90919063ffffffff16565b905060006116728483611cae90919063ffffffff16565b9050600061169e6008546116906002856119f190919063ffffffff16565b6119f190919063ffffffff16565b905060008111156117055773dddc57a707583ecd3961f8d5b99a0d5022f4c3db73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611703573d6000803e3d6000fd5b505b600047111561176a57738c57b2e19c2041b33f933059fe7bb2370be3d85973ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611768573d6000803e3d6000fd5b505b5050505050506000600f60006101000a81548160ff021916908315150217905550565b6000601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118335750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000806118488585611cf8565b11156119e657600061188061185d8686611cf8565b611872600d5486611cae90919063ffffffff16565b6119f190919063ffffffff16565b90506118d481600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461140790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119749190611ff7565b60405180910390a36119cb3061dead6119c66119a360026119958b8b611cf8565b611cae90919063ffffffff16565b6119b8600d5489611cae90919063ffffffff16565b6119f190919063ffffffff16565b610aa5565b6119de81846113bd90919063ffffffff16565b9150506119ea565b8190505b9392505050565b6000808303611a035760009050611a65565b60008284611a11919061275f565b9050828482611a2091906127d0565b14611a60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5790612873565b60405180910390fd5b809150505b92915050565b6000600267ffffffffffffffff811115611a8857611a87612893565b5b604051908082528060200260200182016040528015611ab65781602001602082028036833780820191505090505b5090503081600081518110611ace57611acd6128c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b999190612906565b81600181518110611bad57611bac6128c2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c1430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846108dc565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c78959493929190612a2c565b600060405180830381600087803b158015611c9257600080fd5b505af1158015611ca6573d6000803e3d6000fd5b505050505050565b6000611cf083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dc4565b905092915050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d5957600b549050611dbe565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611db857600a549050611dbe565b600c5490505b92915050565b60008083118290611e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e029190611eb7565b60405180910390fd5b5060008385611e1a91906127d0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e61578082015181840152602081019050611e46565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e8982611e27565b611e938185611e32565b9350611ea3818560208601611e43565b611eac81611e6d565b840191505092915050565b60006020820190508181036000830152611ed18184611e7e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f0982611ede565b9050919050565b611f1981611efe565b8114611f2457600080fd5b50565b600081359050611f3681611f10565b92915050565b6000819050919050565b611f4f81611f3c565b8114611f5a57600080fd5b50565b600081359050611f6c81611f46565b92915050565b60008060408385031215611f8957611f88611ed9565b5b6000611f9785828601611f27565b9250506020611fa885828601611f5d565b9150509250929050565b60008115159050919050565b611fc781611fb2565b82525050565b6000602082019050611fe26000830184611fbe565b92915050565b611ff181611f3c565b82525050565b600060208201905061200c6000830184611fe8565b92915050565b60008060006060848603121561202b5761202a611ed9565b5b600061203986828701611f27565b935050602061204a86828701611f27565b925050604061205b86828701611f5d565b9150509250925092565b60006020828403121561207b5761207a611ed9565b5b600061208984828501611f27565b91505092915050565b600060ff82169050919050565b6120a881612092565b82525050565b60006020820190506120c3600083018461209f565b92915050565b6120d281611efe565b82525050565b60006020820190506120ed60008301846120c9565b92915050565b6000806040838503121561210a57612109611ed9565b5b600061211885828601611f27565b925050602061212985828601611f27565b9150509250929050565b600061213e82611ede565b9050919050565b61214e81612133565b811461215957600080fd5b50565b60008135905061216b81612145565b92915050565b60006020828403121561218757612186611ed9565b5b60006121958482850161215c565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006121d4600683611e32565b91506121df8261219e565b602082019050919050565b60006020820190508181036000830152612203816121c7565b9050919050565b6000819050919050565b600061222f61222a61222584611ede565b61220a565b611ede565b9050919050565b600061224182612214565b9050919050565b600061225382612236565b9050919050565b61226381612248565b82525050565b600060208201905061227e600083018461225a565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006122e0602483611e32565b91506122eb82612284565b604082019050919050565b6000602082019050818103600083015261230f816122d3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612372602283611e32565b915061237d82612316565b604082019050919050565b600060208201905081810360008301526123a181612365565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612404602583611e32565b915061240f826123a8565b604082019050919050565b60006020820190508181036000830152612433816123f7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612496602383611e32565b91506124a18261243a565b604082019050919050565b600060208201905081810360008301526124c581612489565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612528603183611e32565b9150612533826124cc565b604082019050919050565b600060208201905081810360008301526125578161251b565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000612594600e83611e32565b915061259f8261255e565b602082019050919050565b600060208201905081810360008301526125c381612587565b9050919050565b7f45524332303a2065786365656473206d6178696d756d2077616c6c657420616d60008201527f6f756e742e000000000000000000000000000000000000000000000000000000602082015250565b6000612626602583611e32565b9150612631826125ca565b604082019050919050565b6000602082019050818103600083015261265581612619565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061269682611f3c565b91506126a183611f3c565b92508282039050818111156126b9576126b861265c565b5b92915050565b60006126ca82611f3c565b91506126d583611f3c565b92508282019050808211156126ed576126ec61265c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612729601b83611e32565b9150612734826126f3565b602082019050919050565b600060208201905081810360008301526127588161271c565b9050919050565b600061276a82611f3c565b915061277583611f3c565b925082820261278381611f3c565b9150828204841483151761279a5761279961265c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006127db82611f3c565b91506127e683611f3c565b9250826127f6576127f56127a1565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061285d602183611e32565b915061286882612801565b604082019050919050565b6000602082019050818103600083015261288c81612850565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061290081611f10565b92915050565b60006020828403121561291c5761291b611ed9565b5b600061292a848285016128f1565b91505092915050565b6000819050919050565b600061295861295361294e84612933565b61220a565b611f3c565b9050919050565b6129688161293d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6129a381611efe565b82525050565b60006129b5838361299a565b60208301905092915050565b6000602082019050919050565b60006129d98261296e565b6129e38185612979565b93506129ee8361298a565b8060005b83811015612a1f578151612a0688826129a9565b9750612a11836129c1565b9250506001810190506129f2565b5085935050505092915050565b600060a082019050612a416000830188611fe8565b612a4e602083018761295f565b8181036040830152612a6081866129ce565b9050612a6f60608301856120c9565b612a7c6080830184611fe8565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205b163279d87bf205a38285d6032f96583aaeb696a7267a4f233604304ad0ffff64736f6c63430008130033

Deployed Bytecode Sourcemap

3755:8443:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5894:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6588:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6871:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11543:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10628:113;;;;;;;;;;;;;:::i;:::-;;2934:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6044:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6201:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4034:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6117:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6727:138;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5967:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4149:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4302:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6310:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6455:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3027:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5894:67;5931:13;5954:5;;;;;;;;;;;;;;;;;5947:12;;5894:67;:::o;6588:133::-;6663:4;6670:37;6679:10;6691:7;6700:6;6670:8;:37::i;:::-;6715:4;6708:11;;6588:133;;;;:::o;6871:84::-;6924:7;6941:12;;6934:19;;6871:84;:::o;11543:309::-;11641:4;11658:36;11668:6;11676:9;11687:6;11658:9;:36::i;:::-;11705:117;11714:6;11722:10;11734:87;11770:6;11734:87;;;;;;;;;;;;;;;;;:11;:19;11746:6;11734:19;;;;;;;;;;;;;;;:31;11754:10;11734:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;11705:8;:117::i;:::-;11840:4;11833:11;;11543:309;;;;;:::o;10628:113::-;2893:19;2901:10;2893:7;:19::i;:::-;2885:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10699:4:::1;10682:14;;:21;;;;;;;;;;;;;;;;;;10718:15;10705:10;:28;;;;10628:113::o:0;2934:87::-;2989:4;3014:5;;;;;;;;;;;3003:16;;:7;:16;;;2996:23;;2934:87;;;:::o;6044:67::-;6085:5;3959:1;6093:16;;6044:67;:::o;6201:103::-;6267:7;6284:9;:18;6294:7;6284:18;;;;;;;;;;;;;;;;6277:25;;6201:103;;;:::o;4034:63::-;;;;:::o;6117:78::-;6169:7;6187:5;;;;;;;;;;;6180:12;;6117:78;:::o;6727:138::-;6786:7;6803:60;6841:21;6859:1;6841:9;:21::i;:::-;6803:33;6820:15;5043:42;6820:9;:15::i;:::-;6803:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;6796:67;;6727:138;:::o;5967:71::-;6006:13;6029:7;;;;;;;;;;;;;;;;;6022:14;;5967:71;:::o;4149:49::-;;;;;;;;;;;;;;;;;:::o;4302:19::-;;;;;;;;;;;;;:::o;6310:139::-;6388:4;6395:40;6405:10;6417:9;6428:6;6395:9;:40::i;:::-;6443:4;6436:11;;6310:139;;;;:::o;6455:127::-;6536:7;6553:11;:18;6565:5;6553:18;;;;;;;;;;;;;;;:27;6572:7;6553:27;;;;;;;;;;;;;;;;6546:34;;6455:127;;;;:::o;3027:111::-;2893:19;2901:10;2893:7;:19::i;:::-;2885:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3101:3:::1;3093:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3111:25;3132:3;3111:25;;;;;;:::i;:::-;;;;;;;;3027:111:::0;:::o;11860:335::-;11970:1;11953:19;;:5;:19;;;11945:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12051:1;12032:21;;:7;:21;;;12024:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12133:6;12103:11;:18;12115:5;12103:18;;;;;;;;;;;;;;;:27;12122:7;12103:27;;;;;;;;;;;;;;;:36;;;;12171:7;12155:32;;12164:5;12155:32;;;12180:6;12155:32;;;;;;:::i;:::-;;;;;;;;11860:335;;;:::o;6963:1682::-;7078:1;7060:20;;:6;:20;;;7052:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7162:1;7141:23;;:9;:23;;;7133:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7233:17;7243:6;7233:9;:17::i;:::-;7223:6;:27;;7215:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;7318:11;:19;7330:6;7318:19;;;;;;;;;;;;;;;;;;;;;;;;;7317:20;:47;;;;;7342:11;:22;7354:9;7342:22;;;;;;;;;;;;;;;;;;;;;;;;;7341:23;7317:47;7314:95;;;7374:14;;;;;;;;;;;7366:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;7314:95;7423:11;:19;7435:6;7423:19;;;;;;;;;;;;;;;;;;;;;;;;;7422:20;:47;;;;;7447:11;:22;7459:9;7447:22;;;;;;;;;;;;;;;;;;;;;;;;;7446:23;7422:47;:77;;;;;7494:4;;;;;;;;;;;7473:26;;:9;:26;;;;7422:77;:107;;;;;5043:42;7503:26;;:9;:26;;;;7422:107;7419:231;;;7591:15;;7554:32;7579:6;7554:9;:20;7564:9;7554:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7553:53;;7545:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;7419:231;7663:14;;;;;;;;;;;:62;;;;;7710:15;7681:26;7696:10;7681;;:14;;:26;;;;:::i;:::-;:44;7663:62;7660:186;;;7760:3;7741:8;:23;;;;7783:3;7766:7;:21;;;;7807:5;7789:15;;:23;;;;;;;;;;;;;;;;;;7832:12;;7814:15;:30;;;;7660:186;7859:14;;;;;;;;;;;:60;;;;;7904:15;7877:24;7892:8;7877:10;;:14;;:24;;;;:::i;:::-;:42;7859:60;7856:148;;;7954:1;7935:8;:21;;;;7975:1;7958:7;:19;;;;8000:1;7979:11;:23;;;;7856:148;8030:4;;;;;;;;;;;8017:17;;:9;:17;;;:41;;;;;8039:11;:19;8051:6;8039:19;;;;;;;;;;;;;;;;;;;;;;;;;8038:20;8017:41;:59;;;;;8062:14;;;;;;;;;;;8017:59;:78;;;;;8080:15;;;;;;;;;;;8017:78;8014:130;;;8129:12;8105:13;:21;8119:6;8105:21;;;;;;;;;;;;;;;;:36;8097:45;;;;;;8014:130;8170:4;;;;;;;;;;;8157:17;;:9;:17;;;:41;;;;;8179:11;:19;8191:6;8179:19;;;;;;;;;;;;;;;;;;;;;;;;;8178:20;8157:41;:60;;;;;8202:15;;;;;;;;;;;8157:60;8154:103;;;8243:12;8219:13;:21;8233:6;8219:21;;;;;;;;;;;;;;;:36;;;;8154:103;8270:41;8285:6;8293:9;8304:6;8270:14;:41::i;:::-;8267:64;;;8313:16;:14;:16::i;:::-;8267:64;8361:29;8383:6;8361:9;:17;8371:6;8361:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;8341:9;:17;8351:6;8341:17;;;;;;;;;;;;;;;:49;;;;8401:22;8426:32;8440:6;8448:9;8426:13;:32::i;:::-;:78;;8498:6;8426:78;;;8461:34;8469:6;8477:9;8488:6;8461:7;:34::i;:::-;8426:78;8401:103;;8538:40;8563:14;8538:9;:20;8548:9;8538:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;8515:9;:20;8525:9;8515:20;;;;;;;;;;;;;;;:63;;;;8611:9;8594:43;;8603:6;8594:43;;;8622:14;8594:43;;;;;;:::i;:::-;;;;;;;;7041:1604;6963:1682;;;:::o;580:190::-;666:7;699:1;694;:6;;702:12;686:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;726:9;742:1;738;:5;;;;:::i;:::-;726:17;;761:1;754:8;;;580:190;;;;;:::o;436:136::-;494:7;521:43;525:1;528;521:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;514:50;;436:136;;;;:::o;249:179::-;307:7;327:9;343:1;339;:5;;;;:::i;:::-;327:17;;368:1;363;:6;;355:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;419:1;412:8;;;249:179;;;;:::o;9923:529::-;10021:4;10038:13;10064:15;;10054:6;:25;;10038:41;;10090:21;10142:13;;10114:24;10132:4;10114:9;:24::i;:::-;:41;;10090:65;;10196:13;;10169:24;10187:4;10169:9;:24::i;:::-;:40;:65;;;;;10232:1;10213:7;;:21;10169:65;10166:142;;;10304:1;10269:24;10287:4;10269:9;:24::i;:::-;:37;10250:56;;10166:142;10326:8;;;;;;;;;;;10325:9;:24;;;;;10338:11;;;;;;;;;;;10325:24;:42;;;;;10353:14;;;;;;;;;;;10325:42;:54;;;;;10371:8;10325:54;:78;;;;;10384:11;:19;10396:6;10384:19;;;;;;;;;;;;;;;;;;;;;;;;;10383:20;10325:78;:99;;;;;10420:4;;;;;;;;;;;10407:17;;:9;:17;;;10325:99;:119;;;;;10428:16;10325:119;10318:126;;;;9923:529;;;;;:::o;8653:820::-;4785:4;4774:8;;:15;;;;;;;;;;;;;;;;;;8710:14:::1;8727:13;;8710:30;;8781:6;8754:24;8772:4;8754:9;:24::i;:::-;:33;:58;;;;;8810:1;8791:7;;:21;8754:58;8751:112;;;8837:24;8855:4;8837:9;:24::i;:::-;8828:33;;8751:112;8873:20;8896:48;8941:1;8896:32;8913:14;;8896:12;;:16;;:32;;;;:::i;:::-;:36;;:48;;;;:::i;:::-;8873:71;;8955:22;8980:21;8955:46;;9012:24;9029:6;9012:16;:24::i;:::-;9047:20;9070:41;9096:14;9070:21;:25;;:41;;;;:::i;:::-;9047:64;;9122:19;9143:30;9160:12;9143;:16;;:30;;;;:::i;:::-;9122:51;;9184:23;9210:45;9242:12;;9210:27;9234:1;9210:11;:15;;:27;;;;:::i;:::-;:31;;:45;;;;:::i;:::-;9184:71;;9295:1;9269:15;:28;9266:88;;;5238:42;9299:36;;:53;9336:15;9299:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9266:88;9399:1;9367:21;:34;9364:102;;;5141:42;9403:38;;:61;9442:21;9403:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9364:102;8699:774;;;;;;4805:5:::0;4794:8;;:16;;;;;;;;;;;;;;;;;;8653:820::o;10460:160::-;10541:4;10566:11;:19;10578:6;10566:19;;;;;;;;;;;;;;;;;;;;;;;;;10565:20;:47;;;;;10590:11;:22;10602:9;10590:22;;;;;;;;;;;;;;;;;;;;;;;;;10589:23;10565:47;10558:54;;10460:160;;;;:::o;10976:559::-;11062:7;11118:1;11085:30;11097:6;11105:9;11085:11;:30::i;:::-;:34;11082:431;;;11131:17;11151:59;11179:30;11191:6;11199:9;11179:11;:30::i;:::-;11151:23;11162:11;;11151:6;:10;;:23;;;;:::i;:::-;:27;;:59;;;;:::i;:::-;11131:79;;11248:39;11277:9;11248;:24;11266:4;11248:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11221:9;:24;11239:4;11221:24;;;;;;;;;;;;;;;:66;;;;11328:4;11303:42;;11312:6;11303:42;;;11335:9;11303:42;;;;;;:::i;:::-;;;;;;;;11356:116;11374:4;5043:42;11396:75;11424:46;11467:1;11424:30;11436:6;11444:9;11424:11;:30::i;:::-;:34;;:46;;;;:::i;:::-;11396:23;11407:11;;11396:6;:10;;:23;;;;:::i;:::-;:27;;:75;;;;:::i;:::-;11356:9;:116::i;:::-;11490:21;11501:9;11490:6;:10;;:21;;;;:::i;:::-;11483:28;;;;;11082:431;11521:6;11514:13;;10976:559;;;;;;:::o;778:248::-;836:7;865:1;860;:6;856:47;;890:1;883:8;;;;856:47;915:9;931:1;927;:5;;;;:::i;:::-;915:17;;960:1;955;951;:5;;;;:::i;:::-;:10;943:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1017:1;1010:8;;;778:248;;;;;:::o;9481:434::-;9547:21;9585:1;9571:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9547:40;;9616:4;9598;9603:1;9598:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9642:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9632:4;9637:1;9632:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9666:53;9683:4;9698:6;;;;;;;;;;;9707:11;9666:8;:53::i;:::-;9730:6;;;;;;;;;;;:57;;;9802:11;9828:1;9844:4;9871;9891:15;9730:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9536:379;9481:434;:::o;1034:132::-;1092:7;1119:39;1123:1;1126;1119:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1112:46;;1034:132;;;;:::o;10749:219::-;10828:7;10864:4;;;;;;;;;;;10851:17;;:9;:17;;;10848:38;;10877:7;;10870:14;;;;10848:38;10909:4;;;;;;;;;;;10899:14;;:6;:14;;;10896:36;;10922:8;;10915:15;;;;10896:36;10949:11;;10942:18;;10749:219;;;;;:::o;1174:276::-;1260:7;1292:1;1288;:5;1295:12;1280:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1319:9;1335:1;1331;:5;;;;:::i;:::-;1319:17;;1441:1;1434:8;;;1174:276;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:104::-;6065:7;6094:24;6112:5;6094:24;:::i;:::-;6083:35;;6020:104;;;:::o;6130:138::-;6211:32;6237:5;6211:32;:::i;:::-;6204:5;6201:43;6191:71;;6258:1;6255;6248:12;6191:71;6130:138;:::o;6274:155::-;6328:5;6366:6;6353:20;6344:29;;6382:41;6417:5;6382:41;:::i;:::-;6274:155;;;;:::o;6435:345::-;6502:6;6551:2;6539:9;6530:7;6526:23;6522:32;6519:119;;;6557:79;;:::i;:::-;6519:119;6677:1;6702:61;6755:7;6746:6;6735:9;6731:22;6702:61;:::i;:::-;6692:71;;6648:125;6435:345;;;;:::o;6786:156::-;6926:8;6922:1;6914:6;6910:14;6903:32;6786:156;:::o;6948:365::-;7090:3;7111:66;7175:1;7170:3;7111:66;:::i;:::-;7104:73;;7186:93;7275:3;7186:93;:::i;:::-;7304:2;7299:3;7295:12;7288:19;;6948:365;;;:::o;7319:419::-;7485:4;7523:2;7512:9;7508:18;7500:26;;7572:9;7566:4;7562:20;7558:1;7547:9;7543:17;7536:47;7600:131;7726:4;7600:131;:::i;:::-;7592:139;;7319:419;;;:::o;7744:60::-;7772:3;7793:5;7786:12;;7744:60;;;:::o;7810:142::-;7860:9;7893:53;7911:34;7920:24;7938:5;7920:24;:::i;:::-;7911:34;:::i;:::-;7893:53;:::i;:::-;7880:66;;7810:142;;;:::o;7958:126::-;8008:9;8041:37;8072:5;8041:37;:::i;:::-;8028:50;;7958:126;;;:::o;8090:134::-;8148:9;8181:37;8212:5;8181:37;:::i;:::-;8168:50;;8090:134;;;:::o;8230:147::-;8325:45;8364:5;8325:45;:::i;:::-;8320:3;8313:58;8230:147;;:::o;8383:238::-;8484:4;8522:2;8511:9;8507:18;8499:26;;8535:79;8611:1;8600:9;8596:17;8587:6;8535:79;:::i;:::-;8383:238;;;;:::o;8627:223::-;8767:34;8763:1;8755:6;8751:14;8744:58;8836:6;8831:2;8823:6;8819:15;8812:31;8627:223;:::o;8856:366::-;8998:3;9019:67;9083:2;9078:3;9019:67;:::i;:::-;9012:74;;9095:93;9184:3;9095:93;:::i;:::-;9213:2;9208:3;9204:12;9197:19;;8856:366;;;:::o;9228:419::-;9394:4;9432:2;9421:9;9417:18;9409:26;;9481:9;9475:4;9471:20;9467:1;9456:9;9452:17;9445:47;9509:131;9635:4;9509:131;:::i;:::-;9501:139;;9228:419;;;:::o;9653:221::-;9793:34;9789:1;9781:6;9777:14;9770:58;9862:4;9857:2;9849:6;9845:15;9838:29;9653:221;:::o;9880:366::-;10022:3;10043:67;10107:2;10102:3;10043:67;:::i;:::-;10036:74;;10119:93;10208:3;10119:93;:::i;:::-;10237:2;10232:3;10228:12;10221:19;;9880:366;;;:::o;10252:419::-;10418:4;10456:2;10445:9;10441:18;10433:26;;10505:9;10499:4;10495:20;10491:1;10480:9;10476:17;10469:47;10533:131;10659:4;10533:131;:::i;:::-;10525:139;;10252:419;;;:::o;10677:224::-;10817:34;10813:1;10805:6;10801:14;10794:58;10886:7;10881:2;10873:6;10869:15;10862:32;10677:224;:::o;10907:366::-;11049:3;11070:67;11134:2;11129:3;11070:67;:::i;:::-;11063:74;;11146:93;11235:3;11146:93;:::i;:::-;11264:2;11259:3;11255:12;11248:19;;10907:366;;;:::o;11279:419::-;11445:4;11483:2;11472:9;11468:18;11460:26;;11532:9;11526:4;11522:20;11518:1;11507:9;11503:17;11496:47;11560:131;11686:4;11560:131;:::i;:::-;11552:139;;11279:419;;;:::o;11704:222::-;11844:34;11840:1;11832:6;11828:14;11821:58;11913:5;11908:2;11900:6;11896:15;11889:30;11704:222;:::o;11932:366::-;12074:3;12095:67;12159:2;12154:3;12095:67;:::i;:::-;12088:74;;12171:93;12260:3;12171:93;:::i;:::-;12289:2;12284:3;12280:12;12273:19;;11932:366;;;:::o;12304:419::-;12470:4;12508:2;12497:9;12493:18;12485:26;;12557:9;12551:4;12547:20;12543:1;12532:9;12528:17;12521:47;12585:131;12711:4;12585:131;:::i;:::-;12577:139;;12304:419;;;:::o;12729:236::-;12869:34;12865:1;12857:6;12853:14;12846:58;12938:19;12933:2;12925:6;12921:15;12914:44;12729:236;:::o;12971:366::-;13113:3;13134:67;13198:2;13193:3;13134:67;:::i;:::-;13127:74;;13210:93;13299:3;13210:93;:::i;:::-;13328:2;13323:3;13319:12;13312:19;;12971:366;;;:::o;13343:419::-;13509:4;13547:2;13536:9;13532:18;13524:26;;13596:9;13590:4;13586:20;13582:1;13571:9;13567:17;13560:47;13624:131;13750:4;13624:131;:::i;:::-;13616:139;;13343:419;;;:::o;13768:164::-;13908:16;13904:1;13896:6;13892:14;13885:40;13768:164;:::o;13938:366::-;14080:3;14101:67;14165:2;14160:3;14101:67;:::i;:::-;14094:74;;14177:93;14266:3;14177:93;:::i;:::-;14295:2;14290:3;14286:12;14279:19;;13938:366;;;:::o;14310:419::-;14476:4;14514:2;14503:9;14499:18;14491:26;;14563:9;14557:4;14553:20;14549:1;14538:9;14534:17;14527:47;14591:131;14717:4;14591:131;:::i;:::-;14583:139;;14310:419;;;:::o;14735:224::-;14875:34;14871:1;14863:6;14859:14;14852:58;14944:7;14939:2;14931:6;14927:15;14920:32;14735:224;:::o;14965:366::-;15107:3;15128:67;15192:2;15187:3;15128:67;:::i;:::-;15121:74;;15204:93;15293:3;15204:93;:::i;:::-;15322:2;15317:3;15313:12;15306:19;;14965:366;;;:::o;15337:419::-;15503:4;15541:2;15530:9;15526:18;15518:26;;15590:9;15584:4;15580:20;15576:1;15565:9;15561:17;15554:47;15618:131;15744:4;15618:131;:::i;:::-;15610:139;;15337:419;;;:::o;15762:180::-;15810:77;15807:1;15800:88;15907:4;15904:1;15897:15;15931:4;15928:1;15921:15;15948:194;15988:4;16008:20;16026:1;16008:20;:::i;:::-;16003:25;;16042:20;16060:1;16042:20;:::i;:::-;16037:25;;16086:1;16083;16079:9;16071:17;;16110:1;16104:4;16101:11;16098:37;;;16115:18;;:::i;:::-;16098:37;15948:194;;;;:::o;16148:191::-;16188:3;16207:20;16225:1;16207:20;:::i;:::-;16202:25;;16241:20;16259:1;16241:20;:::i;:::-;16236:25;;16284:1;16281;16277:9;16270:16;;16305:3;16302:1;16299:10;16296:36;;;16312:18;;:::i;:::-;16296:36;16148:191;;;;:::o;16345:177::-;16485:29;16481:1;16473:6;16469:14;16462:53;16345:177;:::o;16528:366::-;16670:3;16691:67;16755:2;16750:3;16691:67;:::i;:::-;16684:74;;16767:93;16856:3;16767:93;:::i;:::-;16885:2;16880:3;16876:12;16869:19;;16528:366;;;:::o;16900:419::-;17066:4;17104:2;17093:9;17089:18;17081:26;;17153:9;17147:4;17143:20;17139:1;17128:9;17124:17;17117:47;17181:131;17307:4;17181:131;:::i;:::-;17173:139;;16900:419;;;:::o;17325:410::-;17365:7;17388:20;17406:1;17388:20;:::i;:::-;17383:25;;17422:20;17440:1;17422:20;:::i;:::-;17417:25;;17477:1;17474;17470:9;17499:30;17517:11;17499:30;:::i;:::-;17488:41;;17678:1;17669:7;17665:15;17662:1;17659:22;17639:1;17632:9;17612:83;17589:139;;17708:18;;:::i;:::-;17589:139;17373:362;17325:410;;;;:::o;17741:180::-;17789:77;17786:1;17779:88;17886:4;17883:1;17876:15;17910:4;17907:1;17900:15;17927:185;17967:1;17984:20;18002:1;17984:20;:::i;:::-;17979:25;;18018:20;18036:1;18018:20;:::i;:::-;18013:25;;18057:1;18047:35;;18062:18;;:::i;:::-;18047:35;18104:1;18101;18097:9;18092:14;;17927:185;;;;:::o;18118:220::-;18258:34;18254:1;18246:6;18242:14;18235:58;18327:3;18322:2;18314:6;18310:15;18303:28;18118:220;:::o;18344:366::-;18486:3;18507:67;18571:2;18566:3;18507:67;:::i;:::-;18500:74;;18583:93;18672:3;18583:93;:::i;:::-;18701:2;18696:3;18692:12;18685:19;;18344:366;;;:::o;18716:419::-;18882:4;18920:2;18909:9;18905:18;18897:26;;18969:9;18963:4;18959:20;18955:1;18944:9;18940:17;18933:47;18997:131;19123:4;18997:131;:::i;:::-;18989:139;;18716:419;;;:::o;19141:180::-;19189:77;19186:1;19179:88;19286:4;19283:1;19276:15;19310:4;19307:1;19300:15;19327:180;19375:77;19372:1;19365:88;19472:4;19469:1;19462:15;19496:4;19493:1;19486:15;19513:143;19570:5;19601:6;19595:13;19586:22;;19617:33;19644:5;19617:33;:::i;:::-;19513:143;;;;:::o;19662:351::-;19732:6;19781:2;19769:9;19760:7;19756:23;19752:32;19749:119;;;19787:79;;:::i;:::-;19749:119;19907:1;19932:64;19988:7;19979:6;19968:9;19964:22;19932:64;:::i;:::-;19922:74;;19878:128;19662:351;;;;:::o;20019:85::-;20064:7;20093:5;20082:16;;20019:85;;;:::o;20110:158::-;20168:9;20201:61;20219:42;20228:32;20254:5;20228:32;:::i;:::-;20219:42;:::i;:::-;20201:61;:::i;:::-;20188:74;;20110:158;;;:::o;20274:147::-;20369:45;20408:5;20369:45;:::i;:::-;20364:3;20357:58;20274:147;;:::o;20427:114::-;20494:6;20528:5;20522:12;20512:22;;20427:114;;;:::o;20547:184::-;20646:11;20680:6;20675:3;20668:19;20720:4;20715:3;20711:14;20696:29;;20547:184;;;;:::o;20737:132::-;20804:4;20827:3;20819:11;;20857:4;20852:3;20848:14;20840:22;;20737:132;;;:::o;20875:108::-;20952:24;20970:5;20952:24;:::i;:::-;20947:3;20940:37;20875:108;;:::o;20989:179::-;21058:10;21079:46;21121:3;21113:6;21079:46;:::i;:::-;21157:4;21152:3;21148:14;21134:28;;20989:179;;;;:::o;21174:113::-;21244:4;21276;21271:3;21267:14;21259:22;;21174:113;;;:::o;21323:732::-;21442:3;21471:54;21519:5;21471:54;:::i;:::-;21541:86;21620:6;21615:3;21541:86;:::i;:::-;21534:93;;21651:56;21701:5;21651:56;:::i;:::-;21730:7;21761:1;21746:284;21771:6;21768:1;21765:13;21746:284;;;21847:6;21841:13;21874:63;21933:3;21918:13;21874:63;:::i;:::-;21867:70;;21960:60;22013:6;21960:60;:::i;:::-;21950:70;;21806:224;21793:1;21790;21786:9;21781:14;;21746:284;;;21750:14;22046:3;22039:10;;21447:608;;;21323:732;;;;:::o;22061:831::-;22324:4;22362:3;22351:9;22347:19;22339:27;;22376:71;22444:1;22433:9;22429:17;22420:6;22376:71;:::i;:::-;22457:80;22533:2;22522:9;22518:18;22509:6;22457:80;:::i;:::-;22584:9;22578:4;22574:20;22569:2;22558:9;22554:18;22547:48;22612:108;22715:4;22706:6;22612:108;:::i;:::-;22604:116;;22730:72;22798:2;22787:9;22783:18;22774:6;22730:72;:::i;:::-;22812:73;22880:3;22869:9;22865:19;22856:6;22812:73;:::i;:::-;22061:831;;;;;;;;:::o

Swarm Source

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