ETH Price: $3,127.60 (-4.49%)

Token

TrsutShore (TST)
 

Overview

Max Total Supply

2,045,277,495 TST

Holders

2,311

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
149,999 TST

Value
$0.00
0x3dd317b1a2eca019fc9caca809a35305a995d40b
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
TrancheToken

Compiler Version
v0.5.1+commit.c8a2cb62

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-06-17
*/

pragma solidity ^0.5.0;

library ECRecovery {

  /**
   * @dev Recover signer address from a message by using his signature
   * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address.
   * @param sig bytes signature, the signature is generated using web3.eth.sign()
   */
  function recover(bytes32 hash, bytes memory sig) public pure returns (address) {
    bytes32 r;
    bytes32 s;
    uint8 v;

    //Check the signature length
    if (sig.length != 65) {
      return (address(0));
    }

    // Divide the signature in r, s and v variables
    assembly {
      r := mload(add(sig, 32))
      s := mload(add(sig, 64))
      v := byte(0, mload(add(sig, 96)))
    }

    // Version of signature should be 27 or 28, but 0 and 1 are also possible versions
    if (v < 27) {
      v += 27;
    }

    // If the version is correct return the signer address
    if (v != 27 && v != 28) {
      return (address(0));
    } else {
      return ecrecover(hash, v, r, s);
    }
  }
}

library SafeMath {
    /**
     * @dev Multiplies two unsigned integers, reverts on overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, "SafeMath: division by zero");
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Adds two unsigned integers, reverts on overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
     * reverts when dividing by zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0, "SafeMath: modulo by zero");
        return a % b;
    }
}

/**
 * @title Roles
 * @dev Library for managing addresses assigned to a Role.
 */
library Roles {
    struct Role {
        mapping (address => bool) bearer;
    }

    /**
     * @dev Give an account access to this role.
     */
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
    }

    /**
     * @dev Remove an account's access to this role.
     */
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        role.bearer[account] = false;
    }

    /**
     * @dev Check if an account has this role.
     * @return bool
     */
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
}

interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);
    function approve(address spender, uint256 value) external returns (bool);
    function transferFrom(address from, address to, uint256 value) external returns (bool);
    function totalSupply() external view returns (uint256);
    function balanceOf(address who) external view returns (uint256);
    function allowance(address owner, address spender) external view returns (uint256);

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

