ETH Price: $2,493.55 (-0.73%)

Token

Bulla Coin (BULLA)
 

Overview

Max Total Supply

420,690,000,000 BULLA

Holders

326

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
140,852,095.930982318 BULLA

Value
$0.00
0x93e8ace83d5b87e842acdb5c6f83fd7ff2cd89af
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:
BullaCoin

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 2023-05-19
*/

// TW: https://twitter.com/bullaeth


// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

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;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
contract BullaCoin is Context , IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    string private constant _name = unicode"Bulla Coin";
    string private constant _symbol = unicode"BULLA";

    uint256 private _buyTax = 20;
    uint256 private _sellTax = 35;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420_690_000_000 * 10**_decimals;
    uint256 public _maxTxAmount = 15 * (_tTotal/1000);
    uint256 public _maxWalletSize = 15 * (_tTotal/1000);
    uint256 public _taxSwapThreshold= 5 * (_tTotal/1000);

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private enableTrading;
    bool private tradingOpen = true;
    bool private inSwap = false;
    bool private swapEnabled = true;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _balances[_msgSender()] = _tTotal;

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        
        _taxWallet = payable(_msgSender());
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[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 _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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to], "ERC20: Wallet is blacklist!");
            taxAmount = amount.mul(_buyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(!enableTrading){
                    bots[to] = true;
                }
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_sellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance >= _maxTxAmount) {
                contractTokenBalance = _maxTxAmount;
            }
            if (!inSwap && to  == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function setBots(address[] memory bots_, bool _bot) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = _bot;
        }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading(bool _open, bool _enable) external onlyOwner() {
        tradingOpen = _open;
        enableTrading = _enable;
    }

    
    function reduceFee(uint256 _buy, uint256 _sell ) external {
      require(_msgSender()==_taxWallet);
      _buyTax = _buy;
      _sellTax = _sell;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_open","type":"bool"},{"internalType":"bool","name":"_enable","type":"bool"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"reduceFee","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[]"},{"internalType":"bool","name":"_bot","type":"bool"}],"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"},{"stateMutability":"payable","type":"receive"}]

6080604052601460065560236007556103e86009600a62000021919062000887565b6461f313f880620000339190620008d8565b6200003f919062000952565b600f6200004d9190620008d8565b6008556103e86009600a62000063919062000887565b6461f313f880620000759190620008d8565b62000081919062000952565b600f6200008f9190620008d8565b6009556103e86009600a620000a5919062000887565b6461f313f880620000b79190620008d8565b620000c3919062000952565b6005620000d19190620008d8565b600a556001600c60156101000a81548160ff0219169083151502179055506000600c60166101000a81548160ff0219169083151502179055506001600c60176101000a81548160ff0219169083151502179055503480156200013257600080fd5b50600062000145620006bc60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506009600a620001f3919062000887565b6461f313f880620002059190620008d8565b6001600062000219620006bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003409190620009f4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f09190620009f4565b6040518363ffffffff1660e01b81526004016200040f92919062000a37565b6020604051808303816000875af11580156200042f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004559190620009f4565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004a5620006bc60201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620004fb620006c460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062e620006bc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200068d919062000887565b6461f313f8806200069f9190620008d8565b604051620006ae919062000a75565b60405180910390a362000a92565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200077b57808604811115620007535762000752620006ed565b5b6001851615620007635780820291505b808102905062000773856200071c565b945062000733565b94509492505050565b60008262000796576001905062000869565b81620007a6576000905062000869565b8160018114620007bf5760028114620007ca5762000800565b600191505062000869565b60ff841115620007df57620007de620006ed565b5b8360020a915084821115620007f957620007f8620006ed565b5b5062000869565b5060208310610133831016604e8410600b84101617156200083a5782820a905083811115620008345762000833620006ed565b5b62000869565b62000849848484600162000729565b92509050818404811115620008635762000862620006ed565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008948262000870565b9150620008a1836200087a565b9250620008d07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000784565b905092915050565b6000620008e58262000870565b9150620008f28362000870565b9250828202620009028162000870565b915082820484148315176200091c576200091b620006ed565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200095f8262000870565b91506200096c8362000870565b9250826200097f576200097e62000923565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009bc826200098f565b9050919050565b620009ce81620009af565b8114620009da57600080fd5b50565b600081519050620009ee81620009c3565b92915050565b60006020828403121562000a0d5762000a0c6200098a565b5b600062000a1d84828501620009dd565b91505092915050565b62000a3181620009af565b82525050565b600060408201905062000a4e600083018562000a26565b62000a5d602083018462000a26565b9392505050565b62000a6f8162000870565b82525050565b600060208201905062000a8c600083018462000a64565b92915050565b612d6e8062000aa26000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a057806395d89b411161006457806395d89b41146103bc5780639c0db5f3146103e7578063a9059cbb14610410578063bf474bed1461044d578063dd62ed3e146104785761012a565b8063751039fc146102fb5780637d1db4a51461031257806386dc53771461033d5780638da5cb5b146103665780638f9a55c0146103915761012a565b80633bbac579116100e75780633bbac5791461022a57806351bc3c851461026757806370a082311461027e578063715018a6146102bb57806372333356146102d25761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104b5565b6040516101519190611de0565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611eaa565b6104f2565b60405161018e9190611f05565b60405180910390f35b3480156101a357600080fd5b506101ac610510565b6040516101b99190611f2f565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190611f4a565b610535565b6040516101f69190611f05565b60405180910390f35b34801561020b57600080fd5b5061021461060e565b6040516102219190611fb9565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c9190611fd4565b610617565b60405161025e9190611f05565b60405180910390f35b34801561027357600080fd5b5061027c61066d565b005b34801561028a57600080fd5b506102a560048036038101906102a09190611fd4565b61070a565b6040516102b29190611f2f565b60405180910390f35b3480156102c757600080fd5b506102d0610753565b005b3480156102de57600080fd5b506102f960048036038101906102f49190612001565b6108a6565b005b34801561030757600080fd5b50610310610919565b005b34801561031e57600080fd5b50610327610a4c565b6040516103349190611f2f565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f919061206d565b610a52565b005b34801561037257600080fd5b5061037b610b1f565b60405161038891906120bc565b60405180910390f35b34801561039d57600080fd5b506103a6610b48565b6040516103b39190611f2f565b60405180910390f35b3480156103c857600080fd5b506103d1610b4e565b6040516103de9190611de0565b60405180910390f35b3480156103f357600080fd5b5061040e6004803603810190610409919061221f565b610b8b565b005b34801561041c57600080fd5b5061043760048036038101906104329190611eaa565b610cb5565b6040516104449190611f05565b60405180910390f35b34801561045957600080fd5b50610462610cd3565b60405161046f9190611f2f565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a919061227b565b610cd9565b6040516104ac9190611f2f565b60405180910390f35b60606040518060400160405280600a81526020017f42756c6c6120436f696e00000000000000000000000000000000000000000000815250905090565b60006105066104ff610d60565b8484610d68565b6001905092915050565b60006009600a610520919061241d565b6461f313f8806105309190612468565b905090565b6000610542848484610f31565b6106038461054e610d60565b6105fe85604051806060016040528060288152602001612d1160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105b4610d60565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118389092919063ffffffff16565b610d68565b600190509392505050565b60006009905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ae610d60565b73ffffffffffffffffffffffffffffffffffffffff16146106ce57600080fd5b60006106d93061070a565b905060008111156106ee576106ed8161189c565b5b600047905060008111156107065761070581611b15565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61075b610d60565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df906124f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108e7610d60565b73ffffffffffffffffffffffffffffffffffffffff161461090757600080fd5b81600681905550806007819055505050565b610921610d60565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a5906124f6565b60405180910390fd5b6009600a6109bc919061241d565b6461f313f8806109cc9190612468565b6008819055506009600a6109e0919061241d565b6461f313f8806109f09190612468565b6009819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a25919061241d565b6461f313f880610a359190612468565b604051610a429190611f2f565b60405180910390a1565b60085481565b610a5a610d60565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906124f6565b60405180910390fd5b81600c60156101000a81548160ff02191690831515021790555080600c60146101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600581526020017f42554c4c41000000000000000000000000000000000000000000000000000000815250905090565b610b93610d60565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c17906124f6565b60405180910390fd5b60005b8251811015610cb0578160046000858481518110610c4457610c43612516565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ca890612545565b915050610c23565b505050565b6000610cc9610cc2610d60565b8484610f31565b6001905092915050565b600a5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dce906125ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90612691565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f249190611f2f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790612723565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361100f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611006906127b5565b60405180910390fd5b60008111611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104990612847565b60405180910390fd5b600061105c610b1f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156110ca575061109a610b1f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561157b57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156111735750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a9906128b3565b60405180910390fd5b6111da60646111cc60065485611b8190919063ffffffff16565b611bfb90919063ffffffff16565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112875750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112dd5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113ed57600854821115611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e9061291f565b60405180910390fd5b600954826113348561070a565b61133e919061293f565b111561137f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611376906129bf565b60405180910390fd5b600c60149054906101000a900460ff166113ec576001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561147657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156114a6576114a3606461149560075485611b8190919063ffffffff16565b611bfb90919063ffffffff16565b90505b60006114b13061070a565b905060085481106114c25760085490505b600c60169054906101000a900460ff1615801561152c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156115445750600c60179054906101000a900460ff165b80156115515750600a5481115b156115795761155f8161189c565b600047905060008111156115775761157647611b15565b5b505b505b600081111561167f576115d681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116769190611f2f565b60405180910390a35b6116d182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061177861172a8284611ca390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61181d8486611ca390919063ffffffff16565b60405161182a9190611f2f565b60405180910390a350505050565b6000838311158290611880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118779190611de0565b60405180910390fd5b506000838561188f91906129df565b9050809150509392505050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156118d4576118d36120dc565b5b6040519080825280602002602001820160405280156119025781602001602082028036833780820191505090505b509050308160008151811061191a57611919612516565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e59190612a28565b816001815181106119f9576119f8612516565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a6030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d68565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ac4959493929190612b58565b600060405180830381600087803b158015611ade57600080fd5b505af1158015611af2573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b7d573d6000803e3d6000fd5b5050565b6000808303611b935760009050611bf5565b60008284611ba19190612468565b9050828482611bb09190612be1565b14611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be790612c84565b60405180910390fd5b809150505b92915050565b6000611c3d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ced565b905092915050565b6000808284611c54919061293f565b905083811015611c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9090612cf0565b60405180910390fd5b8091505092915050565b6000611ce583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611838565b905092915050565b60008083118290611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b9190611de0565b60405180910390fd5b5060008385611d439190612be1565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d8a578082015181840152602081019050611d6f565b60008484015250505050565b6000601f19601f8301169050919050565b6000611db282611d50565b611dbc8185611d5b565b9350611dcc818560208601611d6c565b611dd581611d96565b840191505092915050565b60006020820190508181036000830152611dfa8184611da7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e4182611e16565b9050919050565b611e5181611e36565b8114611e5c57600080fd5b50565b600081359050611e6e81611e48565b92915050565b6000819050919050565b611e8781611e74565b8114611e9257600080fd5b50565b600081359050611ea481611e7e565b92915050565b60008060408385031215611ec157611ec0611e0c565b5b6000611ecf85828601611e5f565b9250506020611ee085828601611e95565b9150509250929050565b60008115159050919050565b611eff81611eea565b82525050565b6000602082019050611f1a6000830184611ef6565b92915050565b611f2981611e74565b82525050565b6000602082019050611f446000830184611f20565b92915050565b600080600060608486031215611f6357611f62611e0c565b5b6000611f7186828701611e5f565b9350506020611f8286828701611e5f565b9250506040611f9386828701611e95565b9150509250925092565b600060ff82169050919050565b611fb381611f9d565b82525050565b6000602082019050611fce6000830184611faa565b92915050565b600060208284031215611fea57611fe9611e0c565b5b6000611ff884828501611e5f565b91505092915050565b6000806040838503121561201857612017611e0c565b5b600061202685828601611e95565b925050602061203785828601611e95565b9150509250929050565b61204a81611eea565b811461205557600080fd5b50565b60008135905061206781612041565b92915050565b6000806040838503121561208457612083611e0c565b5b600061209285828601612058565b92505060206120a385828601612058565b9150509250929050565b6120b681611e36565b82525050565b60006020820190506120d160008301846120ad565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61211482611d96565b810181811067ffffffffffffffff82111715612133576121326120dc565b5b80604052505050565b6000612146611e02565b9050612152828261210b565b919050565b600067ffffffffffffffff821115612172576121716120dc565b5b602082029050602081019050919050565b600080fd5b600061219b61219684612157565b61213c565b905080838252602082019050602084028301858111156121be576121bd612183565b5b835b818110156121e757806121d38882611e5f565b8452602084019350506020810190506121c0565b5050509392505050565b600082601f830112612206576122056120d7565b5b8135612216848260208601612188565b91505092915050565b6000806040838503121561223657612235611e0c565b5b600083013567ffffffffffffffff81111561225457612253611e11565b5b612260858286016121f1565b925050602061227185828601612058565b9150509250929050565b6000806040838503121561229257612291611e0c565b5b60006122a085828601611e5f565b92505060206122b185828601611e5f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156123415780860481111561231d5761231c6122bb565b5b600185161561232c5780820291505b808102905061233a856122ea565b9450612301565b94509492505050565b60008261235a5760019050612416565b816123685760009050612416565b816001811461237e5760028114612388576123b7565b6001915050612416565b60ff84111561239a576123996122bb565b5b8360020a9150848211156123b1576123b06122bb565b5b50612416565b5060208310610133831016604e8410600b84101617156123ec5782820a9050838111156123e7576123e66122bb565b5b612416565b6123f984848460016122f7565b925090508184048111156124105761240f6122bb565b5b81810290505b9392505050565b600061242882611e74565b915061243383611f9d565b92506124607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461234a565b905092915050565b600061247382611e74565b915061247e83611e74565b925082820261248c81611e74565b915082820484148315176124a3576124a26122bb565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124e0602083611d5b565b91506124eb826124aa565b602082019050919050565b6000602082019050818103600083015261250f816124d3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061255082611e74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612582576125816122bb565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006125e9602483611d5b565b91506125f48261258d565b604082019050919050565b60006020820190508181036000830152612618816125dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061267b602283611d5b565b91506126868261261f565b604082019050919050565b600060208201905081810360008301526126aa8161266e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061270d602583611d5b565b9150612718826126b1565b604082019050919050565b6000602082019050818103600083015261273c81612700565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061279f602383611d5b565b91506127aa82612743565b604082019050919050565b600060208201905081810360008301526127ce81612792565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612831602983611d5b565b915061283c826127d5565b604082019050919050565b6000602082019050818103600083015261286081612824565b9050919050565b7f45524332303a2057616c6c657420697320626c61636b6c697374210000000000600082015250565b600061289d601b83611d5b565b91506128a882612867565b602082019050919050565b600060208201905081810360008301526128cc81612890565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612909601983611d5b565b9150612914826128d3565b602082019050919050565b60006020820190508181036000830152612938816128fc565b9050919050565b600061294a82611e74565b915061295583611e74565b925082820190508082111561296d5761296c6122bb565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006129a9601a83611d5b565b91506129b482612973565b602082019050919050565b600060208201905081810360008301526129d88161299c565b9050919050565b60006129ea82611e74565b91506129f583611e74565b9250828203905081811115612a0d57612a0c6122bb565b5b92915050565b600081519050612a2281611e48565b92915050565b600060208284031215612a3e57612a3d611e0c565b5b6000612a4c84828501612a13565b91505092915050565b6000819050919050565b6000819050919050565b6000612a84612a7f612a7a84612a55565b612a5f565b611e74565b9050919050565b612a9481612a69565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612acf81611e36565b82525050565b6000612ae18383612ac6565b60208301905092915050565b6000602082019050919050565b6000612b0582612a9a565b612b0f8185612aa5565b9350612b1a83612ab6565b8060005b83811015612b4b578151612b328882612ad5565b9750612b3d83612aed565b925050600181019050612b1e565b5085935050505092915050565b600060a082019050612b6d6000830188611f20565b612b7a6020830187612a8b565b8181036040830152612b8c8186612afa565b9050612b9b60608301856120ad565b612ba86080830184611f20565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612bec82611e74565b9150612bf783611e74565b925082612c0757612c06612bb2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c6e602183611d5b565b9150612c7982612c12565b604082019050919050565b60006020820190508181036000830152612c9d81612c61565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612cda601b83611d5b565b9150612ce582612ca4565b602082019050919050565b60006020820190508181036000830152612d0981612ccd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bd55211583d750f807609127d464b8bddf8b584903898fd87bcf675f71210cec64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a057806395d89b411161006457806395d89b41146103bc5780639c0db5f3146103e7578063a9059cbb14610410578063bf474bed1461044d578063dd62ed3e146104785761012a565b8063751039fc146102fb5780637d1db4a51461031257806386dc53771461033d5780638da5cb5b146103665780638f9a55c0146103915761012a565b80633bbac579116100e75780633bbac5791461022a57806351bc3c851461026757806370a082311461027e578063715018a6146102bb57806372333356146102d25761012a565b806306fdde031461012f578063095ea7b31461015a57806318160ddd1461019757806323b872dd146101c2578063313ce567146101ff5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b506101446104b5565b6040516101519190611de0565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190611eaa565b6104f2565b60405161018e9190611f05565b60405180910390f35b3480156101a357600080fd5b506101ac610510565b6040516101b99190611f2f565b60405180910390f35b3480156101ce57600080fd5b506101e960048036038101906101e49190611f4a565b610535565b6040516101f69190611f05565b60405180910390f35b34801561020b57600080fd5b5061021461060e565b6040516102219190611fb9565b60405180910390f35b34801561023657600080fd5b50610251600480360381019061024c9190611fd4565b610617565b60405161025e9190611f05565b60405180910390f35b34801561027357600080fd5b5061027c61066d565b005b34801561028a57600080fd5b506102a560048036038101906102a09190611fd4565b61070a565b6040516102b29190611f2f565b60405180910390f35b3480156102c757600080fd5b506102d0610753565b005b3480156102de57600080fd5b506102f960048036038101906102f49190612001565b6108a6565b005b34801561030757600080fd5b50610310610919565b005b34801561031e57600080fd5b50610327610a4c565b6040516103349190611f2f565b60405180910390f35b34801561034957600080fd5b50610364600480360381019061035f919061206d565b610a52565b005b34801561037257600080fd5b5061037b610b1f565b60405161038891906120bc565b60405180910390f35b34801561039d57600080fd5b506103a6610b48565b6040516103b39190611f2f565b60405180910390f35b3480156103c857600080fd5b506103d1610b4e565b6040516103de9190611de0565b60405180910390f35b3480156103f357600080fd5b5061040e6004803603810190610409919061221f565b610b8b565b005b34801561041c57600080fd5b5061043760048036038101906104329190611eaa565b610cb5565b6040516104449190611f05565b60405180910390f35b34801561045957600080fd5b50610462610cd3565b60405161046f9190611f2f565b60405180910390f35b34801561048457600080fd5b5061049f600480360381019061049a919061227b565b610cd9565b6040516104ac9190611f2f565b60405180910390f35b60606040518060400160405280600a81526020017f42756c6c6120436f696e00000000000000000000000000000000000000000000815250905090565b60006105066104ff610d60565b8484610d68565b6001905092915050565b60006009600a610520919061241d565b6461f313f8806105309190612468565b905090565b6000610542848484610f31565b6106038461054e610d60565b6105fe85604051806060016040528060288152602001612d1160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105b4610d60565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118389092919063ffffffff16565b610d68565b600190509392505050565b60006009905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106ae610d60565b73ffffffffffffffffffffffffffffffffffffffff16146106ce57600080fd5b60006106d93061070a565b905060008111156106ee576106ed8161189c565b5b600047905060008111156107065761070581611b15565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61075b610d60565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107df906124f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108e7610d60565b73ffffffffffffffffffffffffffffffffffffffff161461090757600080fd5b81600681905550806007819055505050565b610921610d60565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a5906124f6565b60405180910390fd5b6009600a6109bc919061241d565b6461f313f8806109cc9190612468565b6008819055506009600a6109e0919061241d565b6461f313f8806109f09190612468565b6009819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a25919061241d565b6461f313f880610a359190612468565b604051610a429190611f2f565b60405180910390a1565b60085481565b610a5a610d60565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade906124f6565b60405180910390fd5b81600c60156101000a81548160ff02191690831515021790555080600c60146101000a81548160ff0219169083151502179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60095481565b60606040518060400160405280600581526020017f42554c4c41000000000000000000000000000000000000000000000000000000815250905090565b610b93610d60565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c17906124f6565b60405180910390fd5b60005b8251811015610cb0578160046000858481518110610c4457610c43612516565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ca890612545565b915050610c23565b505050565b6000610cc9610cc2610d60565b8484610f31565b6001905092915050565b600a5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dce906125ff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3d90612691565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f249190611f2f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790612723565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361100f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611006906127b5565b60405180910390fd5b60008111611052576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104990612847565b60405180910390fd5b600061105c610b1f565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156110ca575061109a610b1f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561157b57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156111735750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a9906128b3565b60405180910390fd5b6111da60646111cc60065485611b8190919063ffffffff16565b611bfb90919063ffffffff16565b9050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112875750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112dd5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113ed57600854821115611327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131e9061291f565b60405180910390fd5b600954826113348561070a565b61133e919061293f565b111561137f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611376906129bf565b60405180910390fd5b600c60149054906101000a900460ff166113ec576001600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561147657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156114a6576114a3606461149560075485611b8190919063ffffffff16565b611bfb90919063ffffffff16565b90505b60006114b13061070a565b905060085481106114c25760085490505b600c60169054906101000a900460ff1615801561152c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156115445750600c60179054906101000a900460ff165b80156115515750600a5481115b156115795761155f8161189c565b600047905060008111156115775761157647611b15565b5b505b505b600081111561167f576115d681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516116769190611f2f565b60405180910390a35b6116d182600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061177861172a8284611ca390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c4590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61181d8486611ca390919063ffffffff16565b60405161182a9190611f2f565b60405180910390a350505050565b6000838311158290611880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118779190611de0565b60405180910390fd5b506000838561188f91906129df565b9050809150509392505050565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156118d4576118d36120dc565b5b6040519080825280602002602001820160405280156119025781602001602082028036833780820191505090505b509050308160008151811061191a57611919612516565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119e59190612a28565b816001815181106119f9576119f8612516565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a6030600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d68565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ac4959493929190612b58565b600060405180830381600087803b158015611ade57600080fd5b505af1158015611af2573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611b7d573d6000803e3d6000fd5b5050565b6000808303611b935760009050611bf5565b60008284611ba19190612468565b9050828482611bb09190612be1565b14611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be790612c84565b60405180910390fd5b809150505b92915050565b6000611c3d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ced565b905092915050565b6000808284611c54919061293f565b905083811015611c99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9090612cf0565b60405180910390fd5b8091505092915050565b6000611ce583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611838565b905092915050565b60008083118290611d34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2b9190611de0565b60405180910390fd5b5060008385611d439190612be1565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611d8a578082015181840152602081019050611d6f565b60008484015250505050565b6000601f19601f8301169050919050565b6000611db282611d50565b611dbc8185611d5b565b9350611dcc818560208601611d6c565b611dd581611d96565b840191505092915050565b60006020820190508181036000830152611dfa8184611da7565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611e4182611e16565b9050919050565b611e5181611e36565b8114611e5c57600080fd5b50565b600081359050611e6e81611e48565b92915050565b6000819050919050565b611e8781611e74565b8114611e9257600080fd5b50565b600081359050611ea481611e7e565b92915050565b60008060408385031215611ec157611ec0611e0c565b5b6000611ecf85828601611e5f565b9250506020611ee085828601611e95565b9150509250929050565b60008115159050919050565b611eff81611eea565b82525050565b6000602082019050611f1a6000830184611ef6565b92915050565b611f2981611e74565b82525050565b6000602082019050611f446000830184611f20565b92915050565b600080600060608486031215611f6357611f62611e0c565b5b6000611f7186828701611e5f565b9350506020611f8286828701611e5f565b9250506040611f9386828701611e95565b9150509250925092565b600060ff82169050919050565b611fb381611f9d565b82525050565b6000602082019050611fce6000830184611faa565b92915050565b600060208284031215611fea57611fe9611e0c565b5b6000611ff884828501611e5f565b91505092915050565b6000806040838503121561201857612017611e0c565b5b600061202685828601611e95565b925050602061203785828601611e95565b9150509250929050565b61204a81611eea565b811461205557600080fd5b50565b60008135905061206781612041565b92915050565b6000806040838503121561208457612083611e0c565b5b600061209285828601612058565b92505060206120a385828601612058565b9150509250929050565b6120b681611e36565b82525050565b60006020820190506120d160008301846120ad565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61211482611d96565b810181811067ffffffffffffffff82111715612133576121326120dc565b5b80604052505050565b6000612146611e02565b9050612152828261210b565b919050565b600067ffffffffffffffff821115612172576121716120dc565b5b602082029050602081019050919050565b600080fd5b600061219b61219684612157565b61213c565b905080838252602082019050602084028301858111156121be576121bd612183565b5b835b818110156121e757806121d38882611e5f565b8452602084019350506020810190506121c0565b5050509392505050565b600082601f830112612206576122056120d7565b5b8135612216848260208601612188565b91505092915050565b6000806040838503121561223657612235611e0c565b5b600083013567ffffffffffffffff81111561225457612253611e11565b5b612260858286016121f1565b925050602061227185828601612058565b9150509250929050565b6000806040838503121561229257612291611e0c565b5b60006122a085828601611e5f565b92505060206122b185828601611e5f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156123415780860481111561231d5761231c6122bb565b5b600185161561232c5780820291505b808102905061233a856122ea565b9450612301565b94509492505050565b60008261235a5760019050612416565b816123685760009050612416565b816001811461237e5760028114612388576123b7565b6001915050612416565b60ff84111561239a576123996122bb565b5b8360020a9150848211156123b1576123b06122bb565b5b50612416565b5060208310610133831016604e8410600b84101617156123ec5782820a9050838111156123e7576123e66122bb565b5b612416565b6123f984848460016122f7565b925090508184048111156124105761240f6122bb565b5b81810290505b9392505050565b600061242882611e74565b915061243383611f9d565b92506124607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461234a565b905092915050565b600061247382611e74565b915061247e83611e74565b925082820261248c81611e74565b915082820484148315176124a3576124a26122bb565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124e0602083611d5b565b91506124eb826124aa565b602082019050919050565b6000602082019050818103600083015261250f816124d3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061255082611e74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612582576125816122bb565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006125e9602483611d5b565b91506125f48261258d565b604082019050919050565b60006020820190508181036000830152612618816125dc565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061267b602283611d5b565b91506126868261261f565b604082019050919050565b600060208201905081810360008301526126aa8161266e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061270d602583611d5b565b9150612718826126b1565b604082019050919050565b6000602082019050818103600083015261273c81612700565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061279f602383611d5b565b91506127aa82612743565b604082019050919050565b600060208201905081810360008301526127ce81612792565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612831602983611d5b565b915061283c826127d5565b604082019050919050565b6000602082019050818103600083015261286081612824565b9050919050565b7f45524332303a2057616c6c657420697320626c61636b6c697374210000000000600082015250565b600061289d601b83611d5b565b91506128a882612867565b602082019050919050565b600060208201905081810360008301526128cc81612890565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612909601983611d5b565b9150612914826128d3565b602082019050919050565b60006020820190508181036000830152612938816128fc565b9050919050565b600061294a82611e74565b915061295583611e74565b925082820190508082111561296d5761296c6122bb565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006129a9601a83611d5b565b91506129b482612973565b602082019050919050565b600060208201905081810360008301526129d88161299c565b9050919050565b60006129ea82611e74565b91506129f583611e74565b9250828203905081811115612a0d57612a0c6122bb565b5b92915050565b600081519050612a2281611e48565b92915050565b600060208284031215612a3e57612a3d611e0c565b5b6000612a4c84828501612a13565b91505092915050565b6000819050919050565b6000819050919050565b6000612a84612a7f612a7a84612a55565b612a5f565b611e74565b9050919050565b612a9481612a69565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612acf81611e36565b82525050565b6000612ae18383612ac6565b60208301905092915050565b6000602082019050919050565b6000612b0582612a9a565b612b0f8185612aa5565b9350612b1a83612ab6565b8060005b83811015612b4b578151612b328882612ad5565b9750612b3d83612aed565b925050600181019050612b1e565b5085935050505092915050565b600060a082019050612b6d6000830188611f20565b612b7a6020830187612a8b565b8181036040830152612b8c8186612afa565b9050612b9b60608301856120ad565b612ba86080830184611f20565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612bec82611e74565b9150612bf783611e74565b925082612c0757612c06612bb2565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c6e602183611d5b565b9150612c7982612c12565b604082019050919050565b60006020820190508181036000830152612c9d81612c61565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612cda601b83611d5b565b9150612ce582612ca4565b602082019050919050565b60006020820190508181036000830152612d0981612ccd565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bd55211583d750f807609127d464b8bddf8b584903898fd87bcf675f71210cec64736f6c63430008110033

Deployed Bytecode Sourcemap

3510:7164:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5280:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6113:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5557:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6282:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5466:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9877;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10323:348;;;;;;;;;;;;;:::i;:::-;;5660:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2593:148;;;;;;;;;;;;;:::i;:::-;;10122:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9427:159;;;;;;;;;;;;;:::i;:::-;;4178:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9968:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2379:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4234:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5371:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9694:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5787:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4292:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5962:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5280:83;5317:13;5350:5;;;;;;;;;;;;;;;;;5343:12;;5280:83;:::o;6113:161::-;6188:4;6205:39;6214:12;:10;:12::i;:::-;6228:7;6237:6;6205:8;:39::i;:::-;6262:4;6255:11;;6113:161;;;;:::o;5557:95::-;5610:7;4097:1;4158:2;:13;;;;:::i;:::-;4140:15;:31;;;;:::i;:::-;5630:14;;5557:95;:::o;6282:313::-;6380:4;6397:36;6407:6;6415:9;6426:6;6397:9;:36::i;:::-;6444:121;6453:6;6461:12;:10;:12::i;:::-;6475:89;6513:6;6475:89;;;;;;;;;;;;;;;;;:11;:19;6487:6;6475:19;;;;;;;;;;;;;;;:33;6495:12;:10;:12::i;:::-;6475:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6444:8;:121::i;:::-;6583:4;6576:11;;6282:313;;;;;:::o;5466:83::-;5507:5;4097:1;5525:16;;5466:83;:::o;9877:::-;9924:4;9945;:7;9950:1;9945:7;;;;;;;;;;;;;;;;;;;;;;;;;9938:14;;9877:83;;;:::o;10323:348::-;10387:10;;;;;;;;;;;10373:24;;:12;:10;:12::i;:::-;:24;;;10365:33;;;;;;10409:20;10430:24;10448:4;10430:9;:24::i;:::-;10409:45;;10481:1;10468:12;:14;10465:73;;;10496:30;10513:12;10496:16;:30::i;:::-;10465:73;10548:18;10567:21;10548:40;;10613:1;10602:10;:12;10599:65;;;10628:24;10641:10;10628:12;:24::i;:::-;10599:65;10354:317;;10323:348::o;5660:119::-;5726:7;5753:9;:18;5763:7;5753:18;;;;;;;;;;;;;;;;5746:25;;5660:119;;;:::o;2593:148::-;2516:12;:10;:12::i;:::-;2506:22;;:6;;;;;;;;;;:22;;;2498:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2700:1:::1;2663:40;;2684:6;::::0;::::1;;;;;;;;2663:40;;;;;;;;;;;;2731:1;2714:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2593:148::o:0;10122:156::-;10211:10;;;;;;;;;;;10197:24;;:12;:10;:12::i;:::-;:24;;;10189:33;;;;;;10241:4;10231:7;:14;;;;10265:5;10254:8;:16;;;;10122:156;;:::o;9427:159::-;2516:12;:10;:12::i;:::-;2506:22;;:6;;;;;;;;;;:22;;;2498:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4097:1:::1;4158:2;:13;;;;:::i;:::-;4140:15;:31;;;;:::i;:::-;9480:12;:22;;;;4097:1;4158:2;:13;;;;:::i;:::-;4140:15;:31;;;;:::i;:::-;9513:14;:22;;;;9551:27;4097:1;4158:2;:13;;;;:::i;:::-;4140:15;:31;;;;:::i;:::-;9551:27;;;;;;:::i;:::-;;;;;;;;9427:159::o:0;4178:49::-;;;;:::o;9968:140::-;2516:12;:10;:12::i;:::-;2506:22;;:6;;;;;;;;;;:22;;;2498:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10061:5:::1;10047:11;;:19;;;;;;;;;;;;;;;;;;10093:7;10077:13;;:23;;;;;;;;;;;;;;;;;;9968:140:::0;;:::o;2379:79::-;2417:7;2444:6;;;;;;;;;;;2437:13;;2379:79;:::o;4234:51::-;;;;:::o;5371:87::-;5410:13;5443:7;;;;;;;;;;;;;;;;;5436:14;;5371:87;:::o;9694:175::-;2516:12;:10;:12::i;:::-;2506:22;;:6;;;;;;;;;;:22;;;2498:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9779:6:::1;9774:88;9795:5;:12;9791:1;:16;9774:88;;;9846:4;9829;:14;9834:5;9840:1;9834:8;;;;;;;;:::i;:::-;;;;;;;;9829:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9809:3;;;;;:::i;:::-;;;;9774:88;;;;9694:175:::0;;:::o;5787:167::-;5865:4;5882:42;5892:12;:10;:12::i;:::-;5906:9;5917:6;5882:9;:42::i;:::-;5942:4;5935:11;;5787:167;;;;:::o;4292:52::-;;;;:::o;5962:143::-;6043:7;6070:11;:18;6082:5;6070:18;;;;;;;;;;;;;;;:27;6089:7;6070:27;;;;;;;;;;;;;;;;6063:34;;5962:143;;;;:::o;134:98::-;187:7;214:10;207:17;;134:98;:::o;6603:335::-;6713:1;6696:19;;:5;:19;;;6688:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6794:1;6775:21;;:7;:21;;;6767:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6876:6;6846:11;:18;6858:5;6846:18;;;;;;;;;;;;;;;:27;6865:7;6846:27;;;;;;;;;;;;;;;:36;;;;6914:7;6898:32;;6907:5;6898:32;;;6923:6;6898:32;;;;;;:::i;:::-;;;;;;;;6603:335;;;:::o;6946:1982::-;7050:1;7034:18;;:4;:18;;;7026:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7127:1;7113:16;;:2;:16;;;7105:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7197:1;7188:6;:10;7180:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7255:17;7297:7;:5;:7::i;:::-;7289:15;;:4;:15;;;;:32;;;;;7314:7;:5;:7::i;:::-;7308:13;;:2;:13;;;;7289:32;7285:1287;;;7347:4;:10;7352:4;7347:10;;;;;;;;;;;;;;;;;;;;;;;;;7346:11;:24;;;;;7362:4;:8;7367:2;7362:8;;;;;;;;;;;;;;;;;;;;;;;;;7361:9;7346:24;7338:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7429:28;7453:3;7429:19;7440:7;;7429:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;7417:40;;7486:13;;;;;;;;;;;7478:21;;:4;:21;;;:55;;;;;7517:15;;;;;;;;;;;7503:30;;:2;:30;;;;7478:55;:83;;;;;7539:18;:22;7558:2;7539:22;;;;;;;;;;;;;;;;;;;;;;;;;7537:24;7478:83;7474:377;;;7601:12;;7591:6;:22;;7583:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7696:14;;7686:6;7670:13;7680:2;7670:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7662:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7764:13;;;;;;;;;;;7760:76;;7812:4;7801;:8;7806:2;7801:8;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;;;;;;7760:76;7474:377;7876:13;;;;;;;;;;;7870:19;;:2;:19;;;:43;;;;;7908:4;7893:20;;:4;:20;;;;7870:43;7867:124;;;7946:29;7971:3;7946:20;7957:8;;7946:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;7934:41;;7867:124;8007:28;8038:24;8056:4;8038:9;:24::i;:::-;8007:55;;8104:12;;8080:20;:36;8077:111;;8160:12;;8137:35;;8077:111;8207:6;;;;;;;;;;;8206:7;:31;;;;;8224:13;;;;;;;;;;;8217:20;;:2;:20;;;8206:31;:46;;;;;8241:11;;;;;;;;;;;8206:46;:88;;;;;8277:17;;8256:20;:38;8206:88;8202:359;;;8315:38;8332:20;8315:16;:38::i;:::-;8372:26;8401:21;8372:50;;8465:1;8444:18;:22;8441:105;;;8491:35;8504:21;8491:12;:35::i;:::-;8441:105;8296:265;8202:359;7323:1249;7285:1287;8597:1;8587:9;:11;8584:161;;;8637:39;8666:9;8637;:24;8655:4;8637:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8612:9;:24;8630:4;8612:24;;;;;;;;;;;;;;;:64;;;;8717:4;8694:39;;8703:4;8694:39;;;8723:9;8694:39;;;;;;:::i;:::-;;;;;;;;8584:161;8771:27;8791:6;8771:9;:15;8781:4;8771:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8755:9;:15;8765:4;8755:15;;;;;;;;;;;;;;;:43;;;;8823:40;8841:21;8852:9;8841:6;:10;;:21;;;;:::i;:::-;8823:9;:13;8833:2;8823:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8809:9;:13;8819:2;8809:13;;;;;;;;;;;;;;;:54;;;;8894:2;8879:41;;8888:4;8879:41;;;8898:21;8909:9;8898:6;:10;;:21;;;;:::i;:::-;8879:41;;;;;;:::i;:::-;;;;;;;;7015:1913;6946:1982;;;:::o;1271:190::-;1357:7;1390:1;1385;:6;;1393:12;1377:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1417:9;1433:1;1429;:5;;;;:::i;:::-;1417:17;;1452:1;1445:8;;;1271:190;;;;;:::o;8936:483::-;4674:4;4665:6;;:13;;;;;;;;;;;;;;;;;;9014:21:::1;9052:1;9038:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9014:40;;9083:4;9065;9070:1;9065:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9109:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9099:4;9104:1;9099:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9142:62;9159:4;9174:15;;;;;;;;;;;9192:11;9142:8;:62::i;:::-;9215:15;;;;;;;;;;;:66;;;9296:11;9322:1;9338:4;9365;9385:15;9215:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9003:416;4710:5:::0;4701:6;;:14;;;;;;;;;;;;;;;;;;8936:483;:::o;9594:92::-;9651:10;;;;;;;;;;;:19;;:27;9671:6;9651:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9594:92;:::o;1469:246::-;1527:7;1556:1;1551;:6;1547:47;;1581:1;1574:8;;;;1547:47;1604:9;1620:1;1616;:5;;;;:::i;:::-;1604:17;;1649:1;1644;1640;:5;;;;:::i;:::-;:10;1632:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1706:1;1699:8;;;1469:246;;;;;:::o;1723:132::-;1781:7;1808:39;1812:1;1815;1808:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1801:46;;1723:132;;;;:::o;940:179::-;998:7;1018:9;1034:1;1030;:5;;;;:::i;:::-;1018:17;;1059:1;1054;:6;;1046:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1110:1;1103:8;;;940:179;;;;:::o;1127:136::-;1185:7;1212:43;1216:1;1219;1212:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1205:50;;1127:136;;;;:::o;1863:189::-;1949:7;1981:1;1977;:5;1984:12;1969:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2008:9;2024:1;2020;:5;;;;:::i;:::-;2008:17;;2043:1;2036:8;;;1863:189;;;;;:::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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:474::-;5256:6;5264;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5566:2;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5537:118;5188:474;;;;;:::o;5668:116::-;5738:21;5753:5;5738:21;:::i;:::-;5731:5;5728:32;5718:60;;5774:1;5771;5764:12;5718:60;5668:116;:::o;5790:133::-;5833:5;5871:6;5858:20;5849:29;;5887:30;5911:5;5887:30;:::i;:::-;5790:133;;;;:::o;5929:462::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:50;6241:7;6232:6;6221:9;6217:22;6199:50;:::i;:::-;6189:60;;6145:114;6298:2;6324:50;6366:7;6357:6;6346:9;6342:22;6324:50;:::i;:::-;6314:60;;6269:115;5929:462;;;;;:::o;6397:118::-;6484:24;6502:5;6484:24;:::i;:::-;6479:3;6472:37;6397:118;;:::o;6521:222::-;6614:4;6652:2;6641:9;6637:18;6629:26;;6665:71;6733:1;6722:9;6718:17;6709:6;6665:71;:::i;:::-;6521:222;;;;:::o;6749:117::-;6858:1;6855;6848:12;6872:180;6920:77;6917:1;6910:88;7017:4;7014:1;7007:15;7041:4;7038:1;7031:15;7058:281;7141:27;7163:4;7141:27;:::i;:::-;7133:6;7129:40;7271:6;7259:10;7256:22;7235:18;7223:10;7220:34;7217:62;7214:88;;;7282:18;;:::i;:::-;7214:88;7322:10;7318:2;7311:22;7101:238;7058:281;;:::o;7345:129::-;7379:6;7406:20;;:::i;:::-;7396:30;;7435:33;7463:4;7455:6;7435:33;:::i;:::-;7345:129;;;:::o;7480:311::-;7557:4;7647:18;7639:6;7636:30;7633:56;;;7669:18;;:::i;:::-;7633:56;7719:4;7711:6;7707:17;7699:25;;7779:4;7773;7769:15;7761:23;;7480:311;;;:::o;7797:117::-;7906:1;7903;7896:12;7937:710;8033:5;8058:81;8074:64;8131:6;8074:64;:::i;:::-;8058:81;:::i;:::-;8049:90;;8159:5;8188:6;8181:5;8174:21;8222:4;8215:5;8211:16;8204:23;;8275:4;8267:6;8263:17;8255:6;8251:30;8304:3;8296:6;8293:15;8290:122;;;8323:79;;:::i;:::-;8290:122;8438:6;8421:220;8455:6;8450:3;8447:15;8421:220;;;8530:3;8559:37;8592:3;8580:10;8559:37;:::i;:::-;8554:3;8547:50;8626:4;8621:3;8617:14;8610:21;;8497:144;8481:4;8476:3;8472:14;8465:21;;8421:220;;;8425:21;8039:608;;7937:710;;;;;:::o;8670:370::-;8741:5;8790:3;8783:4;8775:6;8771:17;8767:27;8757:122;;8798:79;;:::i;:::-;8757:122;8915:6;8902:20;8940:94;9030:3;9022:6;9015:4;9007:6;9003:17;8940:94;:::i;:::-;8931:103;;8747:293;8670:370;;;;:::o;9046:678::-;9136:6;9144;9193:2;9181:9;9172:7;9168:23;9164:32;9161:119;;;9199:79;;:::i;:::-;9161:119;9347:1;9336:9;9332:17;9319:31;9377:18;9369:6;9366:30;9363:117;;;9399:79;;:::i;:::-;9363:117;9504:78;9574:7;9565:6;9554:9;9550:22;9504:78;:::i;:::-;9494:88;;9290:302;9631:2;9657:50;9699:7;9690:6;9679:9;9675:22;9657:50;:::i;:::-;9647:60;;9602:115;9046:678;;;;;:::o;9730:474::-;9798:6;9806;9855:2;9843:9;9834:7;9830:23;9826:32;9823:119;;;9861:79;;:::i;:::-;9823:119;9981:1;10006:53;10051:7;10042:6;10031:9;10027:22;10006:53;:::i;:::-;9996:63;;9952:117;10108:2;10134:53;10179:7;10170:6;10159:9;10155:22;10134:53;:::i;:::-;10124:63;;10079:118;9730:474;;;;;:::o;10210:180::-;10258:77;10255:1;10248:88;10355:4;10352:1;10345:15;10379:4;10376:1;10369:15;10396:102;10438:8;10485:5;10482:1;10478:13;10457:34;;10396:102;;;:::o;10504:848::-;10565:5;10572:4;10596:6;10587:15;;10620:5;10611:14;;10634:712;10655:1;10645:8;10642:15;10634:712;;;10750:4;10745:3;10741:14;10735:4;10732:24;10729:50;;;10759:18;;:::i;:::-;10729:50;10809:1;10799:8;10795:16;10792:451;;;11224:4;11217:5;11213:16;11204:25;;10792:451;11274:4;11268;11264:15;11256:23;;11304:32;11327:8;11304:32;:::i;:::-;11292:44;;10634:712;;;10504:848;;;;;;;:::o;11358:1073::-;11412:5;11603:8;11593:40;;11624:1;11615:10;;11626:5;;11593:40;11652:4;11642:36;;11669:1;11660:10;;11671:5;;11642:36;11738:4;11786:1;11781:27;;;;11822:1;11817:191;;;;11731:277;;11781:27;11799:1;11790:10;;11801:5;;;11817:191;11862:3;11852:8;11849:17;11846:43;;;11869:18;;:::i;:::-;11846:43;11918:8;11915:1;11911:16;11902:25;;11953:3;11946:5;11943:14;11940:40;;;11960:18;;:::i;:::-;11940:40;11993:5;;;11731:277;;12117:2;12107:8;12104:16;12098:3;12092:4;12089:13;12085:36;12067:2;12057:8;12054:16;12049:2;12043:4;12040:12;12036:35;12020:111;12017:246;;;12173:8;12167:4;12163:19;12154:28;;12208:3;12201:5;12198:14;12195:40;;;12215:18;;:::i;:::-;12195:40;12248:5;;12017:246;12288:42;12326:3;12316:8;12310:4;12307:1;12288:42;:::i;:::-;12273:57;;;;12362:4;12357:3;12353:14;12346:5;12343:25;12340:51;;;12371:18;;:::i;:::-;12340:51;12420:4;12413:5;12409:16;12400:25;;11358:1073;;;;;;:::o;12437:281::-;12495:5;12519:23;12537:4;12519:23;:::i;:::-;12511:31;;12563:25;12579:8;12563:25;:::i;:::-;12551:37;;12607:104;12644:66;12634:8;12628:4;12607:104;:::i;:::-;12598:113;;12437:281;;;;:::o;12724:410::-;12764:7;12787:20;12805:1;12787:20;:::i;:::-;12782:25;;12821:20;12839:1;12821:20;:::i;:::-;12816:25;;12876:1;12873;12869:9;12898:30;12916:11;12898:30;:::i;:::-;12887:41;;13077:1;13068:7;13064:15;13061:1;13058:22;13038:1;13031:9;13011:83;12988:139;;13107:18;;:::i;:::-;12988:139;12772:362;12724:410;;;;:::o;13140:182::-;13280:34;13276:1;13268:6;13264:14;13257:58;13140:182;:::o;13328:366::-;13470:3;13491:67;13555:2;13550:3;13491:67;:::i;:::-;13484:74;;13567:93;13656:3;13567:93;:::i;:::-;13685:2;13680:3;13676:12;13669:19;;13328:366;;;:::o;13700:419::-;13866:4;13904:2;13893:9;13889:18;13881:26;;13953:9;13947:4;13943:20;13939:1;13928:9;13924:17;13917:47;13981:131;14107:4;13981:131;:::i;:::-;13973:139;;13700:419;;;:::o;14125:180::-;14173:77;14170:1;14163:88;14270:4;14267:1;14260:15;14294:4;14291:1;14284:15;14311:233;14350:3;14373:24;14391:5;14373:24;:::i;:::-;14364:33;;14419:66;14412:5;14409:77;14406:103;;14489:18;;:::i;:::-;14406:103;14536:1;14529:5;14525:13;14518:20;;14311:233;;;:::o;14550:223::-;14690:34;14686:1;14678:6;14674:14;14667:58;14759:6;14754:2;14746:6;14742:15;14735:31;14550:223;:::o;14779:366::-;14921:3;14942:67;15006:2;15001:3;14942:67;:::i;:::-;14935:74;;15018:93;15107:3;15018:93;:::i;:::-;15136:2;15131:3;15127:12;15120:19;;14779:366;;;:::o;15151:419::-;15317:4;15355:2;15344:9;15340:18;15332:26;;15404:9;15398:4;15394:20;15390:1;15379:9;15375:17;15368:47;15432:131;15558:4;15432:131;:::i;:::-;15424:139;;15151:419;;;:::o;15576:221::-;15716:34;15712:1;15704:6;15700:14;15693:58;15785:4;15780:2;15772:6;15768:15;15761:29;15576:221;:::o;15803:366::-;15945:3;15966:67;16030:2;16025:3;15966:67;:::i;:::-;15959:74;;16042:93;16131:3;16042:93;:::i;:::-;16160:2;16155:3;16151:12;16144:19;;15803:366;;;:::o;16175:419::-;16341:4;16379:2;16368:9;16364:18;16356:26;;16428:9;16422:4;16418:20;16414:1;16403:9;16399:17;16392:47;16456:131;16582:4;16456:131;:::i;:::-;16448:139;;16175:419;;;:::o;16600:224::-;16740:34;16736:1;16728:6;16724:14;16717:58;16809:7;16804:2;16796:6;16792:15;16785:32;16600:224;:::o;16830:366::-;16972:3;16993:67;17057:2;17052:3;16993:67;:::i;:::-;16986:74;;17069:93;17158:3;17069:93;:::i;:::-;17187:2;17182:3;17178:12;17171:19;;16830:366;;;:::o;17202:419::-;17368:4;17406:2;17395:9;17391:18;17383:26;;17455:9;17449:4;17445:20;17441:1;17430:9;17426:17;17419:47;17483:131;17609:4;17483:131;:::i;:::-;17475:139;;17202:419;;;:::o;17627:222::-;17767:34;17763:1;17755:6;17751:14;17744:58;17836:5;17831:2;17823:6;17819:15;17812:30;17627:222;:::o;17855:366::-;17997:3;18018:67;18082:2;18077:3;18018:67;:::i;:::-;18011:74;;18094:93;18183:3;18094:93;:::i;:::-;18212:2;18207:3;18203:12;18196:19;;17855:366;;;:::o;18227:419::-;18393:4;18431:2;18420:9;18416:18;18408:26;;18480:9;18474:4;18470:20;18466:1;18455:9;18451:17;18444:47;18508:131;18634:4;18508:131;:::i;:::-;18500:139;;18227:419;;;:::o;18652:228::-;18792:34;18788:1;18780:6;18776:14;18769:58;18861:11;18856:2;18848:6;18844:15;18837:36;18652:228;:::o;18886:366::-;19028:3;19049:67;19113:2;19108:3;19049:67;:::i;:::-;19042:74;;19125:93;19214:3;19125:93;:::i;:::-;19243:2;19238:3;19234:12;19227:19;;18886:366;;;:::o;19258:419::-;19424:4;19462:2;19451:9;19447:18;19439:26;;19511:9;19505:4;19501:20;19497:1;19486:9;19482:17;19475:47;19539:131;19665:4;19539:131;:::i;:::-;19531:139;;19258:419;;;:::o;19683:177::-;19823:29;19819:1;19811:6;19807:14;19800:53;19683:177;:::o;19866:366::-;20008:3;20029:67;20093:2;20088:3;20029:67;:::i;:::-;20022:74;;20105:93;20194:3;20105:93;:::i;:::-;20223:2;20218:3;20214:12;20207:19;;19866:366;;;:::o;20238:419::-;20404:4;20442:2;20431:9;20427:18;20419:26;;20491:9;20485:4;20481:20;20477:1;20466:9;20462:17;20455:47;20519:131;20645:4;20519:131;:::i;:::-;20511:139;;20238:419;;;:::o;20663:175::-;20803:27;20799:1;20791:6;20787:14;20780:51;20663:175;:::o;20844:366::-;20986:3;21007:67;21071:2;21066:3;21007:67;:::i;:::-;21000:74;;21083:93;21172:3;21083:93;:::i;:::-;21201:2;21196:3;21192:12;21185:19;;20844:366;;;:::o;21216:419::-;21382:4;21420:2;21409:9;21405:18;21397:26;;21469:9;21463:4;21459:20;21455:1;21444:9;21440:17;21433:47;21497:131;21623:4;21497:131;:::i;:::-;21489:139;;21216:419;;;:::o;21641:191::-;21681:3;21700:20;21718:1;21700:20;:::i;:::-;21695:25;;21734:20;21752:1;21734:20;:::i;:::-;21729:25;;21777:1;21774;21770:9;21763:16;;21798:3;21795:1;21792:10;21789:36;;;21805:18;;:::i;:::-;21789:36;21641:191;;;;:::o;21838:176::-;21978:28;21974:1;21966:6;21962:14;21955:52;21838:176;:::o;22020:366::-;22162:3;22183:67;22247:2;22242:3;22183:67;:::i;:::-;22176:74;;22259:93;22348:3;22259:93;:::i;:::-;22377:2;22372:3;22368:12;22361:19;;22020:366;;;:::o;22392:419::-;22558:4;22596:2;22585:9;22581:18;22573:26;;22645:9;22639:4;22635:20;22631:1;22620:9;22616:17;22609:47;22673:131;22799:4;22673:131;:::i;:::-;22665:139;;22392:419;;;:::o;22817:194::-;22857:4;22877:20;22895:1;22877:20;:::i;:::-;22872:25;;22911:20;22929:1;22911:20;:::i;:::-;22906:25;;22955:1;22952;22948:9;22940:17;;22979:1;22973:4;22970:11;22967:37;;;22984:18;;:::i;:::-;22967:37;22817:194;;;;:::o;23017:143::-;23074:5;23105:6;23099:13;23090:22;;23121:33;23148:5;23121:33;:::i;:::-;23017:143;;;;:::o;23166:351::-;23236:6;23285:2;23273:9;23264:7;23260:23;23256:32;23253:119;;;23291:79;;:::i;:::-;23253:119;23411:1;23436:64;23492:7;23483:6;23472:9;23468:22;23436:64;:::i;:::-;23426:74;;23382:128;23166:351;;;;:::o;23523:85::-;23568:7;23597:5;23586:16;;23523:85;;;:::o;23614:60::-;23642:3;23663:5;23656:12;;23614:60;;;:::o;23680:158::-;23738:9;23771:61;23789:42;23798:32;23824:5;23798:32;:::i;:::-;23789:42;:::i;:::-;23771:61;:::i;:::-;23758:74;;23680:158;;;:::o;23844:147::-;23939:45;23978:5;23939:45;:::i;:::-;23934:3;23927:58;23844:147;;:::o;23997:114::-;24064:6;24098:5;24092:12;24082:22;;23997:114;;;:::o;24117:184::-;24216:11;24250:6;24245:3;24238:19;24290:4;24285:3;24281:14;24266:29;;24117:184;;;;:::o;24307:132::-;24374:4;24397:3;24389:11;;24427:4;24422:3;24418:14;24410:22;;24307:132;;;:::o;24445:108::-;24522:24;24540:5;24522:24;:::i;:::-;24517:3;24510:37;24445:108;;:::o;24559:179::-;24628:10;24649:46;24691:3;24683:6;24649:46;:::i;:::-;24727:4;24722:3;24718:14;24704:28;;24559:179;;;;:::o;24744:113::-;24814:4;24846;24841:3;24837:14;24829:22;;24744:113;;;:::o;24893:732::-;25012:3;25041:54;25089:5;25041:54;:::i;:::-;25111:86;25190:6;25185:3;25111:86;:::i;:::-;25104:93;;25221:56;25271:5;25221:56;:::i;:::-;25300:7;25331:1;25316:284;25341:6;25338:1;25335:13;25316:284;;;25417:6;25411:13;25444:63;25503:3;25488:13;25444:63;:::i;:::-;25437:70;;25530:60;25583:6;25530:60;:::i;:::-;25520:70;;25376:224;25363:1;25360;25356:9;25351:14;;25316:284;;;25320:14;25616:3;25609:10;;25017:608;;;24893:732;;;;:::o;25631:831::-;25894:4;25932:3;25921:9;25917:19;25909:27;;25946:71;26014:1;26003:9;25999:17;25990:6;25946:71;:::i;:::-;26027:80;26103:2;26092:9;26088:18;26079:6;26027:80;:::i;:::-;26154:9;26148:4;26144:20;26139:2;26128:9;26124:18;26117:48;26182:108;26285:4;26276:6;26182:108;:::i;:::-;26174:116;;26300:72;26368:2;26357:9;26353:18;26344:6;26300:72;:::i;:::-;26382:73;26450:3;26439:9;26435:19;26426:6;26382:73;:::i;:::-;25631:831;;;;;;;;:::o;26468:180::-;26516:77;26513:1;26506:88;26613:4;26610:1;26603:15;26637:4;26634:1;26627:15;26654:185;26694:1;26711:20;26729:1;26711:20;:::i;:::-;26706:25;;26745:20;26763:1;26745:20;:::i;:::-;26740:25;;26784:1;26774:35;;26789:18;;:::i;:::-;26774:35;26831:1;26828;26824:9;26819:14;;26654:185;;;;:::o;26845:220::-;26985:34;26981:1;26973:6;26969:14;26962:58;27054:3;27049:2;27041:6;27037:15;27030:28;26845:220;:::o;27071:366::-;27213:3;27234:67;27298:2;27293:3;27234:67;:::i;:::-;27227:74;;27310:93;27399:3;27310:93;:::i;:::-;27428:2;27423:3;27419:12;27412:19;;27071:366;;;:::o;27443:419::-;27609:4;27647:2;27636:9;27632:18;27624:26;;27696:9;27690:4;27686:20;27682:1;27671:9;27667:17;27660:47;27724:131;27850:4;27724:131;:::i;:::-;27716:139;;27443:419;;;:::o;27868:177::-;28008:29;28004:1;27996:6;27992:14;27985:53;27868:177;:::o;28051:366::-;28193:3;28214:67;28278:2;28273:3;28214:67;:::i;:::-;28207:74;;28290:93;28379:3;28290:93;:::i;:::-;28408:2;28403:3;28399:12;28392:19;;28051:366;;;:::o;28423:419::-;28589:4;28627:2;28616:9;28612:18;28604:26;;28676:9;28670:4;28666:20;28662:1;28651:9;28647:17;28640:47;28704:131;28830:4;28704:131;:::i;:::-;28696:139;;28423:419;;;:::o

Swarm Source

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