ETH Price: $3,448.76 (+4.15%)

Token

DIAMOND DESK (DESK)
 

Overview

Max Total Supply

203,153,200 DESK

Holders

465

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
20,831.448723828761109458 DESK

Value
$0.00
0x1f1c2aa749e8e5050e3334493e1a5dbe8e96ab50
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:
DESK

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-08
*/

// SPDX-License-Identifier: MIT

// $DESK 

// Ultimate OTC DEX for trading airdrop allocations, brc20 tokens and ordinals.

// https://twitter.com/diamonddeskotc

// https://t.me/diamonddeskotc

// https://www.diamonddesk.io


pragma solidity 0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;

    mapping(address => mapping(address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { }
}

library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success,) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

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 IFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

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

contract DESK is ERC20, Ownable {
    using Address for address payable;

    IRouter public router;
    address public pair;

    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;

    uint256 public swapThreshold;
    address public marketingWallet = 0x43b1D7E2bea99b6ED5274aF40321D3DB0328D2e3;

    uint256 public buyTax = 40;
    uint256 public sellTax = 40;

    mapping(address => bool) public excludedFromFees;
    mapping(address => bool) private isBot;

    uint256 public MINT_CAP = 210_000_000 * 10 ** decimals();
    uint256 public CIRCULATING_SUPPLY = 55_650_000 * 10 ** decimals();

    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }

    constructor() ERC20("DIAMOND DESK", "DESK") {
        _mint(_msgSender(), CIRCULATING_SUPPLY);

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());

        router = _router;
        pair = _pair;

        excludedFromFees[address(this)] = true;
        excludedFromFees[_msgSender()] = true;
        excludedFromFees[address(0xdead)] = true;

        swapThreshold = totalSupply() * 1 / 10_000;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens");

        if (!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping) {
            require(tradingEnabled, "Trading not active yet");
            if (genesis_block + deadblocks > block.number) {
                if (recipient != pair) isBot[recipient] = true;
                if (sender != pair) isBot[sender] = true;
            }
        }

        uint256 fee;

        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) {
            fee = 0;
        } else {
            if (recipient == pair) fee = amount * sellTax / 100;
            else fee = amount * buyTax / 100;
        }

        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();

        super._transfer(sender, recipient, amount - fee);
        if (fee > 0) super._transfer(sender, address(this), fee);
    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
            uint256 toSwap = contractBalance;

            swapTokensForETH(toSwap);

            uint256 marketingAmt = address(this).balance;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }
        }
    }

    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading(uint256 numOfDeadBlocks) external onlyOwner {
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
        genesis_block = block.number;
        deadblocks = numOfDeadBlocks;
    }

    function setaxes(uint256 _buytax, uint256 _sellTax) external onlyOwner {
        buyTax = _buytax;
        sellTax = _sellTax;
    }

    function updateMarketingWallet(address newWallet) external onlyOwner {
        marketingWallet = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner {
        router = _router;
        pair = _pair;
    }

    function addBots(address[] memory isBot_) public onlyOwner {
        for (uint256 i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
    }

    function updateExcludedFromFees(address _address, bool state) external onlyOwner {
        excludedFromFees[_address] = state;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external {
        IERC20(tokenAddress).transfer(marketingWallet, amount);
    }

    function rescueETH(uint256 weiAmount) external {
        payable(marketingWallet).sendValue(weiAmount);
    }

    function mintToken(uint256 amount) external onlyOwner {
        require(totalSupply() + amount <= MINT_CAP, "ERROR: 210 mil is the cap");
        CIRCULATING_SUPPLY += amount;
        _mint(owner(), amount);
    }

    function manualSwap(uint256 amount, uint256 marketingPercentage) external onlyOwner {
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if (marketingPercentage > 0) {
            payable(marketingWallet).sendValue(newBalance * marketingPercentage / (marketingPercentage));
        }
    }

    // fallbacks
    receive() external payable { }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"CIRCULATING_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINT_CAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buytax","type":"uint256"},{"internalType":"uint256","name":"_sellTax","type":"uint256"}],"name":"setaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f6009557343b1d7e2bea99b6ed5274af40321d3db0328d2e3600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506028600c556028600d5562000076620004f060201b60201c565b600a620000849190620008bf565b630c8458806200009591906200090f565b601055620000a8620004f060201b60201c565b600a620000b69190620008bf565b63035126d0620000c791906200090f565b601155348015620000d6575f80fd5b506040518060400160405280600c81526020017f4449414d4f4e44204445534b00000000000000000000000000000000000000008152506040518060400160405280600481526020017f4445534b00000000000000000000000000000000000000000000000000000000815250816003908162000154919062000bb4565b50806004908162000166919062000bb4565b505050620001896200017d620004f860201b60201c565b620004ff60201b60201c565b620001ac6200019d620004f860201b60201c565b601154620005c260201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000235919062000cfd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200029b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c1919062000cfd565b6040518363ffffffff1660e01b8152600401620002e092919062000d3e565b6020604051808303815f875af1158015620002fd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000323919062000cfd565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f6200040f620004f860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506127106001620004ca6200071f60201b60201c565b620004d691906200090f565b620004e2919062000d96565b600a81905550505062000eb1565b5f6012905090565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000633576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200062a9062000e2b565b60405180910390fd5b620006465f83836200072860201b60201c565b8060025f82825462000659919062000e4b565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254620006ad919062000e4b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000713919062000e96565b60405180910390a35050565b5f600254905090565b505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620007b7578086048111156200078f576200078e6200072d565b5b60018516156200079f5780820291505b8081029050620007af856200075a565b94506200076f565b94509492505050565b5f82620007d15760019050620008a3565b81620007e0575f9050620008a3565b8160018114620007f9576002811462000804576200083a565b6001915050620008a3565b60ff8411156200081957620008186200072d565b5b8360020a9150848211156200083357620008326200072d565b5b50620008a3565b5060208310610133831016604e8410600b8410161715620008745782820a9050838111156200086e576200086d6200072d565b5b620008a3565b62000883848484600162000766565b925090508184048111156200089d576200089c6200072d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008cb82620008aa565b9150620008d883620008b3565b9250620009077fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007c0565b905092915050565b5f6200091b82620008aa565b91506200092883620008aa565b92508282026200093881620008aa565b915082820484148315176200095257620009516200072d565b5b5092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620009d557607f821691505b602082108103620009eb57620009ea62000990565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000a4f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a12565b62000a5b868362000a12565b95508019841693508086168417925050509392505050565b5f819050919050565b5f62000a9c62000a9662000a9084620008aa565b62000a73565b620008aa565b9050919050565b5f819050919050565b62000ab78362000a7c565b62000acf62000ac68262000aa3565b84845462000a1e565b825550505050565b5f90565b62000ae562000ad7565b62000af281848462000aac565b505050565b5b8181101562000b195762000b0d5f8262000adb565b60018101905062000af8565b5050565b601f82111562000b685762000b3281620009f1565b62000b3d8462000a03565b8101602085101562000b4d578190505b62000b6562000b5c8562000a03565b83018262000af7565b50505b505050565b5f82821c905092915050565b5f62000b8a5f198460080262000b6d565b1980831691505092915050565b5f62000ba4838362000b79565b9150826002028217905092915050565b62000bbf8262000959565b67ffffffffffffffff81111562000bdb5762000bda62000963565b5b62000be78254620009bd565b62000bf482828562000b1d565b5f60209050601f83116001811462000c2a575f841562000c15578287015190505b62000c21858262000b97565b86555062000c90565b601f19841662000c3a86620009f1565b5f5b8281101562000c635784890151825560018201915060208501945060208101905062000c3c565b8683101562000c83578489015162000c7f601f89168262000b79565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000cc78262000c9c565b9050919050565b62000cd98162000cbb565b811462000ce4575f80fd5b50565b5f8151905062000cf78162000cce565b92915050565b5f6020828403121562000d155762000d1462000c98565b5b5f62000d248482850162000ce7565b91505092915050565b62000d388162000cbb565b82525050565b5f60408201905062000d535f83018562000d2d565b62000d62602083018462000d2d565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000da282620008aa565b915062000daf83620008aa565b92508262000dc25762000dc162000d69565b5b828204905092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000e13601f8362000dcd565b915062000e208262000ddd565b602082019050919050565b5f6020820190508181035f83015262000e448162000e05565b9050919050565b5f62000e5782620008aa565b915062000e6483620008aa565b925082820190508082111562000e7f5762000e7e6200072d565b5b92915050565b62000e9081620008aa565b82525050565b5f60208201905062000eab5f83018462000e85565b92915050565b613cc38062000ebf5f395ff3fe608060405260043610610233575f3560e01c80638da5cb5b1161012d578063aacebbe3116100aa578063dd62ed3e1161006e578063dd62ed3e14610828578063e01af92c14610864578063e545fd6d1461088c578063f2fde38b146108b4578063f887ea40146108dc5761023a565b8063aacebbe31461074a578063c634d03214610772578063cc1776d31461079a578063d34628cc146107c4578063dbe66ca0146107ec5761023a565b80639e252f00116100f15780639e252f0014610658578063a3d17f1c14610680578063a457c2d7146106a8578063a8aa1b31146106e4578063a9059cbb1461070e5761023a565b80638da5cb5b1461058857806395d89b41146105b2578063984ae06e146105dc57806398f1312e146106065780639d0014b1146106305761023a565b80634ada218b116101bb57806370a082311161017f57806370a08231146104bc578063715018a6146104f857806375f0a8741461050e57806382aa7c68146105385780638cd4426d146105605761023a565b80634ada218b146103ec5780634f7041a51461041657806350c9a88f1461044057806356faae961461046a5780636ddd1713146104925761023a565b806323b872dd1161020257806323b872dd146102f8578063274a533c14610334578063313ce5671461035e578063395093511461038857806340b28c2f146103c45761023a565b80630445b6671461023e57806306fdde0314610268578063095ea7b31461029257806318160ddd146102ce5761023a565b3661023a57005b5f80fd5b348015610249575f80fd5b50610252610906565b60405161025f91906129ab565b60405180910390f35b348015610273575f80fd5b5061027c61090c565b6040516102899190612a4e565b60405180910390f35b34801561029d575f80fd5b506102b860048036038101906102b39190612b03565b61099c565b6040516102c59190612b5b565b60405180910390f35b3480156102d9575f80fd5b506102e26109b9565b6040516102ef91906129ab565b60405180910390f35b348015610303575f80fd5b5061031e60048036038101906103199190612b74565b6109c2565b60405161032b9190612b5b565b60405180910390f35b34801561033f575f80fd5b50610348610abd565b60405161035591906129ab565b60405180910390f35b348015610369575f80fd5b50610372610ac3565b60405161037f9190612bdf565b60405180910390f35b348015610393575f80fd5b506103ae60048036038101906103a99190612b03565b610acb565b6040516103bb9190612b5b565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e59190612c33565b610b72565b005b3480156103f7575f80fd5b50610400610c72565b60405161040d9190612b5b565b60405180910390f35b348015610421575f80fd5b5061042a610c85565b60405161043791906129ab565b60405180910390f35b34801561044b575f80fd5b50610454610c8b565b60405161046191906129ab565b60405180910390f35b348015610475575f80fd5b50610490600480360381019061048b9190612c71565b610c91565b005b34801561049d575f80fd5b506104a6610d98565b6040516104b39190612b5b565b60405180910390f35b3480156104c7575f80fd5b506104e260048036038101906104dd9190612caf565b610dab565b6040516104ef91906129ab565b60405180910390f35b348015610503575f80fd5b5061050c610df0565b005b348015610519575f80fd5b50610522610e77565b60405161052f9190612ce9565b60405180910390f35b348015610543575f80fd5b5061055e60048036038101906105599190612d02565b610e9c565b005b34801561056b575f80fd5b5061058660048036038101906105819190612b03565b610faf565b005b348015610593575f80fd5b5061059c611050565b6040516105a99190612ce9565b60405180910390f35b3480156105bd575f80fd5b506105c6611078565b6040516105d39190612a4e565b60405180910390f35b3480156105e7575f80fd5b506105f0611108565b6040516105fd91906129ab565b60405180910390f35b348015610611575f80fd5b5061061a61110e565b60405161062791906129ab565b60405180910390f35b34801561063b575f80fd5b5061065660048036038101906106519190612d02565b611114565b005b348015610663575f80fd5b5061067e60048036038101906106799190612d02565b61119a565b005b34801561068b575f80fd5b506106a660048036038101906106a19190612c71565b6111e7565b005b3480156106b3575f80fd5b506106ce60048036038101906106c99190612b03565b611275565b6040516106db9190612b5b565b60405180910390f35b3480156106ef575f80fd5b506106f8611364565b6040516107059190612ce9565b60405180910390f35b348015610719575f80fd5b50610734600480360381019061072f9190612b03565b611389565b6040516107419190612b5b565b60405180910390f35b348015610755575f80fd5b50610770600480360381019061076b9190612caf565b6113a6565b005b34801561077d575f80fd5b5061079860048036038101906107939190612d02565b611465565b005b3480156107a5575f80fd5b506107ae611564565b6040516107bb91906129ab565b60405180910390f35b3480156107cf575f80fd5b506107ea60048036038101906107e59190612e6d565b61156a565b005b3480156107f7575f80fd5b50610812600480360381019061080d9190612caf565b611677565b60405161081f9190612b5b565b60405180910390f35b348015610833575f80fd5b5061084e60048036038101906108499190612eb4565b611694565b60405161085b91906129ab565b60405180910390f35b34801561086f575f80fd5b5061088a60048036038101906108859190612f1c565b611716565b005b348015610897575f80fd5b506108b260048036038101906108ad9190612f47565b6117af565b005b3480156108bf575f80fd5b506108da60048036038101906108d59190612caf565b611883565b005b3480156108e7575f80fd5b506108f0611979565b6040516108fd9190612fe0565b60405180910390f35b600a5481565b60606003805461091b90613026565b80601f016020809104026020016040519081016040528092919081815260200182805461094790613026565b80156109925780601f1061096957610100808354040283529160200191610992565b820191905f5260205f20905b81548152906001019060200180831161097557829003601f168201915b5050505050905090565b5f6109af6109a861199e565b84846119a5565b6001905092915050565b5f600254905090565b5f6109ce848484611b68565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a1561199e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b906130c6565b60405180910390fd5b610ab185610aa061199e565b8584610aac9190613111565b6119a5565b60019150509392505050565b60085481565b5f6012905090565b5f610b68610ad761199e565b848460015f610ae461199e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b639190613144565b6119a5565b6001905092915050565b610b7a61199e565b73ffffffffffffffffffffffffffffffffffffffff16610b98611050565b73ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be5906131c1565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600c5481565b60095481565b610c9961199e565b73ffffffffffffffffffffffffffffffffffffffff16610cb7611050565b73ffffffffffffffffffffffffffffffffffffffff1614610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d04906131c1565b60405180910390fd5b5f479050610d1a8361211d565b5f8147610d279190613111565b90505f831115610d9257610d91838483610d4191906131df565b610d4b919061324d565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661235390919063ffffffff16565b5b50505050565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610df861199e565b73ffffffffffffffffffffffffffffffffffffffff16610e16611050565b73ffffffffffffffffffffffffffffffffffffffff1614610e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e63906131c1565b60405180910390fd5b610e755f612443565b565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ea461199e565b73ffffffffffffffffffffffffffffffffffffffff16610ec2611050565b73ffffffffffffffffffffffffffffffffffffffff1614610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f906131c1565b60405180910390fd5b600760169054906101000a900460ff1615610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f906132c7565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161100b9291906132e5565b6020604051808303815f875af1158015611027573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104b9190613320565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461108790613026565b80601f01602080910402602001604051908101604052809291908181526020018280546110b390613026565b80156110fe5780601f106110d5576101008083540402835291602001916110fe565b820191905f5260205f20905b8154815290600101906020018083116110e157829003601f168201915b5050505050905090565b60115481565b60105481565b61111c61199e565b73ffffffffffffffffffffffffffffffffffffffff1661113a611050565b73ffffffffffffffffffffffffffffffffffffffff1614611190576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611187906131c1565b60405180910390fd5b80600a8190555050565b6111e481600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661235390919063ffffffff16565b50565b6111ef61199e565b73ffffffffffffffffffffffffffffffffffffffff1661120d611050565b73ffffffffffffffffffffffffffffffffffffffff1614611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125a906131c1565b60405180910390fd5b81600c8190555080600d819055505050565b5f8060015f61128261199e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561133c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611333906133bb565b60405180910390fd5b61135961134761199e565b8585846113549190613111565b6119a5565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61139c61139561199e565b8484611b68565b6001905092915050565b6113ae61199e565b73ffffffffffffffffffffffffffffffffffffffff166113cc611050565b73ffffffffffffffffffffffffffffffffffffffff1614611422576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611419906131c1565b60405180910390fd5b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61146d61199e565b73ffffffffffffffffffffffffffffffffffffffff1661148b611050565b73ffffffffffffffffffffffffffffffffffffffff16146114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d8906131c1565b60405180910390fd5b601054816114ed6109b9565b6114f79190613144565b1115611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f90613423565b60405180910390fd5b8060115f8282546115499190613144565b9250508190555061156161155b611050565b82612506565b50565b600d5481565b61157261199e565b73ffffffffffffffffffffffffffffffffffffffff16611590611050565b73ffffffffffffffffffffffffffffffffffffffff16146115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd906131c1565b60405180910390fd5b5f5b8151811015611673576001600f5f84848151811061160957611608613441565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061166b9061346e565b9150506115e8565b5050565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61171e61199e565b73ffffffffffffffffffffffffffffffffffffffff1661173c611050565b73ffffffffffffffffffffffffffffffffffffffff1614611792576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611789906131c1565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6117b761199e565b73ffffffffffffffffffffffffffffffffffffffff166117d5611050565b73ffffffffffffffffffffffffffffffffffffffff161461182b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611822906131c1565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61188b61199e565b73ffffffffffffffffffffffffffffffffffffffff166118a9611050565b73ffffffffffffffffffffffffffffffffffffffff16146118ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f6906131c1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361196d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196490613525565b60405180910390fd5b61197681612443565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a906135b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7890613641565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b5b91906129ab565b60405180910390a3505050565b5f8111611baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba1906136cf565b60405180910390fd5b600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c485750600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7e90613737565b60405180910390fd5b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d255750600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d3e5750600760149054906101000a900460ff16155b15611eff57600760169054906101000a900460ff16611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d899061379f565b60405180910390fd5b43600954600854611da39190613144565b1115611efe5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e53576001600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611efd576001600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5b5b5f600760149054906101000a900460ff1680611f615750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611fb25750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611fbf575f9050612052565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612034576064600d548361202391906131df565b61202d919061324d565b9050612051565b6064600c548361204491906131df565b61204e919061324d565b90505b5b600760159054906101000a900460ff16801561207b5750600760149054906101000a900460ff16155b80156120d4575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120df57505f81115b156120ed576120ec612652565b5b612103848483856120fe9190613111565b61271b565b5f8111156121175761211684308361271b565b5b50505050565b5f600267ffffffffffffffff81111561213957612138612d31565b5b6040519080825280602002602001820160405280156121675781602001602082028036833780820191505090505b50905030815f8151811061217e5761217d613441565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612222573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224691906137d1565b8160018151811061225a57612259613441565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c03060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119a5565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123229594939291906138ec565b5f604051808303815f87803b158015612339575f80fd5b505af115801561234b573d5f803e3d5ffd5b505050505050565b80471015612396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238d9061398e565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516123bb906139d9565b5f6040518083038185875af1925050503d805f81146123f5576040519150601f19603f3d011682016040523d82523d5f602084013e6123fa565b606091505b505090508061243e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243590613a5d565b60405180910390fd5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b90613ac5565b60405180910390fd5b61257f5f838361298e565b8060025f8282546125909190613144565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125e29190613144565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161264691906129ab565b60405180910390a35050565b600760149054906101000a900460ff16612719576001600760146101000a81548160ff0219169083151502179055505f61268b30610dab565b9050600a5481106126fd575f8190506126a38161211d565b5f4790505f8111156126fa576126f981600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661235390919063ffffffff16565b5b50505b505f600760146101000a81548160ff0219169083151502179055505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278090613b53565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90613be1565b60405180910390fd5b61280283838361298e565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287c90613c6f565b60405180910390fd5b81816128919190613111565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461291c9190613144565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161298091906129ab565b60405180910390a350505050565b505050565b5f819050919050565b6129a581612993565b82525050565b5f6020820190506129be5f83018461299c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129fb5780820151818401526020810190506129e0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612a20826129c4565b612a2a81856129ce565b9350612a3a8185602086016129de565b612a4381612a06565b840191505092915050565b5f6020820190508181035f830152612a668184612a16565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612aa882612a7f565b9050919050565b612ab881612a9e565b8114612ac2575f80fd5b50565b5f81359050612ad381612aaf565b92915050565b612ae281612993565b8114612aec575f80fd5b50565b5f81359050612afd81612ad9565b92915050565b5f8060408385031215612b1957612b18612a77565b5b5f612b2685828601612ac5565b9250506020612b3785828601612aef565b9150509250929050565b5f8115159050919050565b612b5581612b41565b82525050565b5f602082019050612b6e5f830184612b4c565b92915050565b5f805f60608486031215612b8b57612b8a612a77565b5b5f612b9886828701612ac5565b9350506020612ba986828701612ac5565b9250506040612bba86828701612aef565b9150509250925092565b5f60ff82169050919050565b612bd981612bc4565b82525050565b5f602082019050612bf25f830184612bd0565b92915050565b5f612c0282612a9e565b9050919050565b612c1281612bf8565b8114612c1c575f80fd5b50565b5f81359050612c2d81612c09565b92915050565b5f8060408385031215612c4957612c48612a77565b5b5f612c5685828601612c1f565b9250506020612c6785828601612ac5565b9150509250929050565b5f8060408385031215612c8757612c86612a77565b5b5f612c9485828601612aef565b9250506020612ca585828601612aef565b9150509250929050565b5f60208284031215612cc457612cc3612a77565b5b5f612cd184828501612ac5565b91505092915050565b612ce381612a9e565b82525050565b5f602082019050612cfc5f830184612cda565b92915050565b5f60208284031215612d1757612d16612a77565b5b5f612d2484828501612aef565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d6782612a06565b810181811067ffffffffffffffff82111715612d8657612d85612d31565b5b80604052505050565b5f612d98612a6e565b9050612da48282612d5e565b919050565b5f67ffffffffffffffff821115612dc357612dc2612d31565b5b602082029050602081019050919050565b5f80fd5b5f612dea612de584612da9565b612d8f565b90508083825260208201905060208402830185811115612e0d57612e0c612dd4565b5b835b81811015612e365780612e228882612ac5565b845260208401935050602081019050612e0f565b5050509392505050565b5f82601f830112612e5457612e53612d2d565b5b8135612e64848260208601612dd8565b91505092915050565b5f60208284031215612e8257612e81612a77565b5b5f82013567ffffffffffffffff811115612e9f57612e9e612a7b565b5b612eab84828501612e40565b91505092915050565b5f8060408385031215612eca57612ec9612a77565b5b5f612ed785828601612ac5565b9250506020612ee885828601612ac5565b9150509250929050565b612efb81612b41565b8114612f05575f80fd5b50565b5f81359050612f1681612ef2565b92915050565b5f60208284031215612f3157612f30612a77565b5b5f612f3e84828501612f08565b91505092915050565b5f8060408385031215612f5d57612f5c612a77565b5b5f612f6a85828601612ac5565b9250506020612f7b85828601612f08565b9150509250929050565b5f819050919050565b5f612fa8612fa3612f9e84612a7f565b612f85565b612a7f565b9050919050565b5f612fb982612f8e565b9050919050565b5f612fca82612faf565b9050919050565b612fda81612fc0565b82525050565b5f602082019050612ff35f830184612fd1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061303d57607f821691505b6020821081036130505761304f612ff9565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6130b06028836129ce565b91506130bb82613056565b604082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61311b82612993565b915061312683612993565b925082820390508181111561313e5761313d6130e4565b5b92915050565b5f61314e82612993565b915061315983612993565b9250828201905080821115613171576131706130e4565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131ab6020836129ce565b91506131b682613177565b602082019050919050565b5f6020820190508181035f8301526131d88161319f565b9050919050565b5f6131e982612993565b91506131f483612993565b925082820261320281612993565b91508282048414831517613219576132186130e4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61325782612993565b915061326283612993565b92508261327257613271613220565b5b828204905092915050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f6132b16016836129ce565b91506132bc8261327d565b602082019050919050565b5f6020820190508181035f8301526132de816132a5565b9050919050565b5f6040820190506132f85f830185612cda565b613305602083018461299c565b9392505050565b5f8151905061331a81612ef2565b92915050565b5f6020828403121561333557613334612a77565b5b5f6133428482850161330c565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6133a56025836129ce565b91506133b08261334b565b604082019050919050565b5f6020820190508181035f8301526133d281613399565b9050919050565b7f4552524f523a20323130206d696c2069732074686520636170000000000000005f82015250565b5f61340d6019836129ce565b9150613418826133d9565b602082019050919050565b5f6020820190508181035f83015261343a81613401565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61347882612993565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134aa576134a96130e4565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61350f6026836129ce565b915061351a826134b5565b604082019050919050565b5f6020820190508181035f83015261353c81613503565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61359d6024836129ce565b91506135a882613543565b604082019050919050565b5f6020820190508181035f8301526135ca81613591565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61362b6022836129ce565b9150613636826135d1565b604082019050919050565b5f6020820190508181035f8301526136588161361f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136b96029836129ce565b91506136c48261365f565b604082019050919050565b5f6020820190508181035f8301526136e6816136ad565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e73000000000000005f82015250565b5f6137216019836129ce565b915061372c826136ed565b602082019050919050565b5f6020820190508181035f83015261374e81613715565b9050919050565b7f54726164696e67206e6f742061637469766520796574000000000000000000005f82015250565b5f6137896016836129ce565b915061379482613755565b602082019050919050565b5f6020820190508181035f8301526137b68161377d565b9050919050565b5f815190506137cb81612aaf565b92915050565b5f602082840312156137e6576137e5612a77565b5b5f6137f3848285016137bd565b91505092915050565b5f819050919050565b5f61381f61381a613815846137fc565b612f85565b612993565b9050919050565b61382f81613805565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61386781612a9e565b82525050565b5f613878838361385e565b60208301905092915050565b5f602082019050919050565b5f61389a82613835565b6138a4818561383f565b93506138af8361384f565b805f5b838110156138df5781516138c6888261386d565b97506138d183613884565b9250506001810190506138b2565b5085935050505092915050565b5f60a0820190506138ff5f83018861299c565b61390c6020830187613826565b818103604083015261391e8186613890565b905061392d6060830185612cda565b61393a608083018461299c565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f613978601d836129ce565b915061398382613944565b602082019050919050565b5f6020820190508181035f8301526139a58161396c565b9050919050565b5f81905092915050565b50565b5f6139c45f836139ac565b91506139cf826139b6565b5f82019050919050565b5f6139e3826139b9565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f613a47603a836129ce565b9150613a52826139ed565b604082019050919050565b5f6020820190508181035f830152613a7481613a3b565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f613aaf601f836129ce565b9150613aba82613a7b565b602082019050919050565b5f6020820190508181035f830152613adc81613aa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b3d6025836129ce565b9150613b4882613ae3565b604082019050919050565b5f6020820190508181035f830152613b6a81613b31565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613bcb6023836129ce565b9150613bd682613b71565b604082019050919050565b5f6020820190508181035f830152613bf881613bbf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613c596026836129ce565b9150613c6482613bff565b604082019050919050565b5f6020820190508181035f830152613c8681613c4d565b905091905056fea2646970667358221220eba04fd9fb595cbbb209763791e384fdc876e6bf141ef774b4fd1b5020fb49ac64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610233575f3560e01c80638da5cb5b1161012d578063aacebbe3116100aa578063dd62ed3e1161006e578063dd62ed3e14610828578063e01af92c14610864578063e545fd6d1461088c578063f2fde38b146108b4578063f887ea40146108dc5761023a565b8063aacebbe31461074a578063c634d03214610772578063cc1776d31461079a578063d34628cc146107c4578063dbe66ca0146107ec5761023a565b80639e252f00116100f15780639e252f0014610658578063a3d17f1c14610680578063a457c2d7146106a8578063a8aa1b31146106e4578063a9059cbb1461070e5761023a565b80638da5cb5b1461058857806395d89b41146105b2578063984ae06e146105dc57806398f1312e146106065780639d0014b1146106305761023a565b80634ada218b116101bb57806370a082311161017f57806370a08231146104bc578063715018a6146104f857806375f0a8741461050e57806382aa7c68146105385780638cd4426d146105605761023a565b80634ada218b146103ec5780634f7041a51461041657806350c9a88f1461044057806356faae961461046a5780636ddd1713146104925761023a565b806323b872dd1161020257806323b872dd146102f8578063274a533c14610334578063313ce5671461035e578063395093511461038857806340b28c2f146103c45761023a565b80630445b6671461023e57806306fdde0314610268578063095ea7b31461029257806318160ddd146102ce5761023a565b3661023a57005b5f80fd5b348015610249575f80fd5b50610252610906565b60405161025f91906129ab565b60405180910390f35b348015610273575f80fd5b5061027c61090c565b6040516102899190612a4e565b60405180910390f35b34801561029d575f80fd5b506102b860048036038101906102b39190612b03565b61099c565b6040516102c59190612b5b565b60405180910390f35b3480156102d9575f80fd5b506102e26109b9565b6040516102ef91906129ab565b60405180910390f35b348015610303575f80fd5b5061031e60048036038101906103199190612b74565b6109c2565b60405161032b9190612b5b565b60405180910390f35b34801561033f575f80fd5b50610348610abd565b60405161035591906129ab565b60405180910390f35b348015610369575f80fd5b50610372610ac3565b60405161037f9190612bdf565b60405180910390f35b348015610393575f80fd5b506103ae60048036038101906103a99190612b03565b610acb565b6040516103bb9190612b5b565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e59190612c33565b610b72565b005b3480156103f7575f80fd5b50610400610c72565b60405161040d9190612b5b565b60405180910390f35b348015610421575f80fd5b5061042a610c85565b60405161043791906129ab565b60405180910390f35b34801561044b575f80fd5b50610454610c8b565b60405161046191906129ab565b60405180910390f35b348015610475575f80fd5b50610490600480360381019061048b9190612c71565b610c91565b005b34801561049d575f80fd5b506104a6610d98565b6040516104b39190612b5b565b60405180910390f35b3480156104c7575f80fd5b506104e260048036038101906104dd9190612caf565b610dab565b6040516104ef91906129ab565b60405180910390f35b348015610503575f80fd5b5061050c610df0565b005b348015610519575f80fd5b50610522610e77565b60405161052f9190612ce9565b60405180910390f35b348015610543575f80fd5b5061055e60048036038101906105599190612d02565b610e9c565b005b34801561056b575f80fd5b5061058660048036038101906105819190612b03565b610faf565b005b348015610593575f80fd5b5061059c611050565b6040516105a99190612ce9565b60405180910390f35b3480156105bd575f80fd5b506105c6611078565b6040516105d39190612a4e565b60405180910390f35b3480156105e7575f80fd5b506105f0611108565b6040516105fd91906129ab565b60405180910390f35b348015610611575f80fd5b5061061a61110e565b60405161062791906129ab565b60405180910390f35b34801561063b575f80fd5b5061065660048036038101906106519190612d02565b611114565b005b348015610663575f80fd5b5061067e60048036038101906106799190612d02565b61119a565b005b34801561068b575f80fd5b506106a660048036038101906106a19190612c71565b6111e7565b005b3480156106b3575f80fd5b506106ce60048036038101906106c99190612b03565b611275565b6040516106db9190612b5b565b60405180910390f35b3480156106ef575f80fd5b506106f8611364565b6040516107059190612ce9565b60405180910390f35b348015610719575f80fd5b50610734600480360381019061072f9190612b03565b611389565b6040516107419190612b5b565b60405180910390f35b348015610755575f80fd5b50610770600480360381019061076b9190612caf565b6113a6565b005b34801561077d575f80fd5b5061079860048036038101906107939190612d02565b611465565b005b3480156107a5575f80fd5b506107ae611564565b6040516107bb91906129ab565b60405180910390f35b3480156107cf575f80fd5b506107ea60048036038101906107e59190612e6d565b61156a565b005b3480156107f7575f80fd5b50610812600480360381019061080d9190612caf565b611677565b60405161081f9190612b5b565b60405180910390f35b348015610833575f80fd5b5061084e60048036038101906108499190612eb4565b611694565b60405161085b91906129ab565b60405180910390f35b34801561086f575f80fd5b5061088a60048036038101906108859190612f1c565b611716565b005b348015610897575f80fd5b506108b260048036038101906108ad9190612f47565b6117af565b005b3480156108bf575f80fd5b506108da60048036038101906108d59190612caf565b611883565b005b3480156108e7575f80fd5b506108f0611979565b6040516108fd9190612fe0565b60405180910390f35b600a5481565b60606003805461091b90613026565b80601f016020809104026020016040519081016040528092919081815260200182805461094790613026565b80156109925780601f1061096957610100808354040283529160200191610992565b820191905f5260205f20905b81548152906001019060200180831161097557829003601f168201915b5050505050905090565b5f6109af6109a861199e565b84846119a5565b6001905092915050565b5f600254905090565b5f6109ce848484611b68565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a1561199e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8b906130c6565b60405180910390fd5b610ab185610aa061199e565b8584610aac9190613111565b6119a5565b60019150509392505050565b60085481565b5f6012905090565b5f610b68610ad761199e565b848460015f610ae461199e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b639190613144565b6119a5565b6001905092915050565b610b7a61199e565b73ffffffffffffffffffffffffffffffffffffffff16610b98611050565b73ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be5906131c1565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b600c5481565b60095481565b610c9961199e565b73ffffffffffffffffffffffffffffffffffffffff16610cb7611050565b73ffffffffffffffffffffffffffffffffffffffff1614610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d04906131c1565b60405180910390fd5b5f479050610d1a8361211d565b5f8147610d279190613111565b90505f831115610d9257610d91838483610d4191906131df565b610d4b919061324d565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661235390919063ffffffff16565b5b50505050565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610df861199e565b73ffffffffffffffffffffffffffffffffffffffff16610e16611050565b73ffffffffffffffffffffffffffffffffffffffff1614610e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e63906131c1565b60405180910390fd5b610e755f612443565b565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ea461199e565b73ffffffffffffffffffffffffffffffffffffffff16610ec2611050565b73ffffffffffffffffffffffffffffffffffffffff1614610f18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0f906131c1565b60405180910390fd5b600760169054906101000a900460ff1615610f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5f906132c7565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff021916908315150217905550436008819055508060098190555050565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161100b9291906132e5565b6020604051808303815f875af1158015611027573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061104b9190613320565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461108790613026565b80601f01602080910402602001604051908101604052809291908181526020018280546110b390613026565b80156110fe5780601f106110d5576101008083540402835291602001916110fe565b820191905f5260205f20905b8154815290600101906020018083116110e157829003601f168201915b5050505050905090565b60115481565b60105481565b61111c61199e565b73ffffffffffffffffffffffffffffffffffffffff1661113a611050565b73ffffffffffffffffffffffffffffffffffffffff1614611190576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611187906131c1565b60405180910390fd5b80600a8190555050565b6111e481600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661235390919063ffffffff16565b50565b6111ef61199e565b73ffffffffffffffffffffffffffffffffffffffff1661120d611050565b73ffffffffffffffffffffffffffffffffffffffff1614611263576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125a906131c1565b60405180910390fd5b81600c8190555080600d819055505050565b5f8060015f61128261199e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561133c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611333906133bb565b60405180910390fd5b61135961134761199e565b8585846113549190613111565b6119a5565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61139c61139561199e565b8484611b68565b6001905092915050565b6113ae61199e565b73ffffffffffffffffffffffffffffffffffffffff166113cc611050565b73ffffffffffffffffffffffffffffffffffffffff1614611422576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611419906131c1565b60405180910390fd5b80600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61146d61199e565b73ffffffffffffffffffffffffffffffffffffffff1661148b611050565b73ffffffffffffffffffffffffffffffffffffffff16146114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d8906131c1565b60405180910390fd5b601054816114ed6109b9565b6114f79190613144565b1115611538576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152f90613423565b60405180910390fd5b8060115f8282546115499190613144565b9250508190555061156161155b611050565b82612506565b50565b600d5481565b61157261199e565b73ffffffffffffffffffffffffffffffffffffffff16611590611050565b73ffffffffffffffffffffffffffffffffffffffff16146115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd906131c1565b60405180910390fd5b5f5b8151811015611673576001600f5f84848151811061160957611608613441565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061166b9061346e565b9150506115e8565b5050565b600e602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61171e61199e565b73ffffffffffffffffffffffffffffffffffffffff1661173c611050565b73ffffffffffffffffffffffffffffffffffffffff1614611792576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611789906131c1565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b6117b761199e565b73ffffffffffffffffffffffffffffffffffffffff166117d5611050565b73ffffffffffffffffffffffffffffffffffffffff161461182b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611822906131c1565b60405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61188b61199e565b73ffffffffffffffffffffffffffffffffffffffff166118a9611050565b73ffffffffffffffffffffffffffffffffffffffff16146118ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f6906131c1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361196d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196490613525565b60405180910390fd5b61197681612443565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0a906135b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7890613641565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611b5b91906129ab565b60405180910390a3505050565b5f8111611baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba1906136cf565b60405180910390fd5b600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611c485750600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611c87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7e90613737565b60405180910390fd5b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611d255750600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d3e5750600760149054906101000a900460ff16155b15611eff57600760169054906101000a900460ff16611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d899061379f565b60405180910390fd5b43600954600854611da39190613144565b1115611efe5760075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e53576001600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611efd576001600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505b5b5b5f600760149054906101000a900460ff1680611f615750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611fb25750600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611fbf575f9050612052565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612034576064600d548361202391906131df565b61202d919061324d565b9050612051565b6064600c548361204491906131df565b61204e919061324d565b90505b5b600760159054906101000a900460ff16801561207b5750600760149054906101000a900460ff16155b80156120d4575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120df57505f81115b156120ed576120ec612652565b5b612103848483856120fe9190613111565b61271b565b5f8111156121175761211684308361271b565b5b50505050565b5f600267ffffffffffffffff81111561213957612138612d31565b5b6040519080825280602002602001820160405280156121675781602001602082028036833780820191505090505b50905030815f8151811061217e5761217d613441565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612222573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224691906137d1565b8160018151811061225a57612259613441565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122c03060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846119a5565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123229594939291906138ec565b5f604051808303815f87803b158015612339575f80fd5b505af115801561234b573d5f803e3d5ffd5b505050505050565b80471015612396576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238d9061398e565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff16826040516123bb906139d9565b5f6040518083038185875af1925050503d805f81146123f5576040519150601f19603f3d011682016040523d82523d5f602084013e6123fa565b606091505b505090508061243e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243590613a5d565b60405180910390fd5b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612574576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256b90613ac5565b60405180910390fd5b61257f5f838361298e565b8060025f8282546125909190613144565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125e29190613144565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161264691906129ab565b60405180910390a35050565b600760149054906101000a900460ff16612719576001600760146101000a81548160ff0219169083151502179055505f61268b30610dab565b9050600a5481106126fd575f8190506126a38161211d565b5f4790505f8111156126fa576126f981600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661235390919063ffffffff16565b5b50505b505f600760146101000a81548160ff0219169083151502179055505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612789576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278090613b53565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036127f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ee90613be1565b60405180910390fd5b61280283838361298e565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287c90613c6f565b60405180910390fd5b81816128919190613111565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461291c9190613144565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161298091906129ab565b60405180910390a350505050565b505050565b5f819050919050565b6129a581612993565b82525050565b5f6020820190506129be5f83018461299c565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156129fb5780820151818401526020810190506129e0565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612a20826129c4565b612a2a81856129ce565b9350612a3a8185602086016129de565b612a4381612a06565b840191505092915050565b5f6020820190508181035f830152612a668184612a16565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612aa882612a7f565b9050919050565b612ab881612a9e565b8114612ac2575f80fd5b50565b5f81359050612ad381612aaf565b92915050565b612ae281612993565b8114612aec575f80fd5b50565b5f81359050612afd81612ad9565b92915050565b5f8060408385031215612b1957612b18612a77565b5b5f612b2685828601612ac5565b9250506020612b3785828601612aef565b9150509250929050565b5f8115159050919050565b612b5581612b41565b82525050565b5f602082019050612b6e5f830184612b4c565b92915050565b5f805f60608486031215612b8b57612b8a612a77565b5b5f612b9886828701612ac5565b9350506020612ba986828701612ac5565b9250506040612bba86828701612aef565b9150509250925092565b5f60ff82169050919050565b612bd981612bc4565b82525050565b5f602082019050612bf25f830184612bd0565b92915050565b5f612c0282612a9e565b9050919050565b612c1281612bf8565b8114612c1c575f80fd5b50565b5f81359050612c2d81612c09565b92915050565b5f8060408385031215612c4957612c48612a77565b5b5f612c5685828601612c1f565b9250506020612c6785828601612ac5565b9150509250929050565b5f8060408385031215612c8757612c86612a77565b5b5f612c9485828601612aef565b9250506020612ca585828601612aef565b9150509250929050565b5f60208284031215612cc457612cc3612a77565b5b5f612cd184828501612ac5565b91505092915050565b612ce381612a9e565b82525050565b5f602082019050612cfc5f830184612cda565b92915050565b5f60208284031215612d1757612d16612a77565b5b5f612d2484828501612aef565b91505092915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d6782612a06565b810181811067ffffffffffffffff82111715612d8657612d85612d31565b5b80604052505050565b5f612d98612a6e565b9050612da48282612d5e565b919050565b5f67ffffffffffffffff821115612dc357612dc2612d31565b5b602082029050602081019050919050565b5f80fd5b5f612dea612de584612da9565b612d8f565b90508083825260208201905060208402830185811115612e0d57612e0c612dd4565b5b835b81811015612e365780612e228882612ac5565b845260208401935050602081019050612e0f565b5050509392505050565b5f82601f830112612e5457612e53612d2d565b5b8135612e64848260208601612dd8565b91505092915050565b5f60208284031215612e8257612e81612a77565b5b5f82013567ffffffffffffffff811115612e9f57612e9e612a7b565b5b612eab84828501612e40565b91505092915050565b5f8060408385031215612eca57612ec9612a77565b5b5f612ed785828601612ac5565b9250506020612ee885828601612ac5565b9150509250929050565b612efb81612b41565b8114612f05575f80fd5b50565b5f81359050612f1681612ef2565b92915050565b5f60208284031215612f3157612f30612a77565b5b5f612f3e84828501612f08565b91505092915050565b5f8060408385031215612f5d57612f5c612a77565b5b5f612f6a85828601612ac5565b9250506020612f7b85828601612f08565b9150509250929050565b5f819050919050565b5f612fa8612fa3612f9e84612a7f565b612f85565b612a7f565b9050919050565b5f612fb982612f8e565b9050919050565b5f612fca82612faf565b9050919050565b612fda81612fc0565b82525050565b5f602082019050612ff35f830184612fd1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061303d57607f821691505b6020821081036130505761304f612ff9565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6130b06028836129ce565b91506130bb82613056565b604082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61311b82612993565b915061312683612993565b925082820390508181111561313e5761313d6130e4565b5b92915050565b5f61314e82612993565b915061315983612993565b9250828201905080821115613171576131706130e4565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131ab6020836129ce565b91506131b682613177565b602082019050919050565b5f6020820190508181035f8301526131d88161319f565b9050919050565b5f6131e982612993565b91506131f483612993565b925082820261320281612993565b91508282048414831517613219576132186130e4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61325782612993565b915061326283612993565b92508261327257613271613220565b5b828204905092915050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f6132b16016836129ce565b91506132bc8261327d565b602082019050919050565b5f6020820190508181035f8301526132de816132a5565b9050919050565b5f6040820190506132f85f830185612cda565b613305602083018461299c565b9392505050565b5f8151905061331a81612ef2565b92915050565b5f6020828403121561333557613334612a77565b5b5f6133428482850161330c565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f6133a56025836129ce565b91506133b08261334b565b604082019050919050565b5f6020820190508181035f8301526133d281613399565b9050919050565b7f4552524f523a20323130206d696c2069732074686520636170000000000000005f82015250565b5f61340d6019836129ce565b9150613418826133d9565b602082019050919050565b5f6020820190508181035f83015261343a81613401565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f61347882612993565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134aa576134a96130e4565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61350f6026836129ce565b915061351a826134b5565b604082019050919050565b5f6020820190508181035f83015261353c81613503565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61359d6024836129ce565b91506135a882613543565b604082019050919050565b5f6020820190508181035f8301526135ca81613591565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61362b6022836129ce565b9150613636826135d1565b604082019050919050565b5f6020820190508181035f8301526136588161361f565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136b96029836129ce565b91506136c48261365f565b604082019050919050565b5f6020820190508181035f8301526136e6816136ad565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e73000000000000005f82015250565b5f6137216019836129ce565b915061372c826136ed565b602082019050919050565b5f6020820190508181035f83015261374e81613715565b9050919050565b7f54726164696e67206e6f742061637469766520796574000000000000000000005f82015250565b5f6137896016836129ce565b915061379482613755565b602082019050919050565b5f6020820190508181035f8301526137b68161377d565b9050919050565b5f815190506137cb81612aaf565b92915050565b5f602082840312156137e6576137e5612a77565b5b5f6137f3848285016137bd565b91505092915050565b5f819050919050565b5f61381f61381a613815846137fc565b612f85565b612993565b9050919050565b61382f81613805565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61386781612a9e565b82525050565b5f613878838361385e565b60208301905092915050565b5f602082019050919050565b5f61389a82613835565b6138a4818561383f565b93506138af8361384f565b805f5b838110156138df5781516138c6888261386d565b97506138d183613884565b9250506001810190506138b2565b5085935050505092915050565b5f60a0820190506138ff5f83018861299c565b61390c6020830187613826565b818103604083015261391e8186613890565b905061392d6060830185612cda565b61393a608083018461299c565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e63650000005f82015250565b5f613978601d836129ce565b915061398382613944565b602082019050919050565b5f6020820190508181035f8301526139a58161396c565b9050919050565b5f81905092915050565b50565b5f6139c45f836139ac565b91506139cf826139b6565b5f82019050919050565b5f6139e3826139b9565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c20725f8201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b5f613a47603a836129ce565b9150613a52826139ed565b604082019050919050565b5f6020820190508181035f830152613a7481613a3b565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f613aaf601f836129ce565b9150613aba82613a7b565b602082019050919050565b5f6020820190508181035f830152613adc81613aa3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613b3d6025836129ce565b9150613b4882613ae3565b604082019050919050565b5f6020820190508181035f830152613b6a81613b31565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613bcb6023836129ce565b9150613bd682613b71565b604082019050919050565b5f6020820190508181035f830152613bf881613bbf565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613c596026836129ce565b9150613c6482613bff565b604082019050919050565b5f6020820190508181035f830152613c8681613c4d565b905091905056fea2646970667358221220eba04fd9fb595cbbb209763791e384fdc876e6bf141ef774b4fd1b5020fb49ac64736f6c63430008140033

Deployed Bytecode Sourcemap

7667:5582:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7970:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1854:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2768:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2175:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2945:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7897:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2074:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3375:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11824:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7862:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8089;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7932:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12784:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7832:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2291:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6698:94;;;;;;;;;;;;;:::i;:::-;;8005:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11275:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12291:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6475:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1962:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8323:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8260:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11157:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12440:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11558:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3598:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7776:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2426:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11701:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12559:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8122:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11970:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8158:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2609:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11056:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12149:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6800:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7748:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7970:28;;;;:::o;1854:100::-;1908:13;1941:5;1934:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1854:100;:::o;2768:169::-;2851:4;2868:39;2877:12;:10;:12::i;:::-;2891:7;2900:6;2868:8;:39::i;:::-;2925:4;2918:11;;2768:169;;;;:::o;2175:108::-;2236:7;2263:12;;2256:19;;2175:108;:::o;2945:422::-;3051:4;3068:36;3078:6;3086:9;3097:6;3068:9;:36::i;:::-;3117:24;3144:11;:19;3156:6;3144:19;;;;;;;;;;;;;;;:33;3164:12;:10;:12::i;:::-;3144:33;;;;;;;;;;;;;;;;3117:60;;3216:6;3196:16;:26;;3188:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;3278:57;3287:6;3295:12;:10;:12::i;:::-;3328:6;3309:16;:25;;;;:::i;:::-;3278:8;:57::i;:::-;3355:4;3348:11;;;2945:422;;;;;:::o;7897:28::-;;;;:::o;2074:93::-;2132:5;2157:2;2150:9;;2074:93;:::o;3375:215::-;3463:4;3480:80;3489:12;:10;:12::i;:::-;3503:7;3549:10;3512:11;:25;3524:12;:10;:12::i;:::-;3512:25;;;;;;;;;;;;;;;:34;3538:7;3512:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3480:8;:80::i;:::-;3578:4;3571:11;;3375:215;;;;:::o;11824:138::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11924:7:::1;11915:6;;:16;;;;;;;;;;;;;;;;;;11949:5;11942:4;;:12;;;;;;;;;;;;;;;;;;11824:138:::0;;:::o;7862:26::-;;;;;;;;;;;;;:::o;8089:::-;;;;:::o;7932:29::-;;;;:::o;12784:406::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12879:19:::1;12901:21;12879:43;;12933:24;12950:6;12933:16;:24::i;:::-;12968:18;13013:11;12989:21;:35;;;;:::i;:::-;12968:56;;13061:1;13039:19;:23;13035:148;;;13079:92;13150:19;13127;13114:10;:32;;;;:::i;:::-;:56;;;;:::i;:::-;13087:15;;;;;;;;;;;13079:34;;;;:92;;;;:::i;:::-;13035:148;12868:322;;12784:406:::0;;:::o;7832:23::-;;;;;;;;;;;;;:::o;2291:127::-;2365:7;2392:9;:18;2402:7;2392:18;;;;;;;;;;;;;;;;2385:25;;2291:127;;;:::o;6698:94::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6763:21:::1;6781:1;6763:9;:21::i;:::-;6698:94::o:0;8005:75::-;;;;;;;;;;;;;:::o;11275:275::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11362:14:::1;;;;;;;;;;;11361:15;11353:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11431:4;11414:14;;:21;;;;;;;;;;;;;;;;;;11460:4;11446:11;;:18;;;;;;;;;;;;;;;;;;11491:12;11475:13;:28;;;;11527:15;11514:10;:28;;;;11275:275:::0;:::o;12291:141::-;12377:12;12370:29;;;12400:15;;;;;;;;;;;12417:6;12370:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12291:141;;:::o;6475:87::-;6521:7;6548:6;;;;;;;;;;;6541:13;;6475:87;:::o;1962:104::-;2018:13;2051:7;2044:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1962:104;:::o;8323:65::-;;;;:::o;8260:56::-;;;;:::o;11157:110::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11249:10:::1;11233:13;:26;;;;11157:110:::0;:::o;12440:111::-;12498:45;12533:9;12506:15;;;;;;;;;;;12498:34;;;;:45;;;;:::i;:::-;12440:111;:::o;11558:135::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11649:7:::1;11640:6;:16;;;;11677:8;11667:7;:18;;;;11558:135:::0;;:::o;3598:377::-;3691:4;3708:24;3735:11;:25;3747:12;:10;:12::i;:::-;3735:25;;;;;;;;;;;;;;;:34;3761:7;3735:34;;;;;;;;;;;;;;;;3708:61;;3808:15;3788:16;:35;;3780:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;3876:67;3885:12;:10;:12::i;:::-;3899:7;3927:15;3908:16;:34;;;;:::i;:::-;3876:8;:67::i;:::-;3963:4;3956:11;;;3598:377;;;;:::o;7776:19::-;;;;;;;;;;;;;:::o;2426:175::-;2512:4;2529:42;2539:12;:10;:12::i;:::-;2553:9;2564:6;2529:9;:42::i;:::-;2589:4;2582:11;;2426:175;;;;:::o;11701:115::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11799:9:::1;11781:15;;:27;;;;;;;;;;;;;;;;;;11701:115:::0;:::o;12559:217::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12658:8:::1;;12648:6;12632:13;:11;:13::i;:::-;:22;;;;:::i;:::-;:34;;12624:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12729:6;12707:18;;:28;;;;;;;:::i;:::-;;;;;;;;12746:22;12752:7;:5;:7::i;:::-;12761:6;12746:5;:22::i;:::-;12559:217:::0;:::o;8122:27::-;;;;:::o;11970:171::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12045:9:::1;12040:94;12064:6;:13;12060:1;:17;12040:94;;;12118:4;12099:5;:16;12105:6;12112:1;12105:9;;;;;;;;:::i;:::-;;;;;;;;12099:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12079:3;;;;;:::i;:::-;;;;12040:94;;;;11970:171:::0;:::o;8158:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2609:151::-;2698:7;2725:11;:18;2737:5;2725:18;;;;;;;;;;;;;;;:27;2744:7;2725:27;;;;;;;;;;;;;;;;2718:34;;2609:151;;;;:::o;11056:93::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11136:5:::1;11122:11;;:19;;;;;;;;;;;;;;;;;;11056:93:::0;:::o;12149:134::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12270:5:::1;12241:16;:26;12258:8;12241:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;12149:134:::0;;:::o;6800:192::-;6621:12;:10;:12::i;:::-;6610:23;;:7;:5;:7::i;:::-;:23;;;6602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6909:1:::1;6889:22;;:8;:22;;::::0;6881:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6965:19;6975:8;6965:9;:19::i;:::-;6800:192:::0;:::o;7748:21::-;;;;;;;;;;;;;:::o;301:98::-;354:7;381:10;374:17;;301:98;:::o;5443:346::-;5562:1;5545:19;;:5;:19;;;5537:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5643:1;5624:21;;:7;:21;;;5616:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5727:6;5697:11;:18;5709:5;5697:18;;;;;;;;;;;;;;;:27;5716:7;5697:27;;;;;;;;;;;;;;;:36;;;;5765:7;5749:32;;5758:5;5749:32;;;5774:6;5749:32;;;;;;:::i;:::-;;;;;;;;5443:346;;;:::o;9092:1107::-;9208:1;9199:6;:10;9191:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9275:5;:13;9281:6;9275:13;;;;;;;;;;;;;;;;;;;;;;;;;9274:14;:35;;;;;9293:5;:16;9299:9;9293:16;;;;;;;;;;;;;;;;;;;;;;;;;9292:17;9274:35;9266:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9357:16;:24;9374:6;9357:24;;;;;;;;;;;;;;;;;;;;;;;;;9356:25;:57;;;;;9386:16;:27;9403:9;9386:27;;;;;;;;;;;;;;;;;;;;;;;;;9385:28;9356:57;:70;;;;;9418:8;;;;;;;;;;;9417:9;9356:70;9352:353;;;9451:14;;;;;;;;;;;9443:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9540:12;9527:10;;9511:13;;:26;;;;:::i;:::-;:41;9507:187;;;9590:4;;;;;;;;;;;9577:17;;:9;:17;;;9573:46;;9615:4;9596:5;:16;9602:9;9596:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;9573:46;9652:4;;;;;;;;;;;9642:14;;:6;:14;;;9638:40;;9674:4;9658:5;:13;9664:6;9658:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;9638:40;9507:187;9352:353;9717:11;9745:8;;;;;;;;;;;:36;;;;9757:16;:24;9774:6;9757:24;;;;;;;;;;;;;;;;;;;;;;;;;9745:36;:67;;;;9785:16;:27;9802:9;9785:27;;;;;;;;;;;;;;;;;;;;;;;;;9745:67;9741:238;;;9835:1;9829:7;;9741:238;;;9886:4;;;;;;;;;;;9873:17;;:9;:17;;;9869:98;;9917:3;9907:7;;9898:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;9892:28;;9869:98;;;9964:3;9955:6;;9946;:15;;;;:::i;:::-;:21;;;;:::i;:::-;9940:27;;9869:98;9741:238;9995:11;;;;;;;;;;;:24;;;;;10011:8;;;;;;;;;;;10010:9;9995:24;:42;;;;;10033:4;;;;;;;;;;;10023:14;;:6;:14;;;;9995:42;:53;;;;;10047:1;10041:3;:7;9995:53;9991:72;;;10050:13;:11;:13::i;:::-;9991:72;10076:48;10092:6;10100:9;10120:3;10111:6;:12;;;;:::i;:::-;10076:15;:48::i;:::-;10145:1;10139:3;:7;10135:56;;;10148:43;10164:6;10180:4;10187:3;10148:15;:43::i;:::-;10135:56;9180:1019;9092:1107;;;:::o;10650:398::-;10716:21;10754:1;10740:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10716:40;;10785:4;10767;10772:1;10767:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10811:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10801:4;10806:1;10801:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10837:53;10854:4;10869:6;;;;;;;;;;;10878:11;10837:8;:53::i;:::-;10929:6;;;;;;;;;;;:57;;;10987:11;11000:1;11003:4;11017;11024:15;10929:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10705:343;10650:398;:::o;5919:318::-;6034:6;6009:21;:31;;6001:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6088:12;6105:9;:14;;6128:6;6105:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6087:53;;;6159:7;6151:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;5990:247;5919:318;;:::o;7000:173::-;7056:16;7075:6;;;;;;;;;;;7056:25;;7101:8;7092:6;;:17;;;;;;;;;;;;;;;;;;7156:8;7125:40;;7146:8;7125:40;;;;;;;;;;;;7045:128;7000:173;:::o;4595:338::-;4698:1;4679:21;;:7;:21;;;4671:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;4749:49;4778:1;4782:7;4791:6;4749:20;:49::i;:::-;4827:6;4811:12;;:22;;;;;;;:::i;:::-;;;;;;;;4866:6;4844:9;:18;4854:7;4844:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;4909:7;4888:37;;4905:1;4888:37;;;4918:6;4888:37;;;;;;:::i;:::-;;;;;;;;4595:338;;:::o;10207:435::-;8431:8;;;;;;;;;;;8426:104;;8467:4;8456:8;;:15;;;;;;;;;;;;;;;;;;10256:23:::1;10282:24;10300:4;10282:9;:24::i;:::-;10256:50;;10340:13;;10321:15;:32;10317:318;;10370:14;10387:15;10370:32;;10419:24;10436:6;10419:16;:24::i;:::-;10460:20;10483:21;10460:44;;10538:1;10523:12;:16;10519:105;;;10560:48;10595:12;10568:15;;;;;;;;;;;10560:34;;;;:48;;;;:::i;:::-;10519:105;10355:280;;10317:318;10245:397;8513:5:::0;8502:8;;:16;;;;;;;;;;;;;;;;;;8426:104;10207:435::o;3983:604::-;4107:1;4089:20;;:6;:20;;;4081:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4191:1;4170:23;;:9;:23;;;4162:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4246:47;4267:6;4275:9;4286:6;4246:20;:47::i;:::-;4306:21;4330:9;:17;4340:6;4330:17;;;;;;;;;;;;;;;;4306:41;;4383:6;4366:13;:23;;4358:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;4479:6;4463:13;:22;;;;:::i;:::-;4443:9;:17;4453:6;4443:17;;;;;;;;;;;;;;;:42;;;;4520:6;4496:9;:20;4506:9;4496:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;4561:9;4544:35;;4553:6;4544:35;;;4572:6;4544:35;;;;;;:::i;:::-;;;;;;;;4070:517;3983:604;;;:::o;5797:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1784:75::-;1817:6;1850:2;1844:9;1834:19;;1784:75;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:111::-;4905:7;4934:24;4952:5;4934:24;:::i;:::-;4923:35;;4853:111;;;:::o;4970:152::-;5058:39;5091:5;5058:39;:::i;:::-;5051:5;5048:50;5038:78;;5112:1;5109;5102:12;5038:78;4970:152;:::o;5128:169::-;5189:5;5227:6;5214:20;5205:29;;5243:48;5285:5;5243:48;:::i;:::-;5128:169;;;;:::o;5303:504::-;5386:6;5394;5443:2;5431:9;5422:7;5418:23;5414:32;5411:119;;;5449:79;;:::i;:::-;5411:119;5569:1;5594:68;5654:7;5645:6;5634:9;5630:22;5594:68;:::i;:::-;5584:78;;5540:132;5711:2;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5682:118;5303:504;;;;;:::o;5813:474::-;5881:6;5889;5938:2;5926:9;5917:7;5913:23;5909:32;5906:119;;;5944:79;;:::i;:::-;5906:119;6064:1;6089:53;6134:7;6125:6;6114:9;6110:22;6089:53;:::i;:::-;6079:63;;6035:117;6191:2;6217:53;6262:7;6253:6;6242:9;6238:22;6217:53;:::i;:::-;6207:63;;6162:118;5813:474;;;;;:::o;6293:329::-;6352:6;6401:2;6389:9;6380:7;6376:23;6372:32;6369:119;;;6407:79;;:::i;:::-;6369:119;6527:1;6552:53;6597:7;6588:6;6577:9;6573:22;6552:53;:::i;:::-;6542:63;;6498:117;6293:329;;;;:::o;6628:118::-;6715:24;6733:5;6715:24;:::i;:::-;6710:3;6703:37;6628:118;;:::o;6752:222::-;6845:4;6883:2;6872:9;6868:18;6860:26;;6896:71;6964:1;6953:9;6949:17;6940:6;6896:71;:::i;:::-;6752:222;;;;:::o;6980:329::-;7039:6;7088:2;7076:9;7067:7;7063:23;7059:32;7056:119;;;7094:79;;:::i;:::-;7056:119;7214:1;7239:53;7284:7;7275:6;7264:9;7260:22;7239:53;:::i;:::-;7229:63;;7185:117;6980:329;;;;:::o;7315:117::-;7424:1;7421;7414:12;7438:180;7486:77;7483:1;7476:88;7583:4;7580:1;7573:15;7607:4;7604:1;7597:15;7624:281;7707:27;7729:4;7707:27;:::i;:::-;7699:6;7695:40;7837:6;7825:10;7822:22;7801:18;7789:10;7786:34;7783:62;7780:88;;;7848:18;;:::i;:::-;7780:88;7888:10;7884:2;7877:22;7667:238;7624:281;;:::o;7911:129::-;7945:6;7972:20;;:::i;:::-;7962:30;;8001:33;8029:4;8021:6;8001:33;:::i;:::-;7911:129;;;:::o;8046:311::-;8123:4;8213:18;8205:6;8202:30;8199:56;;;8235:18;;:::i;:::-;8199:56;8285:4;8277:6;8273:17;8265:25;;8345:4;8339;8335:15;8327:23;;8046:311;;;:::o;8363:117::-;8472:1;8469;8462:12;8503:710;8599:5;8624:81;8640:64;8697:6;8640:64;:::i;:::-;8624:81;:::i;:::-;8615:90;;8725:5;8754:6;8747:5;8740:21;8788:4;8781:5;8777:16;8770:23;;8841:4;8833:6;8829:17;8821:6;8817:30;8870:3;8862:6;8859:15;8856:122;;;8889:79;;:::i;:::-;8856:122;9004:6;8987:220;9021:6;9016:3;9013:15;8987:220;;;9096:3;9125:37;9158:3;9146:10;9125:37;:::i;:::-;9120:3;9113:50;9192:4;9187:3;9183:14;9176:21;;9063:144;9047:4;9042:3;9038:14;9031:21;;8987:220;;;8991:21;8605:608;;8503:710;;;;;:::o;9236:370::-;9307:5;9356:3;9349:4;9341:6;9337:17;9333:27;9323:122;;9364:79;;:::i;:::-;9323:122;9481:6;9468:20;9506:94;9596:3;9588:6;9581:4;9573:6;9569:17;9506:94;:::i;:::-;9497:103;;9313:293;9236:370;;;;:::o;9612:539::-;9696:6;9745:2;9733:9;9724:7;9720:23;9716:32;9713:119;;;9751:79;;:::i;:::-;9713:119;9899:1;9888:9;9884:17;9871:31;9929:18;9921:6;9918:30;9915:117;;;9951:79;;:::i;:::-;9915:117;10056:78;10126:7;10117:6;10106:9;10102:22;10056:78;:::i;:::-;10046:88;;9842:302;9612:539;;;;:::o;10157:474::-;10225:6;10233;10282:2;10270:9;10261:7;10257:23;10253:32;10250:119;;;10288:79;;:::i;:::-;10250:119;10408:1;10433:53;10478:7;10469:6;10458:9;10454:22;10433:53;:::i;:::-;10423:63;;10379:117;10535:2;10561:53;10606:7;10597:6;10586:9;10582:22;10561:53;:::i;:::-;10551:63;;10506:118;10157:474;;;;;:::o;10637:116::-;10707:21;10722:5;10707:21;:::i;:::-;10700:5;10697:32;10687:60;;10743:1;10740;10733:12;10687:60;10637:116;:::o;10759:133::-;10802:5;10840:6;10827:20;10818:29;;10856:30;10880:5;10856:30;:::i;:::-;10759:133;;;;:::o;10898:323::-;10954:6;11003:2;10991:9;10982:7;10978:23;10974:32;10971:119;;;11009:79;;:::i;:::-;10971:119;11129:1;11154:50;11196:7;11187:6;11176:9;11172:22;11154:50;:::i;:::-;11144:60;;11100:114;10898:323;;;;:::o;11227:468::-;11292:6;11300;11349:2;11337:9;11328:7;11324:23;11320:32;11317:119;;;11355:79;;:::i;:::-;11317:119;11475:1;11500:53;11545:7;11536:6;11525:9;11521:22;11500:53;:::i;:::-;11490:63;;11446:117;11602:2;11628:50;11670:7;11661:6;11650:9;11646:22;11628:50;:::i;:::-;11618:60;;11573:115;11227:468;;;;;:::o;11701:60::-;11729:3;11750:5;11743:12;;11701:60;;;:::o;11767:142::-;11817:9;11850:53;11868:34;11877:24;11895:5;11877:24;:::i;:::-;11868:34;:::i;:::-;11850:53;:::i;:::-;11837:66;;11767:142;;;:::o;11915:126::-;11965:9;11998:37;12029:5;11998:37;:::i;:::-;11985:50;;11915:126;;;:::o;12047:141::-;12112:9;12145:37;12176:5;12145:37;:::i;:::-;12132:50;;12047:141;;;:::o;12194:161::-;12296:52;12342:5;12296:52;:::i;:::-;12291:3;12284:65;12194:161;;:::o;12361:252::-;12469:4;12507:2;12496:9;12492:18;12484:26;;12520:86;12603:1;12592:9;12588:17;12579:6;12520:86;:::i;:::-;12361:252;;;;:::o;12619:180::-;12667:77;12664:1;12657:88;12764:4;12761:1;12754:15;12788:4;12785:1;12778:15;12805:320;12849:6;12886:1;12880:4;12876:12;12866:22;;12933:1;12927:4;12923:12;12954:18;12944:81;;13010:4;13002:6;12998:17;12988:27;;12944:81;13072:2;13064:6;13061:14;13041:18;13038:38;13035:84;;13091:18;;:::i;:::-;13035:84;12856:269;12805:320;;;:::o;13131:227::-;13271:34;13267:1;13259:6;13255:14;13248:58;13340:10;13335:2;13327:6;13323:15;13316:35;13131:227;:::o;13364:366::-;13506:3;13527:67;13591:2;13586:3;13527:67;:::i;:::-;13520:74;;13603:93;13692:3;13603:93;:::i;:::-;13721:2;13716:3;13712:12;13705:19;;13364:366;;;:::o;13736:419::-;13902:4;13940:2;13929:9;13925:18;13917:26;;13989:9;13983:4;13979:20;13975:1;13964:9;13960:17;13953:47;14017:131;14143:4;14017:131;:::i;:::-;14009:139;;13736:419;;;:::o;14161:180::-;14209:77;14206:1;14199:88;14306:4;14303:1;14296:15;14330:4;14327:1;14320:15;14347:194;14387:4;14407:20;14425:1;14407:20;:::i;:::-;14402:25;;14441:20;14459:1;14441:20;:::i;:::-;14436:25;;14485:1;14482;14478:9;14470:17;;14509:1;14503:4;14500:11;14497:37;;;14514:18;;:::i;:::-;14497:37;14347:194;;;;:::o;14547:191::-;14587:3;14606:20;14624:1;14606:20;:::i;:::-;14601:25;;14640:20;14658:1;14640:20;:::i;:::-;14635:25;;14683:1;14680;14676:9;14669:16;;14704:3;14701:1;14698:10;14695:36;;;14711:18;;:::i;:::-;14695:36;14547:191;;;;:::o;14744:182::-;14884:34;14880:1;14872:6;14868:14;14861:58;14744:182;:::o;14932:366::-;15074:3;15095:67;15159:2;15154:3;15095:67;:::i;:::-;15088:74;;15171:93;15260:3;15171:93;:::i;:::-;15289:2;15284:3;15280:12;15273:19;;14932:366;;;:::o;15304:419::-;15470:4;15508:2;15497:9;15493:18;15485:26;;15557:9;15551:4;15547:20;15543:1;15532:9;15528:17;15521:47;15585:131;15711:4;15585:131;:::i;:::-;15577:139;;15304:419;;;:::o;15729:410::-;15769:7;15792:20;15810:1;15792:20;:::i;:::-;15787:25;;15826:20;15844:1;15826:20;:::i;:::-;15821:25;;15881:1;15878;15874:9;15903:30;15921:11;15903:30;:::i;:::-;15892:41;;16082:1;16073:7;16069:15;16066:1;16063:22;16043:1;16036:9;16016:83;15993:139;;16112:18;;:::i;:::-;15993:139;15777:362;15729:410;;;;:::o;16145:180::-;16193:77;16190:1;16183:88;16290:4;16287:1;16280:15;16314:4;16311:1;16304:15;16331:185;16371:1;16388:20;16406:1;16388:20;:::i;:::-;16383:25;;16422:20;16440:1;16422:20;:::i;:::-;16417:25;;16461:1;16451:35;;16466:18;;:::i;:::-;16451:35;16508:1;16505;16501:9;16496:14;;16331:185;;;;:::o;16522:172::-;16662:24;16658:1;16650:6;16646:14;16639:48;16522:172;:::o;16700:366::-;16842:3;16863:67;16927:2;16922:3;16863:67;:::i;:::-;16856:74;;16939:93;17028:3;16939:93;:::i;:::-;17057:2;17052:3;17048:12;17041:19;;16700:366;;;:::o;17072:419::-;17238:4;17276:2;17265:9;17261:18;17253:26;;17325:9;17319:4;17315:20;17311:1;17300:9;17296:17;17289:47;17353:131;17479:4;17353:131;:::i;:::-;17345:139;;17072:419;;;:::o;17497:332::-;17618:4;17656:2;17645:9;17641:18;17633:26;;17669:71;17737:1;17726:9;17722:17;17713:6;17669:71;:::i;:::-;17750:72;17818:2;17807:9;17803:18;17794:6;17750:72;:::i;:::-;17497:332;;;;;:::o;17835:137::-;17889:5;17920:6;17914:13;17905:22;;17936:30;17960:5;17936:30;:::i;:::-;17835:137;;;;:::o;17978:345::-;18045:6;18094:2;18082:9;18073:7;18069:23;18065:32;18062:119;;;18100:79;;:::i;:::-;18062:119;18220:1;18245:61;18298:7;18289:6;18278:9;18274:22;18245:61;:::i;:::-;18235:71;;18191:125;17978:345;;;;:::o;18329:224::-;18469:34;18465:1;18457:6;18453:14;18446:58;18538:7;18533:2;18525:6;18521:15;18514:32;18329:224;:::o;18559:366::-;18701:3;18722:67;18786:2;18781:3;18722:67;:::i;:::-;18715:74;;18798:93;18887:3;18798:93;:::i;:::-;18916:2;18911:3;18907:12;18900:19;;18559:366;;;:::o;18931:419::-;19097:4;19135:2;19124:9;19120:18;19112:26;;19184:9;19178:4;19174:20;19170:1;19159:9;19155:17;19148:47;19212:131;19338:4;19212:131;:::i;:::-;19204:139;;18931:419;;;:::o;19356:175::-;19496:27;19492:1;19484:6;19480:14;19473:51;19356:175;:::o;19537:366::-;19679:3;19700:67;19764:2;19759:3;19700:67;:::i;:::-;19693:74;;19776:93;19865:3;19776:93;:::i;:::-;19894:2;19889:3;19885:12;19878:19;;19537:366;;;:::o;19909:419::-;20075:4;20113:2;20102:9;20098:18;20090:26;;20162:9;20156:4;20152:20;20148:1;20137:9;20133:17;20126:47;20190:131;20316:4;20190:131;:::i;:::-;20182:139;;19909:419;;;:::o;20334:180::-;20382:77;20379:1;20372:88;20479:4;20476:1;20469:15;20503:4;20500:1;20493:15;20520:233;20559:3;20582:24;20600:5;20582:24;:::i;:::-;20573:33;;20628:66;20621:5;20618:77;20615:103;;20698:18;;:::i;:::-;20615:103;20745:1;20738:5;20734:13;20727:20;;20520:233;;;:::o;20759:225::-;20899:34;20895:1;20887:6;20883:14;20876:58;20968:8;20963:2;20955:6;20951:15;20944:33;20759:225;:::o;20990:366::-;21132:3;21153:67;21217:2;21212:3;21153:67;:::i;:::-;21146:74;;21229:93;21318:3;21229:93;:::i;:::-;21347:2;21342:3;21338:12;21331:19;;20990:366;;;:::o;21362:419::-;21528:4;21566:2;21555:9;21551:18;21543:26;;21615:9;21609:4;21605:20;21601:1;21590:9;21586:17;21579:47;21643:131;21769:4;21643:131;:::i;:::-;21635:139;;21362:419;;;:::o;21787:223::-;21927:34;21923:1;21915:6;21911:14;21904:58;21996:6;21991:2;21983:6;21979:15;21972:31;21787:223;:::o;22016:366::-;22158:3;22179:67;22243:2;22238:3;22179:67;:::i;:::-;22172:74;;22255:93;22344:3;22255:93;:::i;:::-;22373:2;22368:3;22364:12;22357:19;;22016:366;;;:::o;22388:419::-;22554:4;22592:2;22581:9;22577:18;22569:26;;22641:9;22635:4;22631:20;22627:1;22616:9;22612:17;22605:47;22669:131;22795:4;22669:131;:::i;:::-;22661:139;;22388:419;;;:::o;22813:221::-;22953:34;22949:1;22941:6;22937:14;22930:58;23022:4;23017:2;23009:6;23005:15;22998:29;22813:221;:::o;23040:366::-;23182:3;23203:67;23267:2;23262:3;23203:67;:::i;:::-;23196:74;;23279:93;23368:3;23279:93;:::i;:::-;23397:2;23392:3;23388:12;23381:19;;23040:366;;;:::o;23412:419::-;23578:4;23616:2;23605:9;23601:18;23593:26;;23665:9;23659:4;23655:20;23651:1;23640:9;23636:17;23629:47;23693:131;23819:4;23693:131;:::i;:::-;23685:139;;23412:419;;;:::o;23837:228::-;23977:34;23973:1;23965:6;23961:14;23954:58;24046:11;24041:2;24033:6;24029:15;24022:36;23837:228;:::o;24071:366::-;24213:3;24234:67;24298:2;24293:3;24234:67;:::i;:::-;24227:74;;24310:93;24399:3;24310:93;:::i;:::-;24428:2;24423:3;24419:12;24412:19;;24071:366;;;:::o;24443:419::-;24609:4;24647:2;24636:9;24632:18;24624:26;;24696:9;24690:4;24686:20;24682:1;24671:9;24667:17;24660:47;24724:131;24850:4;24724:131;:::i;:::-;24716:139;;24443:419;;;:::o;24868:175::-;25008:27;25004:1;24996:6;24992:14;24985:51;24868:175;:::o;25049:366::-;25191:3;25212:67;25276:2;25271:3;25212:67;:::i;:::-;25205:74;;25288:93;25377:3;25288:93;:::i;:::-;25406:2;25401:3;25397:12;25390:19;;25049:366;;;:::o;25421:419::-;25587:4;25625:2;25614:9;25610:18;25602:26;;25674:9;25668:4;25664:20;25660:1;25649:9;25645:17;25638:47;25702:131;25828:4;25702:131;:::i;:::-;25694:139;;25421:419;;;:::o;25846:172::-;25986:24;25982:1;25974:6;25970:14;25963:48;25846:172;:::o;26024:366::-;26166:3;26187:67;26251:2;26246:3;26187:67;:::i;:::-;26180:74;;26263:93;26352:3;26263:93;:::i;:::-;26381:2;26376:3;26372:12;26365:19;;26024:366;;;:::o;26396:419::-;26562:4;26600:2;26589:9;26585:18;26577:26;;26649:9;26643:4;26639:20;26635:1;26624:9;26620:17;26613:47;26677:131;26803:4;26677:131;:::i;:::-;26669:139;;26396:419;;;:::o;26821:143::-;26878:5;26909:6;26903:13;26894:22;;26925:33;26952:5;26925:33;:::i;:::-;26821:143;;;;:::o;26970:351::-;27040:6;27089:2;27077:9;27068:7;27064:23;27060:32;27057:119;;;27095:79;;:::i;:::-;27057:119;27215:1;27240:64;27296:7;27287:6;27276:9;27272:22;27240:64;:::i;:::-;27230:74;;27186:128;26970:351;;;;:::o;27327:85::-;27372:7;27401:5;27390:16;;27327:85;;;:::o;27418:158::-;27476:9;27509:61;27527:42;27536:32;27562:5;27536:32;:::i;:::-;27527:42;:::i;:::-;27509:61;:::i;:::-;27496:74;;27418:158;;;:::o;27582:147::-;27677:45;27716:5;27677:45;:::i;:::-;27672:3;27665:58;27582:147;;:::o;27735:114::-;27802:6;27836:5;27830:12;27820:22;;27735:114;;;:::o;27855:184::-;27954:11;27988:6;27983:3;27976:19;28028:4;28023:3;28019:14;28004:29;;27855:184;;;;:::o;28045:132::-;28112:4;28135:3;28127:11;;28165:4;28160:3;28156:14;28148:22;;28045:132;;;:::o;28183:108::-;28260:24;28278:5;28260:24;:::i;:::-;28255:3;28248:37;28183:108;;:::o;28297:179::-;28366:10;28387:46;28429:3;28421:6;28387:46;:::i;:::-;28465:4;28460:3;28456:14;28442:28;;28297:179;;;;:::o;28482:113::-;28552:4;28584;28579:3;28575:14;28567:22;;28482:113;;;:::o;28631:732::-;28750:3;28779:54;28827:5;28779:54;:::i;:::-;28849:86;28928:6;28923:3;28849:86;:::i;:::-;28842:93;;28959:56;29009:5;28959:56;:::i;:::-;29038:7;29069:1;29054:284;29079:6;29076:1;29073:13;29054:284;;;29155:6;29149:13;29182:63;29241:3;29226:13;29182:63;:::i;:::-;29175:70;;29268:60;29321:6;29268:60;:::i;:::-;29258:70;;29114:224;29101:1;29098;29094:9;29089:14;;29054:284;;;29058:14;29354:3;29347:10;;28755:608;;;28631:732;;;;:::o;29369:831::-;29632:4;29670:3;29659:9;29655:19;29647:27;;29684:71;29752:1;29741:9;29737:17;29728:6;29684:71;:::i;:::-;29765:80;29841:2;29830:9;29826:18;29817:6;29765:80;:::i;:::-;29892:9;29886:4;29882:20;29877:2;29866:9;29862:18;29855:48;29920:108;30023:4;30014:6;29920:108;:::i;:::-;29912:116;;30038:72;30106:2;30095:9;30091:18;30082:6;30038:72;:::i;:::-;30120:73;30188:3;30177:9;30173:19;30164:6;30120:73;:::i;:::-;29369:831;;;;;;;;:::o;30206:179::-;30346:31;30342:1;30334:6;30330:14;30323:55;30206:179;:::o;30391:366::-;30533:3;30554:67;30618:2;30613:3;30554:67;:::i;:::-;30547:74;;30630:93;30719:3;30630:93;:::i;:::-;30748:2;30743:3;30739:12;30732:19;;30391:366;;;:::o;30763:419::-;30929:4;30967:2;30956:9;30952:18;30944:26;;31016:9;31010:4;31006:20;31002:1;30991:9;30987:17;30980:47;31044:131;31170:4;31044:131;:::i;:::-;31036:139;;30763:419;;;:::o;31188:147::-;31289:11;31326:3;31311:18;;31188:147;;;;:::o;31341:114::-;;:::o;31461:398::-;31620:3;31641:83;31722:1;31717:3;31641:83;:::i;:::-;31634:90;;31733:93;31822:3;31733:93;:::i;:::-;31851:1;31846:3;31842:11;31835:18;;31461:398;;;:::o;31865:379::-;32049:3;32071:147;32214:3;32071:147;:::i;:::-;32064:154;;32235:3;32228:10;;31865:379;;;:::o;32250:245::-;32390:34;32386:1;32378:6;32374:14;32367:58;32459:28;32454:2;32446:6;32442:15;32435:53;32250:245;:::o;32501:366::-;32643:3;32664:67;32728:2;32723:3;32664:67;:::i;:::-;32657:74;;32740:93;32829:3;32740:93;:::i;:::-;32858:2;32853:3;32849:12;32842:19;;32501:366;;;:::o;32873:419::-;33039:4;33077:2;33066:9;33062:18;33054:26;;33126:9;33120:4;33116:20;33112:1;33101:9;33097:17;33090:47;33154:131;33280:4;33154:131;:::i;:::-;33146:139;;32873:419;;;:::o;33298:181::-;33438:33;33434:1;33426:6;33422:14;33415:57;33298:181;:::o;33485:366::-;33627:3;33648:67;33712:2;33707:3;33648:67;:::i;:::-;33641:74;;33724:93;33813:3;33724:93;:::i;:::-;33842:2;33837:3;33833:12;33826:19;;33485:366;;;:::o;33857:419::-;34023:4;34061:2;34050:9;34046:18;34038:26;;34110:9;34104:4;34100:20;34096:1;34085:9;34081:17;34074:47;34138:131;34264:4;34138:131;:::i;:::-;34130:139;;33857:419;;;:::o;34282:224::-;34422:34;34418:1;34410:6;34406:14;34399:58;34491:7;34486:2;34478:6;34474:15;34467:32;34282:224;:::o;34512:366::-;34654:3;34675:67;34739:2;34734:3;34675:67;:::i;:::-;34668:74;;34751:93;34840:3;34751:93;:::i;:::-;34869:2;34864:3;34860:12;34853:19;;34512:366;;;:::o;34884:419::-;35050:4;35088:2;35077:9;35073:18;35065:26;;35137:9;35131:4;35127:20;35123:1;35112:9;35108:17;35101:47;35165:131;35291:4;35165:131;:::i;:::-;35157:139;;34884:419;;;:::o;35309:222::-;35449:34;35445:1;35437:6;35433:14;35426:58;35518:5;35513:2;35505:6;35501:15;35494:30;35309:222;:::o;35537:366::-;35679:3;35700:67;35764:2;35759:3;35700:67;:::i;:::-;35693:74;;35776:93;35865:3;35776:93;:::i;:::-;35894:2;35889:3;35885:12;35878:19;;35537:366;;;:::o;35909:419::-;36075:4;36113:2;36102:9;36098:18;36090:26;;36162:9;36156:4;36152:20;36148:1;36137:9;36133:17;36126:47;36190:131;36316:4;36190:131;:::i;:::-;36182:139;;35909:419;;;:::o;36334:225::-;36474:34;36470:1;36462:6;36458:14;36451:58;36543:8;36538:2;36530:6;36526:15;36519:33;36334:225;:::o;36565:366::-;36707:3;36728:67;36792:2;36787:3;36728:67;:::i;:::-;36721:74;;36804:93;36893:3;36804:93;:::i;:::-;36922:2;36917:3;36913:12;36906:19;;36565:366;;;:::o;36937:419::-;37103:4;37141:2;37130:9;37126:18;37118:26;;37190:9;37184:4;37180:20;37176:1;37165:9;37161:17;37154:47;37218:131;37344:4;37218:131;:::i;:::-;37210:139;;36937:419;;;:::o

Swarm Source

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