contract ERC20 is IERC20 {
    using SafeMath for uint256;
    mapping (address => uint256) internal _balances;
    mapping (address => mapping (address => uint256)) internal _allowances;
    uint256 internal _totalSupply;
    
    constructor() internal {
    }

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

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

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

    function transfer(address to, uint256 value) public returns (bool) {
        _transfer(msg.sender, to, value);
        return true;
    }

    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    function transferFrom(address from, address to, uint256 value) public returns (bool) {
        _transfer(from, to, value);
        _approve(from, msg.sender, _allowances[from][msg.sender].sub(value));
        return true;
    }

    function _transfer(address _from, address to, uint256 value) internal {
        require(_from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _balances[_from] = _balances[_from].sub(value);
        _balances[to] = _balances[to].add(value);
        emit Transfer(_from, to, value);
    }

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

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

}

contract Ownable {
    address public owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    using SafeMath for uint256;
    uint256 public startdate;

    constructor() internal {
        owner = msg.sender;
        startdate = now;
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner,"Ownerble: caller is not owner.");
        _;
    }

    function transferOwnership(address newOwner) public;

    function _transferOwnership(address newOwner) internal onlyOwner {
        require(newOwner != address(0), "Ownerble: address is zero.");
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}

contract MinterRole {
    using Roles for Roles.Role;

    event MinterAdded(address indexed account);
    event MinterRemoved(address indexed account);

    Roles.Role private _minters;

    constructor () internal {
        _addMinter(msg.sender);
    }

    modifier onlyMinter() {
        require(isMinter(msg.sender), "MinterRole: caller does not have the Minter role.");
        _;
    }

    function isMinter(address account) public view returns (bool) {
        return _minters.has(account);
    }

    function renounceMinter() public;

    function _addMinter(address account) internal {
        _minters.add(account);
        emit MinterAdded(account);
    }

    function _removeMinter(address account) internal {
        _minters.remove(account);
        emit MinterRemoved(account);
    }
}

contract Mintable is MinterRole{
     uint256 private _cap;
     event Mint(address indexed minter, address receiver, uint256 value);
    
    constructor (uint256 cap) internal {
        require(cap > 0, "ERC20Capped: cap is 0");
        _cap = cap;
    }

    function renounceMinter() public;

    function addMinter(address minter) public;

    function removeMinter(address minter) public;

    function cap() public view returns (uint256) {
        return _cap;
    }
    
    function mint(address to, uint256 value) public onlyMinter returns (bool) {
        _mint(to, value);
        emit Mint(msg.sender, to, value);
        return true;
    }
    
    function _mint(address account, uint256 value) internal;
}

contract Pausable {
    event Paused(address account);
    event Unpaused(address account);

    bool private _paused;

    constructor () internal {
        _paused = false;
    }

    function paused() public view returns (bool) {
        return _paused;
    }

    modifier whenNotPaused() {
        require(!_paused, "Pausable: paused");
        _;
    }

    modifier whenPaused() {
        require(_paused, "Pausable: not paused");
        _;
    }

    function _pause() internal whenNotPaused {
        _paused = true;
        emit Paused(msg.sender);
    }

    function _unpause() internal whenPaused {
        _paused = false;
        emit Unpaused(msg.sender);
    }
    
    function pause() public;
    function unpause() public;
}

contract Burnable {
    event Burn(address burner, uint256 value);

    constructor () internal {}
    function burn(address account, uint256 value) public;

    function _burn(address account, uint256 value) internal{
        emit Burn(account, value);
    }
}

contract Lockable {
    uint256 internal _totalLocked = 0;
    event Lock(address beneficiary, uint256 amount, uint256 releaseTime);
    
    mapping(address => uint256) internal _lock_list_period;
    mapping(address => bool) internal _lock_list;
    mapping(address => uint256) internal _revocable;
    
    modifier notLocked() {
        require(_lock_list[msg.sender] == true, "Lockable: sender address is locked.");
        _;
    }
    
    function totalLocked() public view returns (uint256){
        return _totalLocked;
    }
    
    function mintLockedToken(address addr, uint256 tokens, uint256 _duration) public;
    
    function releaseLockedToken() public returns (bool);
    
    function isLocked(address addr) public view returns (bool) {
        return _lock_list[addr];
    }
    
    function lockedPeriod(address addr) public view returns (uint256) {
        return _lock_list_period[addr];
    }
    
    function lockedBalance(address addr) public view returns (uint256) {
        return _revocable[addr];
    }
}

contract DelegatorRole {
    using Roles for Roles.Role;

    event DelegatorAdded(address indexed account);
    event DelegatorRemoved(address indexed account);

    Roles.Role private _delegators;

    constructor () internal {
        _addDelegator(msg.sender);
    }

    modifier onlyDelegator() {
        require(isDelegator(msg.sender), "DelegatorRole: caller does not have the Delegator role.");
        _;
    }

    function isDelegator(address account) public view returns (bool) {
        return _delegators.has(account);
    }

    function renounceDelegator() public;

    function _addDelegator(address account) internal {
        _delegators.add(account);
        emit DelegatorAdded(account);
    }

    function _removeDelegator(address account) internal {
        _delegators.remove(account);
        emit DelegatorRemoved(account);
    }
}

contract Delegatable is DelegatorRole{
    using ECRecovery for bytes32;
    using SafeMath for uint;

    uint16 private _feeRate;
    address private _feeCollector;
    mapping(address => uint256) internal _nonces;
    event Delegated(address delegator, address sender, address receiver, uint256 value, uint256 nonce);

    constructor () internal{
        _feeRate = 10; //0.01%
        _feeCollector = msg.sender;
    }

    function setFeeRate(uint16 _rate) public;

    function setFeeCollector(address _collector) public;

    function addDelegator(address minter) public;

    function removeDelegator(address minter) public;

    function renounceDelegator() public;

    function _setFeeRate(uint16 _rate) internal{
        _feeRate = _rate;
    }

    function _setFeeCollector(address _collector) internal{
        _feeCollector = _collector;
    }

    function feeRate() public view returns (uint16){
        return _feeRate;
    }

    function feeCollector() public view returns (address){
        return _feeCollector;
    }

    function nonceOf(address _addr) public view returns (uint256 nonce){
        return _nonces[_addr];
    }

    function _delegatedTransfer(address _from, address _to, uint256 _value, uint256 _fee) internal returns(bool success);

    function delegatedTransfer(address _from, address _to, uint256 _value, uint256 _nonce, bytes calldata _signature) external onlyDelegator returns(bool success){
        require(_nonce == nonceOf(_from), "Delegatable: nonce is not correct");

        bytes32 hash = keccak256(abi.encodePacked(
            "\x19Ethereum Signed Message:\n32",
            keccak256(abi.encodePacked(_from, _to, _value, _nonce)))
        );
        address sender = hash.recover(_signature);

        // fee
        uint _fee = _value.mul(_feeRate).div(uint(100000));
        
        if(_from == sender){
            if(_delegatedTransfer(_from, _to, _value, _fee)){
                uint256 newNonce = nonceOf(_from).add(uint256(1));
                _nonces[_from] = newNonce;
                emit Delegated(msg.sender, _from, _to, _value, newNonce);
                return true;
            }
            else{
                return false;
            }
        } else {
            return false;
        }
    }
}

contract TrancheToken is ERC20, Ownable, Mintable, Pausable, Burnable, Lockable, Delegatable{
    string private _name;
    string private _symbol;
    uint8 private _decimals = 18;

    constructor (string memory name, string memory symbol, uint256 cap) public Mintable(cap){
        _name = name;
        _symbol = symbol;
    }
    
    function name() public view returns (string memory) {
        return _name;
    }

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }
    
    //Override Mintable
    function _mint(address account, uint256 value) internal {
        require(account != address(0), "Mintable: mint to the zero address.");
        require(totalSupply().add(value).add(totalLocked()) <= cap(), "Mintable: cap exceeded.");

        _totalSupply = _totalSupply.add(value);
        _balances[account] = _balances[account].add(value);
        emit Transfer(address(0), account, value);
    }
    
    function renounceMinter() public {
        require(msg.sender != owner, "Mintable: Owner cannot renounce. Transfer owner first.");
        super._removeMinter(msg.sender);
    }
 
    function addMinter(address minter) public onlyOwner{
        super._addMinter(minter);

    }
    
    function removeMinter(address minter) public onlyOwner{
        super._removeMinter(minter);
    }
    
    //Override Ownerble
    function transferOwnership(address newOwner) public{
        require(msg.sender == owner, "Ownerble: only owner transfer ownership");
        addMinter(newOwner);
        addDelegator(newOwner);
        removeMinter(owner);
        removeDelegator(owner);
        super._transferOwnership(newOwner);
    }

    //Override Pausable
    function pause() public onlyOwner {
        require(!paused(), "Pausable: Already paused.");
        super._pause();
    }

    function unpause() public onlyOwner {
        require(paused(), "Pausable: Not paused.");
        super._unpause();
    }

    function transfer(address to, uint256 value) public returns (bool) {
        require(!paused(), "Pausable: token transfer is paused.");
        super._transfer(msg.sender, to, value);
        return true;
    }

    function transferFrom(address from, address to, uint256 value) public whenNotPaused returns (bool) {
        require(value > 0, "transferFrom: value is must be greater than zero.");
        require(balanceOf(from) >= value, "transferFrom: balance of from address is not enough");
        require(_allowances[from][msg.sender] >= value, "transferFrom: sender are not allowed to send.");
        
        return super.transferFrom(from, to, value);
    }

    function approve(address spender, uint256 value) public whenNotPaused returns (bool) {
        return super.approve(spender, value);
    }

    //Override Burnable
    function burn(address account, uint256 value) public onlyOwner {
        require(account != address(0), "Burnable: burn from the zero address");
        require(_balances[account] >= value, "Burnable: not enought tokens");
        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        super._burn(account, value);
        emit Transfer(account, address(0), value);
    }
    
    //Apply SafeTransfer
    function safeTransfer(address to, uint256 value) public {
        require(!_isContract(to),"SafeTransfer: receiver is contreact");
        transfer(to,value);
    }

    function safeTransferFrom(address from, address to, uint256 value) public {
        require(!_isContract(from),"SafeTransfer: sender is contract");
        require(!_isContract(to),"SafeTransfer: receiver is contract");
        transferFrom(from, to, value);
    }

    function safeApprove(address spender, uint256 value) public {
        require(value != 0, "SafeTransfer: approve from non-zero to non-zero allowance");
        require(!_isContract(spender),"SafeTransfer: spender is contract");
        approve(spender, value);
    }

    function _isContract(address _addr) private view returns (bool is_contract){
        uint length;
        assembly {
            length := extcodesize(_addr)
        }
        return (length>0);
    }

    //Override Lockable
    function mintLockedToken(address addr, uint256 tokens, uint256 _duration) public {
        require(msg.sender == owner, "Lockable: only owner can lock token ");
        require(_totalSupply.add(totalLocked()).add(tokens) <= cap(), "Lockable: locked tokens can not exceed total cap.");
        require(_lock_list[addr] == false, "Lockable: this address is already locked");
        
        uint256 releaseTime = block.timestamp.add(_duration.mul(1 minutes));
        
        //if(_lock_list[addr] == true) {
        //    _totalLocked.sub(_revocable[addr]);
        //}
        
        _lock_list_period[addr] = releaseTime;
        _lock_list[addr] = true;
        _revocable[addr] = tokens;
        _totalLocked = _totalLocked.add(tokens);
        
        emit Lock(addr, tokens, releaseTime);
    }
    
    function releaseLockedToken() public returns (bool) {
        require(_lock_list[msg.sender] == true);
        require(_revocable[msg.sender] > 0);
        
        uint256 releaseTime = _lock_list_period[msg.sender];
        uint256 currentTime = block.timestamp;
        
        if(currentTime > releaseTime) {
            uint256 tokens = _revocable[msg.sender];
            
            _lock_list_period[msg.sender] = 0;
            _lock_list[msg.sender] = false;
            _revocable[msg.sender] = 0;
            _totalSupply = _totalSupply.add(tokens);
            _balances[msg.sender] = _balances[msg.sender].add(tokens);
            return true;
        } else {
            return false;
        }
    }

    //Override Delegatable
    function setFeeRate(uint16 _rate) public{
        require(msg.sender == owner, "Delegatable: only owner change the fee rate");
        _setFeeRate(_rate);
    }

    function setFeeCollector(address _collector) public{
        require(msg.sender == owner, "Delegatable: only owner change the fee collector");
        _setFeeCollector(_collector);
    }

    function renounceDelegator() public {
        require(msg.sender != owner, "Delegatable : Owner cannot renounce. Transfer owner first.");
        super._removeDelegator(msg.sender);
    }

    function _delegatedTransfer(address _from, address _to, uint256 _value, uint256 _fee) internal returns(bool success){
        uint _amount = _value.add(_fee);

        if (balanceOf(_from) < _amount)
            return false;
        _balances[_from] = balanceOf(_from).sub(_amount);
        _balances[_to] = balanceOf(_to).add(_value);
        _balances[feeCollector()] = balanceOf(feeCollector()).add(_fee);
        emit Transfer(_from, _to, _value);
        emit Transfer(_from, feeCollector(), _fee);
        return true;
    }

    function addDelegator(address delegator) public onlyOwner{
        super._addDelegator(delegator);

    }
    
    function removeDelegator(address delegator) public onlyOwner{
        super._removeDelegator(delegator);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"delegator","type":"address"}],"name":"addDelegator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint16"}],"name":"setFeeRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"minter","type":"address"}],"name":"removeMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"safeTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLocked","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"tokens","type":"uint256"},{"name":"_duration","type":"uint256"}],"name":"mintLockedToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"feeRate","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"minter","type":"address"}],"name":"addMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceMinter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"lockedBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"account","type":"address"},{"name":"value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_collector","type":"address"}],"name":"setFeeCollector","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isMinter","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"releaseLockedToken","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceDelegator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"feeCollector","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"lockedPeriod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_nonce","type":"uint256"},{"name":"_signature","type":"bytes"}],"name":"delegatedTransfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startdate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"owner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"nonceOf","outputs":[{"name":"nonce","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"safeApprove","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"isDelegator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"delegator","type":"address"}],"name":"removeDelegator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"name","type":"string"},{"name":"symbol","type":"string"},{"name":"cap","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"delegator","type":"address"},{"indexed":false,"name":"sender","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"nonce","type":"uint256"}],"name":"Delegated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"DelegatorAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"DelegatorRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"releaseTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"minter","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"account","type":"address"}],"name":"MinterRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"}]

