ETH Price: $2,602.45 (-3.08%)

Token

Ethereum White (ETW)
 

Overview

Max Total Supply

2,000,000,000,000 ETW

Holders

7

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

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:
EthereumWhite

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-11-28
*/

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "New owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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)) private _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, "Transfer amount exceeds allowance");
    unchecked {
        _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, "Decreased allowance below zero");
    unchecked {
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);
    }

        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "Transfer amount exceeds balance");
    unchecked {
        _balances[sender] = senderBalance - amount;
    }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "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), "Burn from the zero address");

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

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "Burn amount exceeds balance");
    unchecked {
        _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), "Approve from the zero address");
        require(spender != address(0), "Approve to the zero address");

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

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

abstract contract ERC20Burnable is Context, ERC20, Ownable {
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public virtual {
        uint256 currentAllowance = allowance(account, _msgSender());
        require(currentAllowance >= amount, "Burn amount exceeds allowance");
    unchecked {
        _approve(account, _msgSender(), currentAllowance - amount);
    }
        _burn(account, amount);
    }
}

abstract contract ERC20Lockable is ERC20, Ownable {
    struct LockInfo {
        uint256 _releaseTime;
        uint256 _amount;
    }

    mapping(address => LockInfo[]) internal _locks;
    mapping(address => uint256) internal _totalLocked;

    event Lock(address indexed from, uint256 amount, uint256 releaseTime);
    event Unlock(address indexed from, uint256 amount);

    modifier checkLock(address from, uint256 amount) {
        uint256 length = _locks[from].length;
        if (length > 0) {
            autoUnlock(from);
        }
        require(_balances[from] >= _totalLocked[from] + amount, "Cannot send more than unlocked amount");
        _;
    }

    function _lock(address from, uint256 amount, uint256 releaseTime) internal returns (bool success)
    {
        require(
            _balances[from] >= amount + _totalLocked[from],
            "Locked total should be smaller than balance"
        );
        _totalLocked[from] = _totalLocked[from] + amount;
        _locks[from].push(LockInfo(releaseTime, amount));
        emit Lock(from, amount, releaseTime);
        success = true;
    }

    function _unlock(address from, uint256 index) internal returns (bool success) {
        LockInfo storage info = _locks[from][index];
        _totalLocked[from] = _totalLocked[from] - info._amount;
        emit Unlock(from, info._amount);
        _locks[from][index] = _locks[from][_locks[from].length - 1];
        _locks[from].pop();
        success = true;
    }

    function autoUnlock(address from) public returns (bool success) {
        for (uint256 i = 0; i < _locks[from].length; i++) {
            if (_locks[from][i]._releaseTime < block.timestamp) {
                _unlock(from, i);
            }
        }
        success = true;
    }

    function unlock(address from, uint256 idx) public onlyOwner returns (bool success) {
        require(_locks[from].length > idx, "There is no lock information.");
        _unlock(from, idx);
        success = true;
    }

    function releaseLock(address from) external onlyOwner returns (bool success){
        require(_locks[from].length > 0, "There is no lock information.");
        for (uint256 i = _locks[from].length; i > 0; i--) {
            _unlock(from, i - 1);
        }
        success = true;
    }

    function transferWithLock(address recipient, uint256 amount, uint256 releaseTime) external onlyOwner returns (bool success)
    {
        require(recipient != address(0));
        _transfer(msg.sender, recipient, amount);
        _lock(recipient, amount, releaseTime);
        success = true;
    }

    function lockInfo(address locked, uint256 index) public view returns (uint256 releaseTime, uint256 amount)
    {
        LockInfo memory info = _locks[locked][index];
        releaseTime = info._releaseTime;
        amount = info._amount;
    }

    function totalLocked(address locked) public view returns (uint256 amount, uint256 length){
        amount = _totalLocked[locked];
        length = _locks[locked].length;
    }
}

