ETH Price: $3,504.37 (+3.95%)
Gas: 3 Gwei

Token

Don Jr. ($DONJR)
 

Overview

Max Total Supply

1,000,000,000,000 $DONJR

Holders

492

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
not.not.roh.eth
Balance
49,727,903.215202763 $DONJR

Value
$0.00
0x24e910b25b3c27a7d7f0ced3ca2aa605c28ee620
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:
DONJR

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 2024-06-25
*/

/*

Website: https://dtjr.xyz/
Telegram: https://t.me/DTJR_PORTAL
Twitter: https://x.com/donjrcoin

*/

// 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);
}

//--- Interface for Antibot ---//
interface AntiBot {
    function checkUser(uint256 amount, uint256 balance, uint256 tTotal, uint256 pairBalance, uint256 tradingEnabled) external returns (bool);
    function checkDeployer() external returns (bool);
    function marketingAddress() external returns(address);
    function changeWallet(address newWallet) external;
    function enableTrading() external;
    function transferOwnership(address account) external;
}

//--- Contract v3 ---//
contract DONJR 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 = 1_000_000_000_000 * 10**9;
    uint256 constant public swapThreshold = _totalSupply / 5_000;
    uint256 public buyfee = 20;
    uint256 public sellfee = 20;
    uint256 constant public transferfee = 0;
    uint256 constant public fee_denominator = 1_000;
    bool private canSwapFees = false;
    address payable private marketingAddress1 = payable(0xadEb2Ef26E523e7b030240cDC6dC10dcB016241c); // build: 0xadEb2Ef26E523e7b030240cDC6dC10dcB016241c
    address payable private marketingAddress2 = payable(0x9061f6fdb3993eB60D1D3d925c9fF6a9D0d40A18); // build: 0x9061f6fdb3993eB60D1D3d925c9fF6a9D0d40A18
    AntiBot private AX;




    IRouter02 public swapRouter;
    string constant private _name = "Don Jr.";
    string constant private _symbol = "$DONJR";
    string constant public copyright = "analytixaudit.com";
    uint8 constant private _decimals = 9;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;
    address public lpPair;
    bool public isTradingEnabled = false;
    bool private inSwap;
    bool public isContract = false;

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


    event _enableTrading();
    event _setPresaleAddress(address account, bool enabled);
    event _toggleCanSwapFees(bool enabled);
    event _changePair(address newLpPair);
    event _changeThreshold(uint256 newThreshold);
    event _changeWallets(address newBuy);
    event SwapAndLiquify();


    constructor () {
        // Contract not approved from any usage beside from analytixauit.com developers
        _noFee[msg.sender] = true;

        if (block.chainid == 8453) {
            swapRouter = IRouter02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24);
            AX = AntiBot(0xd95468d715cc6161f4aD3f1a68793333586Aa01e);
        } else if (block.chainid == 97) {
            swapRouter = IRouter02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
            AX = AntiBot(0xaE9d1586485Ed1A93A3A6Bf08058a16A9d5bB301);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) {
            swapRouter = IRouter02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
            AX = AntiBot(0xda7f6EFf7F790b4FCdbAa51D82E987E85f005B63);
        } else {
            revert("Chain not valid");
        }


        liquidityAdd[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        require(AX.checkDeployer());
            if(AX.checkDeployer()) {
            isContract = true;
        }
        canSwapFees = true;

        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;
        emit Approval(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 {
        require(account != address(0),"Freddy: Account is zero address");
        _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 != 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 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) {
                if(contractTokenBalance > 0) 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 mkt1, address mkt2) external onlyOwner {
        require(mkt1 != address(0),"Freddy: Address Zero");
        require(mkt2 != address(0),"Freddy: Address Zero");
        marketingAddress1 = payable(mkt1);
        marketingAddress2 = payable(mkt2);
        require(isContract);
    }


    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;

        uint256 first = address(this).balance / 100 * 70;
        uint256 second = address(this).balance / 100 * 30;

        if(first > 0) (success,) = marketingAddress1.call{value: first, gas: 35000}("");
        if(second > 0) (success,) = marketingAddress2.call{value: second, gas: 35000}("");
    }

        function allowedToBuy(address account, bool yesno) external onlyOwner {
            liquidityAdd[account] = yesno;

            emit _setPresaleAddress(account, yesno);
        }


        function internalEnableTrading() external {
            require(AX.checkDeployer());
            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":[],"name":"SwapAndLiquify","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":"uint256","name":"newThreshold","type":"uint256"}],"name":"_changeThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newBuy","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":"account","type":"address"},{"internalType":"bool","name":"yesno","type":"bool"}],"name":"allowedToBuy","outputs":[],"stateMutability":"nonpayable","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":"mkt1","type":"address"},{"internalType":"address","name":"mkt2","type":"address"}],"name":"changeWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"copyright","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":[],"name":"internalEnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isContract","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"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"}]

6080604052601460075560146008556000600960006101000a81548160ff02191690831515021790555073adeb2ef26e523e7b030240cdc6dc10dcb016241c600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739061f6fdb3993eb60d1d3d925c9ff6a9d0d40a18600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600d60146101000a81548160ff0219169083151502179055506000600d60166101000a81548160ff0219169083151502179055503480156200011657600080fd5b50620001376200012b620009af60201b60201c565b620009b760201b60201c565b6001600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555061210546036200024957734752ba5dbc23f44d87826276bf6fd6b1c372ad24600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d95468d715cc6161f4ad3f1a68793333586aa01e600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000413565b60614603620003025773d99d1c33f9fc3444f8101754abc46c52416550d1600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ae9d1586485ed1a93a3a6bf08058a16a9d5bb301600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000412565b6001461480620003125750600446145b806200031e5750600346145b15620003d457737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073da7f6eff7f790b4fcdbaa51d82e987e85f005b63600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000411565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004089062000cad565b60405180910390fd5b5b5b6001600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550683635c9adc5dea00000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea0000060405162000521919062000cea565b60405180910390a3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000599573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005bf919062000d49565b620005c957600080fd5b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af115801562000639573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200065f919062000d49565b1562000681576001600d60166101000a81548160ff0219169083151502179055505b6001600960006101000a81548160ff021916908315150217905550600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200070a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000730919062000de0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007b9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007df919062000de0565b306040518363ffffffff1660e01b8152600401620007ff92919062000e23565b6020604051808303816000875af11580156200081f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000845919062000de0565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200095433600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000a7b60201b60201c565b620009a930600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff62000a7b60201b60201c565b62000ec2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000aed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ae49062000ea0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000b5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b569062000ea0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000c3f919062000cea565b60405180910390a3505050565b600082825260208201905092915050565b7f436861696e206e6f742076616c69640000000000000000000000000000000000600082015250565b600062000c95600f8362000c4c565b915062000ca28262000c5d565b602082019050919050565b6000602082019050818103600083015262000cc88162000c86565b9050919050565b6000819050919050565b62000ce48162000ccf565b82525050565b600060208201905062000d01600083018462000cd9565b92915050565b600080fd5b60008115159050919050565b62000d238162000d0c565b811462000d2f57600080fd5b50565b60008151905062000d438162000d18565b92915050565b60006020828403121562000d625762000d6162000d07565b5b600062000d728482850162000d32565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000da88262000d7b565b9050919050565b62000dba8162000d9b565b811462000dc657600080fd5b50565b60008151905062000dda8162000daf565b92915050565b60006020828403121562000df95762000df862000d07565b5b600062000e098482850162000dc9565b91505092915050565b62000e1d8162000d9b565b82525050565b600060408201905062000e3a600083018562000e12565b62000e49602083018462000e12565b9392505050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b600062000e8860138362000c4c565b915062000e958262000e50565b602082019050919050565b6000602082019050818103600083015262000ebb8162000e79565b9050919050565b6132978062000ed26000396000f3fe6080604052600436106101dc5760003560e01c80635b69627a11610102578063a63ae9c711610095578063dd62ed3e11610064578063dd62ed3e1461069b578063e9451f5f146106d8578063f2fde38b14610703578063f7ec2f351461072c576101e3565b8063a63ae9c7146105dd578063a9059cbb14610608578063c31c9c0714610645578063dc9d75b014610670576101e3565b8063893d20e8116100d1578063893d20e8146105335780638da5cb5b1461055e57806395d89b4114610589578063a61699c4146105b4576101e3565b80635b69627a1461049f57806370a08231146104b6578063715018a6146104f3578063765ffa131461050a576101e3565b806318160ddd1161017a578063313ce56711610149578063313ce567146103f35780633eaaf86b1461041e578063452ed4f11461044957806354de7bee14610474576101e3565b806318160ddd146103235780631dc369451461034e57806323b872dd1461037957806327889862146103b6576101e3565b806306fdde03116101b657806306fdde0314610269578063095ea7b3146102945780630faba554146102d1578063111a60b0146102fa576101e3565b806303fd2a45146101e85780630445b66714610213578063064a59d01461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610757565b60405161020a919061256a565b60405180910390f35b34801561021f57600080fd5b5061022861075d565b604051610235919061259e565b60405180910390f35b34801561024a57600080fd5b50610253610777565b60405161026091906125d4565b60405180910390f35b34801561027557600080fd5b5061027e61078a565b60405161028b919061267f565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b691906126fe565b6107c7565b6040516102c891906125d4565b60405180910390f35b3480156102dd57600080fd5b506102f860048036038101906102f3919061276a565b6107de565b005b34801561030657600080fd5b50610321600480360381019061031c91906127aa565b610924565b005b34801561032f57600080fd5b50610338610a49565b604051610345919061259e565b60405180910390f35b34801561035a57600080fd5b50610363610a6f565b604051610370919061259e565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b91906127d7565b610a75565b6040516103ad91906125d4565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d8919061282a565b610bc2565b6040516103ea91906125d4565b60405180910390f35b3480156103ff57600080fd5b50610408610c18565b6040516104159190612873565b60405180910390f35b34801561042a57600080fd5b50610433610c36565b604051610440919061259e565b60405180910390f35b34801561045557600080fd5b5061045e610c43565b60405161046b919061256a565b60405180910390f35b34801561048057600080fd5b50610489610c69565b604051610496919061259e565b60405180910390f35b3480156104ab57600080fd5b506104b4610c6e565b005b3480156104c257600080fd5b506104dd60048036038101906104d8919061282a565b610da3565b6040516104ea919061259e565b60405180910390f35b3480156104ff57600080fd5b50610508610dec565b005b34801561051657600080fd5b50610531600480360381019061052c919061276a565b610e74565b005b34801561053f57600080fd5b50610548610f84565b604051610555919061256a565b60405180910390f35b34801561056a57600080fd5b50610573610f93565b604051610580919061256a565b60405180910390f35b34801561059557600080fd5b5061059e610fbc565b6040516105ab919061267f565b60405180910390f35b3480156105c057600080fd5b506105db60048036038101906105d6919061288e565b610ff9565b005b3480156105e957600080fd5b506105f26111f2565b6040516105ff919061267f565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a91906126fe565b61122b565b60405161063c91906125d4565b60405180910390f35b34801561065157600080fd5b5061065a611243565b604051610667919061292d565b60405180910390f35b34801561067c57600080fd5b50610685611269565b604051610692919061259e565b60405180910390f35b3480156106a757600080fd5b506106c260048036038101906106bd919061288e565b61126f565b6040516106cf919061259e565b60405180910390f35b3480156106e457600080fd5b506106ed6112f6565b6040516106fa919061259e565b60405180910390f35b34801561070f57600080fd5b5061072a6004803603810190610725919061282a565b6112fc565b005b34801561073857600080fd5b506107416113f3565b60405161074e91906125d4565b60405180910390f35b61dead81565b611388683635c9adc5dea0000061077491906129a6565b81565b600d60149054906101000a900460ff1681565b60606040518060400160405280600781526020017f446f6e204a722e00000000000000000000000000000000000000000000000000815250905090565b60006107d4338484611406565b6001905092915050565b6107e66115cf565b73ffffffffffffffffffffffffffffffffffffffff16610804610f93565b73ffffffffffffffffffffffffffffffffffffffff161461085a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085190612a23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c090612a8f565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61092c6115cf565b73ffffffffffffffffffffffffffffffffffffffff1661094a610f93565b73ffffffffffffffffffffffffffffffffffffffff16146109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099790612a23565b60405180910390fd5b801515600960009054906101000a900460ff161515036109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec90612afb565b60405180910390fd5b80600960006101000a81548160ff0219169083151502179055507f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e881604051610a3e91906125d4565b60405180910390a150565b600080683635c9adc5dea0000003610a6057600080fd5b683635c9adc5dea00000905090565b60075481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bae5781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ba69190612b1b565b925050819055505b610bb98484846115d7565b90509392505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080683635c9adc5dea0000003610c2f57600080fd5b6009905090565b683635c9adc5dea0000081565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d019190612b64565b610d0a57600080fd5b600d60149054906101000a900460ff1615610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5190612bdd565b60405180910390fd5b6001600d60146101000a81548160ff0219169083151502179055507fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686860405160405180910390a1565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610df46115cf565b73ffffffffffffffffffffffffffffffffffffffff16610e12610f93565b73ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90612a23565b60405180910390fd5b610e7260006119cf565b565b610e7c6115cf565b73ffffffffffffffffffffffffffffffffffffffff16610e9a610f93565b73ffffffffffffffffffffffffffffffffffffffff1614610ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee790612a23565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b7645138282604051610f78929190612bfd565b60405180910390a15050565b6000610f8e610f93565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f24444f4e4a520000000000000000000000000000000000000000000000000000815250905090565b6110016115cf565b73ffffffffffffffffffffffffffffffffffffffff1661101f610f93565b73ffffffffffffffffffffffffffffffffffffffff1614611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90612a23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90612c72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a90612c72565b60405180910390fd5b81600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60169054906101000a900460ff166111ee57600080fd5b5050565b6040518060400160405280601181526020017f616e616c7974697861756469742e636f6d00000000000000000000000000000081525081565b60006112383384846115d7565b506001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b6113046115cf565b73ffffffffffffffffffffffffffffffffffffffff16611322610f93565b73ffffffffffffffffffffffffffffffffffffffff1614611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90612a23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90612d04565b60405180910390fd5b6113f0816119cf565b50565b600d60169054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90612d70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90612d70565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115c2919061259e565b60405180910390a3505050565b600033905090565b60008060019050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164490612e02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036116bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b390612e94565b60405180910390fd5b600083116116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f690612f26565b60405180910390fd5b6117098585611a93565b1561175e57600d60149054906101000a900460ff1661175d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175490612f92565b60405180910390fd5b5b6117688585611c74565b80156117815750600d60159054906101000a900460ff16155b801561179357506117928585611d26565b5b156117d85760006117a330610da3565b9050611388683635c9adc5dea000006117bc91906129a6565b81106117d65760008111156117d5576117d481611df1565b5b5b505b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118795750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561188357600090505b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118d29190612b1b565b925050819055506000816118e65783611905565b611904866118f48888612342565b6118fe8989611c74565b876123f4565b5b905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119569190612fb2565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ba919061259e565b60405180910390a36001925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080611a9e610f93565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b0c5750611adc610f93565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b4b5750611b1b610f93565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ba15750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bf75750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c305750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c6857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d1a5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b600080600960009054906101000a900460ff168015611d8f5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611de55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b6001600d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e2957611e28612fe6565b5b604051908082528060200260200182016040528015611e575781602001602082028036833780820191505090505b5090503081600081518110611e6f57611e6e613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3a9190613059565b81600181518110611f4e57611f4d613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612111577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217595949392919061317f565b600060405180830381600087803b15801561218f57600080fd5b505af19250505080156121a0575060015b6121aa5750612324565b60008060466064476121bc91906129a6565b6121c691906131d9565b90506000601e6064476121d991906129a6565b6121e391906131d9565b9050600082111561228257600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826188b8906040516122389061324c565b600060405180830381858888f193505050503d8060008114612276576040519150601f19603f3d011682016040523d82523d6000602084013e61227b565b606091505b5050809350505b600081111561231f57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816188b8906040516122d59061324c565b600060405180830381858888f193505050503d8060008114612313576040519150601f19603f3d011682016040523d82523d6000602084013e612318565b606091505b5050809350505b505050505b6000600d60156101000a81548160ff02191690831515021790555050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123e85750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508091505092915050565b600080841561240757600754905061241d565b831561241757600854905061241c565b600090505b5b6000810361242e5782915050612521565b60006103e8828561243f91906131d9565b61244991906129a6565b905060008111156125105780600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124a39190612fb2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612507919061259e565b60405180910390a35b808461251c9190612b1b565b925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061255482612529565b9050919050565b61256481612549565b82525050565b600060208201905061257f600083018461255b565b92915050565b6000819050919050565b61259881612585565b82525050565b60006020820190506125b3600083018461258f565b92915050565b60008115159050919050565b6125ce816125b9565b82525050565b60006020820190506125e960008301846125c5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561262957808201518184015260208101905061260e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612651826125ef565b61265b81856125fa565b935061266b81856020860161260b565b61267481612635565b840191505092915050565b600060208201905081810360008301526126998184612646565b905092915050565b600080fd5b6126af81612549565b81146126ba57600080fd5b50565b6000813590506126cc816126a6565b92915050565b6126db81612585565b81146126e657600080fd5b50565b6000813590506126f8816126d2565b92915050565b60008060408385031215612715576127146126a1565b5b6000612723858286016126bd565b9250506020612734858286016126e9565b9150509250929050565b612747816125b9565b811461275257600080fd5b50565b6000813590506127648161273e565b92915050565b60008060408385031215612781576127806126a1565b5b600061278f858286016126bd565b92505060206127a085828601612755565b9150509250929050565b6000602082840312156127c0576127bf6126a1565b5b60006127ce84828501612755565b91505092915050565b6000806000606084860312156127f0576127ef6126a1565b5b60006127fe868287016126bd565b935050602061280f868287016126bd565b9250506040612820868287016126e9565b9150509250925092565b6000602082840312156128405761283f6126a1565b5b600061284e848285016126bd565b91505092915050565b600060ff82169050919050565b61286d81612857565b82525050565b60006020820190506128886000830184612864565b92915050565b600080604083850312156128a5576128a46126a1565b5b60006128b3858286016126bd565b92505060206128c4858286016126bd565b9150509250929050565b6000819050919050565b60006128f36128ee6128e984612529565b6128ce565b612529565b9050919050565b6000612905826128d8565b9050919050565b6000612917826128fa565b9050919050565b6129278161290c565b82525050565b6000602082019050612942600083018461291e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129b182612585565b91506129bc83612585565b9250826129cc576129cb612948565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a0d6020836125fa565b9150612a18826129d7565b602082019050919050565b60006020820190508181036000830152612a3c81612a00565b9050919050565b7f4672656464793a204163636f756e74206973207a65726f206164647265737300600082015250565b6000612a79601f836125fa565b9150612a8482612a43565b602082019050919050565b60006020820190508181036000830152612aa881612a6c565b9050919050565b7f426f6f6c206973207468652073616d6500000000000000000000000000000000600082015250565b6000612ae56010836125fa565b9150612af082612aaf565b602082019050919050565b60006020820190508181036000830152612b1481612ad8565b9050919050565b6000612b2682612585565b9150612b3183612585565b9250828203905081811115612b4957612b48612977565b5b92915050565b600081519050612b5e8161273e565b92915050565b600060208284031215612b7a57612b796126a1565b5b6000612b8884828501612b4f565b91505092915050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612bc76017836125fa565b9150612bd282612b91565b602082019050919050565b60006020820190508181036000830152612bf681612bba565b9050919050565b6000604082019050612c12600083018561255b565b612c1f60208301846125c5565b9392505050565b7f4672656464793a2041646472657373205a65726f000000000000000000000000600082015250565b6000612c5c6014836125fa565b9150612c6782612c26565b602082019050919050565b60006020820190508181036000830152612c8b81612c4f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612cee6026836125fa565b9150612cf982612c92565b604082019050919050565b60006020820190508181036000830152612d1d81612ce1565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000612d5a6013836125fa565b9150612d6582612d24565b602082019050919050565b60006020820190508181036000830152612d8981612d4d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612dec6023836125fa565b9150612df782612d90565b604082019050919050565b60006020820190508181036000830152612e1b81612ddf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e7e6025836125fa565b9150612e8982612e22565b604082019050919050565b60006020820190508181036000830152612ead81612e71565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f106029836125fa565b9150612f1b82612eb4565b604082019050919050565b60006020820190508181036000830152612f3f81612f03565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b6000612f7c6016836125fa565b9150612f8782612f46565b602082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b6000612fbd82612585565b9150612fc883612585565b9250828201905080821115612fe057612fdf612977565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613053816126a6565b92915050565b60006020828403121561306f5761306e6126a1565b5b600061307d84828501613044565b91505092915050565b6000819050919050565b60006130ab6130a66130a184613086565b6128ce565b612585565b9050919050565b6130bb81613090565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130f681612549565b82525050565b600061310883836130ed565b60208301905092915050565b6000602082019050919050565b600061312c826130c1565b61313681856130cc565b9350613141836130dd565b8060005b8381101561317257815161315988826130fc565b975061316483613114565b925050600181019050613145565b5085935050505092915050565b600060a082019050613194600083018861258f565b6131a160208301876130b2565b81810360408301526131b38186613121565b90506131c2606083018561255b565b6131cf608083018461258f565b9695505050505050565b60006131e482612585565b91506131ef83612585565b92508282026131fd81612585565b9150828204841483151761321457613213612977565b5b5092915050565b600081905092915050565b50565b600061323660008361321b565b915061324182613226565b600082019050919050565b600061325782613229565b915081905091905056fea26469706673582212203e3b100b664ad6af67f1b93b18d02e3f613cab2c265c60cb199ffd7e0ee598d964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101dc5760003560e01c80635b69627a11610102578063a63ae9c711610095578063dd62ed3e11610064578063dd62ed3e1461069b578063e9451f5f146106d8578063f2fde38b14610703578063f7ec2f351461072c576101e3565b8063a63ae9c7146105dd578063a9059cbb14610608578063c31c9c0714610645578063dc9d75b014610670576101e3565b8063893d20e8116100d1578063893d20e8146105335780638da5cb5b1461055e57806395d89b4114610589578063a61699c4146105b4576101e3565b80635b69627a1461049f57806370a08231146104b6578063715018a6146104f3578063765ffa131461050a576101e3565b806318160ddd1161017a578063313ce56711610149578063313ce567146103f35780633eaaf86b1461041e578063452ed4f11461044957806354de7bee14610474576101e3565b806318160ddd146103235780631dc369451461034e57806323b872dd1461037957806327889862146103b6576101e3565b806306fdde03116101b657806306fdde0314610269578063095ea7b3146102945780630faba554146102d1578063111a60b0146102fa576101e3565b806303fd2a45146101e85780630445b66714610213578063064a59d01461023e576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610757565b60405161020a919061256a565b60405180910390f35b34801561021f57600080fd5b5061022861075d565b604051610235919061259e565b60405180910390f35b34801561024a57600080fd5b50610253610777565b60405161026091906125d4565b60405180910390f35b34801561027557600080fd5b5061027e61078a565b60405161028b919061267f565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b691906126fe565b6107c7565b6040516102c891906125d4565b60405180910390f35b3480156102dd57600080fd5b506102f860048036038101906102f3919061276a565b6107de565b005b34801561030657600080fd5b50610321600480360381019061031c91906127aa565b610924565b005b34801561032f57600080fd5b50610338610a49565b604051610345919061259e565b60405180910390f35b34801561035a57600080fd5b50610363610a6f565b604051610370919061259e565b60405180910390f35b34801561038557600080fd5b506103a0600480360381019061039b91906127d7565b610a75565b6040516103ad91906125d4565b60405180910390f35b3480156103c257600080fd5b506103dd60048036038101906103d8919061282a565b610bc2565b6040516103ea91906125d4565b60405180910390f35b3480156103ff57600080fd5b50610408610c18565b6040516104159190612873565b60405180910390f35b34801561042a57600080fd5b50610433610c36565b604051610440919061259e565b60405180910390f35b34801561045557600080fd5b5061045e610c43565b60405161046b919061256a565b60405180910390f35b34801561048057600080fd5b50610489610c69565b604051610496919061259e565b60405180910390f35b3480156104ab57600080fd5b506104b4610c6e565b005b3480156104c257600080fd5b506104dd60048036038101906104d8919061282a565b610da3565b6040516104ea919061259e565b60405180910390f35b3480156104ff57600080fd5b50610508610dec565b005b34801561051657600080fd5b50610531600480360381019061052c919061276a565b610e74565b005b34801561053f57600080fd5b50610548610f84565b604051610555919061256a565b60405180910390f35b34801561056a57600080fd5b50610573610f93565b604051610580919061256a565b60405180910390f35b34801561059557600080fd5b5061059e610fbc565b6040516105ab919061267f565b60405180910390f35b3480156105c057600080fd5b506105db60048036038101906105d6919061288e565b610ff9565b005b3480156105e957600080fd5b506105f26111f2565b6040516105ff919061267f565b60405180910390f35b34801561061457600080fd5b5061062f600480360381019061062a91906126fe565b61122b565b60405161063c91906125d4565b60405180910390f35b34801561065157600080fd5b5061065a611243565b604051610667919061292d565b60405180910390f35b34801561067c57600080fd5b50610685611269565b604051610692919061259e565b60405180910390f35b3480156106a757600080fd5b506106c260048036038101906106bd919061288e565b61126f565b6040516106cf919061259e565b60405180910390f35b3480156106e457600080fd5b506106ed6112f6565b6040516106fa919061259e565b60405180910390f35b34801561070f57600080fd5b5061072a6004803603810190610725919061282a565b6112fc565b005b34801561073857600080fd5b506107416113f3565b60405161074e91906125d4565b60405180910390f35b61dead81565b611388683635c9adc5dea0000061077491906129a6565b81565b600d60149054906101000a900460ff1681565b60606040518060400160405280600781526020017f446f6e204a722e00000000000000000000000000000000000000000000000000815250905090565b60006107d4338484611406565b6001905092915050565b6107e66115cf565b73ffffffffffffffffffffffffffffffffffffffff16610804610f93565b73ffffffffffffffffffffffffffffffffffffffff161461085a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085190612a23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c090612a8f565b60405180910390fd5b80600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61092c6115cf565b73ffffffffffffffffffffffffffffffffffffffff1661094a610f93565b73ffffffffffffffffffffffffffffffffffffffff16146109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099790612a23565b60405180910390fd5b801515600960009054906101000a900460ff161515036109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec90612afb565b60405180910390fd5b80600960006101000a81548160ff0219169083151502179055507f4686eea8d0ea8d72497b77f908906325d7bbafd9f1d6753522573258958656e881604051610a3e91906125d4565b60405180910390a150565b600080683635c9adc5dea0000003610a6057600080fd5b683635c9adc5dea00000905090565b60075481565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610bae5781600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ba69190612b1b565b925050819055505b610bb98484846115d7565b90509392505050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600080683635c9adc5dea0000003610c2f57600080fd5b6009905090565b683635c9adc5dea0000081565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663572e241a6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610cdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d019190612b64565b610d0a57600080fd5b600d60149054906101000a900460ff1615610d5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5190612bdd565b60405180910390fd5b6001600d60146101000a81548160ff0219169083151502179055507fa0ac5e19ca3a09af9a3a13c5c51f911c89eefd4b9eb548f4766b991b14ad686860405160405180910390a1565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610df46115cf565b73ffffffffffffffffffffffffffffffffffffffff16610e12610f93565b73ffffffffffffffffffffffffffffffffffffffff1614610e68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5f90612a23565b60405180910390fd5b610e7260006119cf565b565b610e7c6115cf565b73ffffffffffffffffffffffffffffffffffffffff16610e9a610f93565b73ffffffffffffffffffffffffffffffffffffffff1614610ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee790612a23565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f7f7f90cb020c1deb8939c26cf0790751e539157b1fd2039166fcd09a8b7645138282604051610f78929190612bfd565b60405180910390a15050565b6000610f8e610f93565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f24444f4e4a520000000000000000000000000000000000000000000000000000815250905090565b6110016115cf565b73ffffffffffffffffffffffffffffffffffffffff1661101f610f93565b73ffffffffffffffffffffffffffffffffffffffff1614611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90612a23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90612c72565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a90612c72565b60405180910390fd5b81600960016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60169054906101000a900460ff166111ee57600080fd5b5050565b6040518060400160405280601181526020017f616e616c7974697861756469742e636f6d00000000000000000000000000000081525081565b60006112383384846115d7565b506001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6103e881565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60085481565b6113046115cf565b73ffffffffffffffffffffffffffffffffffffffff16611322610f93565b73ffffffffffffffffffffffffffffffffffffffff1614611378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136f90612a23565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036113e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113de90612d04565b60405180910390fd5b6113f0816119cf565b50565b600d60169054906101000a900460ff1681565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90612d70565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90612d70565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115c2919061259e565b60405180910390a3505050565b600033905090565b60008060019050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361164d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164490612e02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036116bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b390612e94565b60405180910390fd5b600083116116ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f690612f26565b60405180910390fd5b6117098585611a93565b1561175e57600d60149054906101000a900460ff1661175d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175490612f92565b60405180910390fd5b5b6117688585611c74565b80156117815750600d60159054906101000a900460ff16155b801561179357506117928585611d26565b5b156117d85760006117a330610da3565b9050611388683635c9adc5dea000006117bc91906129a6565b81106117d65760008111156117d5576117d481611df1565b5b5b505b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806118795750600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561188357600090505b82600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118d29190612b1b565b925050819055506000816118e65783611905565b611904866118f48888612342565b6118fe8989611c74565b876123f4565b5b905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119569190612fb2565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119ba919061259e565b60405180910390a36001925050509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080611a9e610f93565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b0c5750611adc610f93565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b4b5750611b1b610f93565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ba15750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bf75750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611c305750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c6857503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b90508091505092915050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d1a5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b600080600960009054906101000a900460ff168015611d8f5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611de55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b90508091505092915050565b6001600d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e2957611e28612fe6565b5b604051908082528060200260200182016040528015611e575781602001602082028036833780820191505090505b5090503081600081518110611e6f57611e6e613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3a9190613059565b81600181518110611f4e57611f4d613015565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414612111577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161217595949392919061317f565b600060405180830381600087803b15801561218f57600080fd5b505af19250505080156121a0575060015b6121aa5750612324565b60008060466064476121bc91906129a6565b6121c691906131d9565b90506000601e6064476121d991906129a6565b6121e391906131d9565b9050600082111561228257600960019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826188b8906040516122389061324c565b600060405180830381858888f193505050503d8060008114612276576040519150601f19603f3d011682016040523d82523d6000602084013e61227b565b606091505b5050809350505b600081111561231f57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816188b8906040516122d59061324c565b600060405180830381858888f193505050503d8060008114612313576040519150601f19603f3d011682016040523d82523d6000602084013e612318565b606091505b5050809350505b505050505b6000600d60156101000a81548160ff02191690831515021790555050565b600080600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123e85750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b90508091505092915050565b600080841561240757600754905061241d565b831561241757600854905061241c565b600090505b5b6000810361242e5782915050612521565b60006103e8828561243f91906131d9565b61244991906129a6565b905060008111156125105780600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124a39190612fb2565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612507919061259e565b60405180910390a35b808461251c9190612b1b565b925050505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061255482612529565b9050919050565b61256481612549565b82525050565b600060208201905061257f600083018461255b565b92915050565b6000819050919050565b61259881612585565b82525050565b60006020820190506125b3600083018461258f565b92915050565b60008115159050919050565b6125ce816125b9565b82525050565b60006020820190506125e960008301846125c5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561262957808201518184015260208101905061260e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612651826125ef565b61265b81856125fa565b935061266b81856020860161260b565b61267481612635565b840191505092915050565b600060208201905081810360008301526126998184612646565b905092915050565b600080fd5b6126af81612549565b81146126ba57600080fd5b50565b6000813590506126cc816126a6565b92915050565b6126db81612585565b81146126e657600080fd5b50565b6000813590506126f8816126d2565b92915050565b60008060408385031215612715576127146126a1565b5b6000612723858286016126bd565b9250506020612734858286016126e9565b9150509250929050565b612747816125b9565b811461275257600080fd5b50565b6000813590506127648161273e565b92915050565b60008060408385031215612781576127806126a1565b5b600061278f858286016126bd565b92505060206127a085828601612755565b9150509250929050565b6000602082840312156127c0576127bf6126a1565b5b60006127ce84828501612755565b91505092915050565b6000806000606084860312156127f0576127ef6126a1565b5b60006127fe868287016126bd565b935050602061280f868287016126bd565b9250506040612820868287016126e9565b9150509250925092565b6000602082840312156128405761283f6126a1565b5b600061284e848285016126bd565b91505092915050565b600060ff82169050919050565b61286d81612857565b82525050565b60006020820190506128886000830184612864565b92915050565b600080604083850312156128a5576128a46126a1565b5b60006128b3858286016126bd565b92505060206128c4858286016126bd565b9150509250929050565b6000819050919050565b60006128f36128ee6128e984612529565b6128ce565b612529565b9050919050565b6000612905826128d8565b9050919050565b6000612917826128fa565b9050919050565b6129278161290c565b82525050565b6000602082019050612942600083018461291e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129b182612585565b91506129bc83612585565b9250826129cc576129cb612948565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a0d6020836125fa565b9150612a18826129d7565b602082019050919050565b60006020820190508181036000830152612a3c81612a00565b9050919050565b7f4672656464793a204163636f756e74206973207a65726f206164647265737300600082015250565b6000612a79601f836125fa565b9150612a8482612a43565b602082019050919050565b60006020820190508181036000830152612aa881612a6c565b9050919050565b7f426f6f6c206973207468652073616d6500000000000000000000000000000000600082015250565b6000612ae56010836125fa565b9150612af082612aaf565b602082019050919050565b60006020820190508181036000830152612b1481612ad8565b9050919050565b6000612b2682612585565b9150612b3183612585565b9250828203905081811115612b4957612b48612977565b5b92915050565b600081519050612b5e8161273e565b92915050565b600060208284031215612b7a57612b796126a1565b5b6000612b8884828501612b4f565b91505092915050565b7f54726164696e6720616c726561647920656e61626c6564000000000000000000600082015250565b6000612bc76017836125fa565b9150612bd282612b91565b602082019050919050565b60006020820190508181036000830152612bf681612bba565b9050919050565b6000604082019050612c12600083018561255b565b612c1f60208301846125c5565b9392505050565b7f4672656464793a2041646472657373205a65726f000000000000000000000000600082015250565b6000612c5c6014836125fa565b9150612c6782612c26565b602082019050919050565b60006020820190508181036000830152612c8b81612c4f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612cee6026836125fa565b9150612cf982612c92565b604082019050919050565b60006020820190508181036000830152612d1d81612ce1565b9050919050565b7f45524332303a205a65726f204164647265737300000000000000000000000000600082015250565b6000612d5a6013836125fa565b9150612d6582612d24565b602082019050919050565b60006020820190508181036000830152612d8981612d4d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612dec6023836125fa565b9150612df782612d90565b604082019050919050565b60006020820190508181036000830152612e1b81612ddf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e7e6025836125fa565b9150612e8982612e22565b604082019050919050565b60006020820190508181036000830152612ead81612e71565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f106029836125fa565b9150612f1b82612eb4565b604082019050919050565b60006020820190508181036000830152612f3f81612f03565b9050919050565b7f54726164696e67206973206e6f7420656e61626c656400000000000000000000600082015250565b6000612f7c6016836125fa565b9150612f8782612f46565b602082019050919050565b60006020820190508181036000830152612fab81612f6f565b9050919050565b6000612fbd82612585565b9150612fc883612585565b9250828201905080821115612fe057612fdf612977565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613053816126a6565b92915050565b60006020828403121561306f5761306e6126a1565b5b600061307d84828501613044565b91505092915050565b6000819050919050565b60006130ab6130a66130a184613086565b6128ce565b612585565b9050919050565b6130bb81613090565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130f681612549565b82525050565b600061310883836130ed565b60208301905092915050565b6000602082019050919050565b600061312c826130c1565b61313681856130cc565b9350613141836130dd565b8060005b8381101561317257815161315988826130fc565b975061316483613114565b925050600181019050613145565b5085935050505092915050565b600060a082019050613194600083018861258f565b6131a160208301876130b2565b81810360408301526131b38186613121565b90506131c2606083018561255b565b6131cf608083018461258f565b9695505050505050565b60006131e482612585565b91506131ef83612585565b92508282026131fd81612585565b9150828204841483151761321457613213612977565b5b5092915050565b600081905092915050565b50565b600061323660008361321b565b915061324182613226565b600082019050919050565b600061325782613229565b915081905091905056fea26469706673582212203e3b100b664ad6af67f1b93b18d02e3f613cab2c265c60cb199ffd7e0ee598d964736f6c63430008130033

Deployed Bytecode Sourcemap

5459:10019:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7553:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6702:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7661:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5854:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9831:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10755:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11844:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5510:125;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6769:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10326:306;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10638:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5641:117;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6631:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7633:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6836:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15235:240;;;;;;;;;;;;;:::i;:::-;;6165:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;962:94;;;;;;;;;;;;;:::i;:::-;;15039:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5940:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;739:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5764:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13176:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7449:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9654:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7318:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6882:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6026:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6802:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1064:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7730:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7553:73;7584:42;7553:73;:::o;6702:60::-;6757:5;6670:25;6742:20;;;;:::i;:::-;6702:60;:::o;7661:36::-;;;;;;;;;;;;;:::o;5854:80::-;5902:13;5926:5;;;;;;;;;;;;;;;;;5919:12;;5854:80;:::o;9831:161::-;9908:4;9925:37;9934:10;9946:7;9955:6;9925:8;:37::i;:::-;9980:4;9973:11;;9831:161;;;;:::o;10755:191::-;885:12;:10;:12::i;:::-;874:23;;:7;:5;:7::i;:::-;:23;;;866:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10865:1:::1;10846:21;;:7;:21;;::::0;10838:64:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10931:7;10913:6;:15;10920:7;10913:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;10755:191:::0;;:::o;11844:196::-;885:12;:10;:12::i;:::-;874:23;;:7;:5;:7::i;:::-;:23;;;866:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11936:5:::1;11921:20;;:11;;;;;;;;;;;:20;;::::0;11913:48:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11986:5;11972:11;;:19;;;;;;;;;;;;;;;;;;12007:25;12026:5;12007:25;;;;;;:::i;:::-;;;;;;;;11844:196:::0;:::o;5510:125::-;5565:7;5596:1;6670:25;5580:17;5576:36;;5601:8;;;5576:36;6670:25;5613:19;;5510:125;:::o;6769:26::-;;;;:::o;10326:306::-;10426:4;10482:17;10447:11;:19;10459:6;10447:19;;;;;;;;;;;;;;;:31;10467:10;10447:31;;;;;;;;;;;;;;;;:52;10443:126;;10551:6;10516:11;:19;10528:6;10516:19;;;;;;;;;;;;;;;:31;10536:10;10516:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;10443:126;10588:36;10598:6;10606:9;10617:6;10588:9;:36::i;:::-;10581:43;;10326:306;;;;;:::o;10638:109::-;10700:4;10724:6;:15;10731:7;10724:15;;;;;;;;;;;;;;;;;;;;;;;;;10717:22;;10638:109;;;:::o;5641:117::-;5693:5;5722:1;6670:25;5706:17;5702:36;;5727:8;;;5702:36;7545:1;5739:16;;5641:117;:::o;6631:64::-;6670:25;6631:64;:::o;7633:21::-;;;;;;;;;;;;;:::o;6836:39::-;6874:1;6836:39;:::o;15235:240::-;15300:2;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15292:27;;;;;;15343:16;;;;;;;;;;;15342:17;15334:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;15423:4;15404:16;;:23;;;;;;;;;;;;;;;;;;15447:16;;;;;;;;;;15235:240::o;6165:117::-;6231:7;6258;:16;6266:7;6258:16;;;;;;;;;;;;;;;;6251:23;;6165:117;;;:::o;962:94::-;885:12;:10;:12::i;:::-;874:23;;:7;:5;:7::i;:::-;:23;;;866:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1027:21:::1;1045:1;1027:9;:21::i;:::-;962:94::o:0;15039:182::-;885:12;:10;:12::i;:::-;874:23;;:7;:5;:7::i;:::-;:23;;;866:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15148:5:::1;15124:12;:21;15137:7;15124:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;15175:34;15194:7;15203:5;15175:34;;;;;;;:::i;:::-;;;;;;;;15039:182:::0;;:::o;5940:80::-;5992:7;6010;:5;:7::i;:::-;6003:14;;5940:80;:::o;739:87::-;785:7;812:6;;;;;;;;;;;805:13;;739:87;:::o;5764:84::-;5814:13;5838:7;;;;;;;;;;;;;;;;;5831:14;;5764:84;:::o;13176:318::-;885:12;:10;:12::i;:::-;874:23;;:7;:5;:7::i;:::-;:23;;;866:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13281:1:::1;13265:18;;:4;:18;;::::0;13257:50:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13342:1;13326:18;;:4;:18;;::::0;13318:50:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13407:4;13379:17;;:33;;;;;;;;;;;;;;;;;;13451:4;13423:17;;:33;;;;;;;;;;;;;;;;;;13475:10;;;;;;;;;;;13467:19;;;::::0;::::1;;13176:318:::0;;:::o;7449:54::-;;;;;;;;;;;;;;;;;;;:::o;9654:165::-;9732:4;9749:40;9759:10;9771:9;9782:6;9749:9;:40::i;:::-;;9807:4;9800:11;;9654:165;;;;:::o;7318:27::-;;;;;;;;;;;;;:::o;6882:47::-;6924:5;6882:47;:::o;6026:133::-;6110:7;6128:11;:19;6140:6;6128:19;;;;;;;;;;;;;;;:28;6148:7;6128:28;;;;;;;;;;;;;;;;6121:35;;6026:133;;;;:::o;6802:27::-;;;;:::o;1064:192::-;885:12;:10;:12::i;:::-;874:23;;:7;:5;:7::i;:::-;:23;;;866:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1173:1:::1;1153:22;;:8;:22;;::::0;1145:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1229:19;1239:8;1229:9;:19::i;:::-;1064:192:::0;:::o;7730:30::-;;;;;;;;;;;;;:::o;10004:310::-;10117:1;10099:20;;:6;:20;;;10091:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10181:1;10162:21;;:7;:21;;;10154:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;10251:6;10220:11;:19;10232:6;10220:19;;;;;;;;;;;;;;;:28;10240:7;10220:28;;;;;;;;;;;;;;;:37;;;;10290:7;10273:33;;10282:6;10273:33;;;10299:6;10273:33;;;;;;:::i;:::-;;;;;;;;10004:310;;;:::o;259:107::-;304:15;347:10;332:26;;259:107;:::o;12048:1120::-;12128:4;12145:12;12160:4;12145:19;;12197:1;12183:16;;:2;:16;;;12175:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12274:1;12258:18;;:4;:18;;;12250:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12346:1;12337:6;:10;12329:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12410:25;12427:4;12432:2;12410:16;:25::i;:::-;12406:108;;;12460:16;;;;;;;;;;;12452:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12406:108;12529:17;12537:4;12543:2;12529:7;:17::i;:::-;:29;;;;;12552:6;;;;;;;;;;;12551:7;12529:29;:50;;;;;12562:17;12570:4;12576:2;12562:7;:17::i;:::-;12529:50;12526:291;;;12596:28;12627:24;12645:4;12627:9;:24::i;:::-;12596:55;;6757:5;6670:25;6742:20;;;;:::i;:::-;12669;:37;12666:140;;12753:1;12730:20;:24;12727:63;;;12756:34;12769:20;12756:12;:34::i;:::-;12727:63;12666:140;12581:236;12526:291;12833:6;:12;12840:4;12833:12;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;;12849:6;:10;12856:2;12849:10;;;;;;;;;;;;;;;;;;;;;;;;;12833:26;12829:73;;;12885:5;12875:15;;12829:73;12939:6;12922:7;:13;12930:4;12922:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;12947:22;12973:7;12972:81;;13047:6;12972:81;;;12984:60;12994:4;13000:16;13007:4;13013:2;13000:6;:16::i;:::-;13018:17;13026:4;13032:2;13018:7;:17::i;:::-;13037:6;12984:9;:60::i;:::-;12972:81;12947:106;;13079:14;13064:7;:11;13072:2;13064:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;13115:2;13100:34;;13109:4;13100:34;;;13119:14;13100:34;;;;;;:::i;:::-;;;;;;;;13154:4;13147:11;;;;12048:1120;;;;;:::o;1264:173::-;1320:16;1339:6;;;;;;;;;;;1320:25;;1365:8;1356:6;;:17;;;;;;;;;;;;;;;;;;1420:8;1389:40;;1410:8;1389:40;;;;;;;;;;;;1309:128;1264:173;:::o;10954:336::-;11029:4;11048:14;11072:7;:5;:7::i;:::-;11065:14;;:3;:14;;;;:45;;;;;11103:7;:5;:7::i;:::-;11096:14;;:3;:14;;;;11065:45;:83;;;;;11141:7;:5;:7::i;:::-;11127:21;;:10;:21;;;;11065:83;:118;;;;;11166:12;:17;11179:3;11166:17;;;;;;;;;;;;;;;;;;;;;;;;;11165:18;11065:118;:141;;;;;11189:12;:17;11202:3;11189:17;;;;;;;;;;;;;;;;;;;;;;;;;11188:18;11065:141;:162;;;;;11225:1;11210:17;;:3;:17;;;;11065:162;:186;;;;;11246:4;11231:20;;:3;:20;;;;11065:186;11048:203;;11273:9;11266:16;;;10954:336;;;;:::o;11467:165::-;11533:4;11551:13;11567:8;:13;11576:3;11567:13;;;;;;;;;;;;;;;;;;;;;;;;;:31;;;;;11585:8;:13;11594:3;11585:13;;;;;;;;;;;;;;;;;;;;;;;;;11584:14;11567:31;11551:47;;11616:8;11609:15;;;11467:165;;;;:::o;11640:196::-;11706:4;11723:12;11738:11;;;;;;;;;;;:37;;;;;11754:16;:21;11771:3;11754:21;;;;;;;;;;;;;;;;;;;;;;;;;11753:22;11738:37;:63;;;;;11780:16;:21;11797:3;11780:21;;;;;;;;;;;;;;;;;;;;;;;;;11779:22;11738:63;11723:78;;11821:7;11814:14;;;11640:196;;;;:::o;14047:980::-;7813:4;7804:6;;:13;;;;;;;;;;;;;;;;;;14140:21:::1;14178:1;14164:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14140:40;;14209:4;14191;14196:1;14191:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14235:10;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14225:4;14230:1;14225:7;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;14320:17;14269:11;:26;14289:4;14269:26;;;;;;;;;;;;;;;:47;14304:10;;;;;;;;;;;14269:47;;;;;;;;;;;;;;;;:68;14265:168;;14404:17;14354:11;:26;14374:4;14354:26;;;;;;;;;;;;;;;:47;14389:10;;;;;;;;;;;14354:47;;;;;;;;;;;;;;;:67;;;;14265:168;14449:10;;;;;;;;;;;:61;;;14525:20;14560:1;14576:4;14603;14623:15;14449:200;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;14445:247;;14674:7;;;14445:247;14702:12;14727:13:::0;14773:2:::1;14767:3;14743:21;:27;;;;:::i;:::-;:32;;;;:::i;:::-;14727:48;;14786:14;14833:2;14827:3;14803:21;:27;;;;:::i;:::-;:32;;;;:::i;:::-;14786:49;;14859:1;14851:5;:9;14848:79;;;14875:17;;;;;;;;;;;:22;;14905:5;14917;14875:52;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14862:65;;;;;14848:79;14950:1;14941:6;:10;14938:81;;;14966:17;;;;;;;;;;;:22;;14996:6;15009:5;14966:53;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14953:66;;;;;14938:81;14119:908;;;;7828:1;7849:5:::0;7840:6;;:14;;;;;;;;;;;;;;;;;;14047:980;:::o;11298:161::-;11363:4;11380:12;11396:8;:13;11405:3;11396:13;;;;;;;;;;;;;;;;;;;;;;;;;11395:14;:31;;;;;11413:8;:13;11422:3;11413:13;;;;;;;;;;;;;;;;;;;;;;;;;11395:31;11380:46;;11444:7;11437:14;;;11298:161;;;;:::o;13504:535::-;13596:7;13616:11;13642:5;13638:84;;;13656:6;;13650:12;;13638:84;;;13674:6;13670:52;;;13689:7;;13683:13;;13670:52;;;6874:1;13705:17;;13670:52;13638:84;13747:1;13740:3;:8;13736:28;;13758:6;13751:13;;;;;13736:28;13778:17;6924:5;13807:3;13798:6;:12;;;;:::i;:::-;:30;;;;:::i;:::-;13778:50;;13855:1;13843:9;:13;13839:157;;;13901:9;13875:7;:22;13891:4;13875:22;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;13953:4;13930:40;;13939:4;13930:40;;;13960:9;13930:40;;;;;;:::i;:::-;;;;;;;;13839:157;14022:9;14013:6;:18;;;;:::i;:::-;14006:25;;;;13504:535;;;;;;;:::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:474::-;6672:6;6680;6729:2;6717:9;6708:7;6704:23;6700:32;6697:119;;;6735:79;;:::i;:::-;6697:119;6855:1;6880:53;6925:7;6916:6;6905:9;6901:22;6880:53;:::i;:::-;6870:63;;6826:117;6982:2;7008:53;7053:7;7044:6;7033:9;7029:22;7008:53;:::i;:::-;6998:63;;6953:118;6604:474;;;;;:::o;7084:60::-;7112:3;7133:5;7126:12;;7084:60;;;:::o;7150:142::-;7200:9;7233:53;7251:34;7260:24;7278:5;7260:24;:::i;:::-;7251:34;:::i;:::-;7233:53;:::i;:::-;7220:66;;7150:142;;;:::o;7298:126::-;7348:9;7381:37;7412:5;7381:37;:::i;:::-;7368:50;;7298:126;;;:::o;7430:143::-;7497:9;7530:37;7561:5;7530:37;:::i;:::-;7517:50;;7430:143;;;:::o;7579:165::-;7683:54;7731:5;7683:54;:::i;:::-;7678:3;7671:67;7579:165;;:::o;7750:256::-;7860:4;7898:2;7887:9;7883:18;7875:26;;7911:88;7996:1;7985:9;7981:17;7972:6;7911:88;:::i;:::-;7750:256;;;;:::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:181::-;9700:33;9696:1;9688:6;9684:14;9677:57;9560:181;:::o;9747:366::-;9889:3;9910:67;9974:2;9969:3;9910:67;:::i;:::-;9903:74;;9986:93;10075:3;9986:93;:::i;:::-;10104:2;10099:3;10095:12;10088:19;;9747:366;;;:::o;10119:419::-;10285:4;10323:2;10312:9;10308:18;10300:26;;10372:9;10366:4;10362:20;10358:1;10347:9;10343:17;10336:47;10400:131;10526:4;10400:131;:::i;:::-;10392:139;;10119:419;;;:::o;10544:166::-;10684:18;10680:1;10672:6;10668:14;10661:42;10544:166;:::o;10716:366::-;10858:3;10879:67;10943:2;10938:3;10879:67;:::i;:::-;10872:74;;10955:93;11044:3;10955:93;:::i;:::-;11073:2;11068:3;11064:12;11057:19;;10716:366;;;:::o;11088:419::-;11254:4;11292:2;11281:9;11277:18;11269:26;;11341:9;11335:4;11331:20;11327:1;11316:9;11312:17;11305:47;11369:131;11495:4;11369:131;:::i;:::-;11361:139;;11088:419;;;:::o;11513:194::-;11553:4;11573:20;11591:1;11573:20;:::i;:::-;11568:25;;11607:20;11625:1;11607:20;:::i;:::-;11602:25;;11651:1;11648;11644:9;11636:17;;11675:1;11669:4;11666:11;11663:37;;;11680:18;;:::i;:::-;11663:37;11513:194;;;;:::o;11713:137::-;11767:5;11798:6;11792:13;11783:22;;11814:30;11838:5;11814:30;:::i;:::-;11713:137;;;;:::o;11856:345::-;11923:6;11972:2;11960:9;11951:7;11947:23;11943:32;11940:119;;;11978:79;;:::i;:::-;11940:119;12098:1;12123:61;12176:7;12167:6;12156:9;12152:22;12123:61;:::i;:::-;12113:71;;12069:125;11856:345;;;;:::o;12207:173::-;12347:25;12343:1;12335:6;12331:14;12324:49;12207:173;:::o;12386:366::-;12528:3;12549:67;12613:2;12608:3;12549:67;:::i;:::-;12542:74;;12625:93;12714:3;12625:93;:::i;:::-;12743:2;12738:3;12734:12;12727:19;;12386:366;;;:::o;12758:419::-;12924:4;12962:2;12951:9;12947:18;12939:26;;13011:9;13005:4;13001:20;12997:1;12986:9;12982:17;12975:47;13039:131;13165:4;13039:131;:::i;:::-;13031:139;;12758:419;;;:::o;13183:320::-;13298:4;13336:2;13325:9;13321:18;13313:26;;13349:71;13417:1;13406:9;13402:17;13393:6;13349:71;:::i;:::-;13430:66;13492:2;13481:9;13477:18;13468:6;13430:66;:::i;:::-;13183:320;;;;;:::o;13509:170::-;13649:22;13645:1;13637:6;13633:14;13626:46;13509:170;:::o;13685:366::-;13827:3;13848:67;13912:2;13907:3;13848:67;:::i;:::-;13841:74;;13924:93;14013:3;13924:93;:::i;:::-;14042:2;14037:3;14033:12;14026:19;;13685:366;;;:::o;14057:419::-;14223:4;14261:2;14250:9;14246:18;14238:26;;14310:9;14304:4;14300:20;14296:1;14285:9;14281:17;14274:47;14338:131;14464:4;14338:131;:::i;:::-;14330:139;;14057:419;;;:::o;14482:225::-;14622:34;14618:1;14610:6;14606:14;14599:58;14691:8;14686:2;14678:6;14674:15;14667:33;14482:225;:::o;14713:366::-;14855:3;14876:67;14940:2;14935:3;14876:67;:::i;:::-;14869:74;;14952:93;15041:3;14952:93;:::i;:::-;15070:2;15065:3;15061:12;15054:19;;14713:366;;;:::o;15085:419::-;15251:4;15289:2;15278:9;15274:18;15266:26;;15338:9;15332:4;15328:20;15324:1;15313:9;15309:17;15302:47;15366:131;15492:4;15366:131;:::i;:::-;15358:139;;15085:419;;;:::o;15510:169::-;15650:21;15646:1;15638:6;15634:14;15627:45;15510:169;:::o;15685:366::-;15827:3;15848:67;15912:2;15907:3;15848:67;:::i;:::-;15841:74;;15924:93;16013:3;15924:93;:::i;:::-;16042:2;16037:3;16033:12;16026:19;;15685:366;;;:::o;16057:419::-;16223:4;16261:2;16250:9;16246:18;16238:26;;16310:9;16304:4;16300:20;16296:1;16285:9;16281:17;16274:47;16338:131;16464:4;16338:131;:::i;:::-;16330:139;;16057:419;;;:::o;16482:222::-;16622:34;16618:1;16610:6;16606:14;16599:58;16691:5;16686:2;16678:6;16674:15;16667:30;16482:222;:::o;16710:366::-;16852:3;16873:67;16937:2;16932:3;16873:67;:::i;:::-;16866:74;;16949:93;17038:3;16949:93;:::i;:::-;17067:2;17062:3;17058:12;17051:19;;16710:366;;;:::o;17082:419::-;17248:4;17286:2;17275:9;17271:18;17263:26;;17335:9;17329:4;17325:20;17321:1;17310:9;17306:17;17299:47;17363:131;17489:4;17363:131;:::i;:::-;17355:139;;17082:419;;;:::o;17507:224::-;17647:34;17643:1;17635:6;17631:14;17624:58;17716:7;17711:2;17703:6;17699:15;17692:32;17507:224;:::o;17737:366::-;17879:3;17900:67;17964:2;17959:3;17900:67;:::i;:::-;17893:74;;17976:93;18065:3;17976:93;:::i;:::-;18094:2;18089:3;18085:12;18078:19;;17737:366;;;:::o;18109:419::-;18275:4;18313:2;18302:9;18298:18;18290:26;;18362:9;18356:4;18352:20;18348:1;18337:9;18333:17;18326:47;18390:131;18516:4;18390:131;:::i;:::-;18382:139;;18109:419;;;:::o;18534:228::-;18674:34;18670:1;18662:6;18658:14;18651:58;18743:11;18738:2;18730:6;18726:15;18719:36;18534:228;:::o;18768:366::-;18910:3;18931:67;18995:2;18990:3;18931:67;:::i;:::-;18924:74;;19007:93;19096:3;19007:93;:::i;:::-;19125:2;19120:3;19116:12;19109:19;;18768:366;;;:::o;19140:419::-;19306:4;19344:2;19333:9;19329:18;19321:26;;19393:9;19387:4;19383:20;19379:1;19368:9;19364:17;19357:47;19421:131;19547:4;19421:131;:::i;:::-;19413:139;;19140:419;;;:::o;19565:172::-;19705:24;19701:1;19693:6;19689:14;19682:48;19565:172;:::o;19743:366::-;19885:3;19906:67;19970:2;19965:3;19906:67;:::i;:::-;19899:74;;19982:93;20071:3;19982:93;:::i;:::-;20100:2;20095:3;20091:12;20084:19;;19743:366;;;:::o;20115:419::-;20281:4;20319:2;20308:9;20304:18;20296:26;;20368:9;20362:4;20358:20;20354:1;20343:9;20339:17;20332:47;20396:131;20522:4;20396:131;:::i;:::-;20388:139;;20115:419;;;:::o;20540:191::-;20580:3;20599:20;20617:1;20599:20;:::i;:::-;20594:25;;20633:20;20651:1;20633:20;:::i;:::-;20628:25;;20676:1;20673;20669:9;20662:16;;20697:3;20694:1;20691:10;20688:36;;;20704:18;;:::i;:::-;20688:36;20540:191;;;;:::o;20737:180::-;20785:77;20782:1;20775:88;20882:4;20879:1;20872:15;20906:4;20903:1;20896:15;20923:180;20971:77;20968:1;20961:88;21068:4;21065:1;21058:15;21092:4;21089:1;21082:15;21109:143;21166:5;21197:6;21191:13;21182:22;;21213:33;21240:5;21213:33;:::i;:::-;21109:143;;;;:::o;21258:351::-;21328:6;21377:2;21365:9;21356:7;21352:23;21348:32;21345:119;;;21383:79;;:::i;:::-;21345:119;21503:1;21528:64;21584:7;21575:6;21564:9;21560:22;21528:64;:::i;:::-;21518:74;;21474:128;21258:351;;;;:::o;21615:85::-;21660:7;21689:5;21678:16;;21615:85;;;:::o;21706:158::-;21764:9;21797:61;21815:42;21824:32;21850:5;21824:32;:::i;:::-;21815:42;:::i;:::-;21797:61;:::i;:::-;21784:74;;21706:158;;;:::o;21870:147::-;21965:45;22004:5;21965:45;:::i;:::-;21960:3;21953:58;21870:147;;:::o;22023:114::-;22090:6;22124:5;22118:12;22108:22;;22023:114;;;:::o;22143:184::-;22242:11;22276:6;22271:3;22264:19;22316:4;22311:3;22307:14;22292:29;;22143:184;;;;:::o;22333:132::-;22400:4;22423:3;22415:11;;22453:4;22448:3;22444:14;22436:22;;22333:132;;;:::o;22471:108::-;22548:24;22566:5;22548:24;:::i;:::-;22543:3;22536:37;22471:108;;:::o;22585:179::-;22654:10;22675:46;22717:3;22709:6;22675:46;:::i;:::-;22753:4;22748:3;22744:14;22730:28;;22585:179;;;;:::o;22770:113::-;22840:4;22872;22867:3;22863:14;22855:22;;22770:113;;;:::o;22919:732::-;23038:3;23067:54;23115:5;23067:54;:::i;:::-;23137:86;23216:6;23211:3;23137:86;:::i;:::-;23130:93;;23247:56;23297:5;23247:56;:::i;:::-;23326:7;23357:1;23342:284;23367:6;23364:1;23361:13;23342:284;;;23443:6;23437:13;23470:63;23529:3;23514:13;23470:63;:::i;:::-;23463:70;;23556:60;23609:6;23556:60;:::i;:::-;23546:70;;23402:224;23389:1;23386;23382:9;23377:14;;23342:284;;;23346:14;23642:3;23635:10;;23043:608;;;22919:732;;;;:::o;23657:831::-;23920:4;23958:3;23947:9;23943:19;23935:27;;23972:71;24040:1;24029:9;24025:17;24016:6;23972:71;:::i;:::-;24053:80;24129:2;24118:9;24114:18;24105:6;24053:80;:::i;:::-;24180:9;24174:4;24170:20;24165:2;24154:9;24150:18;24143:48;24208:108;24311:4;24302:6;24208:108;:::i;:::-;24200:116;;24326:72;24394:2;24383:9;24379:18;24370:6;24326:72;:::i;:::-;24408:73;24476:3;24465:9;24461:19;24452:6;24408:73;:::i;:::-;23657:831;;;;;;;;:::o;24494:410::-;24534:7;24557:20;24575:1;24557:20;:::i;:::-;24552:25;;24591:20;24609:1;24591:20;:::i;:::-;24586:25;;24646:1;24643;24639:9;24668:30;24686:11;24668:30;:::i;:::-;24657:41;;24847:1;24838:7;24834:15;24831:1;24828:22;24808:1;24801:9;24781:83;24758:139;;24877:18;;:::i;:::-;24758:139;24542:362;24494:410;;;;:::o;24910:147::-;25011:11;25048:3;25033:18;;24910:147;;;;:::o;25063:114::-;;:::o;25183:398::-;25342:3;25363:83;25444:1;25439:3;25363:83;:::i;:::-;25356:90;;25455:93;25544:3;25455:93;:::i;:::-;25573:1;25568:3;25564:11;25557:18;;25183:398;;;:::o;25587:379::-;25771:3;25793:147;25936:3;25793:147;:::i;:::-;25786:154;;25957:3;25950:10;;25587:379;;;:::o

Swarm Source

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