ETH Price: $2,238.39 (-6.43%)

Token

Ystar (YSR)
 

Overview

Max Total Supply

100,000,000 YSR

Holders

375 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
3,693.251671457379386923 YSR

Value
$0.00
0x5f0a8d25c9573f468abfd77fbfd741ec778fa37a
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

YSTAR is a product aggregator for the world of DeFi 3.0. with the goal to quickly aggregate and structurally classify the latest and hottest digital asset technologies and products.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
YottaCoin

Compiler Version
v0.7.0+commit.9e61f92b

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-08-31
*/

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.7.0;

// File: SafeMath.sol

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    // Gas optimization: this is cheaper than asserting '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;
    }

    c = _a * _b;
    assert(c / _a == _b);
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    // assert(_b > 0); // Solidity automatically throws when dividing by 0
    // uint256 c = _a / _b;
    // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold
    return _a / _b;
  }

  /**
  * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
    assert(_b <= _a);
    return _a - _b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
    c = _a + _b;
    assert(c >= _a);
    return c;
  }
}

// File: FrozenChecker.sol

/**
 * @title FrozenChecker
 * @dev Check account by frozen rules
 */
library FrozenChecker {

    using SafeMath for uint256;

    /**
     * Rule for each address
     */
    struct Rule {
        uint256 timeT;
        uint8 initPercent;
        uint256[] periods;
        uint8[] percents;
    }

    function check(Rule storage self, uint256 totalFrozenValue) internal view returns (uint256) {
        if (totalFrozenValue == uint256(0)) {
            return 0;
        }
        //uint8 temp = self.initPercent;
        if (self.timeT == uint256(0) || self.timeT > block.timestamp) {
            return totalFrozenValue.sub(totalFrozenValue.mul(self.initPercent).div(100));
        }
        for (uint256 i = 0; i < self.periods.length.sub(1); i = i.add(1)) {
            if (block.timestamp >= self.timeT.add(self.periods[i]) && block.timestamp < self.timeT.add(self.periods[i.add(1)])) {
                return totalFrozenValue.sub(totalFrozenValue.mul(self.percents[i]).div(100));
            }
        }
        if (block.timestamp >= self.timeT.add(self.periods[self.periods.length.sub(1)])) {
            return totalFrozenValue.sub(totalFrozenValue.mul(self.percents[self.periods.length.sub(1)]).div(100));
        }
    }

}

// File: FrozenValidator.sol

library FrozenValidator {
    
    using SafeMath for uint256;
    using FrozenChecker for FrozenChecker.Rule;

    struct Validator {
        mapping(address => IndexValue) data;
        KeyFlag[] keys;
        uint256 size;
    }

    struct IndexValue {
        uint256 keyIndex; 
        FrozenChecker.Rule rule;
        mapping (address => uint256) frozenBalances;
    }

    struct KeyFlag { 
        address key; 
        bool deleted; 
    }

    function addRule(Validator storage self, address key, uint8 initPercent, uint256[] memory periods, uint8[] memory percents) internal returns (bool replaced) {
        //require(self.size <= 10);
        require(key != address(0));
        require(periods.length == percents.length);
        require(periods.length > 0);
        require(periods[0] == uint256(0));
        require(initPercent <= percents[0]);
        for (uint256 i = 1; i < periods.length; i = i.add(1)) {
            require(periods[i.sub(1)] < periods[i]);
            require(percents[i.sub(1)] <= percents[i]);
        }
        require(percents[percents.length.sub(1)] == 100);
        FrozenChecker.Rule memory rule = FrozenChecker.Rule(0, initPercent, periods, percents);
        uint256 keyIndex = self.data[key].keyIndex;
        self.data[key].rule = rule;
        if (keyIndex > 0) {
            return true;
        } else {
            //keyIndex = self.keys.length++;
            keyIndex = self.keys.length;
            self.keys.push();
            self.data[key].keyIndex = keyIndex.add(1);
            self.keys[keyIndex].key = key;
            self.size++;
            return false;
        }
    }

    function removeRule(Validator storage self, address key) internal returns (bool success) {
        uint256 keyIndex = self.data[key].keyIndex;
        if (keyIndex == 0) {
            return false;
        }
        delete self.data[key];
        self.keys[keyIndex.sub(1)].deleted = true;
        self.size--;
        return true;
    }

    function containRule(Validator storage self, address key) internal view returns (bool) {
        return self.data[key].keyIndex > 0;
    }

    function addTimeT(Validator storage self, address addr, uint256 timeT) internal returns (bool) {
        require(timeT > block.timestamp);
        self.data[addr].rule.timeT = timeT;
        return true;
    }

    function addFrozenBalance(Validator storage self, address from, address to, uint256 value) internal returns (uint256) {
        self.data[from].frozenBalances[to] = self.data[from].frozenBalances[to].add(value);
        return self.data[from].frozenBalances[to];
    }

    function validate(Validator storage self, address addr) internal view returns (uint256) {
        uint256 frozenTotal = 0;
        for (uint256 i = iterateStart(self); iterateValid(self, i); i = iterateNext(self, i)) {
            address ruleaddr = iterateGet(self, i);
            FrozenChecker.Rule storage rule = self.data[ruleaddr].rule;
            frozenTotal = frozenTotal.add(rule.check(self.data[ruleaddr].frozenBalances[addr]));
        }
        return frozenTotal;
    }


    function iterateStart(Validator storage self) internal view returns (uint256 keyIndex) {
        return iterateNext(self, uint256(-1));
    }

    function iterateValid(Validator storage self, uint256 keyIndex) internal view returns (bool) {
        return keyIndex < self.keys.length;
    }

    function iterateNext(Validator storage self, uint256 keyIndex) internal view returns (uint256) {
        keyIndex++;
        while (keyIndex < self.keys.length && self.keys[keyIndex].deleted) {
            keyIndex++;
        }
        return keyIndex;
    }

    function iterateGet(Validator storage self, uint256 keyIndex) internal view returns (address) {
        return self.keys[keyIndex].key;
    }
}

// File: YottaCoin.sol