contract EthereumWhite is ERC20, ERC20Burnable, ERC20Lockable {

    constructor() ERC20("Ethereum White", "ETW") {
        _mint(msg.sender, 2000000000000 * (10 ** decimals()));
    }

    function transfer(address to, uint256 amount) public checkLock(msg.sender, amount) override returns (bool) {
        return super.transfer(to, amount);
    }

    function transferFrom(address from, address to, uint256 amount) public checkLock(from, amount) override returns (bool) {
        return super.transferFrom(from, to, amount);
    }

    function balanceOf(address holder) public view override returns (uint256 balance) {
        uint256 totalBalance = super.balanceOf(holder);
        uint256 avaliableBalance = 0;
        (uint256 lockedBalance, uint256 lockedLength) = totalLocked(holder);
        require(totalBalance >= lockedBalance);

        if (lockedLength > 0) {
            for (uint i = 0; i < lockedLength; i++) {
                (uint256 releaseTime, uint256 amount) = lockInfo(holder, i);
                if (releaseTime <= block.timestamp) {
                    avaliableBalance += amount;
                }
            }
        }

        balance = totalBalance - lockedBalance + avaliableBalance;
    }

    function balanceOfTotal(address holder) public view returns (uint256 balance) {
        balance = super.balanceOf(holder);
    }

    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    )
        internal override {
        super._beforeTokenTransfer(from, to, amount);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unlock","type":"event"},{"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":"from","type":"address"}],"name":"autoUnlock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"balanceOfTotal","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","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":"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":"address","name":"locked","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"lockInfo","outputs":[{"internalType":"uint256","name":"releaseTime","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"from","type":"address"}],"name":"releaseLock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"locked","type":"address"}],"name":"totalLocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"name":"transferWithLock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"idx","type":"uint256"}],"name":"unlock","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040518060400160405280600e81526020017f457468657265756d2057686974650000000000000000000000000000000000008152506040518060400160405280600381526020017f455457000000000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000343565b508060049080519060200190620000af92919062000343565b5050506000620000c4620001ab60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001a53362000178620001b360201b60201c565b600a62000186919062000533565b6501d1a94a200062000199919062000670565b620001bc60201b60201c565b620007b2565b600033905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200022f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000226906200042b565b60405180910390fd5b62000243600083836200032160201b60201c565b80600260008282546200025791906200047b565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002ae91906200047b565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200031591906200044d565b60405180910390a35050565b620003398383836200033e60201b620014b71760201c565b505050565b505050565b8280546200035190620006e8565b90600052602060002090601f016020900481019282620003755760008555620003c1565b82601f106200039057805160ff1916838001178555620003c1565b82800160010185558215620003c1579182015b82811115620003c0578251825591602001919060010190620003a3565b5b509050620003d09190620003d4565b5090565b5b80821115620003ef576000816000905550600101620003d5565b5090565b6000620004026018836200046a565b91506200040f8262000789565b602082019050919050565b6200042581620006d1565b82525050565b600060208201905081810360008301526200044681620003f3565b9050919050565b60006020820190506200046460008301846200041a565b92915050565b600082825260208201905092915050565b60006200048882620006d1565b91506200049583620006d1565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004cd57620004cc6200071e565b5b828201905092915050565b6000808291508390505b60018511156200052a578086048111156200050257620005016200071e565b5b6001851615620005125780820291505b808102905062000522856200077c565b9450620004e2565b94509492505050565b60006200054082620006d1565b91506200054d83620006db565b92506200057c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000584565b905092915050565b60008262000596576001905062000669565b81620005a6576000905062000669565b8160018114620005bf5760028114620005ca5762000600565b600191505062000669565b60ff841115620005df57620005de6200071e565b5b8360020a915084821115620005f957620005f86200071e565b5b5062000669565b5060208310610133831016604e8410600b84101617156200063a5782820a9050838111156200063457620006336200071e565b5b62000669565b620006498484846001620004d8565b925090508184048111156200066357620006626200071e565b5b81810290505b9392505050565b60006200067d82620006d1565b91506200068a83620006d1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006c657620006c56200071e565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200070157607f821691505b602082108114156200071857620007176200074d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f4d696e7420746f20746865207a65726f20616464726573730000000000000000600082015250565b612e1a80620007c26000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638da5cb5b116100c3578063d29dad831161007c578063d29dad83146103db578063d8fb93371461040b578063dd62ed3e1461043c578063de6baccb1461046c578063e20bc67b1461049c578063f2fde38b146104cc5761014d565b80638da5cb5b146102de57806395d89b41146102fc578063a457c2d71461031a578063a9059cbb1461034a578063b2520a7c1461037a578063d1c46916146103ab5761014d565b80633950935111610115578063395093511461020c57806342966c681461023c57806370a0823114610258578063715018a61461028857806379cc6790146102925780637eee288d146102ae5761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be578063313ce567146101ee575b600080fd5b61015a6104e8565b60405161016791906125d7565b60405180910390f35b61018a6004803603810190610185919061225f565b61057a565b60405161019791906125bc565b60405180910390f35b6101a8610598565b6040516101b591906127d9565b60405180910390f35b6101d860048036038101906101d3919061220c565b6105a2565b6040516101e591906125bc565b60405180910390f35b6101f66106e3565b604051610203919061281d565b60405180910390f35b6102266004803603810190610221919061225f565b6106ec565b60405161023391906125bc565b60405180910390f35b610256600480360381019061025191906122f2565b610798565b005b610272600480360381019061026d919061219f565b6107ac565b60405161027f91906127d9565b60405180910390f35b61029061084c565b005b6102ac60048036038101906102a7919061225f565b610989565b005b6102c860048036038101906102c3919061225f565b610a04565b6040516102d591906125bc565b60405180910390f35b6102e6610b1b565b6040516102f391906125a1565b60405180910390f35b610304610b45565b60405161031191906125d7565b60405180910390f35b610334600480360381019061032f919061225f565b610bd7565b60405161034191906125bc565b60405180910390f35b610364600480360381019061035f919061225f565b610cc2565b60405161037191906125bc565b60405180910390f35b610394600480360381019061038f919061225f565b610e01565b6040516103a29291906127f4565b60405180910390f35b6103c560048036038101906103c0919061219f565b610e9c565b6040516103d291906125bc565b60405180910390f35b6103f560048036038101906103f0919061219f565b611024565b60405161040291906127d9565b60405180910390f35b6104256004803603810190610420919061219f565b611036565b6040516104339291906127f4565b60405180910390f35b610456600480360381019061045191906121cc565b6110c5565b60405161046391906127d9565b60405180910390f35b6104866004803603810190610481919061229f565b61114c565b60405161049391906125bc565b60405180910390f35b6104b660048036038101906104b1919061219f565b611226565b6040516104c391906125bc565b60405180910390f35b6104e660048036038101906104e1919061219f565b61130b565b005b6060600380546104f790612990565b80601f016020809104026020016040519081016040528092919081815260200182805461052390612990565b80156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b600061058e6105876114bc565b84846114c4565b6001905092915050565b6000600254905090565b600083826000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000811115610601576105ff83611226565b505b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461064c9190612854565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c3906125f9565b60405180910390fd5b6106d787878761168f565b93505050509392505050565b60006012905090565b600061078e6106f96114bc565b8484600160006107076114bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107899190612854565b6114c4565b6001905092915050565b6107a96107a36114bc565b82611787565b50565b6000806107b883611952565b9050600080806107c786611036565b91509150818410156107d857600080fd5b600081111561082a5760005b81811015610828576000806107f98984610e01565b915091504282116108135780866108109190612854565b95505b50508080610820906129c2565b9150506107e4565b505b82828561083791906128aa565b6108419190612854565b945050505050919050565b6108546114bc565b73ffffffffffffffffffffffffffffffffffffffff16610872610b1b565b73ffffffffffffffffffffffffffffffffffffffff16146108c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bf90612619565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600061099c836109976114bc565b6110c5565b9050818110156109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d8906126d9565b60405180910390fd5b6109f5836109ed6114bc565b8484036114c4565b6109ff8383611787565b505050565b6000610a0e6114bc565b73ffffffffffffffffffffffffffffffffffffffff16610a2c610b1b565b73ffffffffffffffffffffffffffffffffffffffff1614610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7990612619565b60405180910390fd5b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd90612799565b60405180910390fd5b610b10838361199a565b506001905092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b5490612990565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8090612990565b8015610bcd5780601f10610ba257610100808354040283529160200191610bcd565b820191906000526020600020905b815481529060010190602001808311610bb057829003601f168201915b5050505050905090565b60008060016000610be66114bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9a906126f9565b60405180910390fd5b610cb7610cae6114bc565b858584036114c4565b600191505092915050565b600033826000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000811115610d2157610d1f83611226565b505b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d6c9190612854565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de3906125f9565b60405180910390fd5b610df68686611c88565b935050505092915050565b6000806000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610e5757610e56612a98565b5b90600052602060002090600202016040518060400160405290816000820154815260200160018201548152505090508060000151925080602001519150509250929050565b6000610ea66114bc565b73ffffffffffffffffffffffffffffffffffffffff16610ec4610b1b565b73ffffffffffffffffffffffffffffffffffffffff1614610f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1190612619565b60405180910390fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690612799565b60405180910390fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090505b600081111561101a576110068360018361100191906128aa565b61199a565b50808061101290612966565b915050610fe7565b5060019050919050565b600061102f82611952565b9050919050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050915091565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006111566114bc565b73ffffffffffffffffffffffffffffffffffffffff16611174610b1b565b73ffffffffffffffffffffffffffffffffffffffff16146111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190612619565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561120457600080fd5b61120f338585611ca6565b61121a848484611f1c565b50600190509392505050565b600080600090505b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156113015742600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106112ca576112c9612a98565b5b90600052602060002090600202016000015410156112ee576112ec838261199a565b505b80806112f9906129c2565b91505061122e565b5060019050919050565b6113136114bc565b73ffffffffffffffffffffffffffffffffffffffff16611331610b1b565b73ffffffffffffffffffffffffffffffffffffffff1614611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e90612619565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90612759565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b906126b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90612639565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161168291906127d9565b60405180910390a3505050565b600061169c848484611ca6565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006116e76114bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175e90612659565b60405180910390fd5b61177b856117736114bc565b8584036114c4565b60019150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ee90612699565b60405180910390fd5b61180382600083612165565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612739565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546118e091906128aa565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161194591906127d9565b60405180910390a3505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106119ee576119ed612a98565b5b906000526020600020906002020190508060010154600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4d91906128aa565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f18260010154604051611ada91906127d9565b60405180910390a2600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611b7091906128aa565b81548110611b8157611b80612a98565b5b9060005260206000209060020201600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110611be057611bdf612a98565b5b90600052602060002090600202016000820154816000015560018201548160010155905050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480611c5457611c53612a69565b5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055600191505092915050565b6000611c9c611c956114bc565b8484611ca6565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0d906127b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7d90612779565b60405180910390fd5b611d91838383612165565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0e90612719565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611eaa9190612854565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f0e91906127d9565b60405180910390a350505050565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611f699190612854565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090612679565b60405180910390fd5b82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120349190612854565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b84846040516121529291906127f4565b60405180910390a2600190509392505050565b6121708383836114b7565b505050565b60008135905061218481612db6565b92915050565b60008135905061219981612dcd565b92915050565b6000602082840312156121b5576121b4612ac7565b5b60006121c384828501612175565b91505092915050565b600080604083850312156121e3576121e2612ac7565b5b60006121f185828601612175565b925050602061220285828601612175565b9150509250929050565b60008060006060848603121561222557612224612ac7565b5b600061223386828701612175565b935050602061224486828701612175565b92505060406122558682870161218a565b9150509250925092565b6000806040838503121561227657612275612ac7565b5b600061228485828601612175565b92505060206122958582860161218a565b9150509250929050565b6000806000606084860312156122b8576122b7612ac7565b5b60006122c686828701612175565b93505060206122d78682870161218a565b92505060406122e88682870161218a565b9150509250925092565b60006020828403121561230857612307612ac7565b5b60006123168482850161218a565b91505092915050565b612328816128de565b82525050565b612337816128f0565b82525050565b600061234882612838565b6123528185612843565b9350612362818560208601612933565b61236b81612acc565b840191505092915050565b6000612383602583612843565b915061238e82612add565b604082019050919050565b60006123a6601783612843565b91506123b182612b2c565b602082019050919050565b60006123c9601b83612843565b91506123d482612b55565b602082019050919050565b60006123ec602183612843565b91506123f782612b7e565b604082019050919050565b600061240f602b83612843565b915061241a82612bcd565b604082019050919050565b6000612432601a83612843565b915061243d82612c1c565b602082019050919050565b6000612455601d83612843565b915061246082612c45565b602082019050919050565b6000612478601d83612843565b915061248382612c6e565b602082019050919050565b600061249b601e83612843565b91506124a682612c97565b602082019050919050565b60006124be601f83612843565b91506124c982612cc0565b602082019050919050565b60006124e1601b83612843565b91506124ec82612ce9565b602082019050919050565b6000612504601d83612843565b915061250f82612d12565b602082019050919050565b6000612527601c83612843565b915061253282612d3b565b602082019050919050565b600061254a601d83612843565b915061255582612d64565b602082019050919050565b600061256d601e83612843565b915061257882612d8d565b602082019050919050565b61258c8161291c565b82525050565b61259b81612926565b82525050565b60006020820190506125b6600083018461231f565b92915050565b60006020820190506125d1600083018461232e565b92915050565b600060208201905081810360008301526125f1818461233d565b905092915050565b6000602082019050818103600083015261261281612376565b9050919050565b6000602082019050818103600083015261263281612399565b9050919050565b60006020820190508181036000830152612652816123bc565b9050919050565b60006020820190508181036000830152612672816123df565b9050919050565b6000602082019050818103600083015261269281612402565b9050919050565b600060208201905081810360008301526126b281612425565b9050919050565b600060208201905081810360008301526126d281612448565b9050919050565b600060208201905081810360008301526126f28161246b565b9050919050565b600060208201905081810360008301526127128161248e565b9050919050565b60006020820190508181036000830152612732816124b1565b9050919050565b60006020820190508181036000830152612752816124d4565b9050919050565b60006020820190508181036000830152612772816124f7565b9050919050565b600060208201905081810360008301526127928161251a565b9050919050565b600060208201905081810360008301526127b28161253d565b9050919050565b600060208201905081810360008301526127d281612560565b9050919050565b60006020820190506127ee6000830184612583565b92915050565b60006040820190506128096000830185612583565b6128166020830184612583565b9392505050565b60006020820190506128326000830184612592565b92915050565b600081519050919050565b600082825260208201905092915050565b600061285f8261291c565b915061286a8361291c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561289f5761289e612a0b565b5b828201905092915050565b60006128b58261291c565b91506128c08361291c565b9250828210156128d3576128d2612a0b565b5b828203905092915050565b60006128e9826128fc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612951578082015181840152602081019050612936565b83811115612960576000848401525b50505050565b60006129718261291c565b9150600082141561298557612984612a0b565b5b600182039050919050565b600060028204905060018216806129a857607f821691505b602082108114156129bc576129bb612a3a565b5b50919050565b60006129cd8261291c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a00576129ff612a0b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f43616e6e6f742073656e64206d6f7265207468616e20756e6c6f636b6564206160008201527f6d6f756e74000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b7f417070726f766520746f20746865207a65726f20616464726573730000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f4c6f636b656420746f74616c2073686f756c6420626520736d616c6c6572207460008201527f68616e2062616c616e6365000000000000000000000000000000000000000000602082015250565b7f4275726e2066726f6d20746865207a65726f2061646472657373000000000000600082015250565b7f417070726f76652066726f6d20746865207a65726f2061646472657373000000600082015250565b7f4275726e20616d6f756e74206578636565647320616c6c6f77616e6365000000600082015250565b7f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000600082015250565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b7f4275726e20616d6f756e7420657863656564732062616c616e63650000000000600082015250565b7f4e6577206f776e657220697320746865207a65726f2061646472657373000000600082015250565b7f5472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b7f5468657265206973206e6f206c6f636b20696e666f726d6174696f6e2e000000600082015250565b7f5472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b612dbf816128de565b8114612dca57600080fd5b50565b612dd68161291c565b8114612de157600080fd5b5056fea2646970667358221220fd33ea2aeff6b54a973c4ff7bed393adfc8547b321c48feed9ea874e0b2885ae64736f6c63430008070033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061014d5760003560e01c80638da5cb5b116100c3578063d29dad831161007c578063d29dad83146103db578063d8fb93371461040b578063dd62ed3e1461043c578063de6baccb1461046c578063e20bc67b1461049c578063f2fde38b146104cc5761014d565b80638da5cb5b146102de57806395d89b41146102fc578063a457c2d71461031a578063a9059cbb1461034a578063b2520a7c1461037a578063d1c46916146103ab5761014d565b80633950935111610115578063395093511461020c57806342966c681461023c57806370a0823114610258578063715018a61461028857806379cc6790146102925780637eee288d146102ae5761014d565b806306fdde0314610152578063095ea7b31461017057806318160ddd146101a057806323b872dd146101be578063313ce567146101ee575b600080fd5b61015a6104e8565b60405161016791906125d7565b60405180910390f35b61018a6004803603810190610185919061225f565b61057a565b60405161019791906125bc565b60405180910390f35b6101a8610598565b6040516101b591906127d9565b60405180910390f35b6101d860048036038101906101d3919061220c565b6105a2565b6040516101e591906125bc565b60405180910390f35b6101f66106e3565b604051610203919061281d565b60405180910390f35b6102266004803603810190610221919061225f565b6106ec565b60405161023391906125bc565b60405180910390f35b610256600480360381019061025191906122f2565b610798565b005b610272600480360381019061026d919061219f565b6107ac565b60405161027f91906127d9565b60405180910390f35b61029061084c565b005b6102ac60048036038101906102a7919061225f565b610989565b005b6102c860048036038101906102c3919061225f565b610a04565b6040516102d591906125bc565b60405180910390f35b6102e6610b1b565b6040516102f391906125a1565b60405180910390f35b610304610b45565b60405161031191906125d7565b60405180910390f35b610334600480360381019061032f919061225f565b610bd7565b60405161034191906125bc565b60405180910390f35b610364600480360381019061035f919061225f565b610cc2565b60405161037191906125bc565b60405180910390f35b610394600480360381019061038f919061225f565b610e01565b6040516103a29291906127f4565b60405180910390f35b6103c560048036038101906103c0919061219f565b610e9c565b6040516103d291906125bc565b60405180910390f35b6103f560048036038101906103f0919061219f565b611024565b60405161040291906127d9565b60405180910390f35b6104256004803603810190610420919061219f565b611036565b6040516104339291906127f4565b60405180910390f35b610456600480360381019061045191906121cc565b6110c5565b60405161046391906127d9565b60405180910390f35b6104866004803603810190610481919061229f565b61114c565b60405161049391906125bc565b60405180910390f35b6104b660048036038101906104b1919061219f565b611226565b6040516104c391906125bc565b60405180910390f35b6104e660048036038101906104e1919061219f565b61130b565b005b6060600380546104f790612990565b80601f016020809104026020016040519081016040528092919081815260200182805461052390612990565b80156105705780601f1061054557610100808354040283529160200191610570565b820191906000526020600020905b81548152906001019060200180831161055357829003601f168201915b5050505050905090565b600061058e6105876114bc565b84846114c4565b6001905092915050565b6000600254905090565b600083826000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000811115610601576105ff83611226565b505b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461064c9190612854565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156106cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c3906125f9565b60405180910390fd5b6106d787878761168f565b93505050509392505050565b60006012905090565b600061078e6106f96114bc565b8484600160006107076114bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107899190612854565b6114c4565b6001905092915050565b6107a96107a36114bc565b82611787565b50565b6000806107b883611952565b9050600080806107c786611036565b91509150818410156107d857600080fd5b600081111561082a5760005b81811015610828576000806107f98984610e01565b915091504282116108135780866108109190612854565b95505b50508080610820906129c2565b9150506107e4565b505b82828561083791906128aa565b6108419190612854565b945050505050919050565b6108546114bc565b73ffffffffffffffffffffffffffffffffffffffff16610872610b1b565b73ffffffffffffffffffffffffffffffffffffffff16146108c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108bf90612619565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600061099c836109976114bc565b6110c5565b9050818110156109e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d8906126d9565b60405180910390fd5b6109f5836109ed6114bc565b8484036114c4565b6109ff8383611787565b505050565b6000610a0e6114bc565b73ffffffffffffffffffffffffffffffffffffffff16610a2c610b1b565b73ffffffffffffffffffffffffffffffffffffffff1614610a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7990612619565b60405180910390fd5b81600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd90612799565b60405180910390fd5b610b10838361199a565b506001905092915050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b5490612990565b80601f0160208091040260200160405190810160405280929190818152602001828054610b8090612990565b8015610bcd5780601f10610ba257610100808354040283529160200191610bcd565b820191906000526020600020905b815481529060010190602001808311610bb057829003601f168201915b5050505050905090565b60008060016000610be66114bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9a906126f9565b60405180910390fd5b610cb7610cae6114bc565b858584036114c4565b600191505092915050565b600033826000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000811115610d2157610d1f83611226565b505b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d6c9190612854565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610dec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de3906125f9565b60405180910390fd5b610df68686611c88565b935050505092915050565b6000806000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110610e5757610e56612a98565b5b90600052602060002090600202016040518060400160405290816000820154815260200160018201548152505090508060000151925080602001519150509250929050565b6000610ea66114bc565b73ffffffffffffffffffffffffffffffffffffffff16610ec4610b1b565b73ffffffffffffffffffffffffffffffffffffffff1614610f1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1190612619565b60405180910390fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905011610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690612799565b60405180910390fd5b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090505b600081111561101a576110068360018361100191906128aa565b61199a565b50808061101290612966565b915050610fe7565b5060019050919050565b600061102f82611952565b9050919050565b600080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050915091565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60006111566114bc565b73ffffffffffffffffffffffffffffffffffffffff16611174610b1b565b73ffffffffffffffffffffffffffffffffffffffff16146111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190612619565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561120457600080fd5b61120f338585611ca6565b61121a848484611f1c565b50600190509392505050565b600080600090505b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508110156113015742600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106112ca576112c9612a98565b5b90600052602060002090600202016000015410156112ee576112ec838261199a565b505b80806112f9906129c2565b91505061122e565b5060019050919050565b6113136114bc565b73ffffffffffffffffffffffffffffffffffffffff16611331610b1b565b73ffffffffffffffffffffffffffffffffffffffff1614611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e90612619565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90612759565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b906126b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90612639565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161168291906127d9565b60405180910390a3505050565b600061169c848484611ca6565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006116e76114bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611767576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175e90612659565b60405180910390fd5b61177b856117736114bc565b8584036114c4565b60019150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ee90612699565b60405180910390fd5b61180382600083612165565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090612739565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546118e091906128aa565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161194591906127d9565b60405180910390a3505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083815481106119ee576119ed612a98565b5b906000526020600020906002020190508060010154600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a4d91906128aa565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f18260010154604051611ada91906127d9565b60405180910390a2600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611b7091906128aa565b81548110611b8157611b80612a98565b5b9060005260206000209060020201600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110611be057611bdf612a98565b5b90600052602060002090600202016000820154816000015560018201548160010155905050600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480611c5457611c53612a69565b5b6001900381819060005260206000209060020201600080820160009055600182016000905550509055600191505092915050565b6000611c9c611c956114bc565b8484611ca6565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0d906127b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d86576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7d90612779565b60405180910390fd5b611d91838383612165565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0e90612719565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611eaa9190612854565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611f0e91906127d9565b60405180910390a350505050565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611f699190612854565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe090612679565b60405180910390fd5b82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120349190612854565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405280848152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508373ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b84846040516121529291906127f4565b60405180910390a2600190509392505050565b6121708383836114b7565b505050565b60008135905061218481612db6565b92915050565b60008135905061219981612dcd565b92915050565b6000602082840312156121b5576121b4612ac7565b5b60006121c384828501612175565b91505092915050565b600080604083850312156121e3576121e2612ac7565b5b60006121f185828601612175565b925050602061220285828601612175565b9150509250929050565b60008060006060848603121561222557612224612ac7565b5b600061223386828701612175565b935050602061224486828701612175565b92505060406122558682870161218a565b9150509250925092565b6000806040838503121561227657612275612ac7565b5b600061228485828601612175565b92505060206122958582860161218a565b9150509250929050565b6000806000606084860312156122b8576122b7612ac7565b5b60006122c686828701612175565b93505060206122d78682870161218a565b92505060406122e88682870161218a565b9150509250925092565b60006020828403121561230857612307612ac7565b5b60006123168482850161218a565b91505092915050565b612328816128de565b82525050565b612337816128f0565b82525050565b600061234882612838565b6123528185612843565b9350612362818560208601612933565b61236b81612acc565b840191505092915050565b6000612383602583612843565b915061238e82612add565b604082019050919050565b60006123a6601783612843565b91506123b182612b2c565b602082019050919050565b60006123c9601b83612843565b91506123d482612b55565b602082019050919050565b60006123ec602183612843565b91506123f782612b7e565b604082019050919050565b600061240f602b83612843565b915061241a82612bcd565b604082019050919050565b6000612432601a83612843565b915061243d82612c1c565b602082019050919050565b6000612455601d83612843565b915061246082612c45565b602082019050919050565b6000612478601d83612843565b915061248382612c6e565b602082019050919050565b600061249b601e83612843565b91506124a682612c97565b602082019050919050565b60006124be601f83612843565b91506124c982612cc0565b602082019050919050565b60006124e1601b83612843565b91506124ec82612ce9565b602082019050919050565b6000612504601d83612843565b915061250f82612d12565b602082019050919050565b6000612527601c83612843565b915061253282612d3b565b602082019050919050565b600061254a601d83612843565b915061255582612d64565b602082019050919050565b600061256d601e83612843565b915061257882612d8d565b602082019050919050565b61258c8161291c565b82525050565b61259b81612926565b82525050565b60006020820190506125b6600083018461231f565b92915050565b60006020820190506125d1600083018461232e565b92915050565b600060208201905081810360008301526125f1818461233d565b905092915050565b6000602082019050818103600083015261261281612376565b9050919050565b6000602082019050818103600083015261263281612399565b9050919050565b60006020820190508181036000830152612652816123bc565b9050919050565b60006020820190508181036000830152612672816123df565b9050919050565b6000602082019050818103600083015261269281612402565b9050919050565b600060208201905081810360008301526126b281612425565b9050919050565b600060208201905081810360008301526126d281612448565b9050919050565b600060208201905081810360008301526126f28161246b565b9050919050565b600060208201905081810360008301526127128161248e565b9050919050565b60006020820190508181036000830152612732816124b1565b9050919050565b60006020820190508181036000830152612752816124d4565b9050919050565b60006020820190508181036000830152612772816124f7565b9050919050565b600060208201905081810360008301526127928161251a565b9050919050565b600060208201905081810360008301526127b28161253d565b9050919050565b600060208201905081810360008301526127d281612560565b9050919050565b60006020820190506127ee6000830184612583565b92915050565b60006040820190506128096000830185612583565b6128166020830184612583565b9392505050565b60006020820190506128326000830184612592565b92915050565b600081519050919050565b600082825260208201905092915050565b600061285f8261291c565b915061286a8361291c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561289f5761289e612a0b565b5b828201905092915050565b60006128b58261291c565b91506128c08361291c565b9250828210156128d3576128d2612a0b565b5b828203905092915050565b60006128e9826128fc565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015612951578082015181840152602081019050612936565b83811115612960576000848401525b50505050565b60006129718261291c565b9150600082141561298557612984612a0b565b5b600182039050919050565b600060028204905060018216806129a857607f821691505b602082108114156129bc576129bb612a3a565b5b50919050565b60006129cd8261291c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612a00576129ff612a0b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f43616e6e6f742073656e64206d6f7265207468616e20756e6c6f636b6564206160008201527f6d6f756e74000000000000000000000000000000000000000000000000000000602082015250565b7f43616c6c6572206973206e6f7420746865206f776e6572000000000000000000600082015250565b7f417070726f766520746f20746865207a65726f20616464726573730000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6360008201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b7f4c6f636b656420746f74616c2073686f756c6420626520736d616c6c6572207460008201527f68616e2062616c616e6365000000000000000000000000000000000000000000602082015250565b7f4275726e2066726f6d20746865207a65726f2061646472657373000000000000600082015250565b7f417070726f76652066726f6d20746865207a65726f2061646472657373000000600082015250565b7f4275726e20616d6f756e74206578636565647320616c6c6f77616e6365000000600082015250565b7f44656372656173656420616c6c6f77616e63652062656c6f77207a65726f0000600082015250565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e636500600082015250565b7f4275726e20616d6f756e7420657863656564732062616c616e63650000000000600082015250565b7f4e6577206f776e657220697320746865207a65726f2061646472657373000000600082015250565b7f5472616e7366657220746f20746865207a65726f206164647265737300000000600082015250565b7f5468657265206973206e6f206c6f636b20696e666f726d6174696f6e2e000000600082015250565b7f5472616e736665722066726f6d20746865207a65726f20616464726573730000600082015250565b612dbf816128de565b8114612dca57600080fd5b50565b612dd68161291c565b8114612de157600080fd5b5056fea2646970667358221220fd33ea2aeff6b54a973c4ff7bed393adfc8547b321c48feed9ea874e0b2885ae64736f6c63430008070033

