ETH Price: $2,523.66 (-0.76%)

Token

DaddyDoge 2.0 (DaddyDoge2.0)
 

Overview

Max Total Supply

420,690,000,000,000 DaddyDoge2.0

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
404,695,830,084,189.251966264 DaddyDoge2.0

Value
$0.00
0x772a933c1cb97fc09c945ad57667d6986fcb4822
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:
DaddyDoge2

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: No

pragma solidity = 0.8.19;

//--- Context ---//
abstract contract Context {
    constructor() {
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

    function _msgData() internal view returns (bytes memory) {
        this;
        return msg.data;
    }
}

//--- Ownable ---//
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}

interface IRouter01 {
    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);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}



//--- Interface for ERC20 ---//
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

//--- Contract v2 ---//
contract DaddyDoge2 is Context, Ownable, IERC20 {

    function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }


    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFee;
    mapping (address => bool) private liquidityAdd;
    mapping (address => bool) private isLpPair;
    mapping (address => bool) private isPresaleAddress;
    mapping (address => uint256) private balance;


    uint256 constant public _totalSupply = 420_690_000_000_000 * 10**9;
    uint256 constant public swapThreshold = _totalSupply / 5_000;
    uint256 constant public buyfee = 10;
    uint256 constant public sellfee = 10;
    uint256 constant public transferfee = 0;
    uint256 constant public fee_denominator = 1_000;
    bool private canSwapFees = true;
    address payable private marketingAddress = payable(0xa98947d1D9cb4857D550A9DCc27E9bf7865b9289);


    IRouter02 public swapRouter;
    string constant private _name = "DaddyDoge 2.0";
    string constant private _symbol = "DaddyDoge2.0";
    uint8 constant private _decimals = 9;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address public lpPair;
    bool public isTradingEnabled = false;
    bool private inSwap;

        modifier inSwapFlag {
        inSwap = true;
        _;
        inSwap = false;
    }


    event _enableTrading();
    event _setPresaleAddress(address account, bool enabled);
    event _toggleCanSwapFees(bool enabled);
    event _changePair(address newLpPair);
    event _changeWallets(address marketing);


    constructor () {
        _noFee[msg.sender] = true;

        if (block.chainid == 56) {
            swapRouter = IRouter02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        } else if (block.chainid == 97) {
            swapRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else if (block.chainid == 43114) {
            swapRouter = IRouter02(0x60aE616a2155Ee3d9A68541Ba4544862310933d4);
        } else if (block.chainid == 250) {
            swapRouter = IRouter02(0xF491e7B69E4244ad4002BC14e878a34207E38c29);
        } else {
            revert("Chain not valid");
        }
        liquidityAdd[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        lpPair = IFactoryV2(swapRouter.factory()).createPair(swapRouter.WETH(), address(this));
        isLpPair[lpPair] = true;
        _approve(msg.sender, address(swapRouter), type(uint256).max);
        _approve(address(this), address(swapRouter), type(uint256).max);
    }
    
    receive() external payable {}

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

        function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

        function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
    }

        function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] -= amount;
        }

        return _transfer(sender, recipient, amount);
    }
    function isNoFeeWallet(address account) external view returns(bool) {
        return _noFee[account];
    }

    function setNoFeeWallet(address account, bool enabled) public onlyOwner {
        _noFee[account] = enabled;
    }

    function isLimitedAddress(address ins, address out) internal view returns (bool) {

        bool isLimited = ins != owner()
            && out != owner() && msg.sender != owner()
            && !liquidityAdd[ins]  && !liquidityAdd[out] && out != DEAD && out != address(0) && out != address(this);
            return isLimited;
    }

    function is_buy(address ins, address out) internal view returns (bool) {
        bool _is_buy = !isLpPair[out] && isLpPair[ins];
        return _is_buy;
    }

    function is_sell(address ins, address out) internal view returns (bool) { 
        bool _is_sell = isLpPair[out] && !isLpPair[ins];
        return _is_sell;
    } 

    function canSwap(address ins, address out) internal view returns (bool) {
        bool canswap = canSwapFees && !isPresaleAddress[ins] && !isPresaleAddress[out];

        return canswap;
    }

    function changeLpPair(address newPair) external onlyOwner {
        isLpPair[newPair] = true;
        emit _changePair(newPair);
    }

    function toggleCanSwapFees(bool yesno) external onlyOwner {
        require(canSwapFees != yesno,"Bool is the same");
        canSwapFees = yesno;
        emit _toggleCanSwapFees(yesno);
    }

    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the zero address");
        require(from != address(0), "ERC20: transfer from the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (isLimitedAddress(from,to)) {
            require(isTradingEnabled,"Trading is not enabled");
        }


        if(is_sell(from, to) &&  !inSwap && canSwap(from, to)) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance >= swapThreshold) { internalSwap(contractTokenBalance); }
        }

        if (_noFee[from] || _noFee[to]){
            takeFee = false;
        }

        balance[from] -= amount; uint256 amountAfterFee = (takeFee) ? takeTaxes(from, is_buy(from, to), is_sell(from, to), amount) : amount;
        balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee);

        return true;

    }

    function changeWallets(address marketing) external onlyOwner {
        marketingAddress = payable(marketing);
        emit _changeWallets(marketing);
    }


    function takeTaxes(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = buyfee;  else if (issell)  fee = sellfee;  else  fee = transferfee; 
        if (fee == 0)  return amount;
        uint256 feeAmount = amount * fee / fee_denominator;
        if (feeAmount > 0) {

            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
            
        }
        return amount - feeAmount;
    }

    function internalSwap(uint256 contractTokenBalance) internal inSwapFlag {
        
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = swapRouter.WETH();

        if (_allowances[address(this)][address(swapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(swapRouter)] = type(uint256).max;
        }

        try swapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            contractTokenBalance,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }
        bool success;

        if(address(this).balance > 0) {(success,) = marketingAddress.call{value: address(this).balance, gas: 35000}("");}

    }

        function setPresaleAddress(address presale, bool yesno) external onlyOwner {
            require(isPresaleAddress[presale] != yesno,"Same bool");
            isPresaleAddress[presale] = yesno;
            _noFee[presale] = yesno;
            liquidityAdd[presale] = yesno;
            emit _setPresaleAddress(presale, yesno);
        }

        function enableTrading() external onlyOwner {
            require(!isTradingEnabled, "Trading already enabled");
            isTradingEnabled = true;
            emit _enableTrading();
        }
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newLpPair","type":"address"}],"name":"_changePair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketing","type":"address"}],"name":"_changeWallets","type":"event"},{"anonymous":false,"inputs":[],"name":"_enableTrading","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_setPresaleAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"_toggleCanSwapFees","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"buyfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"}],"name":"changeLpPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fee_denominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isNoFeeWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setNoFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"presale","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"setPresaleAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapRouter","outputs":[{"internalType":"contract IRouter02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"yesno","type":"bool"}],"name":"toggleCanSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526001600760006101000a81548160ff02191690831515021790555073a98947d1d9cb4857d550a9dcc27e9bf7865b9289600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600960146101000a81548160ff0219169083151502179055503480156200009c57600080fd5b50620000bd620000b16200078f60201b60201c565b6200079760201b60201c565b6001600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506038460362000179577310ed43c718714eb63d5aa57b78b54704e256024e600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000364565b60614603620001dd5773d99d1c33f9fc3444f8101754abc46c52416550d1600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000363565b6001461480620001ed5750600446145b80620001f95750600346145b156200025a57737a250d5630b4cf539739df2c5dacb4c659f2488d600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000362565b61a86a4603620002bf577360ae616a2155ee3d9a68541ba4544862310933d4600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000361565b60fa4603620003235773f491e7b69e4244ad4002bc14e878a34207e38c29600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000360565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003579062000a26565b60405180910390fd5b5b5b5b5b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550695915a68d88da6a080000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef695915a68d88da6a08000060405162000474919062000a63565b60405180910390a3600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000510919062000aea565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000599573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005bf919062000aea565b306040518363ffffffff1660e01b8152600401620005df92919062000b2d565b6020604051808303816000875af1158015620005ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000625919062000aea565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200073433600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200085b60201b60201c565b6200078930600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200085b60201b60201c565b62000bcc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620008cd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008c49062000baa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200093f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009369062000baa565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600082825260208201905092915050565b7f436861696e206e6f742076616c69640000000000000000000000000000000000600082015250565b600062000a0e600f83620009c5565b915062000a1b82620009d6565b602082019050919050565b6000602082019050818103600083015262000a4181620009ff565b9050919050565b6000819050919050565b62000a5d8162000a48565b82525050565b600060208201905062000a7a600083018462000a52565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ab28262000a85565b9050919050565b62000ac48162000aa5565b811462000ad057600080fd5b50565b60008151905062000ae48162000ab9565b92915050565b60006020828403121562000b035762000b0262000a80565b5b600062000b138482850162000ad3565b91505092915050565b62000b278162000aa5565b82525050565b600060408201905062000b44600083018562000b1c565b62000b53602083018462000b1c565b9392505050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b600062000b92601383620009c5565b915062000b9f8262000b5a565b602082019050919050565b6000602082019050818103600083015262000bc58162000b83565b9050919050565b6131168062000bdc6000396000f3fe6080604052600436106101d15760003560e01c806354de7bee116100f7578063a9059cbb11610095578063dc9d75b011610064578063dc9d75b014610663578063dd62ed3e1461068e578063e9451f5f146106cb578063f2fde38b146106f6576101d8565b8063a9059cbb146105a9578063c31c9c07146105e6578063c4ab12b514610611578063d5914dc01461063a576101d8565b8063893d20e8116100d1578063893d20e8146105115780638a8c523c1461053c5780638da5cb5b1461055357806395d89b411461057e576101d8565b806354de7bee1461049257806370a08231146104bd578063715018a6146104fa576101d8565b806318160ddd1161016f578063313ce5671161013e578063313ce567146103e85780633cd17c96146104135780633eaaf86b1461043c578063452ed4f114610467576101d8565b806318160ddd146103185780631dc369451461034357806323b872dd1461036e57806327889862146103ab576101d8565b806306fdde03116101ab57806306fdde031461025e578063095ea7b3146102895780630faba554146102c6578063111a60b0146102ef576101d8565b806303fd2a45146101dd5780630445b66714610208578063064a59d014610233576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261071f565b6040516101ff9190612497565b60405180910390f35b34801561021457600080fd5b5061021d610725565b60405161022a91906124cb565b60405180910390f35b34801561023f57600080fd5b50610248610740565b6040516102559190612501565b60405180910390f35b34801561026a57600080fd5b50610273610753565b60405161028091906125ac565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab919061262b565b610790565b6040516102bd9190612501565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190612697565b6107a7565b005b3480156102fb57600080fd5b50610316600480360381019061031191906126d7565b61087e565b005b34801561032457600080fd5b5061032d6109a3565b60405161033a91906124cb565b60405180910390f35b34801561034f57600080fd5b506103586109cb565b60405161036591906124cb565b60405180910390f35b34801561037a57600080fd5b5061039560048036038101906103909190612704565b6109d0565b6040516103a29190612501565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190612757565b610b1d565b6040516103df9190612501565b60405180910390f35b3480156103f457600080fd5b506103fd610b73565b60405161040a91906127a0565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190612697565b610b92565b005b34801561044857600080fd5b50610451610de2565b60405161045e91906124cb565b60405180910390f35b34801561047357600080fd5b5061047c610df0565b6040516104899190612497565b60405180910390f35b34801561049e57600080fd5b506104a7610e16565b6040516104b491906124cb565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df9190612757565b610e1b565b6040516104f191906124cb565b60405180910390f35b34801561050657600080fd5b5061050f610e64565b005b34801561051d57600080fd5b50610526610eec565b6040516105339190612497565b60405180910390f35b34801561054857600080fd5b50610551610efb565b005b34801561055f57600080fd5b50610568611010565b6040516105759190612497565b60405180910390f35b34801561058a57600080fd5b50610593611039565b6040516105a091906125ac565b60405180910390f35b3480156105b557600080fd5b506105d060048036038101906105cb919061262b565b611076565b6040516105dd9190612501565b60405180910390f35b3480156105f257600080fd5b506105fb61108e565b604051610608919061281a565b60405180910390f35b34801561061d57600080fd5b5061063860048036038101906106339190612757565b6110b4565b005b34801561064657600080fd5b50610661600480360381019061065c9190612757565b6111ab565b005b34801561066f57600080fd5b506106786112b9565b60405161068591906124cb565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190612835565b6112bf565b6040516106c291906124cb565b60405180910390f35b3480156106d757600080fd5b506106e0611346565b6040516106ed91906124cb565b60405180910390f35b34801561070257600080fd5b5061071d60048036038101906107189190612757565b61134b565b005b61dead81565b611388695915a68d88da6a08000061073d91906128d3565b81565b600960149054906101000a900460ff1681565b60606040518060400160405280600d81526020017f4461646479446f676520322e3000000000000000000000000000000000000000815250905090565b600061079d338484611442565b6001905092915050565b6107af6115a6565b73ffffffffffffffffffffffffffffffffffffffff166107cd611010565b73ffffffffffffffffffffffffffffffffffffffff1614610823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081a90612950565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6108866115a6565b73ffffffffffffffffffffffffffffffffffffffff166108a4611010565b73ffffffffffffffffffffffffffffffffffffffff16146108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f190612950565b60405180910390fd5b801515600760009054906101000a900460ff1615150361094f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610946906129bc565b60405180910390fd5b80600760006101000a81548160ff0219169083151502179055507f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e8816040516109989190612501565b60405180910390a150565b600080695915a68d88da6a080000036109bb57600080fd5b695915a68d88da6a080000905090565b600a81565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b095781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b0191906129dc565b925050819055505b610b148484846115ae565b90509392505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080695915a68d88da6a08000003610b8b57600080fd5b6009905090565b610b9a6115a6565b73ffffffffffffffffffffffffffffffffffffffff16610bb8611010565b73ffffffffffffffffffffffffffffffffffffffff1614610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0590612950565b60405180910390fd5b801515600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9790612a5c565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b7645138282604051610dd6929190612a7c565b60405180910390a15050565b695915a68d88da6a08000081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e6c6115a6565b73ffffffffffffffffffffffffffffffffffffffff16610e8a611010565b73ffffffffffffffffffffffffffffffffffffffff1614610ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed790612950565b60405180910390fd5b610eea600061199d565b565b6000610ef6611010565b905090565b610f036115a6565b73ffffffffffffffffffffffffffffffffffffffff16610f21611010565b73ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90612950565b60405180910390fd5b600960149054906101000a900460ff1615610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbe90612af1565b60405180910390fd5b6001600960146101000a81548160ff0219169083151502179055507fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686860405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600c81526020017f4461646479446f6765322e300000000000000000000000000000000000000000815250905090565b60006110833384846115ae565b506001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110bc6115a6565b73ffffffffffffffffffffffffffffffffffffffff166110da611010565b73ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790612950565b60405180910390fd5b80600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb074145dac98cbf04c5e3a6d58501e8e3aa6eb107008ec598af2309ae5179dfe816040516111a09190612497565b60405180910390a150565b6111b36115a6565b73ffffffffffffffffffffffffffffffffffffffff166111d1611010565b73ffffffffffffffffffffffffffffffffffffffff1614611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e90612950565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f03b62011431502c791d443ee6149c9ec9b43632aeb5eb55c621104c128fe02f7816040516112ae9190612497565b60405180910390a150565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a81565b6113536115a6565b73ffffffffffffffffffffffffffffffffffffffff16611371611010565b73ffffffffffffffffffffffffffffffffffffffff16146113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be90612950565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90612b83565b60405180910390fd5b61143f8161199d565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890612bef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790612bef565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600033905090565b60008060019050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161b90612c81565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a90612d13565b60405180910390fd5b600083116116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90612da5565b60405180910390fd5b6116e08585611a61565b1561173557600960149054906101000a900460ff16611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b90612e11565b60405180910390fd5b5b61173f8585611c7c565b80156117585750600960159054906101000a900460ff16155b801561176a57506117698585611d2e565b5b156117a657600061177a30610e1b565b9050611388695915a68d88da6a08000061179491906128d3565b81106117a4576117a381611df9565b5b505b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118475750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561185157600090505b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118a091906129dc565b925050819055506000816118b457836118d3565b6118d2866118c28888612271565b6118cc8989611c7c565b87612323565b5b905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119249190612e31565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161198891906124cb565b60405180910390a36001925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080611a6c611010565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ada5750611aaa611010565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b195750611ae9611010565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b6f5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bc55750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bff575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c385750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c7057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d225750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b600080600760009054906101000a900460ff168015611d975750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ded5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b6001600960156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e3157611e30612e65565b5b604051908082528060200260200182016040528015611e5f5781602001602082028036833780820191505090505b5090503081600081518110611e7757611e76612e94565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f429190612ed8565b81600181518110611f5657611f55612e94565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612119577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217d959493929190612ffe565b600060405180830381600087803b15801561219757600080fd5b505af19250505080156121a8575060015b6121b25750612253565b60008047111561225057600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476188b89060405161220690613089565b600060405180830381858888f193505050503d8060008114612244576040519150601f19603f3d011682016040523d82523d6000602084013e612249565b606091505b5050809150505b50505b6000600960156101000a81548160ff02191690831515021790555050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123175750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508091505092915050565b600080841561233557600a905061234a565b831561234457600a9050612349565b600090505b5b6000810361235b578291505061244e565b60006103e8828561236c919061309e565b61237691906128d3565b9050600081111561243d5780600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123d09190612e31565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161243491906124cb565b60405180910390a35b808461244991906129dc565b925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061248182612456565b9050919050565b61249181612476565b82525050565b60006020820190506124ac6000830184612488565b92915050565b6000819050919050565b6124c5816124b2565b82525050565b60006020820190506124e060008301846124bc565b92915050565b60008115159050919050565b6124fb816124e6565b82525050565b600060208201905061251660008301846124f2565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561255657808201518184015260208101905061253b565b60008484015250505050565b6000601f19601f8301169050919050565b600061257e8261251c565b6125888185612527565b9350612598818560208601612538565b6125a181612562565b840191505092915050565b600060208201905081810360008301526125c68184612573565b905092915050565b600080fd5b6125dc81612476565b81146125e757600080fd5b50565b6000813590506125f9816125d3565b92915050565b612608816124b2565b811461261357600080fd5b50565b600081359050612625816125ff565b92915050565b60008060408385031215612642576126416125ce565b5b6000612650858286016125ea565b925050602061266185828601612616565b9150509250929050565b612674816124e6565b811461267f57600080fd5b50565b6000813590506126918161266b565b92915050565b600080604083850312156126ae576126ad6125ce565b5b60006126bc858286016125ea565b92505060206126cd85828601612682565b9150509250929050565b6000602082840312156126ed576126ec6125ce565b5b60006126fb84828501612682565b91505092915050565b60008060006060848603121561271d5761271c6125ce565b5b600061272b868287016125ea565b935050602061273c868287016125ea565b925050604061274d86828701612616565b9150509250925092565b60006020828403121561276d5761276c6125ce565b5b600061277b848285016125ea565b91505092915050565b600060ff82169050919050565b61279a81612784565b82525050565b60006020820190506127b56000830184612791565b92915050565b6000819050919050565b60006127e06127db6127d684612456565b6127bb565b612456565b9050919050565b60006127f2826127c5565b9050919050565b6000612804826127e7565b9050919050565b612814816127f9565b82525050565b600060208201905061282f600083018461280b565b92915050565b6000806040838503121561284c5761284b6125ce565b5b600061285a858286016125ea565b925050602061286b858286016125ea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128de826124b2565b91506128e9836124b2565b9250826128f9576128f8612875565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061293a602083612527565b915061294582612904565b602082019050919050565b600060208201905081810360008301526129698161292d565b9050919050565b7f426f6f6c206973207468652073616d6500000000000000000000000000000000600082015250565b60006129a6601083612527565b91506129b182612970565b602082019050919050565b600060208201905081810360008301526129d581612999565b9050919050565b60006129e7826124b2565b91506129f2836124b2565b9250828203905081811115612a0a57612a096128a4565b5b92915050565b7f53616d6520626f6f6c0000000000000000000000000000000000000000000000600082015250565b6000612a46600983612527565b9150612a5182612a10565b602082019050919050565b60006020820190508181036000830152612a7581612a39565b9050919050565b6000604082019050612a916000830185612488565b612a9e60208301846124f2565b9392505050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612adb601783612527565b9150612ae682612aa5565b602082019050919050565b60006020820190508181036000830152612b0a81612ace565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b6d602683612527565b9150612b7882612b11565b604082019050919050565b60006020820190508181036000830152612b9c81612b60565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000612bd9601383612527565b9150612be482612ba3565b602082019050919050565b60006020820190508181036000830152612c0881612bcc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c6b602383612527565b9150612c7682612c0f565b604082019050919050565b60006020820190508181036000830152612c9a81612c5e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cfd602583612527565b9150612d0882612ca1565b604082019050919050565b60006020820190508181036000830152612d2c81612cf0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d8f602983612527565b9150612d9a82612d33565b604082019050919050565b60006020820190508181036000830152612dbe81612d82565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b6000612dfb601683612527565b9150612e0682612dc5565b602082019050919050565b60006020820190508181036000830152612e2a81612dee565b9050919050565b6000612e3c826124b2565b9150612e47836124b2565b9250828201905080821115612e5f57612e5e6128a4565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612ed2816125d3565b92915050565b600060208284031215612eee57612eed6125ce565b5b6000612efc84828501612ec3565b91505092915050565b6000819050919050565b6000612f2a612f25612f2084612f05565b6127bb565b6124b2565b9050919050565b612f3a81612f0f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f7581612476565b82525050565b6000612f878383612f6c565b60208301905092915050565b6000602082019050919050565b6000612fab82612f40565b612fb58185612f4b565b9350612fc083612f5c565b8060005b83811015612ff1578151612fd88882612f7b565b9750612fe383612f93565b925050600181019050612fc4565b5085935050505092915050565b600060a08201905061301360008301886124bc565b6130206020830187612f31565b81810360408301526130328186612fa0565b90506130416060830185612488565b61304e60808301846124bc565b9695505050505050565b600081905092915050565b50565b6000613073600083613058565b915061307e82613063565b600082019050919050565b600061309482613066565b9150819050919050565b60006130a9826124b2565b91506130b4836124b2565b92508282026130c2816124b2565b915082820484148315176130d9576130d86128a4565b5b509291505056fea2646970667358221220611b4b8180f6d14f607039e855749b67344900d90b928f11a548a35bf87fcf5564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101d15760003560e01c806354de7bee116100f7578063a9059cbb11610095578063dc9d75b011610064578063dc9d75b014610663578063dd62ed3e1461068e578063e9451f5f146106cb578063f2fde38b146106f6576101d8565b8063a9059cbb146105a9578063c31c9c07146105e6578063c4ab12b514610611578063d5914dc01461063a576101d8565b8063893d20e8116100d1578063893d20e8146105115780638a8c523c1461053c5780638da5cb5b1461055357806395d89b411461057e576101d8565b806354de7bee1461049257806370a08231146104bd578063715018a6146104fa576101d8565b806318160ddd1161016f578063313ce5671161013e578063313ce567146103e85780633cd17c96146104135780633eaaf86b1461043c578063452ed4f114610467576101d8565b806318160ddd146103185780631dc369451461034357806323b872dd1461036e57806327889862146103ab576101d8565b806306fdde03116101ab57806306fdde031461025e578063095ea7b3146102895780630faba554146102c6578063111a60b0146102ef576101d8565b806303fd2a45146101dd5780630445b66714610208578063064a59d014610233576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f261071f565b6040516101ff9190612497565b60405180910390f35b34801561021457600080fd5b5061021d610725565b60405161022a91906124cb565b60405180910390f35b34801561023f57600080fd5b50610248610740565b6040516102559190612501565b60405180910390f35b34801561026a57600080fd5b50610273610753565b60405161028091906125ac565b60405180910390f35b34801561029557600080fd5b506102b060048036038101906102ab919061262b565b610790565b6040516102bd9190612501565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190612697565b6107a7565b005b3480156102fb57600080fd5b50610316600480360381019061031191906126d7565b61087e565b005b34801561032457600080fd5b5061032d6109a3565b60405161033a91906124cb565b60405180910390f35b34801561034f57600080fd5b506103586109cb565b60405161036591906124cb565b60405180910390f35b34801561037a57600080fd5b5061039560048036038101906103909190612704565b6109d0565b6040516103a29190612501565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190612757565b610b1d565b6040516103df9190612501565b60405180910390f35b3480156103f457600080fd5b506103fd610b73565b60405161040a91906127a0565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190612697565b610b92565b005b34801561044857600080fd5b50610451610de2565b60405161045e91906124cb565b60405180910390f35b34801561047357600080fd5b5061047c610df0565b6040516104899190612497565b60405180910390f35b34801561049e57600080fd5b506104a7610e16565b6040516104b491906124cb565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df9190612757565b610e1b565b6040516104f191906124cb565b60405180910390f35b34801561050657600080fd5b5061050f610e64565b005b34801561051d57600080fd5b50610526610eec565b6040516105339190612497565b60405180910390f35b34801561054857600080fd5b50610551610efb565b005b34801561055f57600080fd5b50610568611010565b6040516105759190612497565b60405180910390f35b34801561058a57600080fd5b50610593611039565b6040516105a091906125ac565b60405180910390f35b3480156105b557600080fd5b506105d060048036038101906105cb919061262b565b611076565b6040516105dd9190612501565b60405180910390f35b3480156105f257600080fd5b506105fb61108e565b604051610608919061281a565b60405180910390f35b34801561061d57600080fd5b5061063860048036038101906106339190612757565b6110b4565b005b34801561064657600080fd5b50610661600480360381019061065c9190612757565b6111ab565b005b34801561066f57600080fd5b506106786112b9565b60405161068591906124cb565b60405180910390f35b34801561069a57600080fd5b506106b560048036038101906106b09190612835565b6112bf565b6040516106c291906124cb565b60405180910390f35b3480156106d757600080fd5b506106e0611346565b6040516106ed91906124cb565b60405180910390f35b34801561070257600080fd5b5061071d60048036038101906107189190612757565b61134b565b005b61dead81565b611388695915a68d88da6a08000061073d91906128d3565b81565b600960149054906101000a900460ff1681565b60606040518060400160405280600d81526020017f4461646479446f676520322e3000000000000000000000000000000000000000815250905090565b600061079d338484611442565b6001905092915050565b6107af6115a6565b73ffffffffffffffffffffffffffffffffffffffff166107cd611010565b73ffffffffffffffffffffffffffffffffffffffff1614610823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081a90612950565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6108866115a6565b73ffffffffffffffffffffffffffffffffffffffff166108a4611010565b73ffffffffffffffffffffffffffffffffffffffff16146108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f190612950565b60405180910390fd5b801515600760009054906101000a900460ff1615150361094f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610946906129bc565b60405180910390fd5b80600760006101000a81548160ff0219169083151502179055507f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e8816040516109989190612501565b60405180910390a150565b600080695915a68d88da6a080000036109bb57600080fd5b695915a68d88da6a080000905090565b600a81565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b095781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b0191906129dc565b925050819055505b610b148484846115ae565b90509392505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080695915a68d88da6a08000003610b8b57600080fd5b6009905090565b610b9a6115a6565b73ffffffffffffffffffffffffffffffffffffffff16610bb8611010565b73ffffffffffffffffffffffffffffffffffffffff1614610c0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0590612950565b60405180910390fd5b801515600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610ca0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9790612a5c565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b7645138282604051610dd6929190612a7c565b60405180910390a15050565b695915a68d88da6a08000081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610e6c6115a6565b73ffffffffffffffffffffffffffffffffffffffff16610e8a611010565b73ffffffffffffffffffffffffffffffffffffffff1614610ee0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed790612950565b60405180910390fd5b610eea600061199d565b565b6000610ef6611010565b905090565b610f036115a6565b73ffffffffffffffffffffffffffffffffffffffff16610f21611010565b73ffffffffffffffffffffffffffffffffffffffff1614610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90612950565b60405180910390fd5b600960149054906101000a900460ff1615610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbe90612af1565b60405180910390fd5b6001600960146101000a81548160ff0219169083151502179055507fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686860405160405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600c81526020017f4461646479446f6765322e300000000000000000000000000000000000000000815250905090565b60006110833384846115ae565b506001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6110bc6115a6565b73ffffffffffffffffffffffffffffffffffffffff166110da611010565b73ffffffffffffffffffffffffffffffffffffffff1614611130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112790612950565b60405180910390fd5b80600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fb074145dac98cbf04c5e3a6d58501e8e3aa6eb107008ec598af2309ae5179dfe816040516111a09190612497565b60405180910390a150565b6111b36115a6565b73ffffffffffffffffffffffffffffffffffffffff166111d1611010565b73ffffffffffffffffffffffffffffffffffffffff1614611227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121e90612950565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f03b62011431502c791d443ee6149c9ec9b43632aeb5eb55c621104c128fe02f7816040516112ae9190612497565b60405180910390a150565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600a81565b6113536115a6565b73ffffffffffffffffffffffffffffffffffffffff16611371611010565b73ffffffffffffffffffffffffffffffffffffffff16146113c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113be90612950565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611436576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142d90612b83565b60405180910390fd5b61143f8161199d565b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a890612bef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611520576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151790612bef565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600033905090565b60008060019050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161b90612c81565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a90612d13565b60405180910390fd5b600083116116d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116cd90612da5565b60405180910390fd5b6116e08585611a61565b1561173557600960149054906101000a900460ff16611734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172b90612e11565b60405180910390fd5b5b61173f8585611c7c565b80156117585750600960159054906101000a900460ff16155b801561176a57506117698585611d2e565b5b156117a657600061177a30610e1b565b9050611388695915a68d88da6a08000061179491906128d3565b81106117a4576117a381611df9565b5b505b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118475750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561185157600090505b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118a091906129dc565b925050819055506000816118b457836118d3565b6118d2866118c28888612271565b6118cc8989611c7c565b87612323565b5b905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119249190612e31565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161198891906124cb565b60405180910390a36001925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080611a6c611010565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ada5750611aaa611010565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b195750611ae9611010565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b6f5750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bc55750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bff575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c385750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c7057503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d225750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b600080600760009054906101000a900460ff168015611d975750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ded5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b6001600960156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e3157611e30612e65565b5b604051908082528060200260200182016040528015611e5f5781602001602082028036833780820191505090505b5090503081600081518110611e7757611e76612e94565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f1e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f429190612ed8565b81600181518110611f5657611f55612e94565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612119577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217d959493929190612ffe565b600060405180830381600087803b15801561219757600080fd5b505af19250505080156121a8575060015b6121b25750612253565b60008047111561225057600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476188b89060405161220690613089565b600060405180830381858888f193505050503d8060008114612244576040519150601f19603f3d011682016040523d82523d6000602084013e612249565b606091505b5050809150505b50505b6000600960156101000a81548160ff02191690831515021790555050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123175750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508091505092915050565b600080841561233557600a905061234a565b831561234457600a9050612349565b600090505b5b6000810361235b578291505061244e565b60006103e8828561236c919061309e565b61237691906128d3565b9050600081111561243d5780600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123d09190612e31565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161243491906124cb565b60405180910390a35b808461244991906129dc565b925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061248182612456565b9050919050565b61249181612476565b82525050565b60006020820190506124ac6000830184612488565b92915050565b6000819050919050565b6124c5816124b2565b82525050565b60006020820190506124e060008301846124bc565b92915050565b60008115159050919050565b6124fb816124e6565b82525050565b600060208201905061251660008301846124f2565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561255657808201518184015260208101905061253b565b60008484015250505050565b6000601f19601f8301169050919050565b600061257e8261251c565b6125888185612527565b9350612598818560208601612538565b6125a181612562565b840191505092915050565b600060208201905081810360008301526125c68184612573565b905092915050565b600080fd5b6125dc81612476565b81146125e757600080fd5b50565b6000813590506125f9816125d3565b92915050565b612608816124b2565b811461261357600080fd5b50565b600081359050612625816125ff565b92915050565b60008060408385031215612642576126416125ce565b5b6000612650858286016125ea565b925050602061266185828601612616565b9150509250929050565b612674816124e6565b811461267f57600080fd5b50565b6000813590506126918161266b565b92915050565b600080604083850312156126ae576126ad6125ce565b5b60006126bc858286016125ea565b92505060206126cd85828601612682565b9150509250929050565b6000602082840312156126ed576126ec6125ce565b5b60006126fb84828501612682565b91505092915050565b60008060006060848603121561271d5761271c6125ce565b5b600061272b868287016125ea565b935050602061273c868287016125ea565b925050604061274d86828701612616565b9150509250925092565b60006020828403121561276d5761276c6125ce565b5b600061277b848285016125ea565b91505092915050565b600060ff82169050919050565b61279a81612784565b82525050565b60006020820190506127b56000830184612791565b92915050565b6000819050919050565b60006127e06127db6127d684612456565b6127bb565b612456565b9050919050565b60006127f2826127c5565b9050919050565b6000612804826127e7565b9050919050565b612814816127f9565b82525050565b600060208201905061282f600083018461280b565b92915050565b6000806040838503121561284c5761284b6125ce565b5b600061285a858286016125ea565b925050602061286b858286016125ea565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006128de826124b2565b91506128e9836124b2565b9250826128f9576128f8612875565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061293a602083612527565b915061294582612904565b602082019050919050565b600060208201905081810360008301526129698161292d565b9050919050565b7f426f6f6c206973207468652073616d6500000000000000000000000000000000600082015250565b60006129a6601083612527565b91506129b182612970565b602082019050919050565b600060208201905081810360008301526129d581612999565b9050919050565b60006129e7826124b2565b91506129f2836124b2565b9250828203905081811115612a0a57612a096128a4565b5b92915050565b7f53616d6520626f6f6c0000000000000000000000000000000000000000000000600082015250565b6000612a46600983612527565b9150612a5182612a10565b602082019050919050565b60006020820190508181036000830152612a7581612a39565b9050919050565b6000604082019050612a916000830185612488565b612a9e60208301846124f2565b9392505050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612adb601783612527565b9150612ae682612aa5565b602082019050919050565b60006020820190508181036000830152612b0a81612ace565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612b6d602683612527565b9150612b7882612b11565b604082019050919050565b60006020820190508181036000830152612b9c81612b60565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000612bd9601383612527565b9150612be482612ba3565b602082019050919050565b60006020820190508181036000830152612c0881612bcc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612c6b602383612527565b9150612c7682612c0f565b604082019050919050565b60006020820190508181036000830152612c9a81612c5e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cfd602583612527565b9150612d0882612ca1565b604082019050919050565b60006020820190508181036000830152612d2c81612cf0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d8f602983612527565b9150612d9a82612d33565b604082019050919050565b60006020820190508181036000830152612dbe81612d82565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b6000612dfb601683612527565b9150612e0682612dc5565b602082019050919050565b60006020820190508181036000830152612e2a81612dee565b9050919050565b6000612e3c826124b2565b9150612e47836124b2565b9250828201905080821115612e5f57612e5e6128a4565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612ed2816125d3565b92915050565b600060208284031215612eee57612eed6125ce565b5b6000612efc84828501612ec3565b91505092915050565b6000819050919050565b6000612f2a612f25612f2084612f05565b6127bb565b6124b2565b9050919050565b612f3a81612f0f565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612f7581612476565b82525050565b6000612f878383612f6c565b60208301905092915050565b6000602082019050919050565b6000612fab82612f40565b612fb58185612f4b565b9350612fc083612f5c565b8060005b83811015612ff1578151612fd88882612f7b565b9750612fe383612f93565b925050600181019050612fc4565b5085935050505092915050565b600060a08201905061301360008301886124bc565b6130206020830187612f31565b81810360408301526130328186612fa0565b90506130416060830185612488565b61304e60808301846124bc565b9695505050505050565b600081905092915050565b50565b6000613073600083613058565b915061307e82613063565b600082019050919050565b600061309482613066565b9150819050919050565b60006130a9826124b2565b91506130b4836124b2565b92508282026130c2816124b2565b915082820484148315176130d9576130d86128a4565b5b509291505056fea2646970667358221220611b4b8180f6d14f607039e855749b67344900d90b928f11a548a35bf87fcf5564736f6c63430008130033