contract YottaCoin {

    using SafeMath for uint256;
    using FrozenValidator for FrozenValidator.Validator;

    mapping (address => uint256) internal balances;
    mapping (address => mapping (address => uint256)) internal allowed;

    //--------------------------------  Basic Info  -------------------------------------//

    string public name;
    string public symbol;
    uint8 public decimals;
    uint256 public totalSupply;

    //--------------------------------  Basic Info  -------------------------------------//


    //--------------------------------  Admin Info  -------------------------------------//

    address payable public admin;  //Admin address

    /**
     * @dev Change admin address
     * @param newAdmin New admin address
     */
    function changeAdmin(address payable newAdmin) public returns (bool)  {
        require(msg.sender == admin);
        require(newAdmin != address(0));
        uint256 balAdmin = balances[admin];
        balances[newAdmin] = balances[newAdmin].add(balAdmin);
        balances[admin] = 0;
        admin = newAdmin;
        emit Transfer(admin, newAdmin, balAdmin);
        return true;
    }

    //--------------------------------  Admin Info  -------------------------------------//


    //--------------------------  Events & Constructor  ------------------------------//
    
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Mint(address indexed target, uint256 value);
    event Burn(address indexed target, uint256 value);

    // constructor
    constructor(string memory tokenName, string memory tokenSymbol, uint8 tokenDecimals) {
        name = tokenName;
        symbol = tokenSymbol;
        decimals = tokenDecimals;
        totalSupply = 0;
        admin = msg.sender;
        // balances[msg.sender] = 0;
        // emit Transfer(address(0x0), msg.sender, totalTokenSupply);
    }

    //--------------------------  Events & Constructor  ------------------------------//
    
    
    //-------------------------------  Mint & Burn  ----------------------------------//
    
    function mint(address target, uint256 value) public returns (bool) {
        require(msg.sender == admin);
        require(!frozenAccount[target]);
        require(block.timestamp > frozenTimestamp[target]);
        balances[target] = balances[target].add(value);
        totalSupply = totalSupply.add(value);
        emit Mint(target, value);
        emit Transfer(address(0), target, value);
        return true;
    }
    
    function burn(address target, uint256 value) public returns (bool) {
        require(msg.sender == admin);
        require(!frozenAccount[target]);
        require(block.timestamp > frozenTimestamp[target]);
        require(totalSupply>=value);
        require(balances[target].sub(value)>=validator.validate(target));
        balances[target] = balances[target].sub(value);
        totalSupply = totalSupply.sub(value);
        emit Burn(target, value);
        emit Transfer(target, address(0), value);
        return true;
    }

    //-------------------------------  Mint & Burn  ----------------------------------//
    

    //------------------------------ Account lock  -----------------------------------//

    // 同一个账户满足任意冻结条件均被冻结
    mapping (address => bool) frozenAccount; //无限期冻结的账户
    mapping (address => uint256) frozenTimestamp; // 有限期冻结的账户

    /**
     * 查询账户是否存在锁定时间戳
     */
    function getFrozenTimestamp(address _target) public view returns (uint256) {
        return frozenTimestamp[_target];
    }

    /**
     * 查询账户是否被锁定
     */
    function getFrozenAccount(address _target) public view returns (bool) {
        return frozenAccount[_target];
    }

    /**
     * 锁定账户
     */
    function freeze(address _target, bool _freeze) public returns (bool) {
        require(msg.sender == admin);
        require(_target != admin);
        frozenAccount[_target] = _freeze;
        return true;
    }

    /**
     * 通过时间戳锁定账户
     */
    function freezeWithTimestamp(address _target, uint256 _timestamp) public returns (bool) {
        require(msg.sender == admin);
        require(_target != admin);
        frozenTimestamp[_target] = _timestamp;
        return true;
    }

    /**
     * 批量锁定账户
     */
    function multiFreeze(address[] memory _targets, bool[] memory _freezes) public returns (bool) {
        require(msg.sender == admin);
        require(_targets.length == _freezes.length);
        uint256 len = _targets.length;
        require(len > 0);
        for (uint256 i = 0; i < len; i = i.add(1)) {
            address _target = _targets[i];
            require(_target != admin);
            bool _freeze = _freezes[i];
            frozenAccount[_target] = _freeze;
        }
        return true;
    }

    /**
     * 批量通过时间戳锁定账户
     */
    function multiFreezeWithTimestamp(address[] memory _targets, uint256[] memory _timestamps) public returns (bool) {
        require(msg.sender == admin);
        require(_targets.length == _timestamps.length);
        uint256 len = _targets.length;
        require(len > 0);
        for (uint256 i = 0; i < len; i = i.add(1)) {
            address _target = _targets[i];
            require(_target != admin);
            uint256 _timestamp = _timestamps[i];
            frozenTimestamp[_target] = _timestamp;
        }
        return true;
    }

    //------------------------------  Account lock  -----------------------------------//




    //--------------------------      Frozen rules      ------------------------------//

    FrozenValidator.Validator validator;

    function addRule(address addr, uint8 initPercent, uint256[] memory periods, uint8[] memory percents) public returns (bool) {
        require(msg.sender == admin);
        return validator.addRule(addr, initPercent, periods, percents);
    }

    function addTimeT(address addr, uint256 timeT) public returns (bool) {
        require(msg.sender == admin);
        return validator.addTimeT(addr, timeT);
    }

    function removeRule(address addr) public returns (bool) {
        require(msg.sender == admin);
        return validator.removeRule(addr);
    }

    //--------------------------      Frozen rules      ------------------------------//




    //-------------------------  Standard ERC20 Interfaces  --------------------------//

    function multiTransfer(address[] memory _tos, uint256[] memory _values) public returns (bool) {
        require(!frozenAccount[msg.sender]);
        require(block.timestamp > frozenTimestamp[msg.sender]);
        require(_tos.length == _values.length);
        uint256 len = _tos.length;
        require(len > 0);
        uint256 amount = 0;
        for (uint256 i = 0; i < len; i = i.add(1)) {
            amount = amount.add(_values[i]);
        }
        require(amount <= balances[msg.sender].sub(validator.validate(msg.sender)));
        for (uint256 j = 0; j < len; j = j.add(1)) {
            address _to = _tos[j];
            if (validator.containRule(msg.sender) && msg.sender != _to) {
                validator.addFrozenBalance(msg.sender, _to, _values[j]);
            }
            balances[_to] = balances[_to].add(_values[j]);
            balances[msg.sender] = balances[msg.sender].sub(_values[j]);
            emit Transfer(msg.sender, _to, _values[j]);
        }
        return true;
    }

    function transfer(address _to, uint256 _value) public returns (bool) {
        transferfix(_to, _value);
        return true;
    }

    function transferfix(address _to, uint256 _value) public {
        require(!frozenAccount[msg.sender]);
        require(block.timestamp > frozenTimestamp[msg.sender]);
        require(balances[msg.sender].sub(_value) >= validator.validate(msg.sender));

        if (validator.containRule(msg.sender) && msg.sender != _to) {
            validator.addFrozenBalance(msg.sender, _to, _value);
        }
        balances[msg.sender] = balances[msg.sender].sub(_value);
        balances[_to] = balances[_to].add(_value);

        emit Transfer(msg.sender, _to, _value);
    }

    function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
        require(!frozenAccount[_from]);
        require(block.timestamp > frozenTimestamp[_from]);
        require(_value <= balances[_from].sub(validator.validate(_from)));
        require(_value <= allowed[_from][msg.sender]);

        if (validator.containRule(_from) && _from != _to) {
            validator.addFrozenBalance(_from, _to, _value);
        }

        balances[_from] = balances[_from].sub(_value);
        balances[_to] = balances[_to].add(_value);
        allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);

        emit Transfer(_from, _to, _value);
        return true;
    }

    function approve(address _spender, uint256 _value) public returns (bool) {
        allowed[msg.sender][_spender] = _value;

        emit Approval(msg.sender, _spender, _value);
        return true;
    }

    function allowance(address _owner, address _spender) public view returns (uint256) {
        return allowed[_owner][_spender];
    }

    /**
     * @dev Gets the balance of the specified address.
     * @param _owner The address to query the the balance of.
     * @return An uint256 representing the amount owned by the passed address.
     */
    function balanceOf(address _owner) public view returns (uint256) {
        return balances[_owner]; //.sub(validator.validate(_owner));
    }

    //-------------------------  Standard ERC20 Interfaces  --------------------------//
    
    function lockedBalanceOf(address _target) public view returns (uint256) {
        return validator.validate(_target);
    }

    function kill() public {
        require(msg.sender == admin);
        selfdestruct(admin);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint8","name":"tokenDecimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint8","name":"initPercent","type":"uint8"},{"internalType":"uint256[]","name":"periods","type":"uint256[]"},{"internalType":"uint8[]","name":"percents","type":"uint8[]"}],"name":"addRule","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint256","name":"timeT","type":"uint256"}],"name":"addTimeT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"bool","name":"_freeze","type":"bool"}],"name":"freeze","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"},{"internalType":"uint256","name":"_timestamp","type":"uint256"}],"name":"freezeWithTimestamp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"}],"name":"getFrozenAccount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"}],"name":"getFrozenTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"kill","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_target","type":"address"}],"name":"lockedBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_targets","type":"address[]"},{"internalType":"bool[]","name":"_freezes","type":"bool[]"}],"name":"multiFreeze","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_targets","type":"address[]"},{"internalType":"uint256[]","name":"_timestamps","type":"uint256[]"}],"name":"multiFreezeWithTimestamp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tos","type":"address[]"},{"internalType":"uint256[]","name":"_values","type":"uint256[]"}],"name":"multiTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"removeRule","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferfix","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162003fca38038062003fca833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b50604052602001805190602001909291905050508260029080519060200190620001da92919062000261565b508160039080519060200190620001f392919062000261565b5080600460006101000a81548160ff021916908360ff160217905550600060058190555033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505062000307565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002a457805160ff1916838001178555620002d5565b82800160010185558215620002d5579182015b82811115620002d4578251825591602001919060010190620002b7565b5b509050620002e49190620002e8565b5090565b5b8082111562000303576000816000905550600101620002e9565b5090565b613cb380620003176000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80639dc29fac116100de578063d54c8a5611610097578063dd62ed3e11610071578063dd62ed3e14610d8b578063df21950f14610e03578063e6ad5bc714610e5d578063f851a44014610eb55761018e565b8063d54c8a5614610b77578063d70907b014610bc5578063d950c43214610c295761018e565b80639dc29fac14610829578063a2c8a9271461088d578063a9059cbb146108f1578063bf120ae514610955578063c4977807146109bb578063c878dad914610a155761018e565b806340c10f191161014b57806370a082311161012557806370a08231146105655780638f283970146105bd57806395d89b411461061757806399f9b55e1461069a5761018e565b806340c10f191461049f57806341c0e1b514610503578063593557361461050d5761018e565b806306fdde0314610193578063095ea7b31461021657806318160ddd1461027a5780631e89d5451461029857806323b872dd146103fa578063313ce5671461047e575b600080fd5b61019b610ee9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101db5780820151818401526020810190506101c0565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102626004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f87565b60405180821515815260200191505060405180910390f35b610282611079565b6040518082815260200191505060405180910390f35b6103e2600480360360408110156102ae57600080fd5b81019080803590602001906401000000008111156102cb57600080fd5b8201836020820111156102dd57600080fd5b803590602001918460208302840111640100000000831117156102ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561035f57600080fd5b82018360208201111561037157600080fd5b8035906020019184602083028401116401000000008311171561039357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061107f565b60405180821515815260200191505060405180910390f35b6104666004803603606081101561041057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611492565b60405180821515815260200191505060405180910390f35b61048661193f565b604051808260ff16815260200191505060405180910390f35b6104eb600480360360408110156104b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611952565b60405180821515815260200191505060405180910390f35b61050b611bbc565b005b61054f6004803603602081101561052357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c51565b6040518082815260200191505060405180910390f35b6105a76004803603602081101561057b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c6e565b6040518082815260200191505060405180910390f35b6105ff600480360360208110156105d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cb6565b60405180821515815260200191505060405180910390f35b61061f611f7c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065f578082015181840152602081019050610644565b50505050905090810190601f16801561068c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610811600480360360808110156106b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803590602001906401000000008111156106fa57600080fd5b82018360208201111561070c57600080fd5b8035906020019184602083028401116401000000008311171561072e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561078e57600080fd5b8201836020820111156107a057600080fd5b803590602001918460208302840111640100000000831117156107c257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061201a565b60405180821515815260200191505060405180910390f35b6108756004803603604081101561083f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061209a565b60405180821515815260200191505060405180910390f35b6108d9600480360360408110156108a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612383565b60405180821515815260200191505060405180910390f35b61093d6004803603604081101561090757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123fd565b60405180821515815260200191505060405180910390f35b6109a36004803603604081101561096b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612413565b60405180821515815260200191505060405180910390f35b6109fd600480360360208110156109d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061252b565b60405180821515815260200191505060405180910390f35b610b5f60048036036040811015610a2b57600080fd5b8101908080359060200190640100000000811115610a4857600080fd5b820183602082011115610a5a57600080fd5b80359060200191846020830284011164010000000083111715610a7c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610adc57600080fd5b820183602082011115610aee57600080fd5b80359060200191846020830284011164010000000083111715610b1057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612581565b60405180821515815260200191505060405180910390f35b610bc360048036036040811015610b8d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612714565b005b610c1160048036036040811015610bdb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a20565b60405180821515815260200191505060405180910390f35b610d7360048036036040811015610c3f57600080fd5b8101908080359060200190640100000000811115610c5c57600080fd5b820183602082011115610c6e57600080fd5b80359060200191846020830284011164010000000083111715610c9057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610cf057600080fd5b820183602082011115610d0257600080fd5b80359060200191846020830284011164010000000083111715610d2457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612b25565b60405180821515815260200191505060405180910390f35b610ded60048036036040811015610da157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ca5565b6040518082815260200191505060405180910390f35b610e4560048036036020811015610e1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d2c565b60405180821515815260200191505060405180910390f35b610e9f60048036036020811015610e7357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612da3565b6040518082815260200191505060405180910390f35b610ebd612dec565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b505050505081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60055481565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110d857600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421161112357600080fd5b815183511461113157600080fd5b6000835190506000811161114457600080fd5b6000805b828110156111935761117685828151811061115f57fe5b602002602001015183612e1290919063ffffffff16565b915061118c600182612e1290919063ffffffff16565b9050611148565b506111f86111ab336009612e2990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b81111561120457600080fd5b60005b8281101561148557600086828151811061121d57fe5b6020026020010151905061123b336009612f8090919063ffffffff16565b801561127357508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156112a5576112a3338288858151811061128957fe5b60200260200101516009612fd1909392919063ffffffff16565b505b6113098683815181106112b457fe5b60200260200101516000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113af86838151811061135a57fe5b60200260200101516000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88858151811061144c57fe5b60200260200101516040518082815260200191505060405180910390a35061147e600182612e1290919063ffffffff16565b9050611207565b5060019250505092915050565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156114eb57600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421161153657600080fd5b61159a61154d856009612e2990919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b8211156115a657600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561162f57600080fd5b611643846009612f8090919063ffffffff16565b801561167b57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561169a576116988484846009612fd1909392919063ffffffff16565b505b6116eb826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061177e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061184f82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119ae57600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a0557600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544211611a5057600080fd5b611aa1826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af882600554612e1290919063ffffffff16565b6005819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c1657600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000611c67826009612e2990919063ffffffff16565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d1257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d4c57600080fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611e02816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001915050919050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120125780601f10611fe757610100808354040283529160200191612012565b820191906000526020600020905b815481529060010190602001808311611ff557829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461207657600080fd5b61209085858585600961317890949392919063ffffffff16565b9050949350505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120f657600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561214d57600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421161219857600080fd5b8160055410156121a757600080fd5b6121bb836009612e2990919063ffffffff16565b61220c836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b101561221757600080fd5b612268826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122bf82600554612f6990919063ffffffff16565b6005819055508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123df57600080fd5b6123f5838360096135489092919063ffffffff16565b905092915050565b60006124098383612714565b6001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461246f57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124ca57600080fd5b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125dd57600080fd5b81518351146125eb57600080fd5b600083519050600081116125fe57600080fd5b60005b8181101561270857600085828151811061261757fe5b60200260200101519050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561267c57600080fd5b600085838151811061268a57fe5b6020026020010151905080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050612701600182612e1290919063ffffffff16565b9050612601565b50600191505092915050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561276b57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442116127b657600080fd5b6127ca336009612e2990919063ffffffff16565b61281b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b101561282657600080fd5b61283a336009612f8090919063ffffffff16565b801561287257508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156128915761288f3383836009612fd1909392919063ffffffff16565b505b6128e2816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612975816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a7c57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ad757600080fd5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b8157600080fd5b8151835114612b8f57600080fd5b60008351905060008111612ba257600080fd5b60005b81811015612c99576000858281518110612bbb57fe5b60200260200101519050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612c2057600080fd5b6000858381518110612c2e57fe5b6020026020010151905080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050612c92600182612e1290919063ffffffff16565b9050612ba5565b50600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d8857600080fd5b612d9c8260096135ad90919063ffffffff16565b9050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000818301905082811015612e2357fe5b92915050565b600080600090506000612e3b85613702565b90505b612e488582613735565b15612f5e576000612e598683613749565b905060008660000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001019050612f49612f3a8860000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361379090919063ffffffff16565b85612e1290919063ffffffff16565b93505050612f578582613a29565b9050612e3e565b508091505092915050565b600082821115612f7557fe5b818303905092915050565b6000808360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411905092915050565b6000613067828660000160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b8560000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508460000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156131b357600080fd5b81518351146131c157600080fd5b60008351116131cf57600080fd5b6000836000815181106131de57fe5b6020026020010151146131f057600080fd5b816000815181106131fd57fe5b602002602001015160ff168460ff16111561321757600080fd5b6000600190505b83518110156132d35783818151811061323357fe5b602002602001015184613250600184612f6990919063ffffffff16565b8151811061325a57fe5b60200260200101511061326c57600080fd5b82818151811061327857fe5b602002602001015160ff1683613298600184612f6990919063ffffffff16565b815181106132a257fe5b602002602001015160ff1611156132b857600080fd5b6132cc600182612e1290919063ffffffff16565b905061321e565b506064826132ec60018551612f6990919063ffffffff16565b815181106132f657fe5b602002602001015160ff161461330b57600080fd5b613313613ad0565b6040518060800160405280600081526020018660ff16815260200185815260200184815250905060008760000160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050818860000160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000820151816000015560208201518160010160006101000a81548160ff021916908360ff160217905550604082015181600201908051906020019061340f929190613afb565b50606082015181600301908051906020019061342c929190613b48565b5090505060008111156134445760019250505061353f565b8760010180549050905087600101600181600181540180825580915050039060005260206000205050613481600182612e1290919063ffffffff16565b8860000160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550868860010182815481106134d957fe5b9060005260206000200160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600201600081548092919060010191905055506000925050505b95945050505050565b600042821161355657600080fd5b818460000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160000181905550600190509392505050565b6000808360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600081141561360a5760009150506136fc565b8360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000808201600090556001820160006101000a81549060ff02191690556002820160006136859190613bef565b6003820160006136959190613c10565b505050506001846001016136b3600184612f6990919063ffffffff16565b815481106136bd57fe5b9060005260206000200160000160146101000a81548160ff02191690831515021790555083600201600081548092919060019003919050555060019150505b92915050565b600061372e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613a29565b9050919050565b600082600101805490508210905092915050565b600082600101828154811061375a57fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b6000808214156137a35760009050613a23565b6000836000015414806137b95750428360000154115b156138115761380a6137fb60646137ed8660010160009054906101000a900460ff1660ff1686613a8b90919063ffffffff16565b613abc90919063ffffffff16565b83612f6990919063ffffffff16565b9050613a23565b60005b61382f60018560020180549050612f6990919063ffffffff16565b8110156139475761386684600201828154811061384857fe5b90600052602060002001548560000154612e1290919063ffffffff16565b42101580156138b657506138b38460020161388b600184612e1290919063ffffffff16565b8154811061389557fe5b90600052602060002001548560000154612e1290919063ffffffff16565b42105b1561392c5761392461391560646139078760030185815481106138d557fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff1687613a8b90919063ffffffff16565b613abc90919063ffffffff16565b84612f6990919063ffffffff16565b915050613a23565b613940600182612e1290919063ffffffff16565b9050613814565b506139928360020161396a60018660020180549050612f6990919063ffffffff16565b8154811061397457fe5b90600052602060002001548460000154612e1290919063ffffffff16565b4210613a2257613a1b613a0c60646139fe866003016139c260018960020180549050612f6990919063ffffffff16565b815481106139cc57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff1686613a8b90919063ffffffff16565b613abc90919063ffffffff16565b83612f6990919063ffffffff16565b9050613a23565b5b92915050565b600081806001019250505b826001018054905082108015613a705750826001018281548110613a5457fe5b9060005260206000200160000160149054906101000a900460ff165b15613a82578180600101925050613a34565b81905092915050565b600080831415613a9e5760009050613ab6565b818302905081838281613aad57fe5b0414613ab557fe5b5b92915050565b6000818381613ac757fe5b04905092915050565b604051806080016040528060008152602001600060ff16815260200160608152602001606081525090565b828054828255906000526020600020908101928215613b37579160200282015b82811115613b36578251825591602001919060010190613b1b565b5b509050613b449190613c38565b5090565b82805482825590600052602060002090601f01602090048101928215613bde5791602002820160005b83821115613baf57835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613b71565b8015613bdc5782816101000a81549060ff0219169055600101602081600001049283019260010302613baf565b505b509050613beb9190613c55565b5090565b5080546000825590600052602060002090810190613c0d9190613c38565b50565b50805460008255601f016020900490600052602060002090810190613c359190613c38565b50565b5b80821115613c51576000816000905550600101613c39565b5090565b5b80821115613c7957600081816101000a81549060ff021916905550600101613c56565b509056fea26469706673582212204395a9af44ba2ed97c3865ca557be5e91c887869c9a0b5e31f8ef30853d8a42264736f6c63430007000033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000005597374617200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035953520000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80639dc29fac116100de578063d54c8a5611610097578063dd62ed3e11610071578063dd62ed3e14610d8b578063df21950f14610e03578063e6ad5bc714610e5d578063f851a44014610eb55761018e565b8063d54c8a5614610b77578063d70907b014610bc5578063d950c43214610c295761018e565b80639dc29fac14610829578063a2c8a9271461088d578063a9059cbb146108f1578063bf120ae514610955578063c4977807146109bb578063c878dad914610a155761018e565b806340c10f191161014b57806370a082311161012557806370a08231146105655780638f283970146105bd57806395d89b411461061757806399f9b55e1461069a5761018e565b806340c10f191461049f57806341c0e1b514610503578063593557361461050d5761018e565b806306fdde0314610193578063095ea7b31461021657806318160ddd1461027a5780631e89d5451461029857806323b872dd146103fa578063313ce5671461047e575b600080fd5b61019b610ee9565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101db5780820151818401526020810190506101c0565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102626004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610f87565b60405180821515815260200191505060405180910390f35b610282611079565b6040518082815260200191505060405180910390f35b6103e2600480360360408110156102ae57600080fd5b81019080803590602001906401000000008111156102cb57600080fd5b8201836020820111156102dd57600080fd5b803590602001918460208302840111640100000000831117156102ff57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561035f57600080fd5b82018360208201111561037157600080fd5b8035906020019184602083028401116401000000008311171561039357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061107f565b60405180821515815260200191505060405180910390f35b6104666004803603606081101561041057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611492565b60405180821515815260200191505060405180910390f35b61048661193f565b604051808260ff16815260200191505060405180910390f35b6104eb600480360360408110156104b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611952565b60405180821515815260200191505060405180910390f35b61050b611bbc565b005b61054f6004803603602081101561052357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c51565b6040518082815260200191505060405180910390f35b6105a76004803603602081101561057b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c6e565b6040518082815260200191505060405180910390f35b6105ff600480360360208110156105d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611cb6565b60405180821515815260200191505060405180910390f35b61061f611f7c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561065f578082015181840152602081019050610644565b50505050905090810190601f16801561068c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610811600480360360808110156106b057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803560ff169060200190929190803590602001906401000000008111156106fa57600080fd5b82018360208201111561070c57600080fd5b8035906020019184602083028401116401000000008311171561072e57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561078e57600080fd5b8201836020820111156107a057600080fd5b803590602001918460208302840111640100000000831117156107c257600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929050505061201a565b60405180821515815260200191505060405180910390f35b6108756004803603604081101561083f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061209a565b60405180821515815260200191505060405180910390f35b6108d9600480360360408110156108a357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612383565b60405180821515815260200191505060405180910390f35b61093d6004803603604081101561090757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506123fd565b60405180821515815260200191505060405180910390f35b6109a36004803603604081101561096b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050612413565b60405180821515815260200191505060405180910390f35b6109fd600480360360208110156109d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061252b565b60405180821515815260200191505060405180910390f35b610b5f60048036036040811015610a2b57600080fd5b8101908080359060200190640100000000811115610a4857600080fd5b820183602082011115610a5a57600080fd5b80359060200191846020830284011164010000000083111715610a7c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610adc57600080fd5b820183602082011115610aee57600080fd5b80359060200191846020830284011164010000000083111715610b1057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612581565b60405180821515815260200191505060405180910390f35b610bc360048036036040811015610b8d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612714565b005b610c1160048036036040811015610bdb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a20565b60405180821515815260200191505060405180910390f35b610d7360048036036040811015610c3f57600080fd5b8101908080359060200190640100000000811115610c5c57600080fd5b820183602082011115610c6e57600080fd5b80359060200191846020830284011164010000000083111715610c9057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610cf057600080fd5b820183602082011115610d0257600080fd5b80359060200191846020830284011164010000000083111715610d2457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050612b25565b60405180821515815260200191505060405180910390f35b610ded60048036036040811015610da157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ca5565b6040518082815260200191505060405180910390f35b610e4560048036036020811015610e1957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612d2c565b60405180821515815260200191505060405180910390f35b610e9f60048036036020811015610e7357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612da3565b6040518082815260200191505060405180910390f35b610ebd612dec565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f7f5780601f10610f5457610100808354040283529160200191610f7f565b820191906000526020600020905b815481529060010190602001808311610f6257829003601f168201915b505050505081565b600081600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60055481565b6000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110d857600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421161112357600080fd5b815183511461113157600080fd5b6000835190506000811161114457600080fd5b6000805b828110156111935761117685828151811061115f57fe5b602002602001015183612e1290919063ffffffff16565b915061118c600182612e1290919063ffffffff16565b9050611148565b506111f86111ab336009612e2990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b81111561120457600080fd5b60005b8281101561148557600086828151811061121d57fe5b6020026020010151905061123b336009612f8090919063ffffffff16565b801561127357508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156112a5576112a3338288858151811061128957fe5b60200260200101516009612fd1909392919063ffffffff16565b505b6113098683815181106112b457fe5b60200260200101516000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113af86838151811061135a57fe5b60200260200101516000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef88858151811061144c57fe5b60200260200101516040518082815260200191505060405180910390a35061147e600182612e1290919063ffffffff16565b9050611207565b5060019250505092915050565b6000600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156114eb57600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421161153657600080fd5b61159a61154d856009612e2990919063ffffffff16565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b8211156115a657600080fd5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561162f57600080fd5b611643846009612f8090919063ffffffff16565b801561167b57508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561169a576116988484846009612fd1909392919063ffffffff16565b505b6116eb826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061177e826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061184f82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119ae57600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a0557600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020544211611a5057600080fd5b611aa1826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611af882600554612e1290919063ffffffff16565b6005819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611c1657600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b6000611c67826009612e2990919063ffffffff16565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d1257600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d4c57600080fd5b6000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611e02816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000806000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36001915050919050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156120125780601f10611fe757610100808354040283529160200191612012565b820191906000526020600020905b815481529060010190602001808311611ff557829003601f168201915b505050505081565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461207657600080fd5b61209085858585600961317890949392919063ffffffff16565b9050949350505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120f657600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561214d57600080fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054421161219857600080fd5b8160055410156121a757600080fd5b6121bb836009612e2990919063ffffffff16565b61220c836000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b101561221757600080fd5b612268826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122bf82600554612f6990919063ffffffff16565b6005819055508273ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5836040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123df57600080fd5b6123f5838360096135489092919063ffffffff16565b905092915050565b60006124098383612714565b6001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461246f57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124ca57600080fd5b81600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125dd57600080fd5b81518351146125eb57600080fd5b600083519050600081116125fe57600080fd5b60005b8181101561270857600085828151811061261757fe5b60200260200101519050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561267c57600080fd5b600085838151811061268a57fe5b6020026020010151905080600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050612701600182612e1290919063ffffffff16565b9050612601565b50600191505092915050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561276b57600080fd5b600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442116127b657600080fd5b6127ca336009612e2990919063ffffffff16565b61281b826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b101561282657600080fd5b61283a336009612f8090919063ffffffff16565b801561287257508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b156128915761288f3383836009612fd1909392919063ffffffff16565b505b6128e2816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6990919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612975816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612a7c57600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612ad757600080fd5b81600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612b8157600080fd5b8151835114612b8f57600080fd5b60008351905060008111612ba257600080fd5b60005b81811015612c99576000858281518110612bbb57fe5b60200260200101519050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612c2057600080fd5b6000858381518110612c2e57fe5b6020026020010151905080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050612c92600182612e1290919063ffffffff16565b9050612ba5565b50600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612d8857600080fd5b612d9c8260096135ad90919063ffffffff16565b9050919050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000818301905082811015612e2357fe5b92915050565b600080600090506000612e3b85613702565b90505b612e488582613735565b15612f5e576000612e598683613749565b905060008660000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001019050612f49612f3a8860000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361379090919063ffffffff16565b85612e1290919063ffffffff16565b93505050612f578582613a29565b9050612e3e565b508091505092915050565b600082821115612f7557fe5b818303905092915050565b6000808360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015411905092915050565b6000613067828660000160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e1290919063ffffffff16565b8560000160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508460000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156131b357600080fd5b81518351146131c157600080fd5b60008351116131cf57600080fd5b6000836000815181106131de57fe5b6020026020010151146131f057600080fd5b816000815181106131fd57fe5b602002602001015160ff168460ff16111561321757600080fd5b6000600190505b83518110156132d35783818151811061323357fe5b602002602001015184613250600184612f6990919063ffffffff16565b8151811061325a57fe5b60200260200101511061326c57600080fd5b82818151811061327857fe5b602002602001015160ff1683613298600184612f6990919063ffffffff16565b815181106132a257fe5b602002602001015160ff1611156132b857600080fd5b6132cc600182612e1290919063ffffffff16565b905061321e565b506064826132ec60018551612f6990919063ffffffff16565b815181106132f657fe5b602002602001015160ff161461330b57600080fd5b613313613ad0565b6040518060800160405280600081526020018660ff16815260200185815260200184815250905060008760000160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050818860000160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016000820151816000015560208201518160010160006101000a81548160ff021916908360ff160217905550604082015181600201908051906020019061340f929190613afb565b50606082015181600301908051906020019061342c929190613b48565b5090505060008111156134445760019250505061353f565b8760010180549050905087600101600181600181540180825580915050039060005260206000205050613481600182612e1290919063ffffffff16565b8860000160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550868860010182815481106134d957fe5b9060005260206000200160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555087600201600081548092919060010191905055506000925050505b95945050505050565b600042821161355657600080fd5b818460000160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160000181905550600190509392505050565b6000808360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050600081141561360a5760009150506136fc565b8360000160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080820160009055600182016000808201600090556001820160006101000a81549060ff02191690556002820160006136859190613bef565b6003820160006136959190613c10565b505050506001846001016136b3600184612f6990919063ffffffff16565b815481106136bd57fe5b9060005260206000200160000160146101000a81548160ff02191690831515021790555083600201600081548092919060019003919050555060019150505b92915050565b600061372e827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613a29565b9050919050565b600082600101805490508210905092915050565b600082600101828154811061375a57fe5b9060005260206000200160000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905092915050565b6000808214156137a35760009050613a23565b6000836000015414806137b95750428360000154115b156138115761380a6137fb60646137ed8660010160009054906101000a900460ff1660ff1686613a8b90919063ffffffff16565b613abc90919063ffffffff16565b83612f6990919063ffffffff16565b9050613a23565b60005b61382f60018560020180549050612f6990919063ffffffff16565b8110156139475761386684600201828154811061384857fe5b90600052602060002001548560000154612e1290919063ffffffff16565b42101580156138b657506138b38460020161388b600184612e1290919063ffffffff16565b8154811061389557fe5b90600052602060002001548560000154612e1290919063ffffffff16565b42105b1561392c5761392461391560646139078760030185815481106138d557fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff1687613a8b90919063ffffffff16565b613abc90919063ffffffff16565b84612f6990919063ffffffff16565b915050613a23565b613940600182612e1290919063ffffffff16565b9050613814565b506139928360020161396a60018660020180549050612f6990919063ffffffff16565b8154811061397457fe5b90600052602060002001548460000154612e1290919063ffffffff16565b4210613a2257613a1b613a0c60646139fe866003016139c260018960020180549050612f6990919063ffffffff16565b815481106139cc57fe5b90600052602060002090602091828204019190069054906101000a900460ff1660ff1686613a8b90919063ffffffff16565b613abc90919063ffffffff16565b83612f6990919063ffffffff16565b9050613a23565b5b92915050565b600081806001019250505b826001018054905082108015613a705750826001018281548110613a5457fe5b9060005260206000200160000160149054906101000a900460ff165b15613a82578180600101925050613a34565b81905092915050565b600080831415613a9e5760009050613ab6565b818302905081838281613aad57fe5b0414613ab557fe5b5b92915050565b6000818381613ac757fe5b04905092915050565b604051806080016040528060008152602001600060ff16815260200160608152602001606081525090565b828054828255906000526020600020908101928215613b37579160200282015b82811115613b36578251825591602001919060010190613b1b565b5b509050613b449190613c38565b5090565b82805482825590600052602060002090601f01602090048101928215613bde5791602002820160005b83821115613baf57835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613b71565b8015613bdc5782816101000a81549060ff0219169055600101602081600001049283019260010302613baf565b505b509050613beb9190613c55565b5090565b5080546000825590600052602060002090810190613c0d9190613c38565b50565b50805460008255601f016020900490600052602060002090810190613c359190613c38565b50565b5b80821115613c51576000816000905550600101613c39565b5090565b5b80821115613c7957600081816101000a81549060ff021916905550600101613c56565b509056fea26469706673582212204395a9af44ba2ed97c3865ca557be5e91c887869c9a0b5e31f8ef30853d8a42264736f6c63430007000033

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000005597374617200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035953520000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : tokenName (string): Ystar
Arg [1] : tokenSymbol (string): YSR
Arg [2] : tokenDecimals (uint8): 18

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [4] : 5973746172000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [6] : 5953520000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