Deployed Bytecode Sourcemap

10397:1599:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2564:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3478:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2885:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10760:181;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2784:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4136:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6833:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10949:700;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;863:148;;;:::i;:::-;;6932:349;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9112:223;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;649:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2672:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4359:394;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10593:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9955:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;9343:292;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11657:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10212:178;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;3319:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9643:304;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8818:286;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1019:235;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2564:100;2618:13;2651:5;2644:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2564:100;:::o;3478:169::-;3561:4;3578:39;3587:12;:10;:12::i;:::-;3601:7;3610:6;3578:8;:39::i;:::-;3635:4;3628:11;;3478:169;;;;:::o;2885:108::-;2946:7;2973:12;;2966:19;;2885:108;:::o;10760:181::-;10873:4;10841;10847:6;7740:14;7757:6;:12;7764:4;7757:12;;;;;;;;;;;;;;;:19;;;;7740:36;;7800:1;7791:6;:10;7787:59;;;7818:16;7829:4;7818:10;:16::i;:::-;;7787:59;7904:6;7883:12;:18;7896:4;7883:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;7864:9;:15;7874:4;7864:15;;;;;;;;;;;;;;;;:46;;7856:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;10897:36:::1;10916:4;10922:2;10926:6;10897:18;:36::i;:::-;10890:43;;7729:243:::0;10760:181;;;;;;;:::o;2784:93::-;2842:5;2867:2;2860:9;;2784:93;:::o;4136:215::-;4224:4;4241:80;4250:12;:10;:12::i;:::-;4264:7;4310:10;4273:11;:25;4285:12;:10;:12::i;:::-;4273:25;;;;;;;;;;;;;;;:34;4299:7;4273:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4241:8;:80::i;:::-;4339:4;4332:11;;4136:215;;;;:::o;6833:91::-;6889:27;6895:12;:10;:12::i;:::-;6909:6;6889:5;:27::i;:::-;6833:91;:::o;10949:700::-;11014:15;11042:20;11065:23;11081:6;11065:15;:23::i;:::-;11042:46;;11099:24;11139:21;11162:20;11186:19;11198:6;11186:11;:19::i;:::-;11138:67;;;;11240:13;11224:12;:29;;11216:38;;;;;;11286:1;11271:12;:16;11267:305;;;11309:6;11304:257;11325:12;11321:1;:16;11304:257;;;11364:19;11385:14;11403:19;11412:6;11420:1;11403:8;:19::i;:::-;11363:59;;;;11460:15;11445:11;:30;11441:105;;11520:6;11500:26;;;;;:::i;:::-;;;11441:105;11344:217;;11339:3;;;;;:::i;:::-;;;;11304:257;;;;11267:305;11625:16;11609:13;11594:12;:28;;;;:::i;:::-;:47;;;;:::i;:::-;11584:57;;11031:618;;;;10949:700;;;:::o;863:148::-;795:12;:10;:12::i;:::-;784:23;;:7;:5;:7::i;:::-;:23;;;776:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;970:1:::1;933:40;;954:6;;;;;;;;;;;933:40;;;;;;;;;;;;1001:1;984:6;;:19;;;;;;;;;;;;;;;;;;863:148::o:0;6932:349::-;7009:24;7036:32;7046:7;7055:12;:10;:12::i;:::-;7036:9;:32::i;:::-;7009:59;;7107:6;7087:16;:26;;7079:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7175:58;7184:7;7193:12;:10;:12::i;:::-;7226:6;7207:16;:25;7175:8;:58::i;:::-;7251:22;7257:7;7266:6;7251:5;:22::i;:::-;6998:283;6932:349;;:::o;9112:223::-;9181:12;795;:10;:12::i;:::-;784:23;;:7;:5;:7::i;:::-;:23;;;776:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9236:3:::1;9214:6;:12;9221:4;9214:12;;;;;;;;;;;;;;;:19;;;;:25;9206:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9284:18;9292:4;9298:3;9284:7;:18::i;:::-;;9323:4;9313:14;;9112:223:::0;;;;:::o;649:87::-;695:7;722:6;;;;;;;;;;;715:13;;649:87;:::o;2672:104::-;2728:13;2761:7;2754:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2672:104;:::o;4359:394::-;4452:4;4469:24;4496:11;:25;4508:12;:10;:12::i;:::-;4496:25;;;;;;;;;;;;;;;:34;4522:7;4496:34;;;;;;;;;;;;;;;;4469:61;;4569:15;4549:16;:35;;4541:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;4647:67;4656:12;:10;:12::i;:::-;4670:7;4698:15;4679:16;:34;4647:8;:67::i;:::-;4741:4;4734:11;;;4359:394;;;;:::o;10593:159::-;10694:4;10656:10;10668:6;7740:14;7757:6;:12;7764:4;7757:12;;;;;;;;;;;;;;;:19;;;;7740:36;;7800:1;7791:6;:10;7787:59;;;7818:16;7829:4;7818:10;:16::i;:::-;;7787:59;7904:6;7883:12;:18;7896:4;7883:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;7864:9;:15;7874:4;7864:15;;;;;;;;;;;;;;;;:46;;7856:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;10718:26:::1;10733:2;10737:6;10718:14;:26::i;:::-;10711:33;;7729:243:::0;10593:159;;;;;;:::o;9955:249::-;10025:19;10046:14;10078:20;10101:6;:14;10108:6;10101:14;;;;;;;;;;;;;;;10116:5;10101:21;;;;;;;;:::i;:::-;;;;;;;;;;;;10078:44;;;;;;;;;;;;;;;;;;;;;;;;;;;10147:4;:17;;;10133:31;;10184:4;:12;;;10175:21;;10067:137;9955:249;;;;;:::o;9343:292::-;9406:12;795;:10;:12::i;:::-;784:23;;:7;:5;:7::i;:::-;:23;;;776:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9460:1:::1;9438:6;:12;9445:4;9438:12;;;;;;;;;;;;;;;:19;;;;:23;9430:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;9511:9;9523:6;:12;9530:4;9523:12;;;;;;;;;;;;;;;:19;;;;9511:31;;9506:97;9548:1;9544;:5;9506:97;;;9571:20;9579:4;9589:1;9585;:5;;;;:::i;:::-;9571:7;:20::i;:::-;;9551:3;;;;;:::i;:::-;;;;9506:97;;;;9623:4;9613:14;;9343:292:::0;;;:::o;11657:130::-;11718:15;11756:23;11772:6;11756:15;:23::i;:::-;11746:33;;11657:130;;;:::o;10212:178::-;10270:14;10286;10321:12;:20;10334:6;10321:20;;;;;;;;;;;;;;;;10312:29;;10361:6;:14;10368:6;10361:14;;;;;;;;;;;;;;;:21;;;;10352:30;;10212:178;;;:::o;3319:151::-;3408:7;3435:11;:18;3447:5;3435:18;;;;;;;;;;;;;;;:27;3454:7;3435:27;;;;;;;;;;;;;;;;3428:34;;3319:151;;;;:::o;9643:304::-;9753:12;795;:10;:12::i;:::-;784:23;;:7;:5;:7::i;:::-;:23;;;776:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9812:1:::1;9791:23;;:9;:23;;;;9783:32;;;::::0;::::1;;9826:40;9836:10;9848:9;9859:6;9826:9;:40::i;:::-;9877:37;9883:9;9894:6;9902:11;9877:5;:37::i;:::-;;9935:4;9925:14;;9643:304:::0;;;;;:::o;8818:286::-;8868:12;8898:9;8910:1;8898:13;;8893:179;8917:6;:12;8924:4;8917:12;;;;;;;;;;;;;;;:19;;;;8913:1;:23;8893:179;;;8993:15;8962:6;:12;8969:4;8962:12;;;;;;;;;;;;;;;8975:1;8962:15;;;;;;;;:::i;:::-;;;;;;;;;;;;:28;;;:46;8958:103;;;9029:16;9037:4;9043:1;9029:7;:16::i;:::-;;8958:103;8938:3;;;;;:::i;:::-;;;;8893:179;;;;9092:4;9082:14;;8818:286;;;:::o;1019:235::-;795:12;:10;:12::i;:::-;784:23;;:7;:5;:7::i;:::-;:23;;;776:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;1128:1:::1;1108:22;;:8;:22;;;;1100:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;1209:8;1180:38;;1201:6;;;;;;;;;;;1180:38;;;;;;;;;;;;1238:8;1229:6;;:17;;;;;;;;;;;;;;;;;;1019:235:::0;:::o;6635:125::-;;;;:::o;92:98::-;145:7;172:10;165:17;;92:98;:::o;6261:366::-;6414:1;6397:19;;:5;:19;;;;6389:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6488:1;6469:21;;:7;:21;;;;6461:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6565:6;6535:11;:18;6547:5;6535:18;;;;;;;;;;;;;;;:27;6554:7;6535:27;;;;;;;;;;;;;;;:36;;;;6603:7;6587:32;;6596:5;6587:32;;;6612:6;6587:32;;;;;;:::i;:::-;;;;;;;;6261:366;;;:::o;3655:473::-;3795:4;3812:36;3822:6;3830:9;3841:6;3812:9;:36::i;:::-;3861:24;3888:11;:19;3900:6;3888:19;;;;;;;;;;;;;;;:33;3908:12;:10;:12::i;:::-;3888:33;;;;;;;;;;;;;;;;3861:60;;3960:6;3940:16;:26;;3932:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;4032:57;4041:6;4049:12;:10;:12::i;:::-;4082:6;4063:16;:25;4032:8;:57::i;:::-;4116:4;4109:11;;;3655:473;;;;;:::o;5749:504::-;5852:1;5833:21;;:7;:21;;;;5825:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5898:49;5919:7;5936:1;5940:6;5898:20;:49::i;:::-;5960:22;5985:9;:18;5995:7;5985:18;;;;;;;;;;;;;;;;5960:43;;6040:6;6022:14;:24;;6014:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6144:6;6127:14;:23;6106:9;:18;6116:7;6106:18;;;;;;;;;;;;;;;:44;;;;6184:6;6168:12;;:22;;;;;;;:::i;:::-;;;;;;;;6234:1;6208:37;;6217:7;6208:37;;;6238:6;6208:37;;;;;;:::i;:::-;;;;;;;;5814:439;5749:504;;:::o;3001:127::-;3075:7;3102:9;:18;3112:7;3102:18;;;;;;;;;;;;;;;;3095:25;;3001:127;;;:::o;8439:371::-;8503:12;8528:21;8552:6;:12;8559:4;8552:12;;;;;;;;;;;;;;;8565:5;8552:19;;;;;;;;:::i;:::-;;;;;;;;;;;;8528:43;;8624:4;:12;;;8603;:18;8616:4;8603:18;;;;;;;;;;;;;;;;:33;;;;:::i;:::-;8582:12;:18;8595:4;8582:18;;;;;;;;;;;;;;;:54;;;;8659:4;8652:26;;;8665:4;:12;;;8652:26;;;;;;:::i;:::-;;;;;;;;8711:6;:12;8718:4;8711:12;;;;;;;;;;;;;;;8746:1;8724:6;:12;8731:4;8724:12;;;;;;;;;;;;;;;:19;;;;:23;;;;:::i;:::-;8711:37;;;;;;;;:::i;:::-;;;;;;;;;;;;8689:6;:12;8696:4;8689:12;;;;;;;;;;;;;;;8702:5;8689:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:59;;;;;;;;;;;;;;;;;;;8759:6;:12;8766:4;8759:12;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8798:4;8788:14;;8517:293;8439:371;;;;:::o;3136:175::-;3222:4;3239:42;3249:12;:10;:12::i;:::-;3263:9;3274:6;3239:9;:42::i;:::-;3299:4;3292:11;;3136:175;;;;:::o;4761:641::-;4919:1;4901:20;;:6;:20;;;;4893:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;4996:1;4975:23;;:9;:23;;;;4967:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5044:47;5065:6;5073:9;5084:6;5044:20;:47::i;:::-;5104:21;5128:9;:17;5138:6;5128:17;;;;;;;;;;;;;;;;5104:41;;5181:6;5164:13;:23;;5156:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5287:6;5271:13;:22;5251:9;:17;5261:6;5251:17;;;;;;;;;;;;;;;:42;;;;5335:6;5311:9;:20;5321:9;5311:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5376:9;5359:35;;5368:6;5359:35;;;5387:6;5359:35;;;;;;:::i;:::-;;;;;;;;4882:520;4761:641;;;:::o;7980:451::-;8064:12;8144;:18;8157:4;8144:18;;;;;;;;;;;;;;;;8135:6;:27;;;;:::i;:::-;8116:9;:15;8126:4;8116:15;;;;;;;;;;;;;;;;:46;;8094:139;;;;;;;;;;;;:::i;:::-;;;;;;;;;8286:6;8265:12;:18;8278:4;8265:18;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;8244:12;:18;8257:4;8244:18;;;;;;;;;;;;;;;:48;;;;8303:6;:12;8310:4;8303:12;;;;;;;;;;;;;;;8321:29;;;;;;;;8330:11;8321:29;;;;8343:6;8321:29;;;8303:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8372:4;8367:31;;;8378:6;8386:11;8367:31;;;;;;;:::i;:::-;;;;;;;;8419:4;8409:14;;7980:451;;;;;:::o;11795:196::-;11939:44;11966:4;11972:2;11976:6;11939:26;:44::i;:::-;11795:196;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:619::-;2294:6;2302;2310;2359:2;2347:9;2338:7;2334:23;2330:32;2327:119;;;2365:79;;:::i;:::-;2327:119;2485:1;2510:53;2555:7;2546:6;2535:9;2531:22;2510:53;:::i;:::-;2500:63;;2456:117;2612:2;2638:53;2683:7;2674:6;2663:9;2659:22;2638:53;:::i;:::-;2628:63;;2583:118;2740:2;2766:53;2811:7;2802:6;2791:9;2787:22;2766:53;:::i;:::-;2756:63;;2711:118;2217:619;;;;;:::o;2842:329::-;2901:6;2950:2;2938:9;2929:7;2925:23;2921:32;2918:119;;;2956:79;;:::i;:::-;2918:119;3076:1;3101:53;3146:7;3137:6;3126:9;3122:22;3101:53;:::i;:::-;3091:63;;3047:117;2842:329;;;;:::o;3177:118::-;3264:24;3282:5;3264:24;:::i;:::-;3259:3;3252:37;3177:118;;:::o;3301:109::-;3382:21;3397:5;3382:21;:::i;:::-;3377:3;3370:34;3301:109;;:::o;3416:364::-;3504:3;3532:39;3565:5;3532:39;:::i;:::-;3587:71;3651:6;3646:3;3587:71;:::i;:::-;3580:78;;3667:52;3712:6;3707:3;3700:4;3693:5;3689:16;3667:52;:::i;:::-;3744:29;3766:6;3744:29;:::i;:::-;3739:3;3735:39;3728:46;;3508:272;3416:364;;;;:::o;3786:366::-;3928:3;3949:67;4013:2;4008:3;3949:67;:::i;:::-;3942:74;;4025:93;4114:3;4025:93;:::i;:::-;4143:2;4138:3;4134:12;4127:19;;3786:366;;;:::o;4158:::-;4300:3;4321:67;4385:2;4380:3;4321:67;:::i;:::-;4314:74;;4397:93;4486:3;4397:93;:::i;:::-;4515:2;4510:3;4506:12;4499:19;;4158:366;;;:::o;4530:::-;4672:3;4693:67;4757:2;4752:3;4693:67;:::i;:::-;4686:74;;4769:93;4858:3;4769:93;:::i;:::-;4887:2;4882:3;4878:12;4871:19;;4530:366;;;:::o;4902:::-;5044:3;5065:67;5129:2;5124:3;5065:67;:::i;:::-;5058:74;;5141:93;5230:3;5141:93;:::i;:::-;5259:2;5254:3;5250:12;5243:19;;4902:366;;;:::o;5274:::-;5416:3;5437:67;5501:2;5496:3;5437:67;:::i;:::-;5430:74;;5513:93;5602:3;5513:93;:::i;:::-;5631:2;5626:3;5622:12;5615:19;;5274:366;;;:::o;5646:::-;5788:3;5809:67;5873:2;5868:3;5809:67;:::i;:::-;5802:74;;5885:93;5974:3;5885:93;:::i;:::-;6003:2;5998:3;5994:12;5987:19;;5646:366;;;:::o;6018:::-;6160:3;6181:67;6245:2;6240:3;6181:67;:::i;:::-;6174:74;;6257:93;6346:3;6257:93;:::i;:::-;6375:2;6370:3;6366:12;6359:19;;6018:366;;;:::o;6390:::-;6532:3;6553:67;6617:2;6612:3;6553:67;:::i;:::-;6546:74;;6629:93;6718:3;6629:93;:::i;:::-;6747:2;6742:3;6738:12;6731:19;;6390:366;;;:::o;6762:::-;6904:3;6925:67;6989:2;6984:3;6925:67;:::i;:::-;6918:74;;7001:93;7090:3;7001:93;:::i;:::-;7119:2;7114:3;7110:12;7103:19;;6762:366;;;:::o;7134:::-;7276:3;7297:67;7361:2;7356:3;7297:67;:::i;:::-;7290:74;;7373:93;7462:3;7373:93;:::i;:::-;7491:2;7486:3;7482:12;7475:19;;7134:366;;;:::o;7506:::-;7648:3;7669:67;7733:2;7728:3;7669:67;:::i;:::-;7662:74;;7745:93;7834:3;7745:93;:::i;:::-;7863:2;7858:3;7854:12;7847:19;;7506:366;;;:::o;7878:::-;8020:3;8041:67;8105:2;8100:3;8041:67;:::i;:::-;8034:74;;8117:93;8206:3;8117:93;:::i;:::-;8235:2;8230:3;8226:12;8219:19;;7878:366;;;:::o;8250:::-;8392:3;8413:67;8477:2;8472:3;8413:67;:::i;:::-;8406:74;;8489:93;8578:3;8489:93;:::i;:::-;8607:2;8602:3;8598:12;8591:19;;8250:366;;;:::o;8622:::-;8764:3;8785:67;8849:2;8844:3;8785:67;:::i;:::-;8778:74;;8861:93;8950:3;8861:93;:::i;:::-;8979:2;8974:3;8970:12;8963:19;;8622:366;;;:::o;8994:::-;9136:3;9157:67;9221:2;9216:3;9157:67;:::i;:::-;9150:74;;9233:93;9322:3;9233:93;:::i;:::-;9351:2;9346:3;9342:12;9335:19;;8994:366;;;:::o;9366:118::-;9453:24;9471:5;9453:24;:::i;:::-;9448:3;9441:37;9366:118;;:::o;9490:112::-;9573:22;9589:5;9573:22;:::i;:::-;9568:3;9561:35;9490:112;;:::o;9608:222::-;9701:4;9739:2;9728:9;9724:18;9716:26;;9752:71;9820:1;9809:9;9805:17;9796:6;9752:71;:::i;:::-;9608:222;;;;:::o;9836:210::-;9923:4;9961:2;9950:9;9946:18;9938:26;;9974:65;10036:1;10025:9;10021:17;10012:6;9974:65;:::i;:::-;9836:210;;;;:::o;10052:313::-;10165:4;10203:2;10192:9;10188:18;10180:26;;10252:9;10246:4;10242:20;10238:1;10227:9;10223:17;10216:47;10280:78;10353:4;10344:6;10280:78;:::i;:::-;10272:86;;10052:313;;;;:::o;10371:419::-;10537:4;10575:2;10564:9;10560:18;10552:26;;10624:9;10618:4;10614:20;10610:1;10599:9;10595:17;10588:47;10652:131;10778:4;10652:131;:::i;:::-;10644:139;;10371:419;;;:::o;10796:::-;10962:4;11000:2;10989:9;10985:18;10977:26;;11049:9;11043:4;11039:20;11035:1;11024:9;11020:17;11013:47;11077:131;11203:4;11077:131;:::i;:::-;11069:139;;10796:419;;;:::o;11221:::-;11387:4;11425:2;11414:9;11410:18;11402:26;;11474:9;11468:4;11464:20;11460:1;11449:9;11445:17;11438:47;11502:131;11628:4;11502:131;:::i;:::-;11494:139;;11221:419;;;:::o;11646:::-;11812:4;11850:2;11839:9;11835:18;11827:26;;11899:9;11893:4;11889:20;11885:1;11874:9;11870:17;11863:47;11927:131;12053:4;11927:131;:::i;:::-;11919:139;;11646:419;;;:::o;12071:::-;12237:4;12275:2;12264:9;12260:18;12252:26;;12324:9;12318:4;12314:20;12310:1;12299:9;12295:17;12288:47;12352:131;12478:4;12352:131;:::i;:::-;12344:139;;12071:419;;;:::o;12496:::-;12662:4;12700:2;12689:9;12685:18;12677:26;;12749:9;12743:4;12739:20;12735:1;12724:9;12720:17;12713:47;12777:131;12903:4;12777:131;:::i;:::-;12769:139;;12496:419;;;:::o;12921:::-;13087:4;13125:2;13114:9;13110:18;13102:26;;13174:9;13168:4;13164:20;13160:1;13149:9;13145:17;13138:47;13202:131;13328:4;13202:131;:::i;:::-;13194:139;;12921:419;;;:::o;13346:::-;13512:4;13550:2;13539:9;13535:18;13527:26;;13599:9;13593:4;13589:20;13585:1;13574:9;13570:17;13563:47;13627:131;13753:4;13627:131;:::i;:::-;13619:139;;13346:419;;;:::o;13771:::-;13937:4;13975:2;13964:9;13960:18;13952:26;;14024:9;14018:4;14014:20;14010:1;13999:9;13995:17;13988:47;14052:131;14178:4;14052:131;:::i;:::-;14044:139;;13771:419;;;:::o;14196:::-;14362:4;14400:2;14389:9;14385:18;14377:26;;14449:9;14443:4;14439:20;14435:1;14424:9;14420:17;14413:47;14477:131;14603:4;14477:131;:::i;:::-;14469:139;;14196:419;;;:::o;14621:::-;14787:4;14825:2;14814:9;14810:18;14802:26;;14874:9;14868:4;14864:20;14860:1;14849:9;14845:17;14838:47;14902:131;15028:4;14902:131;:::i;:::-;14894:139;;14621:419;;;:::o;15046:::-;15212:4;15250:2;15239:9;15235:18;15227:26;;15299:9;15293:4;15289:20;15285:1;15274:9;15270:17;15263:47;15327:131;15453:4;15327:131;:::i;:::-;15319:139;;15046:419;;;:::o;15471:::-;15637:4;15675:2;15664:9;15660:18;15652:26;;15724:9;15718:4;15714:20;15710:1;15699:9;15695:17;15688:47;15752:131;15878:4;15752:131;:::i;:::-;15744:139;;15471:419;;;:::o;15896:::-;16062:4;16100:2;16089:9;16085:18;16077:26;;16149:9;16143:4;16139:20;16135:1;16124:9;16120:17;16113:47;16177:131;16303:4;16177:131;:::i;:::-;16169:139;;15896:419;;;:::o;16321:::-;16487:4;16525:2;16514:9;16510:18;16502:26;;16574:9;16568:4;16564:20;16560:1;16549:9;16545:17;16538:47;16602:131;16728:4;16602:131;:::i;:::-;16594:139;;16321:419;;;:::o;16746:222::-;16839:4;16877:2;16866:9;16862:18;16854:26;;16890:71;16958:1;16947:9;16943:17;16934:6;16890:71;:::i;:::-;16746:222;;;;:::o;16974:332::-;17095:4;17133:2;17122:9;17118:18;17110:26;;17146:71;17214:1;17203:9;17199:17;17190:6;17146:71;:::i;:::-;17227:72;17295:2;17284:9;17280:18;17271:6;17227:72;:::i;:::-;16974:332;;;;;:::o;17312:214::-;17401:4;17439:2;17428:9;17424:18;17416:26;;17452:67;17516:1;17505:9;17501:17;17492:6;17452:67;:::i;:::-;17312:214;;;;:::o;17613:99::-;17665:6;17699:5;17693:12;17683:22;;17613:99;;;:::o;17718:169::-;17802:11;17836:6;17831:3;17824:19;17876:4;17871:3;17867:14;17852:29;;17718:169;;;;:::o;17893:305::-;17933:3;17952:20;17970:1;17952:20;:::i;:::-;17947:25;;17986:20;18004:1;17986:20;:::i;:::-;17981:25;;18140:1;18072:66;18068:74;18065:1;18062:81;18059:107;;;18146:18;;:::i;:::-;18059:107;18190:1;18187;18183:9;18176:16;;17893:305;;;;:::o;18204:191::-;18244:4;18264:20;18282:1;18264:20;:::i;:::-;18259:25;;18298:20;18316:1;18298:20;:::i;:::-;18293:25;;18337:1;18334;18331:8;18328:34;;;18342:18;;:::i;:::-;18328:34;18387:1;18384;18380:9;18372:17;;18204:191;;;;:::o;18401:96::-;18438:7;18467:24;18485:5;18467:24;:::i;:::-;18456:35;;18401:96;;;:::o;18503:90::-;18537:7;18580:5;18573:13;18566:21;18555:32;;18503:90;;;:::o;18599:126::-;18636:7;18676:42;18669:5;18665:54;18654:65;;18599:126;;;:::o;18731:77::-;18768:7;18797:5;18786:16;;18731:77;;;:::o;18814:86::-;18849:7;18889:4;18882:5;18878:16;18867:27;;18814:86;;;:::o;18906:307::-;18974:1;18984:113;18998:6;18995:1;18992:13;18984:113;;;19083:1;19078:3;19074:11;19068:18;19064:1;19059:3;19055:11;19048:39;19020:2;19017:1;19013:10;19008:15;;18984:113;;;19115:6;19112:1;19109:13;19106:101;;;19195:1;19186:6;19181:3;19177:16;19170:27;19106:101;18955:258;18906:307;;;:::o;19219:171::-;19258:3;19281:24;19299:5;19281:24;:::i;:::-;19272:33;;19327:4;19320:5;19317:15;19314:41;;;19335:18;;:::i;:::-;19314:41;19382:1;19375:5;19371:13;19364:20;;19219:171;;;:::o;19396:320::-;19440:6;19477:1;19471:4;19467:12;19457:22;;19524:1;19518:4;19514:12;19545:18;19535:81;;19601:4;19593:6;19589:17;19579:27;;19535:81;19663:2;19655:6;19652:14;19632:18;19629:38;19626:84;;;19682:18;;:::i;:::-;19626:84;19447:269;19396:320;;;:::o;19722:233::-;19761:3;19784:24;19802:5;19784:24;:::i;:::-;19775:33;;19830:66;19823:5;19820:77;19817:103;;;19900:18;;:::i;:::-;19817:103;19947:1;19940:5;19936:13;19929:20;;19722:233;;;:::o;19961:180::-;20009:77;20006:1;19999:88;20106:4;20103:1;20096:15;20130:4;20127:1;20120:15;20147:180;20195:77;20192:1;20185:88;20292:4;20289:1;20282:15;20316:4;20313:1;20306:15;20333:180;20381:77;20378:1;20371:88;20478:4;20475:1;20468:15;20502:4;20499:1;20492:15;20519:180;20567:77;20564:1;20557:88;20664:4;20661:1;20654:15;20688:4;20685:1;20678:15;20828:117;20937:1;20934;20927:12;20951:102;20992:6;21043:2;21039:7;21034:2;21027:5;21023:14;21019:28;21009:38;;20951:102;;;:::o;21059:224::-;21199:34;21195:1;21187:6;21183:14;21176:58;21268:7;21263:2;21255:6;21251:15;21244:32;21059:224;:::o;21289:173::-;21429:25;21425:1;21417:6;21413:14;21406:49;21289:173;:::o;21468:177::-;21608:29;21604:1;21596:6;21592:14;21585:53;21468:177;:::o;21651:220::-;21791:34;21787:1;21779:6;21775:14;21768:58;21860:3;21855:2;21847:6;21843:15;21836:28;21651:220;:::o;21877:230::-;22017:34;22013:1;22005:6;22001:14;21994:58;22086:13;22081:2;22073:6;22069:15;22062:38;21877:230;:::o;22113:176::-;22253:28;22249:1;22241:6;22237:14;22230:52;22113:176;:::o;22295:179::-;22435:31;22431:1;22423:6;22419:14;22412:55;22295:179;:::o;22480:::-;22620:31;22616:1;22608:6;22604:14;22597:55;22480:179;:::o;22665:180::-;22805:32;22801:1;22793:6;22789:14;22782:56;22665:180;:::o;22851:181::-;22991:33;22987:1;22979:6;22975:14;22968:57;22851:181;:::o;23038:177::-;23178:29;23174:1;23166:6;23162:14;23155:53;23038:177;:::o;23221:179::-;23361:31;23357:1;23349:6;23345:14;23338:55;23221:179;:::o;23406:178::-;23546:30;23542:1;23534:6;23530:14;23523:54;23406:178;:::o;23590:179::-;23730:31;23726:1;23718:6;23714:14;23707:55;23590:179;:::o;23775:180::-;23915:32;23911:1;23903:6;23899:14;23892:56;23775:180;:::o;23961:122::-;24034:24;24052:5;24034:24;:::i;:::-;24027:5;24024:35;24014:63;;24073:1;24070;24063:12;24014:63;23961:122;:::o;24089:::-;24162:24;24180:5;24162:24;:::i;:::-;24155:5;24152:35;24142:63;;24201:1;24198;24191:12;24142:63;24089:122;:::o

Swarm Source

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