608060405260006008556012601160006101000a81548160ff021916908360ff1602179055503480156200003257600080fd5b506040516200556338038062005563833981018060405260608110156200005857600080fd5b8101908080516401000000008111156200007157600080fd5b828101905060208101848111156200008857600080fd5b8151856001820283011164010000000082111715620000a657600080fd5b50509291906020018051640100000000811115620000c357600080fd5b82810190506020810184811115620000da57600080fd5b8151856001820283011164010000000082111715620000f857600080fd5b5050929190602001805190602001909291905050508033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426004819055506200017033620002c0640100000000026401000000009004565b600081111515620001e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f45524332304361707065643a206361702069732030000000000000000000000081525060200191505060405180910390fd5b80600681905550506000600760006101000a81548160ff02191690831515021790555062000226336200032a640100000000026401000000009004565b600a600d60006101000a81548161ffff021916908361ffff16021790555033600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600f90805190602001906200029d929190620005a7565b508160109080519060200190620002b6929190620005a7565b5050505062000656565b620002e4816005620003946401000000000262004cf2179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6200034e81600c620003946401000000000262004cf2179091906401000000009004565b8073ffffffffffffffffffffffffffffffffffffffff167fcf370ba38508da841f48b9981508fd166e3294ca16c4978a7a7bc38123ba582b60405160405180910390a250565b620003af828262000483640100000000026401000000009004565b15151562000425576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415151562000550576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526f6c65733a206163636f756e7420697320746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620005ea57805160ff19168380011785556200061b565b828001600101855582156200061b579182015b828111156200061a578251825591602001919060010190620005fd565b5b5090506200062a91906200062e565b5090565b6200065391905b808211156200064f57600081600090555060010162000635565b5090565b90565b614efd80620006666000396000f3fe6080604052600436106101f3576000357c01000000000000000000000000000000000000000000000000000000009004806306fdde03146101f8578063095ea7b31461028857806318160ddd146102fb57806321fb4c351461032657806323b872dd1461037757806329ff07731461040a5780633092afd514610449578063313ce5671461049a578063355274ea146104cb5780633f4ba83a146104f657806340c10f191461050d578063423f6cef1461058057806342842e0e146105db5780634a4fbeec1461065657806356891412146106bf5780635c975abb146106ea5780636a635fb81461071957806370a082311461077e5780638456cb59146107e35780638da5cb5b146107fa57806395d89b4114610851578063978bbdb9146108e1578063983b2d561461091457806398650275146109655780639ae697bf1461097c5780639dc29fac146109e1578063a42dce8014610a3c578063a9059cbb14610a8d578063aa271e1a14610b00578063ae1be1e414610b69578063b93192f714610b98578063c415b95c14610baf578063c689211614610c06578063cc375b8a14610c6b578063cde9f2ea14610d5d578063dd62ed3e14610d88578063ed2a2d6414610e0d578063f2fde38b14610e72578063fbc6d1cb14610ec3578063fd8ab48214610f1e578063fe5a2bcf14610f87575b600080fd5b34801561020457600080fd5b5061020d610fd8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024d578082015181840152602081019050610232565b50505050905090810190601f16801561027a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029457600080fd5b506102e1600480360360408110156102ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061107a565b604051808215151515815260200191505060405180910390f35b34801561030757600080fd5b50610310611113565b6040518082815260200191505060405180910390f35b34801561033257600080fd5b506103756004803603602081101561034957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061111d565b005b34801561038357600080fd5b506103f06004803603606081101561039a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ee565b604051808215151515815260200191505060405180910390f35b34801561041657600080fd5b506104476004803603602081101561042d57600080fd5b81019080803561ffff1690602001909291905050506114e7565b005b34801561045557600080fd5b506104986004803603602081101561046c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115de565b005b3480156104a657600080fd5b506104af6116af565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104d757600080fd5b506104e06116c6565b6040518082815260200191505060405180910390f35b34801561050257600080fd5b5061050b6116d0565b005b34801561051957600080fd5b506105666004803603604081101561053057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061181b565b604051808215151515815260200191505060405180910390f35b34801561058c57600080fd5b506105d9600480360360408110156105a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611956565b005b3480156105e757600080fd5b50610654600480360360608110156105fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a09565b005b34801561066257600080fd5b506106a56004803603602081101561067957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3c565b604051808215151515815260200191505060405180910390f35b3480156106cb57600080fd5b506106d4611b92565b6040518082815260200191505060405180910390f35b3480156106f657600080fd5b506106ff611b9c565b604051808215151515815260200191505060405180910390f35b34801561072557600080fd5b5061077c6004803603606081101561073c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611bb3565b005b34801561078a57600080fd5b506107cd600480360360208110156107a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ffc565b6040518082815260200191505060405180910390f35b3480156107ef57600080fd5b506107f8612044565b005b34801561080657600080fd5b5061080f612190565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085d57600080fd5b506108666121b6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108a657808201518184015260208101905061088b565b50505050905090810190601f1680156108d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108ed57600080fd5b506108f6612258565b604051808261ffff1661ffff16815260200191505060405180910390f35b34801561092057600080fd5b506109636004803603602081101561093757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612270565b005b34801561097157600080fd5b5061097a612341565b005b34801561098857600080fd5b506109cb6004803603602081101561099f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612438565b6040518082815260200191505060405180910390f35b3480156109ed57600080fd5b50610a3a60048036036040811015610a0457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612481565b005b348015610a4857600080fd5b50610a8b60048036036020811015610a5f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127e9565b005b348015610a9957600080fd5b50610ae660048036036040811015610ab057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128e0565b604051808215151515815260200191505060405180910390f35b348015610b0c57600080fd5b50610b4f60048036036020811015610b2357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061299a565b604051808215151515815260200191505060405180910390f35b348015610b7557600080fd5b50610b7e6129b7565b604051808215151515815260200191505060405180910390f35b348015610ba457600080fd5b50610bad612ca1565b005b348015610bbb57600080fd5b50610bc4612d98565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c1257600080fd5b50610c5560048036036020811015610c2957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dc2565b6040518082815260200191505060405180910390f35b348015610c7757600080fd5b50610d43600480360360a0811015610c8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190640100000000811115610cff57600080fd5b820183602082011115610d1157600080fd5b80359060200191846001830284011164010000000083111715610d3357600080fd5b9091929391929390505050612e0b565b604051808215151515815260200191505060405180910390f35b348015610d6957600080fd5b50610d7261332b565b6040518082815260200191505060405180910390f35b348015610d9457600080fd5b50610df760048036036040811015610dab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613331565b6040518082815260200191505060405180910390f35b348015610e1957600080fd5b50610e5c60048036036020811015610e3057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133b8565b6040518082815260200191505060405180910390f35b348015610e7e57600080fd5b50610ec160048036036020811015610e9557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613401565b005b348015610ecf57600080fd5b50610f1c60048036036040811015610ee657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613560565b005b348015610f2a57600080fd5b50610f6d60048036036020811015610f4157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506136b2565b604051808215151515815260200191505060405180910390f35b348015610f9357600080fd5b50610fd660048036036020811015610faa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506136cf565b005b6060600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110705780601f1061104557610100808354040283529160200191611070565b820191906000526020600020905b81548152906001019060200180831161105357829003601f168201915b5050505050905090565b6000600760009054906101000a900460ff16151515611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61110b83836137a0565b905092915050565b6000600254905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b6111eb816137b7565b50565b6000600760009054906101000a900460ff16151515611275576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b600082111515611313576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f7472616e7366657246726f6d3a2076616c7565206973206d757374206265206781526020017f726561746572207468616e207a65726f2e00000000000000000000000000000081525060400191505060405180910390fd5b8161131d85611ffc565b101515156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001807f7472616e7366657246726f6d3a2062616c616e6365206f662066726f6d20616481526020017f6472657373206973206e6f7420656e6f7567680000000000000000000000000081525060400191505060405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156114d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f7472616e7366657246726f6d3a2073656e64657220617265206e6f7420616c6c81526020017f6f77656420746f2073656e642e0000000000000000000000000000000000000081525060400191505060405180910390fd5b6114de848484613811565b90509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f44656c6567617461626c653a206f6e6c79206f776e6572206368616e6765207481526020017f686520666565207261746500000000000000000000000000000000000000000081525060400191505060405180910390fd5b6115db816138c2565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b6116ac816138e2565b50565b6000601160009054906101000a900460ff16905090565b6000600654905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b61179d611b9c565b1515611811576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5061757361626c653a204e6f74207061757365642e000000000000000000000081525060200191505060405180910390fd5b61181961393c565b565b60006118263361299a565b15156118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526020017f20746865204d696e74657220726f6c652e00000000000000000000000000000081525060400191505060405180910390fd5b6118ca8383613a40565b3373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f88484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a26001905092915050565b61195f82613cd4565b1515156119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f536166655472616e736665723a20726563656976657220697320636f6e74726581526020017f616374000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611a0482826128e0565b505050565b611a1283613cd4565b151515611a87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f536166655472616e736665723a2073656e64657220697320636f6e747261637481525060200191505060405180910390fd5b611a9082613cd4565b151515611b2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f536166655472616e736665723a20726563656976657220697320636f6e74726181526020017f637400000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611b368383836111ee565b50505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600854905090565b6000600760009054906101000a900460ff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4c6f636b61626c653a206f6e6c79206f776e65722063616e206c6f636b20746f81526020017f6b656e200000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611ca66116c6565b611cd483611cc6611cb5611b92565b600254613ce790919063ffffffff16565b613ce790919063ffffffff16565b11151515611d70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4c6f636b61626c653a206c6f636b656420746f6b656e732063616e206e6f742081526020017f65786365656420746f74616c206361702e00000000000000000000000000000081525060400191505060405180910390fd5b60001515600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515611e5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f4c6f636b61626c653a2074686973206164647265737320697320616c7265616481526020017f79206c6f636b656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000611e86611e77603c84613d7190919063ffffffff16565b42613ce790919063ffffffff16565b905080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f7d83600854613ce790919063ffffffff16565b6008819055507f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b848483604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a150505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b612111611b9c565b151515612186576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5061757361626c653a20416c7265616479207061757365642e0000000000000081525060200191505060405180910390fd5b61218e613e3e565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060108054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561224e5780601f106122235761010080835404028352916020019161224e565b820191906000526020600020905b81548152906001019060200180831161223157829003601f168201915b5050505050905090565b6000600d60009054906101000a900461ffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b61233e81613f43565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f4d696e7461626c653a204f776e65722063616e6e6f742072656e6f756e63652e81526020017f205472616e73666572206f776e65722066697273742e0000000000000000000081525060400191505060405180910390fd5b612436336138e2565b565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4275726e61626c653a206275726e2066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156126c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4275726e61626c653a206e6f7420656e6f7567687420746f6b656e730000000081525060200191505060405180910390fd5b6126dc81600254613f9d90919063ffffffff16565b600281905550612733816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f9d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277f8282614028565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f44656c6567617461626c653a206f6e6c79206f776e6572206368616e6765207481526020017f68652066656520636f6c6c6563746f720000000000000000000000000000000081525060400191505060405180910390fd5b6128dd81614097565b50565b60006128ea611b9c565b151515612985576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5061757361626c653a20746f6b656e207472616e73666572206973207061757381526020017f65642e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6129903384846140db565b6001905092915050565b60006129b082600561440190919063ffffffff16565b9050919050565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515612a1857600080fd5b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515612a6657600080fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600042905081811115612c97576000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bf281600254613ce790919063ffffffff16565b600281905550612c49816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ce790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019350505050612c9e565b6000925050505b90565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515612d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001807f44656c6567617461626c65203a204f776e65722063616e6e6f742072656e6f7581526020017f6e63652e205472616e73666572206f776e65722066697273742e00000000000081525060400191505060405180910390fd5b612d9633614524565b565b6000600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000612e16336136b2565b1515612eb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001807f44656c656761746f72526f6c653a2063616c6c657220646f6573206e6f74206881526020017f617665207468652044656c656761746f7220726f6c652e00000000000000000081525060400191505060405180910390fd5b612eb9876133b8565b84141515612f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f44656c6567617461626c653a206e6f6e6365206973206e6f7420636f7272656381526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600087878787604051602001808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018381526020018281526020019450505050506040516020818303038152906040528051906020012060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012090506000817328953f230d4dfe3bde05dae3e2ac0af05b0abb876319045a25909187876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060206040518083038186803b1580156130ff57600080fd5b505af4158015613113573d6000803e3d6000fd5b505050506040513d602081101561312957600080fd5b81019080805190602001909291905050509050600061317a620186a061316c600d60009054906101000a900461ffff1661ffff168b613d7190919063ffffffff16565b61457e90919063ffffffff16565b90508173ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161415613319576131bc8a8a8a84614611565b1561330d5760006131df60016131d18d6133b8565b613ce790919063ffffffff16565b905080600e60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f490c5128356df402cae6bc56c9b55bff927877eca4f8220a5606443e06f25db9338c8c8c85604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a16001945050505050613321565b60009350505050613321565b600093505050505b9695505050505050565b60045481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156134ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4f776e6572626c653a206f6e6c79206f776e6572207472616e73666572206f7781526020017f6e6572736869700000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6134f581612270565b6134fe8161111d565b613529600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115de565b613554600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166136cf565b61355d81614847565b50565b600081141515156135ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f536166655472616e736665723a20617070726f76652066726f6d206e6f6e2d7a81526020017f65726f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000081525060400191505060405180910390fd5b61360882613cd4565b1515156136a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f536166655472616e736665723a207370656e64657220697320636f6e7472616381526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6136ad828261107a565b505050565b60006136c882600c61440190919063ffffffff16565b9050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b61379d81614524565b50565b60006137ad338484614a71565b6001905092915050565b6137cb81600c614cf290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcf370ba38508da841f48b9981508fd166e3294ca16c4978a7a7bc38123ba582b60405160405180910390a250565b600061381e8484846140db565b6138b784336138b285600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f9d90919063ffffffff16565b614a71565b600190509392505050565b80600d60006101000a81548161ffff021916908361ffff16021790555050565b6138f6816005614dcf90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b600760009054906101000a900460ff1615156139c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613b0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4d696e7461626c653a206d696e7420746f20746865207a65726f20616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b613b136116c6565b613b46613b1e611b92565b613b3884613b2a611113565b613ce790919063ffffffff16565b613ce790919063ffffffff16565b11151515613bbc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4d696e7461626c653a206361702065786365656465642e00000000000000000081525060200191505060405180910390fd5b613bd181600254613ce790919063ffffffff16565b600281905550613c28816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ce790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080823b905060008111915050919050565b6000808284019050838110151515613d67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415613d845760009050613e38565b60008284029050828482811515613d9757fe5b04141515613e33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81526020017f770000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b809150505b92915050565b600760009054906101000a900460ff16151515613ec3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b613f57816005614cf290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6000828211151515614017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b7fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156141a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6142c2816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f9d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614355816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ce790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156144cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526f6c65733a206163636f756e7420697320746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61453881600c614dcf90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fb58714f6ca7ab0d3965b234a513e4f738507828a16b2d716b712b93f6642461360405160405180910390a250565b600080821115156145f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481151561460457fe5b0490508091505092915050565b6000806146278385613ce790919063ffffffff16565b90508061463387611ffc565b101561464357600091505061483f565b61465e8161465088611ffc565b613f9d90919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506146bb846146ad87611ffc565b613ce790919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061471f8361471161470c612d98565b611ffc565b613ce790919063ffffffff16565b60008061472a612d98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36147d5612d98565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150505b949350505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561490c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156149b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4f776e6572626c653a2061646472657373206973207a65726f2e00000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614b3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614c07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b614cfc8282614401565b151515614d71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b614dd98282614401565b1515614e73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c81526020017f650000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fea165627a7a723058204c68e28a55efbfa8dfd7942dadeef9fba78af01bdd6232d2bc712b229c5ce5220029000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000043dacaf91c1a84ff08000000000000000000000000000000000000000000000000000000000000000000000a547273757453686f72650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035453540000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101f3576000357c01000000000000000000000000000000000000000000000000000000009004806306fdde03146101f8578063095ea7b31461028857806318160ddd146102fb57806321fb4c351461032657806323b872dd1461037757806329ff07731461040a5780633092afd514610449578063313ce5671461049a578063355274ea146104cb5780633f4ba83a146104f657806340c10f191461050d578063423f6cef1461058057806342842e0e146105db5780634a4fbeec1461065657806356891412146106bf5780635c975abb146106ea5780636a635fb81461071957806370a082311461077e5780638456cb59146107e35780638da5cb5b146107fa57806395d89b4114610851578063978bbdb9146108e1578063983b2d561461091457806398650275146109655780639ae697bf1461097c5780639dc29fac146109e1578063a42dce8014610a3c578063a9059cbb14610a8d578063aa271e1a14610b00578063ae1be1e414610b69578063b93192f714610b98578063c415b95c14610baf578063c689211614610c06578063cc375b8a14610c6b578063cde9f2ea14610d5d578063dd62ed3e14610d88578063ed2a2d6414610e0d578063f2fde38b14610e72578063fbc6d1cb14610ec3578063fd8ab48214610f1e578063fe5a2bcf14610f87575b600080fd5b34801561020457600080fd5b5061020d610fd8565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024d578082015181840152602081019050610232565b50505050905090810190601f16801561027a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029457600080fd5b506102e1600480360360408110156102ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061107a565b604051808215151515815260200191505060405180910390f35b34801561030757600080fd5b50610310611113565b6040518082815260200191505060405180910390f35b34801561033257600080fd5b506103756004803603602081101561034957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061111d565b005b34801561038357600080fd5b506103f06004803603606081101561039a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111ee565b604051808215151515815260200191505060405180910390f35b34801561041657600080fd5b506104476004803603602081101561042d57600080fd5b81019080803561ffff1690602001909291905050506114e7565b005b34801561045557600080fd5b506104986004803603602081101561046c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115de565b005b3480156104a657600080fd5b506104af6116af565b604051808260ff1660ff16815260200191505060405180910390f35b3480156104d757600080fd5b506104e06116c6565b6040518082815260200191505060405180910390f35b34801561050257600080fd5b5061050b6116d0565b005b34801561051957600080fd5b506105666004803603604081101561053057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061181b565b604051808215151515815260200191505060405180910390f35b34801561058c57600080fd5b506105d9600480360360408110156105a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611956565b005b3480156105e757600080fd5b50610654600480360360608110156105fe57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611a09565b005b34801561066257600080fd5b506106a56004803603602081101561067957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b3c565b604051808215151515815260200191505060405180910390f35b3480156106cb57600080fd5b506106d4611b92565b6040518082815260200191505060405180910390f35b3480156106f657600080fd5b506106ff611b9c565b604051808215151515815260200191505060405180910390f35b34801561072557600080fd5b5061077c6004803603606081101561073c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190929190505050611bb3565b005b34801561078a57600080fd5b506107cd600480360360208110156107a157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ffc565b6040518082815260200191505060405180910390f35b3480156107ef57600080fd5b506107f8612044565b005b34801561080657600080fd5b5061080f612190565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561085d57600080fd5b506108666121b6565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156108a657808201518184015260208101905061088b565b50505050905090810190601f1680156108d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108ed57600080fd5b506108f6612258565b604051808261ffff1661ffff16815260200191505060405180910390f35b34801561092057600080fd5b506109636004803603602081101561093757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612270565b005b34801561097157600080fd5b5061097a612341565b005b34801561098857600080fd5b506109cb6004803603602081101561099f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612438565b6040518082815260200191505060405180910390f35b3480156109ed57600080fd5b50610a3a60048036036040811015610a0457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612481565b005b348015610a4857600080fd5b50610a8b60048036036020811015610a5f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506127e9565b005b348015610a9957600080fd5b50610ae660048036036040811015610ab057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506128e0565b604051808215151515815260200191505060405180910390f35b348015610b0c57600080fd5b50610b4f60048036036020811015610b2357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061299a565b604051808215151515815260200191505060405180910390f35b348015610b7557600080fd5b50610b7e6129b7565b604051808215151515815260200191505060405180910390f35b348015610ba457600080fd5b50610bad612ca1565b005b348015610bbb57600080fd5b50610bc4612d98565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c1257600080fd5b50610c5560048036036020811015610c2957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612dc2565b6040518082815260200191505060405180910390f35b348015610c7757600080fd5b50610d43600480360360a0811015610c8e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190640100000000811115610cff57600080fd5b820183602082011115610d1157600080fd5b80359060200191846001830284011164010000000083111715610d3357600080fd5b9091929391929390505050612e0b565b604051808215151515815260200191505060405180910390f35b348015610d6957600080fd5b50610d7261332b565b6040518082815260200191505060405180910390f35b348015610d9457600080fd5b50610df760048036036040811015610dab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613331565b6040518082815260200191505060405180910390f35b348015610e1957600080fd5b50610e5c60048036036020811015610e3057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133b8565b6040518082815260200191505060405180910390f35b348015610e7e57600080fd5b50610ec160048036036020811015610e9557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613401565b005b348015610ecf57600080fd5b50610f1c60048036036040811015610ee657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613560565b005b348015610f2a57600080fd5b50610f6d60048036036020811015610f4157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506136b2565b604051808215151515815260200191505060405180910390f35b348015610f9357600080fd5b50610fd660048036036020811015610faa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506136cf565b005b6060600f8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110705780601f1061104557610100808354040283529160200191611070565b820191906000526020600020905b81548152906001019060200180831161105357829003601f168201915b5050505050905090565b6000600760009054906101000a900460ff16151515611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b61110b83836137a0565b905092915050565b6000600254905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156111e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b6111eb816137b7565b50565b6000600760009054906101000a900460ff16151515611275576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b600082111515611313576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f7472616e7366657246726f6d3a2076616c7565206973206d757374206265206781526020017f726561746572207468616e207a65726f2e00000000000000000000000000000081525060400191505060405180910390fd5b8161131d85611ffc565b101515156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001807f7472616e7366657246726f6d3a2062616c616e6365206f662066726f6d20616481526020017f6472657373206973206e6f7420656e6f7567680000000000000000000000000081525060400191505060405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156114d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f7472616e7366657246726f6d3a2073656e64657220617265206e6f7420616c6c81526020017f6f77656420746f2073656e642e0000000000000000000000000000000000000081525060400191505060405180910390fd5b6114de848484613811565b90509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602b8152602001807f44656c6567617461626c653a206f6e6c79206f776e6572206368616e6765207481526020017f686520666565207261746500000000000000000000000000000000000000000081525060400191505060405180910390fd5b6115db816138c2565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b6116ac816138e2565b50565b6000601160009054906101000a900460ff16905090565b6000600654905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b61179d611b9c565b1515611811576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f5061757361626c653a204e6f74207061757365642e000000000000000000000081525060200191505060405180910390fd5b61181961393c565b565b60006118263361299a565b15156118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766581526020017f20746865204d696e74657220726f6c652e00000000000000000000000000000081525060400191505060405180910390fd5b6118ca8383613a40565b3373ffffffffffffffffffffffffffffffffffffffff167fab8530f87dc9b59234c4623bf917212bb2536d647574c8e7e5da92c2ede0c9f88484604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a26001905092915050565b61195f82613cd4565b1515156119fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f536166655472616e736665723a20726563656976657220697320636f6e74726581526020017f616374000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611a0482826128e0565b505050565b611a1283613cd4565b151515611a87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f536166655472616e736665723a2073656e64657220697320636f6e747261637481525060200191505060405180910390fd5b611a9082613cd4565b151515611b2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f536166655472616e736665723a20726563656976657220697320636f6e74726181526020017f637400000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611b368383836111ee565b50505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600854905090565b6000600760009054906101000a900460ff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611c9e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4c6f636b61626c653a206f6e6c79206f776e65722063616e206c6f636b20746f81526020017f6b656e200000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b611ca66116c6565b611cd483611cc6611cb5611b92565b600254613ce790919063ffffffff16565b613ce790919063ffffffff16565b11151515611d70576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001807f4c6f636b61626c653a206c6f636b656420746f6b656e732063616e206e6f742081526020017f65786365656420746f74616c206361702e00000000000000000000000000000081525060400191505060405180910390fd5b60001515600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515611e5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001807f4c6f636b61626c653a2074686973206164647265737320697320616c7265616481526020017f79206c6f636b656400000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6000611e86611e77603c84613d7190919063ffffffff16565b42613ce790919063ffffffff16565b905080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f7d83600854613ce790919063ffffffff16565b6008819055507f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b848483604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828152602001935050505060405180910390a150505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612109576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b612111611b9c565b151515612186576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f5061757361626c653a20416c7265616479207061757365642e0000000000000081525060200191505060405180910390fd5b61218e613e3e565b565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060108054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561224e5780601f106122235761010080835404028352916020019161224e565b820191906000526020600020905b81548152906001019060200180831161223157829003601f168201915b5050505050905090565b6000600d60009054906101000a900461ffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612335576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b61233e81613f43565b50565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415151561242d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260368152602001807f4d696e7461626c653a204f776e65722063616e6e6f742072656e6f756e63652e81526020017f205472616e73666572206f776e65722066697273742e0000000000000000000081525060400191505060405180910390fd5b612436336138e2565b565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515612611576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f4275726e61626c653a206275726e2066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101515156126c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4275726e61626c653a206e6f7420656e6f7567687420746f6b656e730000000081525060200191505060405180910390fd5b6126dc81600254613f9d90919063ffffffff16565b600281905550612733816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f9d90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277f8282614028565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156128d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001807f44656c6567617461626c653a206f6e6c79206f776e6572206368616e6765207481526020017f68652066656520636f6c6c6563746f720000000000000000000000000000000081525060400191505060405180910390fd5b6128dd81614097565b50565b60006128ea611b9c565b151515612985576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f5061757361626c653a20746f6b656e207472616e73666572206973207061757381526020017f65642e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6129903384846140db565b6001905092915050565b60006129b082600561440190919063ffffffff16565b9050919050565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515141515612a1857600080fd5b6000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111515612a6657600080fd5b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600042905081811115612c97576000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bf281600254613ce790919063ffffffff16565b600281905550612c49816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ce790919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060019350505050612c9e565b6000925050505b90565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515612d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a8152602001807f44656c6567617461626c65203a204f776e65722063616e6e6f742072656e6f7581526020017f6e63652e205472616e73666572206f776e65722066697273742e00000000000081525060400191505060405180910390fd5b612d9633614524565b565b6000600d60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000612e16336136b2565b1515612eb0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260378152602001807f44656c656761746f72526f6c653a2063616c6c657220646f6573206e6f74206881526020017f617665207468652044656c656761746f7220726f6c652e00000000000000000081525060400191505060405180910390fd5b612eb9876133b8565b84141515612f55576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f44656c6567617461626c653a206e6f6e6365206973206e6f7420636f7272656381526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600087878787604051602001808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018381526020018281526020019450505050506040516020818303038152906040528051906020012060405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c018281526020019150506040516020818303038152906040528051906020012090506000817328953f230d4dfe3bde05dae3e2ac0af05b0abb876319045a25909187876040518463ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180848152602001806020018281038252848482818152602001925080828437600081840152601f19601f82011690508083019250505094505050505060206040518083038186803b1580156130ff57600080fd5b505af4158015613113573d6000803e3d6000fd5b505050506040513d602081101561312957600080fd5b81019080805190602001909291905050509050600061317a620186a061316c600d60009054906101000a900461ffff1661ffff168b613d7190919063ffffffff16565b61457e90919063ffffffff16565b90508173ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff161415613319576131bc8a8a8a84614611565b1561330d5760006131df60016131d18d6133b8565b613ce790919063ffffffff16565b905080600e60008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f490c5128356df402cae6bc56c9b55bff927877eca4f8220a5606443e06f25db9338c8c8c85604051808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018281526020019550505050505060405180910390a16001945050505050613321565b60009350505050613321565b600093505050505b9695505050505050565b60045481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156134ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260278152602001807f4f776e6572626c653a206f6e6c79206f776e6572207472616e73666572206f7781526020017f6e6572736869700000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6134f581612270565b6134fe8161111d565b613529600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115de565b613554600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166136cf565b61355d81614847565b50565b600081141515156135ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260398152602001807f536166655472616e736665723a20617070726f76652066726f6d206e6f6e2d7a81526020017f65726f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000081525060400191505060405180910390fd5b61360882613cd4565b1515156136a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f536166655472616e736665723a207370656e64657220697320636f6e7472616381526020017f740000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6136ad828261107a565b505050565b60006136c882600c61440190919063ffffffff16565b9050919050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515613794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b61379d81614524565b50565b60006137ad338484614a71565b6001905092915050565b6137cb81600c614cf290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fcf370ba38508da841f48b9981508fd166e3294ca16c4978a7a7bc38123ba582b60405160405180910390a250565b600061381e8484846140db565b6138b784336138b285600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f9d90919063ffffffff16565b614a71565b600190509392505050565b80600d60006101000a81548161ffff021916908361ffff16021790555050565b6138f6816005614dcf90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b600760009054906101000a900460ff1615156139c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f5061757361626c653a206e6f742070617573656400000000000000000000000081525060200191505060405180910390fd5b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515613b0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f4d696e7461626c653a206d696e7420746f20746865207a65726f20616464726581526020017f73732e000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b613b136116c6565b613b46613b1e611b92565b613b3884613b2a611113565b613ce790919063ffffffff16565b613ce790919063ffffffff16565b11151515613bbc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4d696e7461626c653a206361702065786365656465642e00000000000000000081525060200191505060405180910390fd5b613bd181600254613ce790919063ffffffff16565b600281905550613c28816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ce790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600080823b905060008111915050919050565b6000808284019050838110151515613d67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600080831415613d845760009050613e38565b60008284029050828482811515613d9757fe5b04141515613e33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81526020017f770000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b809150505b92915050565b600760009054906101000a900460ff16151515613ec3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f5061757361626c653a207061757365640000000000000000000000000000000081525060200191505060405180910390fd5b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b613f57816005614cf290919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b6000828211151515614017576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b7fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca58282604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a15050565b80600d60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141515156141a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001807f45524332303a207472616e736665722066726f6d20746865207a65726f20616481526020017f647265737300000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614271576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001807f45524332303a207472616e7366657220746f20746865207a65726f206164647281526020017f657373000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b6142c2816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f9d90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614355816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613ce790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141515156144cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f526f6c65733a206163636f756e7420697320746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61453881600c614dcf90919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fb58714f6ca7ab0d3965b234a513e4f738507828a16b2d716b712b93f6642461360405160405180910390a250565b600080821115156145f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060200191505060405180910390fd5b6000828481151561460457fe5b0490508091505092915050565b6000806146278385613ce790919063ffffffff16565b90508061463387611ffc565b101561464357600091505061483f565b61465e8161465088611ffc565b613f9d90919063ffffffff16565b6000808873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506146bb846146ad87611ffc565b613ce790919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061471f8361471161470c612d98565b611ffc565b613ce790919063ffffffff16565b60008061472a612d98565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36147d5612d98565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a360019150505b949350505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561490c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4f776e6572626c653a2063616c6c6572206973206e6f74206f776e65722e000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156149b1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f4f776e6572626c653a2061646472657373206973207a65726f2e00000000000081525060200191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515614b3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f45524332303a20617070726f76652066726f6d20746865207a65726f2061646481526020017f726573730000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515614c07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001807f45524332303a20617070726f766520746f20746865207a65726f20616464726581526020017f737300000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b614cfc8282614401565b151515614d71576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b614dd98282614401565b1515614e73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001807f526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c81526020017f650000000000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fea165627a7a723058204c68e28a55efbfa8dfd7942dadeef9fba78af01bdd6232d2bc712b229c5ce5220029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000043dacaf91c1a84ff08000000000000000000000000000000000000000000000000000000000000000000000a547273757453686f72650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035453540000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): TrsutShore
Arg [1] : symbol (string): TST
Arg [2] : cap (uint256): 21000000000000000000000000000

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 000000000000000000000000000000000000000043dacaf91c1a84ff08000000
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000a
Arg [4] : 547273757453686f726500000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 5453540000000000000000000000000000000000000000000000000000000000