Deployed Bytecode Sourcemap

4873:9172:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6703:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6122:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6811:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5274:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8661:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9536:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10698:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4930:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6189:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9107:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9419:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5061:117;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13485:341;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6049:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6783:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6274:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5585:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;850:94;;;;;;;;;;;;;:::i;:::-;;5360:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13838:198;;;;;;;;;;;;;:::i;:::-;;627:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5184:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8484:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6517:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11965:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10553:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6320:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5446:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6231:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;952:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6703:73;6734:42;6703:73;:::o;6122:60::-;6177:5;6088:27;6162:20;;;;:::i;:::-;6122:60;:::o;6811:36::-;;;;;;;;;;;;;:::o;5274:80::-;5322:13;5346:5;;;;;;;;;;;;;;;;;5339:12;;5274:80;:::o;8661:161::-;8738:4;8755:37;8764:10;8776:7;8785:6;8755:8;:37::i;:::-;8810:4;8803:11;;8661:161;;;;:::o;9536:116::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9637:7:::1;9619:6;:15;9626:7;9619:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;9536:116:::0;;:::o;10698:196::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10790:5:::1;10775:20;;:11;;;;;;;;;;;:20;;::::0;10767:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10840:5;10826:11;;:19;;;;;;;;;;;;;;;;;;10861:25;10880:5;10861:25;;;;;;:::i;:::-;;;;;;;;10698:196:::0;:::o;4930:125::-;4985:7;5016:1;6088:27;5000:17;4996:36;;5021:8;;;4996:36;6088:27;5033:19;;4930:125;:::o;6189:35::-;6222:2;6189:35;:::o;9107:306::-;9207:4;9263:17;9228:11;:19;9240:6;9228:19;;;;;;;;;;;;;;;:31;9248:10;9228:31;;;;;;;;;;;;;;;;:52;9224:126;;9332:6;9297:11;:19;9309:6;9297:19;;;;;;;;;;;;;;;:31;9317:10;9297:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;9224:126;9369:36;9379:6;9387:9;9398:6;9369:9;:36::i;:::-;9362:43;;9107:306;;;;;:::o;9419:109::-;9481:4;9505:6;:15;9512:7;9505:15;;;;;;;;;;;;;;;;;;;;;;;;;9498:22;;9419:109;;;:::o;5061:117::-;5113:5;5142:1;6088:27;5126:17;5122:36;;5147:8;;;5122:36;6695:1;5159:16;;5061:117;:::o;13485:341::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13612:5:::1;13583:34;;:16;:25;13600:7;13583:25;;;;;;;;;;;;;;;;;;;;;;;;;:34;;::::0;13575:55:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13673:5;13645:16;:25;13662:7;13645:25;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;13711:5;13693:6;:15;13700:7;13693:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;13755:5;13731:12;:21;13744:7;13731:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13780:34;13799:7;13808:5;13780:34;;;;;;;:::i;:::-;;;;;;;;13485:341:::0;;:::o;6049:66::-;6088:27;6049:66;:::o;6783:21::-;;;;;;;;;;;;;:::o;6274:39::-;6312:1;6274:39;:::o;5585:117::-;5651:7;5678;:16;5686:7;5678:16;;;;;;;;;;;;;;;;5671:23;;5585:117;;;:::o;850:94::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;915:21:::1;933:1;915:9;:21::i;:::-;850:94::o:0;5360:80::-;5412:7;5430;:5;:7::i;:::-;5423:14;;5360:80;:::o;13838:198::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13906:16:::1;;;;;;;;;;;13905:17;13897:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;13984:4;13965:16;;:23;;;;;;;;;;;;;;;;;;14008:16;;;;;;;;;;13838:198::o:0;627:87::-;673:7;700:6;;;;;;;;;;;693:13;;627:87;:::o;5184:84::-;5234:13;5258:7;;;;;;;;;;;;;;;;;5251:14;;5184:84;:::o;8484:165::-;8562:4;8579:40;8589:10;8601:9;8612:6;8579:9;:40::i;:::-;;8637:4;8630:11;;8484:165;;;;:::o;6517:27::-;;;;;;;;;;;;;:::o;11965:158::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12064:9:::1;12037:16;;:37;;;;;;;;;;;;;;;;;;12090:25;12105:9;12090:25;;;;;;:::i;:::-;;;;;;;;11965:158:::0;:::o;10553:137::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10642:4:::1;10622:8;:17;10631:7;10622:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;10662:20;10674:7;10662:20;;;;;;:::i;:::-;;;;;;;;10553:137:::0;:::o;6320:47::-;6362:5;6320:47;:::o;5446:133::-;5530:7;5548:11;:19;5560:6;5548:19;;;;;;;;;;;;;;;:28;5568:7;5548:28;;;;;;;;;;;;;;;;5541:35;;5446:133;;;;:::o;6231:36::-;6265:2;6231:36;:::o;952:192::-;773:12;:10;:12::i;:::-;762:23;;:7;:5;:7::i;:::-;:23;;;754:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1061:1:::1;1041:22;;:8;:22;;::::0;1033:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1117:19;1127:8;1117:9;:19::i;:::-;952:192:::0;:::o;8834:261::-;8947:1;8929:20;;:6;:20;;;8921:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:1;8992:21;;:7;:21;;;8984:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;9081:6;9050:11;:19;9062:6;9050:19;;;;;;;;;;;;;;;:28;9070:7;9050:28;;;;;;;;;;;;;;;:37;;;;8834:261;;;:::o;147:107::-;192:15;235:10;220:26;;147:107;:::o;10902:1055::-;10982:4;10999:12;11014:4;10999:19;;11051:1;11037:16;;:2;:16;;;11029:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11128:1;11112:18;;:4;:18;;;11104:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11200:1;11191:6;:10;11183:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11264:25;11281:4;11286:2;11264:16;:25::i;:::-;11260:108;;;11314:16;;;;;;;;;;;11306:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11260:108;11385:17;11393:4;11399:2;11385:7;:17::i;:::-;:29;;;;;11408:6;;;;;;;;;;;11407:7;11385:29;:50;;;;;11418:17;11426:4;11432:2;11418:7;:17::i;:::-;11385:50;11382:232;;;11452:28;11483:24;11501:4;11483:9;:24::i;:::-;11452:55;;6177:5;6088:27;6162:20;;;;:::i;:::-;11525;:37;11522:81;;11566:34;11579:20;11566:12;:34::i;:::-;11522:81;11437:177;11382:232;11630:6;:12;11637:4;11630:12;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;11646:6;:10;11653:2;11646:10;;;;;;;;;;;;;;;;;;;;;;;;;11630:26;11626:73;;;11682:5;11672:15;;11626:73;11728:6;11711:7;:13;11719:4;11711:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;11736:22;11762:7;11761:81;;11836:6;11761:81;;;11773:60;11783:4;11789:16;11796:4;11802:2;11789:6;:16::i;:::-;11807:17;11815:4;11821:2;11807:7;:17::i;:::-;11826:6;11773:9;:60::i;:::-;11761:81;11736:106;;11868:14;11853:7;:11;11861:2;11853:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;11904:2;11889:34;;11898:4;11889:34;;;11908:14;11889:34;;;;;;:::i;:::-;;;;;;;;11943:4;11936:11;;;;10902:1055;;;;;:::o;1152:173::-;1208:16;1227:6;;;;;;;;;;;1208:25;;1253:8;1244:6;;:17;;;;;;;;;;;;;;;;;;1308:8;1277:40;;1298:8;1277:40;;;;;;;;;;;;1197:128;1152:173;:::o;9660:338::-;9735:4;9754:14;9778:7;:5;:7::i;:::-;9771:14;;:3;:14;;;;:45;;;;;9809:7;:5;:7::i;:::-;9802:14;;:3;:14;;;;9771:45;:70;;;;;9834:7;:5;:7::i;:::-;9820:21;;:10;:21;;;;9771:70;:105;;;;;9859:12;:17;9872:3;9859:17;;;;;;;;;;;;;;;;;;;;;;;;;9858:18;9771:105;:128;;;;;9882:12;:17;9895:3;9882:17;;;;;;;;;;;;;;;;;;;;;;;;;9881:18;9771:128;:143;;;;;6734:42;9903:11;;:3;:11;;;;9771:143;:164;;;;;9933:1;9918:17;;:3;:17;;;;9771:164;:188;;;;;9954:4;9939:20;;:3;:20;;;;9771:188;9754:205;;9981:9;9974:16;;;9660:338;;;;:::o;10175:165::-;10241:4;10259:13;10275:8;:13;10284:3;10275:13;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;10293:8;:13;10302:3;10293:13;;;;;;;;;;;;;;;;;;;;;;;;;10292:14;10275:31;10259:47;;10324:8;10317:15;;;10175:165;;;;:::o;10349:196::-;10415:4;10432:12;10447:11;;;;;;;;;;;:37;;;;;10463:16;:21;10480:3;10463:21;;;;;;;;;;;;;;;;;;;;;;;;;10462:22;10447:37;:63;;;;;10489:16;:21;10506:3;10489:21;;;;;;;;;;;;;;;;;;;;;;;;;10488:22;10447:63;10432:78;;10530:7;10523:14;;;10349:196;;;;:::o;12671:802::-;6926:4;6917:6;;:13;;;;;;;;;;;;;;;;;;12764:21:::1;12802:1;12788:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12764:40;;12833:4;12815;12820:1;12815:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12859:10;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12849:4;12854:1;12849:7;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12944:17;12893:11;:26;12913:4;12893:26;;;;;;;;;;;;;;;:47;12928:10;;;;;;;;;;;12893:47;;;;;;;;;;;;;;;;:68;12889:168;;13028:17;12978:11;:26;12998:4;12978:26;;;;;;;;;;;;;;;:47;13013:10;;;;;;;;;;;12978:47;;;;;;;;;;;;;;;:67;;;;12889:168;13073:10;;;;;;;;;;;:61;;;13149:20;13184:1;13200:4;13227;13247:15;13073:200;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;13069:247;;13298:7;;;13069:247;13326:12;13378:1:::0;13354:21:::1;:25;13351:113;;;13395:16;;;;;;;;;;;:21;;13424;13452:5;13395:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13382:80;;;;;13351:113;12743:730;;6941:1;6962:5:::0;6953:6;;:14;;;;;;;;;;;;;;;;;;12671:802;:::o;10006:161::-;10071:4;10088:12;10104:8;:13;10113:3;10104:13;;;;;;;;;;;;;;;;;;;;;;;;;10103:14;:31;;;;;10121:8;:13;10130:3;10121:13;;;;;;;;;;;;;;;;;;;;;;;;;10103:31;10088:46;;10152:7;10145:14;;;10006:161;;;;:::o;12133:530::-;12225:7;12245:11;12271:5;12267:84;;;6222:2;12279:12;;12267:84;;;12303:6;12299:52;;;6265:2;12312:13;;12299:52;;;6312:1;12334:17;;12299:52;12267:84;12374:1;12367:3;:8;12363:28;;12385:6;12378:13;;;;;12363:28;12402:17;6362:5;12431:3;12422:6;:12;;;;:::i;:::-;:30;;;;:::i;:::-;12402:50;;12479:1;12467:9;:13;12463:157;;;12525:9;12499:7;:22;12515:4;12499:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;12577:4;12554:40;;12563:4;12554:40;;;12584:9;12554:40;;;;;;:::i;:::-;;;;;;;;12463:157;12646:9;12637:6;:18;;;;:::i;:::-;12630:25;;;;12133:530;;;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:77::-;630:7;659:5;648:16;;593:77;;;:::o;676:118::-;763:24;781:5;763:24;:::i;:::-;758:3;751:37;676:118;;:::o;800:222::-;893:4;931:2;920:9;916:18;908:26;;944:71;1012:1;1001:9;997:17;988:6;944:71;:::i;:::-;800:222;;;;:::o;1028:90::-;1062:7;1105:5;1098:13;1091:21;1080:32;;1028:90;;;:::o;1124:109::-;1205:21;1220:5;1205:21;:::i;:::-;1200:3;1193:34;1124:109;;:::o;1239:210::-;1326:4;1364:2;1353:9;1349:18;1341:26;;1377:65;1439:1;1428:9;1424:17;1415:6;1377:65;:::i;:::-;1239:210;;;;:::o;1455:99::-;1507:6;1541:5;1535:12;1525:22;;1455:99;;;:::o;1560:169::-;1644:11;1678:6;1673:3;1666:19;1718:4;1713:3;1709:14;1694:29;;1560:169;;;;:::o;1735:246::-;1816:1;1826:113;1840:6;1837:1;1834:13;1826:113;;;1925:1;1920:3;1916:11;1910:18;1906:1;1901:3;1897:11;1890:39;1862:2;1859:1;1855:10;1850:15;;1826:113;;;1973:1;1964:6;1959:3;1955:16;1948:27;1797:184;1735:246;;;:::o;1987:102::-;2028:6;2079:2;2075:7;2070:2;2063:5;2059:14;2055:28;2045:38;;1987:102;;;:::o;2095:377::-;2183:3;2211:39;2244:5;2211:39;:::i;:::-;2266:71;2330:6;2325:3;2266:71;:::i;:::-;2259:78;;2346:65;2404:6;2399:3;2392:4;2385:5;2381:16;2346:65;:::i;:::-;2436:29;2458:6;2436:29;:::i;:::-;2431:3;2427:39;2420:46;;2187:285;2095:377;;;;:::o;2478:313::-;2591:4;2629:2;2618:9;2614:18;2606:26;;2678:9;2672:4;2668:20;2664:1;2653:9;2649:17;2642:47;2706:78;2779:4;2770:6;2706:78;:::i;:::-;2698:86;;2478:313;;;;:::o;2878:117::-;2987:1;2984;2977:12;3124:122;3197:24;3215:5;3197:24;:::i;:::-;3190:5;3187:35;3177:63;;3236:1;3233;3226:12;3177:63;3124:122;:::o;3252:139::-;3298:5;3336:6;3323:20;3314:29;;3352:33;3379:5;3352:33;:::i;:::-;3252:139;;;;:::o;3397:122::-;3470:24;3488:5;3470:24;:::i;:::-;3463:5;3460:35;3450:63;;3509:1;3506;3499:12;3450:63;3397:122;:::o;3525:139::-;3571:5;3609:6;3596:20;3587:29;;3625:33;3652:5;3625:33;:::i;:::-;3525:139;;;;:::o;3670:474::-;3738:6;3746;3795:2;3783:9;3774:7;3770:23;3766:32;3763:119;;;3801:79;;:::i;:::-;3763:119;3921:1;3946:53;3991:7;3982:6;3971:9;3967:22;3946:53;:::i;:::-;3936:63;;3892:117;4048:2;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4019:118;3670:474;;;;;:::o;4150:116::-;4220:21;4235:5;4220:21;:::i;:::-;4213:5;4210:32;4200:60;;4256:1;4253;4246:12;4200:60;4150:116;:::o;4272:133::-;4315:5;4353:6;4340:20;4331:29;;4369:30;4393:5;4369:30;:::i;:::-;4272:133;;;;:::o;4411:468::-;4476:6;4484;4533:2;4521:9;4512:7;4508:23;4504:32;4501:119;;;4539:79;;:::i;:::-;4501:119;4659:1;4684:53;4729:7;4720:6;4709:9;4705:22;4684:53;:::i;:::-;4674:63;;4630:117;4786:2;4812:50;4854:7;4845:6;4834:9;4830:22;4812:50;:::i;:::-;4802:60;;4757:115;4411:468;;;;;:::o;4885:323::-;4941:6;4990:2;4978:9;4969:7;4965:23;4961:32;4958:119;;;4996:79;;:::i;:::-;4958:119;5116:1;5141:50;5183:7;5174:6;5163:9;5159:22;5141:50;:::i;:::-;5131:60;;5087:114;4885:323;;;;:::o;5214:619::-;5291:6;5299;5307;5356:2;5344:9;5335:7;5331:23;5327:32;5324:119;;;5362:79;;:::i;:::-;5324:119;5482:1;5507:53;5552:7;5543:6;5532:9;5528:22;5507:53;:::i;:::-;5497:63;;5453:117;5609:2;5635:53;5680:7;5671:6;5660:9;5656:22;5635:53;:::i;:::-;5625:63;;5580:118;5737:2;5763:53;5808:7;5799:6;5788:9;5784:22;5763:53;:::i;:::-;5753:63;;5708:118;5214:619;;;;;:::o;5839:329::-;5898:6;5947:2;5935:9;5926:7;5922:23;5918:32;5915:119;;;5953:79;;:::i;:::-;5915:119;6073:1;6098:53;6143:7;6134:6;6123:9;6119:22;6098:53;:::i;:::-;6088:63;;6044:117;5839:329;;;;:::o;6174:86::-;6209:7;6249:4;6242:5;6238:16;6227:27;;6174:86;;;:::o;6266:112::-;6349:22;6365:5;6349:22;:::i;:::-;6344:3;6337:35;6266:112;;:::o;6384:214::-;6473:4;6511:2;6500:9;6496:18;6488:26;;6524:67;6588:1;6577:9;6573:17;6564:6;6524:67;:::i;:::-;6384:214;;;;:::o;6604:60::-;6632:3;6653:5;6646:12;;6604:60;;;:::o;6670:142::-;6720:9;6753:53;6771:34;6780:24;6798:5;6780:24;:::i;:::-;6771:34;:::i;:::-;6753:53;:::i;:::-;6740:66;;6670:142;;;:::o;6818:126::-;6868:9;6901:37;6932:5;6901:37;:::i;:::-;6888:50;;6818:126;;;:::o;6950:143::-;7017:9;7050:37;7081:5;7050:37;:::i;:::-;7037:50;;6950:143;;;:::o;7099:165::-;7203:54;7251:5;7203:54;:::i;:::-;7198:3;7191:67;7099:165;;:::o;7270:256::-;7380:4;7418:2;7407:9;7403:18;7395:26;;7431:88;7516:1;7505:9;7501:17;7492:6;7431:88;:::i;:::-;7270:256;;;;:::o;7532:474::-;7600:6;7608;7657:2;7645:9;7636:7;7632:23;7628:32;7625:119;;;7663:79;;:::i;:::-;7625:119;7783:1;7808:53;7853:7;7844:6;7833:9;7829:22;7808:53;:::i;:::-;7798:63;;7754:117;7910:2;7936:53;7981:7;7972:6;7961:9;7957:22;7936:53;:::i;:::-;7926:63;;7881:118;7532:474;;;;;:::o;8012:180::-;8060:77;8057:1;8050:88;8157:4;8154:1;8147:15;8181:4;8178:1;8171:15;8198:180;8246:77;8243:1;8236:88;8343:4;8340:1;8333:15;8367:4;8364:1;8357:15;8384:185;8424:1;8441:20;8459:1;8441:20;:::i;:::-;8436:25;;8475:20;8493:1;8475:20;:::i;:::-;8470:25;;8514:1;8504:35;;8519:18;;:::i;:::-;8504:35;8561:1;8558;8554:9;8549:14;;8384:185;;;;:::o;8575:182::-;8715:34;8711:1;8703:6;8699:14;8692:58;8575:182;:::o;8763:366::-;8905:3;8926:67;8990:2;8985:3;8926:67;:::i;:::-;8919:74;;9002:93;9091:3;9002:93;:::i;:::-;9120:2;9115:3;9111:12;9104:19;;8763:366;;;:::o;9135:419::-;9301:4;9339:2;9328:9;9324:18;9316:26;;9388:9;9382:4;9378:20;9374:1;9363:9;9359:17;9352:47;9416:131;9542:4;9416:131;:::i;:::-;9408:139;;9135:419;;;:::o;9560:166::-;9700:18;9696:1;9688:6;9684:14;9677:42;9560:166;:::o;9732:366::-;9874:3;9895:67;9959:2;9954:3;9895:67;:::i;:::-;9888:74;;9971:93;10060:3;9971:93;:::i;:::-;10089:2;10084:3;10080:12;10073:19;;9732:366;;;:::o;10104:419::-;10270:4;10308:2;10297:9;10293:18;10285:26;;10357:9;10351:4;10347:20;10343:1;10332:9;10328:17;10321:47;10385:131;10511:4;10385:131;:::i;:::-;10377:139;;10104:419;;;:::o;10529:194::-;10569:4;10589:20;10607:1;10589:20;:::i;:::-;10584:25;;10623:20;10641:1;10623:20;:::i;:::-;10618:25;;10667:1;10664;10660:9;10652:17;;10691:1;10685:4;10682:11;10679:37;;;10696:18;;:::i;:::-;10679:37;10529:194;;;;:::o;10729:159::-;10869:11;10865:1;10857:6;10853:14;10846:35;10729:159;:::o;10894:365::-;11036:3;11057:66;11121:1;11116:3;11057:66;:::i;:::-;11050:73;;11132:93;11221:3;11132:93;:::i;:::-;11250:2;11245:3;11241:12;11234:19;;10894:365;;;:::o;11265:419::-;11431:4;11469:2;11458:9;11454:18;11446:26;;11518:9;11512:4;11508:20;11504:1;11493:9;11489:17;11482:47;11546:131;11672:4;11546:131;:::i;:::-;11538:139;;11265:419;;;:::o;11690:320::-;11805:4;11843:2;11832:9;11828:18;11820:26;;11856:71;11924:1;11913:9;11909:17;11900:6;11856:71;:::i;:::-;11937:66;11999:2;11988:9;11984:18;11975:6;11937:66;:::i;:::-;11690:320;;;;;:::o;12016:173::-;12156:25;12152:1;12144:6;12140:14;12133:49;12016:173;:::o;12195:366::-;12337:3;12358:67;12422:2;12417:3;12358:67;:::i;:::-;12351:74;;12434:93;12523:3;12434:93;:::i;:::-;12552:2;12547:3;12543:12;12536:19;;12195:366;;;:::o;12567:419::-;12733:4;12771:2;12760:9;12756:18;12748:26;;12820:9;12814:4;12810:20;12806:1;12795:9;12791:17;12784:47;12848:131;12974:4;12848:131;:::i;:::-;12840:139;;12567:419;;;:::o;12992:225::-;13132:34;13128:1;13120:6;13116:14;13109:58;13201:8;13196:2;13188:6;13184:15;13177:33;12992:225;:::o;13223:366::-;13365:3;13386:67;13450:2;13445:3;13386:67;:::i;:::-;13379:74;;13462:93;13551:3;13462:93;:::i;:::-;13580:2;13575:3;13571:12;13564:19;;13223:366;;;:::o;13595:419::-;13761:4;13799:2;13788:9;13784:18;13776:26;;13848:9;13842:4;13838:20;13834:1;13823:9;13819:17;13812:47;13876:131;14002:4;13876:131;:::i;:::-;13868:139;;13595:419;;;:::o;14020:169::-;14160:21;14156:1;14148:6;14144:14;14137:45;14020:169;:::o;14195:366::-;14337:3;14358:67;14422:2;14417:3;14358:67;:::i;:::-;14351:74;;14434:93;14523:3;14434:93;:::i;:::-;14552:2;14547:3;14543:12;14536:19;;14195:366;;;:::o;14567:419::-;14733:4;14771:2;14760:9;14756:18;14748:26;;14820:9;14814:4;14810:20;14806:1;14795:9;14791:17;14784:47;14848:131;14974:4;14848:131;:::i;:::-;14840:139;;14567:419;;;:::o;14992:222::-;15132:34;15128:1;15120:6;15116:14;15109:58;15201:5;15196:2;15188:6;15184:15;15177:30;14992:222;:::o;15220:366::-;15362:3;15383:67;15447:2;15442:3;15383:67;:::i;:::-;15376:74;;15459:93;15548:3;15459:93;:::i;:::-;15577:2;15572:3;15568:12;15561:19;;15220:366;;;:::o;15592:419::-;15758:4;15796:2;15785:9;15781:18;15773:26;;15845:9;15839:4;15835:20;15831:1;15820:9;15816:17;15809:47;15873:131;15999:4;15873:131;:::i;:::-;15865:139;;15592:419;;;:::o;16017:224::-;16157:34;16153:1;16145:6;16141:14;16134:58;16226:7;16221:2;16213:6;16209:15;16202:32;16017:224;:::o;16247:366::-;16389:3;16410:67;16474:2;16469:3;16410:67;:::i;:::-;16403:74;;16486:93;16575:3;16486:93;:::i;:::-;16604:2;16599:3;16595:12;16588:19;;16247:366;;;:::o;16619:419::-;16785:4;16823:2;16812:9;16808:18;16800:26;;16872:9;16866:4;16862:20;16858:1;16847:9;16843:17;16836:47;16900:131;17026:4;16900:131;:::i;:::-;16892:139;;16619:419;;;:::o;17044:228::-;17184:34;17180:1;17172:6;17168:14;17161:58;17253:11;17248:2;17240:6;17236:15;17229:36;17044:228;:::o;17278:366::-;17420:3;17441:67;17505:2;17500:3;17441:67;:::i;:::-;17434:74;;17517:93;17606:3;17517:93;:::i;:::-;17635:2;17630:3;17626:12;17619:19;;17278:366;;;:::o;17650:419::-;17816:4;17854:2;17843:9;17839:18;17831:26;;17903:9;17897:4;17893:20;17889:1;17878:9;17874:17;17867:47;17931:131;18057:4;17931:131;:::i;:::-;17923:139;;17650:419;;;:::o;18075:172::-;18215:24;18211:1;18203:6;18199:14;18192:48;18075:172;:::o;18253:366::-;18395:3;18416:67;18480:2;18475:3;18416:67;:::i;:::-;18409:74;;18492:93;18581:3;18492:93;:::i;:::-;18610:2;18605:3;18601:12;18594:19;;18253:366;;;:::o;18625:419::-;18791:4;18829:2;18818:9;18814:18;18806:26;;18878:9;18872:4;18868:20;18864:1;18853:9;18849:17;18842:47;18906:131;19032:4;18906:131;:::i;:::-;18898:139;;18625:419;;;:::o;19050:191::-;19090:3;19109:20;19127:1;19109:20;:::i;:::-;19104:25;;19143:20;19161:1;19143:20;:::i;:::-;19138:25;;19186:1;19183;19179:9;19172:16;;19207:3;19204:1;19201:10;19198:36;;;19214:18;;:::i;:::-;19198:36;19050:191;;;;:::o;19247:180::-;19295:77;19292:1;19285:88;19392:4;19389:1;19382:15;19416:4;19413:1;19406:15;19433:180;19481:77;19478:1;19471:88;19578:4;19575:1;19568:15;19602:4;19599:1;19592:15;19619:143;19676:5;19707:6;19701:13;19692:22;;19723:33;19750:5;19723:33;:::i;:::-;19619:143;;;;:::o;19768:351::-;19838:6;19887:2;19875:9;19866:7;19862:23;19858:32;19855:119;;;19893:79;;:::i;:::-;19855:119;20013:1;20038:64;20094:7;20085:6;20074:9;20070:22;20038:64;:::i;:::-;20028:74;;19984:128;19768:351;;;;:::o;20125:85::-;20170:7;20199:5;20188:16;;20125:85;;;:::o;20216:158::-;20274:9;20307:61;20325:42;20334:32;20360:5;20334:32;:::i;:::-;20325:42;:::i;:::-;20307:61;:::i;:::-;20294:74;;20216:158;;;:::o;20380:147::-;20475:45;20514:5;20475:45;:::i;:::-;20470:3;20463:58;20380:147;;:::o;20533:114::-;20600:6;20634:5;20628:12;20618:22;;20533:114;;;:::o;20653:184::-;20752:11;20786:6;20781:3;20774:19;20826:4;20821:3;20817:14;20802:29;;20653:184;;;;:::o;20843:132::-;20910:4;20933:3;20925:11;;20963:4;20958:3;20954:14;20946:22;;20843:132;;;:::o;20981:108::-;21058:24;21076:5;21058:24;:::i;:::-;21053:3;21046:37;20981:108;;:::o;21095:179::-;21164:10;21185:46;21227:3;21219:6;21185:46;:::i;:::-;21263:4;21258:3;21254:14;21240:28;;21095:179;;;;:::o;21280:113::-;21350:4;21382;21377:3;21373:14;21365:22;;21280:113;;;:::o;21429:732::-;21548:3;21577:54;21625:5;21577:54;:::i;:::-;21647:86;21726:6;21721:3;21647:86;:::i;:::-;21640:93;;21757:56;21807:5;21757:56;:::i;:::-;21836:7;21867:1;21852:284;21877:6;21874:1;21871:13;21852:284;;;21953:6;21947:13;21980:63;22039:3;22024:13;21980:63;:::i;:::-;21973:70;;22066:60;22119:6;22066:60;:::i;:::-;22056:70;;21912:224;21899:1;21896;21892:9;21887:14;;21852:284;;;21856:14;22152:3;22145:10;;21553:608;;;21429:732;;;;:::o;22167:831::-;22430:4;22468:3;22457:9;22453:19;22445:27;;22482:71;22550:1;22539:9;22535:17;22526:6;22482:71;:::i;:::-;22563:80;22639:2;22628:9;22624:18;22615:6;22563:80;:::i;:::-;22690:9;22684:4;22680:20;22675:2;22664:9;22660:18;22653:48;22718:108;22821:4;22812:6;22718:108;:::i;:::-;22710:116;;22836:72;22904:2;22893:9;22889:18;22880:6;22836:72;:::i;:::-;22918:73;22986:3;22975:9;22971:19;22962:6;22918:73;:::i;:::-;22167:831;;;;;;;;:::o;23004:147::-;23105:11;23142:3;23127:18;;23004:147;;;;:::o;23157:114::-;;:::o;23277:398::-;23436:3;23457:83;23538:1;23533:3;23457:83;:::i;:::-;23450:90;;23549:93;23638:3;23549:93;:::i;:::-;23667:1;23662:3;23658:11;23651:18;;23277:398;;;:::o;23681:379::-;23865:3;23887:147;24030:3;23887:147;:::i;:::-;23880:154;;24051:3;24044:10;;23681:379;;;:::o;24066:410::-;24106:7;24129:20;24147:1;24129:20;:::i;:::-;24124:25;;24163:20;24181:1;24163:20;:::i;:::-;24158:25;;24218:1;24215;24211:9;24240:30;24258:11;24240:30;:::i;:::-;24229:41;;24419:1;24410:7;24406:15;24403:1;24400:22;24380:1;24373:9;24353:83;24330:139;;24449:18;;:::i;:::-;24330:139;24114:362;24066:410;;;;:::o

Swarm Source

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