6772:10350:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7116:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16062:208;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7196:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13566:1029;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15334:720;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7168:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9022:429;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17017:100;;;:::i;:::-;;16884:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16637:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7571:398;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7141:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12797:243;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9463:542;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13048:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14603:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10835:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10670:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11408:521;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14745:581;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11114:241;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;11997:557;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16278:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13221:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10483:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7423:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7116:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16062:208::-;16129:4;16178:6;16146:7;:19;16154:10;16146:19;;;;;;;;;;;;;;;:29;16166:8;16146:29;;;;;;;;;;;;;;;:38;;;;16223:8;16202:38;;16211:10;16202:38;;;16233:6;16202:38;;;;;;;;;;;;;;;;;;16258:4;16251:11;;16062:208;;;;:::o;7196:26::-;;;;:::o;13566:1029::-;13654:4;13680:13;:25;13694:10;13680:25;;;;;;;;;;;;;;;;;;;;;;;;;13679:26;13671:35;;;;;;13743:15;:27;13759:10;13743:27;;;;;;;;;;;;;;;;13725:15;:45;13717:54;;;;;;13805:7;:14;13790:4;:11;:29;13782:38;;;;;;13831:11;13845:4;:11;13831:25;;13881:1;13875:3;:7;13867:16;;;;;;13894:14;13928:9;13923:101;13947:3;13943:1;:7;13923:101;;;13990:22;14001:7;14009:1;14001:10;;;;;;;;;;;;;;13990:6;:10;;:22;;;;:::i;:::-;13981:31;;13956:8;13962:1;13956;:5;;:8;;;;:::i;:::-;13952:12;;13923:101;;;;14052:56;14077:30;14096:10;14077:9;:18;;:30;;;;:::i;:::-;14052:8;:20;14061:10;14052:20;;;;;;;;;;;;;;;;:24;;:56;;;;:::i;:::-;14042:6;:66;;14034:75;;;;;;14125:9;14120:446;14144:3;14140:1;:7;14120:446;;;14178:11;14192:4;14197:1;14192:7;;;;;;;;;;;;;;14178:21;;14218:33;14240:10;14218:9;:21;;:33;;;;:::i;:::-;:54;;;;;14269:3;14255:17;;:10;:17;;;;14218:54;14214:150;;;14293:55;14320:10;14332:3;14337:7;14345:1;14337:10;;;;;;;;;;;;;;14293:9;:26;;:55;;;;;;:::i;:::-;;14214:150;14394:29;14412:7;14420:1;14412:10;;;;;;;;;;;;;;14394:8;:13;14403:3;14394:13;;;;;;;;;;;;;;;;:17;;:29;;;;:::i;:::-;14378:8;:13;14387:3;14378:13;;;;;;;;;;;;;;;:45;;;;14461:36;14486:7;14494:1;14486:10;;;;;;;;;;;;;;14461:8;:20;14470:10;14461:20;;;;;;;;;;;;;;;;:24;;:36;;;;:::i;:::-;14438:8;:20;14447:10;14438:20;;;;;;;;;;;;;;;:59;;;;14538:3;14517:37;;14526:10;14517:37;;;14543:7;14551:1;14543:10;;;;;;;;;;;;;;14517:37;;;;;;;;;;;;;;;;;;14120:446;14153:8;14159:1;14153;:5;;:8;;;;:::i;:::-;14149:12;;14120:446;;;;14583:4;14576:11;;;;13566:1029;;;;:::o;15334:720::-;15416:4;15442:13;:20;15456:5;15442:20;;;;;;;;;;;;;;;;;;;;;;;;;15441:21;15433:30;;;;;;15500:15;:22;15516:5;15500:22;;;;;;;;;;;;;;;;15482:15;:40;15474:49;;;;;;15552:46;15572:25;15591:5;15572:9;:18;;:25;;;;:::i;:::-;15552:8;:15;15561:5;15552:15;;;;;;;;;;;;;;;;:19;;:46;;;;:::i;:::-;15542:6;:56;;15534:65;;;;;;15628:7;:14;15636:5;15628:14;;;;;;;;;;;;;;;:26;15643:10;15628:26;;;;;;;;;;;;;;;;15618:6;:36;;15610:45;;;;;;15672:28;15694:5;15672:9;:21;;:28;;;;:::i;:::-;:44;;;;;15713:3;15704:12;;:5;:12;;;;15672:44;15668:123;;;15733:46;15760:5;15767:3;15772:6;15733:9;:26;;:46;;;;;;:::i;:::-;;15668:123;15821:27;15841:6;15821:8;:15;15830:5;15821:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;15803:8;:15;15812:5;15803:15;;;;;;;;;;;;;;;:45;;;;15875:25;15893:6;15875:8;:13;15884:3;15875:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;15859:8;:13;15868:3;15859:13;;;;;;;;;;;;;;;:41;;;;15940:38;15971:6;15940:7;:14;15948:5;15940:14;;;;;;;;;;;;;;;:26;15955:10;15940:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;15911:7;:14;15919:5;15911:14;;;;;;;;;;;;;;;:26;15926:10;15911:26;;;;;;;;;;;;;;;:67;;;;16012:3;15996:28;;16005:5;15996:28;;;16017:6;15996:28;;;;;;;;;;;;;;;;;;16042:4;16035:11;;15334:720;;;;;:::o;7168:21::-;;;;;;;;;;;;;:::o;9022:429::-;9083:4;9122:5;;;;;;;;;;;9108:19;;:10;:19;;;9100:28;;;;;;9148:13;:21;9162:6;9148:21;;;;;;;;;;;;;;;;;;;;;;;;;9147:22;9139:31;;;;;;9207:15;:23;9223:6;9207:23;;;;;;;;;;;;;;;;9189:15;:41;9181:50;;;;;;9261:27;9282:5;9261:8;:16;9270:6;9261:16;;;;;;;;;;;;;;;;:20;;:27;;;;:::i;:::-;9242:8;:16;9251:6;9242:16;;;;;;;;;;;;;;;:46;;;;9313:22;9329:5;9313:11;;:15;;:22;;;;:::i;:::-;9299:11;:36;;;;9356:6;9351:19;;;9364:5;9351:19;;;;;;;;;;;;;;;;;;9407:6;9386:35;;9403:1;9386:35;;;9415:5;9386:35;;;;;;;;;;;;;;;;;;9439:4;9432:11;;9022:429;;;;:::o;17017:100::-;17073:5;;;;;;;;;;;17059:19;;:10;:19;;;17051:28;;;;;;17103:5;;;;;;;;;;;17090:19;;;16884:125;16947:7;16974:27;16993:7;16974:9;:18;;:27;;;;:::i;:::-;16967:34;;16884:125;;;:::o;16637:143::-;16693:7;16720:8;:16;16729:6;16720:16;;;;;;;;;;;;;;;;16713:23;;16637:143;;;:::o;7571:398::-;7634:4;7674:5;;;;;;;;;;;7660:19;;:10;:19;;;7652:28;;;;;;7719:1;7699:22;;:8;:22;;;;7691:31;;;;;;7733:16;7752:8;:15;7761:5;;;;;;;;;;;7752:15;;;;;;;;;;;;;;;;7733:34;;7799:32;7822:8;7799;:18;7808:8;7799:18;;;;;;;;;;;;;;;;:22;;:32;;;;:::i;:::-;7778:8;:18;7787:8;7778:18;;;;;;;;;;;;;;;:53;;;;7860:1;7842:8;:15;7851:5;;;;;;;;;;;7842:15;;;;;;;;;;;;;;;:19;;;;7880:8;7872:5;;:16;;;;;;;;;;;;;;;;;;7920:8;7904:35;;7913:5;;;;;;;;;;;7904:35;;;7930:8;7904:35;;;;;;;;;;;;;;;;;;7957:4;7950:11;;;7571:398;;;:::o;7141:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12797:243::-;12914:4;12953:5;;;;;;;;;;;12939:19;;:10;:19;;;12931:28;;;;;;12977:55;12995:4;13001:11;13014:7;13023:8;12977:9;:17;;:55;;;;;;;:::i;:::-;12970:62;;12797:243;;;;;;:::o;9463:542::-;9524:4;9563:5;;;;;;;;;;;9549:19;;:10;:19;;;9541:28;;;;;;9589:13;:21;9603:6;9589:21;;;;;;;;;;;;;;;;;;;;;;;;;9588:22;9580:31;;;;;;9648:15;:23;9664:6;9648:23;;;;;;;;;;;;;;;;9630:15;:41;9622:50;;;;;;9704:5;9691:11;;:18;;9683:27;;;;;;9758:26;9777:6;9758:9;:18;;:26;;;;:::i;:::-;9729:27;9750:5;9729:8;:16;9738:6;9729:16;;;;;;;;;;;;;;;;:20;;:27;;;;:::i;:::-;:55;;9721:64;;;;;;9815:27;9836:5;9815:8;:16;9824:6;9815:16;;;;;;;;;;;;;;;;:20;;:27;;;;:::i;:::-;9796:8;:16;9805:6;9796:16;;;;;;;;;;;;;;;:46;;;;9867:22;9883:5;9867:11;;:15;;:22;;;;:::i;:::-;9853:11;:36;;;;9910:6;9905:19;;;9918:5;9905:19;;;;;;;;;;;;;;;;;;9965:1;9940:35;;9949:6;9940:35;;;9969:5;9940:35;;;;;;;;;;;;;;;;;;9993:4;9986:11;;9463:542;;;;:::o;13048:165::-;13111:4;13150:5;;;;;;;;;;;13136:19;;:10;:19;;;13128:28;;;;;;13174:31;13193:4;13199:5;13174:9;:18;;:31;;;;;:::i;:::-;13167:38;;13048:165;;;;:::o;14603:134::-;14666:4;14683:24;14695:3;14700:6;14683:11;:24::i;:::-;14725:4;14718:11;;14603:134;;;;:::o;10835:217::-;10898:4;10937:5;;;;;;;;;;;10923:19;;:10;:19;;;10915:28;;;;;;10973:5;;;;;;;;;;;10962:16;;:7;:16;;;;10954:25;;;;;;11015:7;10990:13;:22;11004:7;10990:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11040:4;11033:11;;10835:217;;;;:::o;10670:118::-;10734:4;10758:13;:22;10772:7;10758:22;;;;;;;;;;;;;;;;;;;;;;;;;10751:29;;10670:118;;;:::o;11408:521::-;11496:4;11535:5;;;;;;;;;;;11521:19;;:10;:19;;;11513:28;;;;;;11579:8;:15;11560:8;:15;:34;11552:43;;;;;;11606:11;11620:8;:15;11606:29;;11660:1;11654:3;:7;11646:16;;;;;;11678:9;11673:227;11697:3;11693:1;:7;11673:227;;;11731:15;11749:8;11758:1;11749:11;;;;;;;;;;;;;;11731:29;;11794:5;;;;;;;;;;;11783:16;;:7;:16;;;;11775:25;;;;;;11815:12;11830:8;11839:1;11830:11;;;;;;;;;;;;;;11815:26;;11881:7;11856:13;:22;11870:7;11856:22;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11673:227;;11706:8;11712:1;11706;:5;;:8;;;;:::i;:::-;11702:12;;11673:227;;;;11917:4;11910:11;;;11408:521;;;;:::o;14745:581::-;14822:13;:25;14836:10;14822:25;;;;;;;;;;;;;;;;;;;;;;;;;14821:26;14813:35;;;;;;14885:15;:27;14901:10;14885:27;;;;;;;;;;;;;;;;14867:15;:45;14859:54;;;;;;14968:30;14987:10;14968:9;:18;;:30;;;;:::i;:::-;14932:32;14957:6;14932:8;:20;14941:10;14932:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;:66;;14924:75;;;;;;15016:33;15038:10;15016:9;:21;;:33;;;;:::i;:::-;:54;;;;;15067:3;15053:17;;:10;:17;;;;15016:54;15012:138;;;15087:51;15114:10;15126:3;15131:6;15087:9;:26;;:51;;;;;;:::i;:::-;;15012:138;15183:32;15208:6;15183:8;:20;15192:10;15183:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15160:8;:20;15169:10;15160:20;;;;;;;;;;;;;;;:55;;;;15242:25;15260:6;15242:8;:13;15251:3;15242:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;15226:8;:13;15235:3;15226:13;;;;;;;;;;;;;;;:41;;;;15306:3;15285:33;;15294:10;15285:33;;;15311:6;15285:33;;;;;;;;;;;;;;;;;;14745:581;;:::o;11114:241::-;11196:4;11235:5;;;;;;;;;;;11221:19;;:10;:19;;;11213:28;;;;;;11271:5;;;;;;;;;;;11260:16;;:7;:16;;;;11252:25;;;;;;11315:10;11288:15;:24;11304:7;11288:24;;;;;;;;;;;;;;;:37;;;;11343:4;11336:11;;11114:241;;;;:::o;11997:557::-;12104:4;12143:5;;;;;;;;;;;12129:19;;:10;:19;;;12121:28;;;;;;12187:11;:18;12168:8;:15;:37;12160:46;;;;;;12217:11;12231:8;:15;12217:29;;12271:1;12265:3;:7;12257:16;;;;;;12289:9;12284:241;12308:3;12304:1;:7;12284:241;;;12342:15;12360:8;12369:1;12360:11;;;;;;;;;;;;;;12342:29;;12405:5;;;;;;;;;;;12394:16;;:7;:16;;;;12386:25;;;;;;12426:18;12447:11;12459:1;12447:14;;;;;;;;;;;;;;12426:35;;12503:10;12476:15;:24;12492:7;12476:24;;;;;;;;;;;;;;;:37;;;;12284:241;;12317:8;12323:1;12317;:5;;:8;;;;:::i;:::-;12313:12;;12284:241;;;;12542:4;12535:11;;;11997:557;;;;:::o;16278:134::-;16352:7;16379;:15;16387:6;16379:15;;;;;;;;;;;;;;;:25;16395:8;16379:25;;;;;;;;;;;;;;;;16372:32;;16278:134;;;;:::o;13221:147::-;13271:4;13310:5;;;;;;;;;;;13296:19;;:10;:19;;;13288:28;;;;;;13334:26;13355:4;13334:9;:20;;:26;;;;:::i;:::-;13327:33;;13221:147;;;:::o;10483:125::-;10549:7;10576:15;:24;10592:7;10576:24;;;;;;;;;;;;;;;;10569:31;;10483:125;;;:::o;7423:28::-;;;;;;;;;;;;;:::o;1343:132::-;1403:9;1430:2;1425;:7;1421:11;;1451:2;1446:1;:7;;1439:15;;;;1343:132;;;;:::o;5518:491::-;5597:7;5617:19;5639:1;5617:23;;5656:9;5668:18;5681:4;5668:12;:18::i;:::-;5656:30;;5651:322;5688:21;5701:4;5707:1;5688:12;:21::i;:::-;5651:322;;;5752:16;5771:19;5782:4;5788:1;5771:10;:19::i;:::-;5752:38;;5805:31;5839:4;:9;;:19;5849:8;5839:19;;;;;;;;;;;;;;;:24;;5805:58;;5892:69;5908:52;5919:4;:9;;:19;5929:8;5919:19;;;;;;;;;;;;;;;:34;;:40;5954:4;5919:40;;;;;;;;;;;;;;;;5908:4;:10;;:52;;;;:::i;:::-;5892:11;:15;;:69;;;;:::i;:::-;5878:83;;5651:322;;5715:20;5727:4;5733:1;5715:11;:20::i;:::-;5711:24;;5651:322;;;;5990:11;5983:18;;;5518:491;;;;:::o;1157:119::-;1217:7;1246:2;1240;:8;;1233:16;;;;1268:2;1263;:7;1256:14;;1157:119;;;;:::o;4870:140::-;4951:4;5001:1;4975:4;:9;;:14;4985:3;4975:14;;;;;;;;;;;;;;;:23;;;:27;4968:34;;4870:140;;;;:::o;5239:271::-;5348:7;5405:45;5444:5;5405:4;:9;;:15;5415:4;5405:15;;;;;;;;;;;;;;;:30;;:34;5436:2;5405:34;;;;;;;;;;;;;;;;:38;;:45;;;;:::i;:::-;5368:4;:9;;:15;5378:4;5368:15;;;;;;;;;;;;;;;:30;;:34;5399:2;5368:34;;;;;;;;;;;;;;;:82;;;;5468:4;:9;;:15;5478:4;5468:15;;;;;;;;;;;;;;;:30;;:34;5499:2;5468:34;;;;;;;;;;;;;;;;5461:41;;5239:271;;;;;;:::o;3299:1209::-;3441:13;3527:1;3512:17;;:3;:17;;;;3504:26;;;;;;3567:8;:15;3549:7;:14;:33;3541:42;;;;;;3619:1;3602:7;:14;:18;3594:27;;;;;;3662:1;3640:7;3648:1;3640:10;;;;;;;;;;;;;;:24;3632:33;;;;;;3699:8;3708:1;3699:11;;;;;;;;;;;;;;3684:26;;:11;:26;;;;3676:35;;;;;;3727:9;3739:1;3727:13;;3722:177;3746:7;:14;3742:1;:18;3722:177;;;3819:7;3827:1;3819:10;;;;;;;;;;;;;;3799:7;3807:8;3813:1;3807;:5;;:8;;;;:::i;:::-;3799:17;;;;;;;;;;;;;;:30;3791:39;;;;;;3875:8;3884:1;3875:11;;;;;;;;;;;;;;3853:33;;:8;3862;3868:1;3862;:5;;:8;;;;:::i;:::-;3853:18;;;;;;;;;;;;;;:33;;;;3845:42;;;;;;3766:8;3772:1;3766;:5;;:8;;;;:::i;:::-;3762:12;;3722:177;;;;3953:3;3917:8;3926:22;3946:1;3926:8;:15;:19;;:22;;;;:::i;:::-;3917:32;;;;;;;;;;;;;;:39;;;3909:48;;;;;;3968:30;;:::i;:::-;4001:53;;;;;;;;4020:1;4001:53;;;;4023:11;4001:53;;;;;;4036:7;4001:53;;;;4045:8;4001:53;;;3968:86;;4065:16;4084:4;:9;;:14;4094:3;4084:14;;;;;;;;;;;;;;;:23;;;4065:42;;4140:4;4118;:9;;:14;4128:3;4118:14;;;;;;;;;;;;;;;:19;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;4170:1;4159:8;:12;4155:346;;;4195:4;4188:11;;;;;;4155:346;4289:4;:9;;:16;;;;4278:27;;4320:4;:9;;:16;;;;;;;;;;;;;;;;;;;;;;4377:15;4390:1;4377:8;:12;;:15;;;;:::i;:::-;4351:4;:9;;:14;4361:3;4351:14;;;;;;;;;;;;;;;:23;;:41;;;;4433:3;4407:4;:9;;4417:8;4407:19;;;;;;;;;;;;;;;:23;;;:29;;;;;;;;;;;;;;;;;;4451:4;:9;;;:11;;;;;;;;;;;;;4484:5;4477:12;;;;3299:1209;;;;;;;;:::o;5018:213::-;5107:4;5140:15;5132:5;:23;5124:32;;;;;;5196:5;5167:4;:9;;:15;5177:4;5167:15;;;;;;;;;;;;;;;:20;;:26;;:34;;;;5219:4;5212:11;;5018:213;;;;;:::o;4516:346::-;4591:12;4616:16;4635:4;:9;;:14;4645:3;4635:14;;;;;;;;;;;;;;;:23;;;4616:42;;4685:1;4673:8;:13;4669:58;;;4710:5;4703:12;;;;;4669:58;4744:4;:9;;:14;4754:3;4744:14;;;;;;;;;;;;;;;;4737:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;4806:4;4769;:9;;4779:15;4792:1;4779:8;:12;;:15;;;;:::i;:::-;4769:26;;;;;;;;;;;;;;;:34;;;:41;;;;;;;;;;;;;;;;;;4821:4;:9;;;:11;;;;;;;;;;;;;;4850:4;4843:11;;;4516:346;;;;;:::o;6019:143::-;6088:16;6124:30;6136:4;6150:2;6124:11;:30::i;:::-;6117:37;;6019:143;;;:::o;6170:146::-;6257:4;6292;:9;;:16;;;;6281:8;:27;6274:34;;6170:146;;;;:::o;6596:143::-;6681:7;6708:4;:9;;6718:8;6708:19;;;;;;;;;;;;;;;:23;;;;;;;;;;;;6701:30;;6596:143;;;;:::o;1835:946::-;1918:7;1970:1;1942:16;:30;1938:71;;;1996:1;1989:8;;;;1938:71;2087:1;2065:4;:10;;;:24;:56;;;;2106:15;2093:4;:10;;;:28;2065:56;2061:165;;;2145:69;2166:47;2209:3;2166:38;2187:4;:16;;;;;;;;;;;;2166:38;;:16;:20;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;2145:16;:20;;:69;;;;:::i;:::-;2138:76;;;;2061:165;2241:9;2236:319;2260:26;2284:1;2260:4;:12;;:19;;;;:23;;:26;;;;:::i;:::-;2256:1;:30;2236:319;;;2340:31;2355:4;:12;;2368:1;2355:15;;;;;;;;;;;;;;;;2340:4;:10;;;:14;;:31;;;;:::i;:::-;2321:15;:50;;:110;;;;;2393:38;2408:4;:12;;2421:8;2427:1;2421;:5;;:8;;;;:::i;:::-;2408:22;;;;;;;;;;;;;;;;2393:4;:10;;;:14;;:38;;;;:::i;:::-;2375:15;:56;2321:110;2317:227;;;2459:69;2480:47;2523:3;2480:38;2501:4;:13;;2515:1;2501:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2480:38;;:16;:20;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;2459:16;:20;;:69;;;;:::i;:::-;2452:76;;;;;2317:227;2292:8;2298:1;2292;:5;;:8;;;;:::i;:::-;2288:12;;2236:319;;;;2588:56;2603:4;:12;;2616:26;2640:1;2616:4;:12;;:19;;;;:23;;:26;;;;:::i;:::-;2603:40;;;;;;;;;;;;;;;;2588:4;:10;;;:14;;:56;;;;:::i;:::-;2569:15;:75;2565:209;;2668:94;2689:72;2757:3;2689:63;2710:4;:13;;2724:26;2748:1;2724:4;:12;;:19;;;;:23;;:26;;;;:::i;:::-;2710:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2689:63;;:16;:20;;:63;;;;:::i;:::-;:67;;:72;;;;:::i;:::-;2668:16;:20;;:94;;;;:::i;:::-;2661:101;;;;2565:209;1835:946;;;;;:::o;6324:264::-;6410:7;6430:10;;;;;;;6451:104;6469:4;:9;;:16;;;;6458:8;:27;:58;;;;;6489:4;:9;;6499:8;6489:19;;;;;;;;;;;;;;;:27;;;;;;;;;;;;6458:58;6451:104;;;6533:10;;;;;;;6451:104;;;6572:8;6565:15;;6324:264;;;;:::o;274:391::-;334:9;570:1;564:2;:7;560:38;;;589:1;582:8;;;;560:38;615:2;610;:7;606:11;;641:2;635;631:1;:6;;;;;;:12;624:20;;;;274:391;;;;;:::o;752:288::-;812:7;1032:2;1027;:7;;;;;;1020:14;;752:288;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

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