Libraries Used


Deployed Bytecode Sourcemap

14273:7374:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14623:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14623:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14623:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17080:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17080:140:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17080:140:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4950:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4950:91:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21412:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21412:108:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21412:108:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;16614:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16614:458:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16614:458:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20296:163;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20296:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20296:163:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;15645:100;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15645:100:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15645:100:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14809:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14809:83:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8555:75;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8555:75:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16260:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16260:124:0;;;:::i;:::-;;8642:174;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8642:174:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8642:174:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;17722:167;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17722:167:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17722:167:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17897:268;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17897:268:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17897:268:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10669:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10669:101:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10669:101:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10410:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10410:90:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9087:78;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9087:78:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18690:821;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18690:821:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18690:821:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5049:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5049:102:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5049:102:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16127:125;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16127:125:0;;;:::i;:::-;;6605:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6605:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14714:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14714:87:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;14714:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12818:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12818:81:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15537:96;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15537:96:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15537:96:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;15348:180;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15348:180:0;;;:::i;:::-;;10909:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10909:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10909:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17253:431;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17253:431:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17253:431:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20467:189;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20467:189:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20467:189:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;16392:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16392:214:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16392:214:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7715:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7715:109:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7715:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19523:737;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19523:737:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20664:190;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20664:190:0;;;:::i;:::-;;12907:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12907:92:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10782:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10782:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10782:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13247:1019;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13247:1019:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;13247:1019:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;13247:1019:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;13247:1019:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;13247:1019:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6755:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6755:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5159:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5159:134:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5159:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13007:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13007:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13007:107:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15782:312;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15782:312:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15782:312:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18173:270;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18173:270:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18173:270:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11468:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11468:115:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11468:115:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21532:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21532:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21532:112:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;14623:83;14660:13;14693:5;14686:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14623:83;:::o;17080:140::-;17159:4;9218:7;;;;;;;;;;;9217:8;9209:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17183:29;17197:7;17206:5;17183:13;:29::i;:::-;17176:36;;17080:140;;;;:::o;4950:91::-;4994:7;5021:12;;5014:19;;4950:91;:::o;21412:108::-;6940:5;;;;;;;;;;;6926:19;;:10;:19;;;6918:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21480:30;21500:9;21480:19;:30::i;:::-;21412:108;:::o;16614:458::-;16707:4;9218:7;;;;;;;;;;;9217:8;9209:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16740:1;16732:5;:9;16724:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16833:5;16814:15;16824:4;16814:9;:15::i;:::-;:24;;16806:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16946:5;16913:11;:17;16925:4;16913:17;;;;;;;;;;;;;;;:29;16931:10;16913:29;;;;;;;;;;;;;;;;:38;;16905:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17029:35;17048:4;17054:2;17058:5;17029:18;:35::i;:::-;17022:42;;16614:458;;;;;:::o;20296:163::-;20369:5;;;;;;;;;;;20355:19;;:10;:19;;;20347:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20433:18;20445:5;20433:11;:18::i;:::-;20296:163;:::o;15645:100::-;6940:5;;;;;;;;;;;6926:19;;:10;:19;;;6918:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15710:27;15730:6;15710:19;:27::i;:::-;15645:100;:::o;14809:83::-;14850:5;14875:9;;;;;;;;;;;14868:16;;14809:83;:::o;8555:75::-;8591:7;8618:4;;8611:11;;8555:75;:::o;16260:124::-;6940:5;;;;;;;;;;;6926:19;;:10;:19;;;6918:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16315:8;:6;:8::i;:::-;16307:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16360:16;:14;:16::i;:::-;16260:124::o;8642:174::-;8710:4;7613:20;7622:10;7613:8;:20::i;:::-;7605:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8727:16;8733:2;8737:5;8727;:16::i;:::-;8764:10;8759:27;;;8776:2;8780:5;8759:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;8804:4;8797:11;;8642:174;;;;:::o;17722:167::-;17798:15;17810:2;17798:11;:15::i;:::-;17797:16;17789:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17863:18;17872:2;17875:5;17863:8;:18::i;:::-;;17722:167;;:::o;17897:268::-;17991:17;18003:4;17991:11;:17::i;:::-;17990:18;17982:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18064:15;18076:2;18064:11;:15::i;:::-;18063:16;18055:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18128:29;18141:4;18147:2;18151:5;18128:12;:29::i;:::-;;17897:268;;;:::o;10669:101::-;10722:4;10746:10;:16;10757:4;10746:16;;;;;;;;;;;;;;;;;;;;;;;;;10739:23;;10669:101;;;:::o;10410:90::-;10454:7;10480:12;;10473:19;;10410:90;:::o;9087:78::-;9126:4;9150:7;;;;;;;;;;;9143:14;;9087:78;:::o;18690:821::-;18804:5;;;;;;;;;;;18790:19;;:10;:19;;;18782:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18916:5;:3;:5::i;:::-;18869:43;18905:6;18869:31;18886:13;:11;:13::i;:::-;18869:12;;:16;;:31;;;;:::i;:::-;:35;;:43;;;;:::i;:::-;:52;;18861:114;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19014:5;18994:25;;:10;:16;19005:4;18994:16;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;18986:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19085:19;19107:45;19127:24;19141:9;19127;:13;;:24;;;;:::i;:::-;19107:15;:19;;:45;;;;:::i;:::-;19085:67;;19315:11;19289:17;:23;19307:4;19289:23;;;;;;;;;;;;;;;:37;;;;19356:4;19337:10;:16;19348:4;19337:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;19390:6;19371:10;:16;19382:4;19371:16;;;;;;;;;;;;;;;:25;;;;19422:24;19439:6;19422:12;;:16;;:24;;;;:::i;:::-;19407:12;:39;;;;19472:31;19477:4;19483:6;19491:11;19472:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18690:821;;;;:::o;5049:102::-;5102:7;5129:9;:14;5139:3;5129:14;;;;;;;;;;;;;;;;5122:21;;5049:102;;;:::o;16127:125::-;6940:5;;;;;;;;;;;6926:19;;:10;:19;;;6918:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16181:8;:6;:8::i;:::-;16180:9;16172:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16230:14;:12;:14::i;:::-;16127:125::o;6605:20::-;;;;;;;;;;;;;:::o;14714:87::-;14753:13;14786:7;14779:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14714:87;:::o;12818:81::-;12858:6;12883:8;;;;;;;;;;;12876:15;;12818:81;:::o;15537:96::-;6940:5;;;;;;;;;;;6926:19;;:10;:19;;;6918:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15599:24;15616:6;15599:16;:24::i;:::-;15537:96;:::o;15348:180::-;15414:5;;;;;;;;;;;15400:19;;:10;:19;;;;15392:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15489:31;15509:10;15489:19;:31::i;:::-;15348:180::o;10909:109::-;10967:7;10994:10;:16;11005:4;10994:16;;;;;;;;;;;;;;;;10987:23;;10909:109;;;:::o;17253:431::-;6940:5;;;;;;;;;;;6926:19;;:10;:19;;;6918:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17354:1;17335:21;;:7;:21;;;;17327:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17438:5;17416:9;:18;17426:7;17416:18;;;;;;;;;;;;;;;;:27;;17408:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17502:23;17519:5;17502:12;;:16;;:23;;;;:::i;:::-;17487:12;:38;;;;17557:29;17580:5;17557:9;:18;17567:7;17557:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;17536:9;:18;17546:7;17536:18;;;;;;;;;;;;;;;:50;;;;17597:27;17609:7;17618:5;17597:11;:27::i;:::-;17666:1;17640:36;;17649:7;17640:36;;;17670:5;17640:36;;;;;;;;;;;;;;;;;;17253:431;;:::o;20467:189::-;20551:5;;;;;;;;;;;20537:19;;:10;:19;;;20529:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20620:28;20637:10;20620:16;:28::i;:::-;20467:189;:::o;16392:214::-;16453:4;16479:8;:6;:8::i;:::-;16478:9;16470:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16538:38;16554:10;16566:2;16570:5;16538:15;:38::i;:::-;16594:4;16587:11;;16392:214;;;;:::o;7715:109::-;7771:4;7795:21;7808:7;7795:8;:12;;:21;;;;:::i;:::-;7788:28;;7715:109;;;:::o;19523:737::-;19569:4;19620;19594:30;;:10;:22;19605:10;19594:22;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;19586:39;;;;;;;;19669:1;19644:10;:22;19655:10;19644:22;;;;;;;;;;;;;;;;:26;19636:35;;;;;;;;19692:19;19714:17;:29;19732:10;19714:29;;;;;;;;;;;;;;;;19692:51;;19754:19;19776:15;19754:37;;19829:11;19815;:25;19812:441;;;19857:14;19874:10;:22;19885:10;19874:22;;;;;;;;;;;;;;;;19857:39;;19957:1;19925:17;:29;19943:10;19925:29;;;;;;;;;;;;;;;:33;;;;19998:5;19973:10;:22;19984:10;19973:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;20043:1;20018:10;:22;20029:10;20018:22;;;;;;;;;;;;;;;:26;;;;20074:24;20091:6;20074:12;;:16;;:24;;;;:::i;:::-;20059:12;:39;;;;20137:33;20163:6;20137:9;:21;20147:10;20137:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;20113:9;:21;20123:10;20113:21;;;;;;;;;;;;;;;:57;;;;20192:4;20185:11;;;;;;;19812:441;20236:5;20229:12;;;;19523:737;;:::o;20664:190::-;20733:5;;;;;;;;;;;20719:19;;:10;:19;;;;20711:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20812:34;20835:10;20812:22;:34::i;:::-;20664:190::o;12907:92::-;12952:7;12978:13;;;;;;;;;;;12971:20;;12907:92;:::o;10782:115::-;10839:7;10866:17;:23;10884:4;10866:23;;;;;;;;;;;;;;;;10859:30;;10782:115;;;:::o;13247:1019::-;13392:12;11357:23;11369:10;11357:11;:23::i;:::-;11349:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13434:14;13442:5;13434:7;:14::i;:::-;13424:6;:24;13416:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13499:12;13631:5;13638:3;13643:6;13651;13614:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13614:44:0;;;13604:55;;;;;;13524:136;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;13524:136:0;;;13514:157;;;;;;13499:172;;13682:14;13699:4;:12;;;;13712:10;;13699:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;13699:24:0;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13699:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13699:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13699:24:0;;;;;;;;;;;;;;;;13682:41;;13752:9;13764:38;13794:6;13764:20;13775:8;;;;;;;;;;;13764:20;;:6;:10;;:20;;;;:::i;:::-;:24;;:38;;;;:::i;:::-;13752:50;;13835:6;13826:15;;:5;:15;;;13823:436;;;13860:44;13879:5;13886:3;13891:6;13899:4;13860:18;:44::i;:::-;13857:346;;;13924:16;13943:30;13970:1;13943:14;13951:5;13943:7;:14::i;:::-;:18;;:30;;;;:::i;:::-;13924:49;;14009:8;13992:7;:14;14000:5;13992:14;;;;;;;;;;;;;;;:25;;;;14041:51;14051:10;14063:5;14070:3;14075:6;14083:8;14041:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14118:4;14111:11;;;;;;;;13857:346;14182:5;14175:12;;;;;;;13823:436;14242:5;14235:12;;;;;11451:1;13247:1019;;;;;;;;:::o;6755:24::-;;;;:::o;5159:134::-;5231:7;5258:11;:18;5270:5;5258:18;;;;;;;;;;;;;;;:27;5277:7;5258:27;;;;;;;;;;;;;;;;5251:34;;5159:134;;;;:::o;13007:107::-;13060:13;13092:7;:14;13100:5;13092:14;;;;;;;;;;;;;;;;13085:21;;13007:107;;;:::o;15782:312::-;15866:5;;;;;;;;;;;15852:19;;:10;:19;;;15844:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15926:19;15936:8;15926:9;:19::i;:::-;15956:22;15969:8;15956:12;:22::i;:::-;15989:19;16002:5;;;;;;;;;;;15989:12;:19::i;:::-;16019:22;16035:5;;;;;;;;;;;16019:15;:22::i;:::-;16052:34;16077:8;16052:24;:34::i;:::-;15782:312;:::o;18173:270::-;18261:1;18252:5;:10;;18244:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18344:20;18356:7;18344:11;:20::i;:::-;18343:21;18335:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18412:23;18420:7;18429:5;18412:7;:23::i;:::-;;18173:270;;:::o;11468:115::-;11527:4;11551:24;11567:7;11551:11;:15;;:24;;;;:::i;:::-;11544:31;;11468:115;;;:::o;21532:112::-;6940:5;;;;;;;;;;;6926:19;;:10;:19;;;6918:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21603:33;21626:9;21603:22;:33::i;:::-;21532:112;:::o;5449:148::-;5514:4;5531:36;5540:10;5552:7;5561:5;5531:8;:36::i;:::-;5585:4;5578:11;;5449:148;;;;:::o;11635:131::-;11695:24;11711:7;11695:11;:15;;:24;;;;:::i;:::-;11750:7;11735:23;;;;;;;;;;;;11635:131;:::o;5605:231::-;5684:4;5701:26;5711:4;5717:2;5721:5;5701:9;:26::i;:::-;5738:68;5747:4;5753:10;5765:40;5799:5;5765:11;:17;5777:4;5765:17;;;;;;;;;;;;;;;:29;5783:10;5765:29;;;;;;;;;;;;;;;;:33;;:40;;;;:::i;:::-;5738:8;:68::i;:::-;5824:4;5817:11;;5605:231;;;;;:::o;12625:78::-;12690:5;12679:8;;:16;;;;;;;;;;;;;;;;;;12625:78;:::o;8003:130::-;8063:24;8079:7;8063:8;:15;;:24;;;;:::i;:::-;8117:7;8103:22;;;;;;;;;;;;8003:130;:::o;9491:110::-;9315:7;;;;;;;;;;;9307:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9552:5;9542:7;;:15;;;;;;;;;;;;;;;;;;9573:20;9582:10;9573:20;;;;;;;;;;;;;;;;;;;;;;9491:110::o;14929:407::-;15023:1;15004:21;;:7;:21;;;;14996:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15131:5;:3;:5::i;:::-;15084:43;15113:13;:11;:13::i;:::-;15084:24;15102:5;15084:13;:11;:13::i;:::-;:17;;:24;;;;:::i;:::-;:28;;:43;;;;:::i;:::-;:52;;15076:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15192:23;15209:5;15192:12;;:16;;:23;;;;:::i;:::-;15177:12;:38;;;;15247:29;15270:5;15247:9;:18;15257:7;15247:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;15226:9;:18;15236:7;15226:18;;;;;;;;;;;;;;;:50;;;;15313:7;15292:36;;15309:1;15292:36;;;15322:5;15292:36;;;;;;;;;;;;;;;;;;14929:407;;:::o;18451:206::-;18509:16;18537:11;18605:5;18593:18;18583:28;;18647:1;18640:6;:8;18632:17;;;18451:206;;;:::o;2523:181::-;2581:7;2601:9;2617:1;2613;:5;2601:17;;2642:1;2637;:6;;2629:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2695:1;2688:8;;;2523:181;;;;:::o;1175:470::-;1233:7;1482:1;1477;:6;1473:47;;;1507:1;1500:8;;;;1473:47;1532:9;1548:1;1544;:5;1532:17;;1577:1;1572;1568;:5;;;;;;;;:10;1560:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1636:1;1629:8;;;1175:470;;;;;:::o;9375:108::-;9218:7;;;;;;;;;;;9217:8;9209:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9437:4;9427:7;;:14;;;;;;;;;;;;;;;;;;9457:18;9464:10;9457:18;;;;;;;;;;;;;;;;;;;;;;9375:108::o;7873:122::-;7930:21;7943:7;7930:8;:12;;:21;;;;:::i;:::-;7979:7;7967:20;;;;;;;;;;;;7873:122;:::o;2251:184::-;2309:7;2342:1;2337;:6;;2329:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2389:9;2405:1;2401;:5;2389:17;;2426:1;2419:8;;;2251:184;;;;:::o;9844:99::-;9915:20;9920:7;9929:5;9915:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;9844:99;;:::o;12711:::-;12792:10;12776:13;;:26;;;;;;;;;;;;;;;;;;12711:99;:::o;5844:385::-;5950:1;5933:19;;:5;:19;;;;5925:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6027:1;6013:16;;:2;:16;;;;6005:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6101:27;6122:5;6101:9;:16;6111:5;6101:16;;;;;;;;;;;;;;;;:20;;:27;;;;:::i;:::-;6082:9;:16;6092:5;6082:16;;;;;;;;;;;;;;;:46;;;;6155:24;6173:5;6155:9;:13;6165:2;6155:13;;;;;;;;;;;;;;;;:17;;:24;;;;:::i;:::-;6139:9;:13;6149:2;6139:13;;;;;;;;;;;;;;;:40;;;;6211:2;6195:26;;6204:5;6195:26;;;6215:5;6195:26;;;;;;;;;;;;;;;;;;5844:385;;;:::o;3807:203::-;3879:4;3923:1;3904:21;;:7;:21;;;;3896:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3982:4;:11;;:20;3994:7;3982:20;;;;;;;;;;;;;;;;;;;;;;;;;3975:27;;3807:203;;;;:::o;11774:139::-;11837:27;11856:7;11837:11;:18;;:27;;;;:::i;:::-;11897:7;11880:25;;;;;;;;;;;;11774:139;:::o;1780:333::-;1838:7;1937:1;1933;:5;1925:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1980:9;1996:1;1992;:5;;;;;;;;1980:17;;2104:1;2097:8;;;1780:333;;;;:::o;20862:542::-;20965:12;20989;21004:16;21015:4;21004:6;:10;;:16;;;;:::i;:::-;20989:31;;21056:7;21037:16;21047:5;21037:9;:16::i;:::-;:26;21033:57;;;21085:5;21078:12;;;;;21033:57;21120:29;21141:7;21120:16;21130:5;21120:9;:16::i;:::-;:20;;:29;;;;:::i;:::-;21101:9;:16;21111:5;21101:16;;;;;;;;;;;;;;;:48;;;;21177:26;21196:6;21177:14;21187:3;21177:9;:14::i;:::-;:18;;:26;;;;:::i;:::-;21160:9;:14;21170:3;21160:14;;;;;;;;;;;;;;;:43;;;;21242:35;21272:4;21242:25;21252:14;:12;:14::i;:::-;21242:9;:25::i;:::-;:29;;:35;;;;:::i;:::-;21214:9;:25;21224:14;:12;:14::i;:::-;21214:25;;;;;;;;;;;;;;;:63;;;;21309:3;21293:28;;21302:5;21293:28;;;21314:6;21293:28;;;;;;;;;;;;;;;;;;21353:14;:12;:14::i;:::-;21337:37;;21346:5;21337:37;;;21369:4;21337:37;;;;;;;;;;;;;;;;;;21392:4;21385:11;;;20862:542;;;;;;;:::o;7067:225::-;6940:5;;;;;;;;;;;6926:19;;:10;:19;;;6918:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7171:1;7151:22;;:8;:22;;;;7143:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7248:8;7220:37;;7241:5;;;;;;;;;;;7220:37;;;;;;;;;;;;7276:8;7268:5;;:16;;;;;;;;;;;;;;;;;;7067:225;:::o;6237:335::-;6347:1;6330:19;;:5;:19;;;;6322:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6428:1;6409:21;;:7;:21;;;;6401:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6512:5;6482:11;:18;6494:5;6482:18;;;;;;;;;;;;;;;:27;6501:7;6482:27;;;;;;;;;;;;;;;:35;;;;6549:7;6533:31;;6542:5;6533:31;;;6558:5;6533:31;;;;;;;;;;;;;;;;;;6237:335;;;:::o;3271:178::-;3349:18;3353:4;3359:7;3349:3;:18::i;:::-;3348:19;3340:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3437:4;3414;:11;;:20;3426:7;3414:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3271:178;;:::o;3529:183::-;3609:18;3613:4;3619:7;3609:3;:18::i;:::-;3601:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3699:5;3676:4;:11;;:20;3688:7;3676:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;3529:183;;:::o

Swarm Source

bzzr://4c68e28a55efbfa8dfd7942dadeef9fba78af01bdd6232d2bc712b229c5ce522
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.