ETH Price: $3,321.20 (-1.16%)
 

Overview

Max Total Supply

5,000,000,000 APCG

Holders

1,530

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
17,000 APCG

Value
$0.00
0x27dafce30c28ed9118eeb22ec0bd6ab70586108e
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x86CF4BE0...Ead0b99D6
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
StandardToken

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-12-30
*/

pragma solidity ^0.4.24;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract Ownable {
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    
    constructor() public {
        owner = msg.sender;
    }
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    function transferOwnership(address newOwner) public onlyOwner {
        require(newOwner != address(0));
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }

}

contract Manager is Ownable {
    
    address[] managers;

    modifier onlyManagers() {
        bool exist = false;
        if(owner == msg.sender) {
            exist = true;
        } else {
            uint index = 0;
            (exist, index) = existManager(msg.sender);
        }
        require(exist);
        _;
    }
    
    function getManagers() public view returns (address[] memory){
        return managers;
    }
    
    function existManager(address _to) private view returns (bool, uint) {
        for (uint i = 0 ; i < managers.length; i++) {
            if (managers[i] == _to) {
                return (true, i);
            }
        }
        return (false, 0);
    }
    function addManager(address _to) onlyOwner public {
        bool exist = false;
        uint index = 0;
        (exist, index) = existManager(_to);
        
        require(!exist);
        
        managers.push(_to);
    }
    function deleteManager(address _to) onlyOwner public {
        bool exist = false;
        uint index = 0;
        (exist, index) = existManager(_to);
        
        require(exist);
   
        uint lastElementIndex = managers.length - 1; 
        managers[index] = managers[lastElementIndex];

        delete managers[managers.length - 1];
        managers.length--;
    }

}

contract Pausable is Manager {
    event Pause();
    event Unpause();

    bool public paused = false;

    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    modifier whenPaused() {
        require(paused);
        _;
    }

    function pause() onlyManagers whenNotPaused public {
        paused = true;
        emit Pause();
    }

    function unpause() onlyManagers whenPaused public {
        paused = false;
        emit Unpause();
    }
}

contract ERC20 {
    function totalSupply() public view returns (uint256);
    function balanceOf(address who) public view returns (uint256);
    function allowance(address owner, address spender) public view returns (uint256);
    function transfer(address to, uint256 value) public returns (bool);
    function approve(address spender, uint256 value) public returns (bool);
    function transferFrom(address from, address to, uint256 value) public returns (bool);

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

contract Token is ERC20, Pausable {

    struct sUserInfo {
        uint256 balance;
        bool lock;
        mapping(address => uint256) allowed;
    }
    
    using SafeMath for uint256;

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

  

    mapping(address => sUserInfo) user;

    event Burn(uint256 value);

   
    
    function () public payable {
        revert();
    }
    
    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal view returns (bool) {
        require(_to != address(this));
        require(_to != address(0));
        require(user[_from].balance >= _value);
        if(_lockCheck) {
            require(user[_from].lock == false);
        }
    }

    function lock(address _owner) public onlyManagers returns (bool) {
        require(user[_owner].lock == false);
       
        user[_owner].lock = true;
        return true;
    }
    function unlock(address _owner) public onlyManagers returns (bool) {
        require(user[_owner].lock == true);
        user[_owner].lock = false;
       return true;
    }
 
    function burn(uint256 _value) public onlyOwner returns (bool) {
        require(_value <= user[msg.sender].balance);
        user[msg.sender].balance = user[msg.sender].balance.sub(_value);
        totalSupply = totalSupply.sub(_value);
        emit Burn(_value);
        return true;
    }

    function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
        require(_value == 0 || user[msg.sender].allowed[_spender] == 0); 
        user[msg.sender].allowed[_spender] = _value; 
        emit Approval(msg.sender, _spender, _value);
        return true;
    }
    function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
        validTransfer(_from, _to, _value, true);
        require(_value <=  user[_from].allowed[msg.sender]);

        user[_from].balance = user[_from].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);

        user[_from].allowed[msg.sender] = user[_from].allowed[msg.sender].sub(_value);
        emit Transfer(_from, _to, _value);
        return true;
    }
    
    function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
        validTransfer(msg.sender, _to, _value, true);

        user[msg.sender].balance = user[msg.sender].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);

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

    
    function totalSupply() public view returns (uint256) {
        return totalSupply;
    }
    function balanceOf(address _owner) public view returns (uint256) {
        return user[_owner].balance;
    }
    function lockState(address _owner) public view returns (bool) {
        return user[_owner].lock;
    }
    function allowance(address _owner, address _spender) public view returns (uint256) {
        return user[_owner].allowed[_spender];
    }
    
}

contract LockBalance is Manager {
    

    struct sLockInfo {
        uint256[] lockBalanceStandard;
        uint256[] endTime;
    }
    
    using SafeMath for uint256;

    mapping(address => sLockInfo) lockUser;

    event Lock(address indexed from, uint256 value, uint256 endTime);
    
    function setLockUser(address _to, uint256 _value, uint256 _endTime) onlyManagers public {
        require(_endTime > now); 
        require(_value > 0); 
        lockUser[_to].lockBalanceStandard.push(_value);
        lockUser[_to].endTime.push(_endTime);

        emit Lock(_to, _value, _endTime);
    }
    function setLockUsers(address[] _to, uint256[] _value, uint256[] _endTime) onlyManagers public {  
        require(_to.length > 0);
        require(_to.length == _value.length);
        require(_to.length == _endTime.length);
      
        for(uint256 i = 0; i < _to.length; i++){
            setLockUser(_to[i], _value[i], _endTime[i]);
        }
    }
    
  
    function lockBalanceIndividual(address _owner, uint _index) internal view returns (uint256) {
        if(now < lockUser[_owner].endTime[_index]) {
            return lockUser[_owner].lockBalanceStandard[_index];
        } else {
            return 0;
        }
    }
    
    function clearLockUserInfo(address _holder) onlyManagers public {
        lockUser[_holder].endTime.length = 0;
        lockUser[_holder].lockBalanceStandard.length = 0;
    }
    function deleteLockUserInfoIdx(address _holder, uint256 idx) onlyManagers public {
        require(idx < lockUser[_holder].endTime.length);

        if (idx != lockUser[_holder].endTime.length - 1) {
            lockUser[_holder].endTime[idx] = lockUser[_holder].endTime[lockUser[_holder].endTime.length - 1];
            lockUser[_holder].lockBalanceStandard[idx] = lockUser[_holder].lockBalanceStandard[lockUser[_holder].lockBalanceStandard.length - 1];
        }
        lockUser[_holder].endTime.length--;
        lockUser[_holder].lockBalanceStandard.length--;
        
    }
    function _deleteLockUserInfo(address _to, uint256 _endTime) internal {

        bool isExists = false;
        uint256 index = 0;
        for(uint256 i = 0; i < lockUser[_to].endTime.length; i++) {
            if(lockUser[_to].endTime[i] == _endTime) {
                isExists = true;
                index = i;
                break;
            }
        }
        require(isExists);

        deleteLockUserInfoIdx(_to, index);
    }
    function deleteLockUserInfos(address _to, uint256[] _endTime) onlyManagers public {
        for(uint256 i = 0; i < _endTime.length; i++){
            _deleteLockUserInfo(_to, _endTime[i]);
        }
    }

    function lockUserInfo(address _owner, uint256 idx) public view returns (uint256, uint256) {
        return (
            lockUser[_owner].lockBalanceStandard[idx],
        lockUser[_owner].endTime[idx]);
    }
    function lockUserInfo(address _owner) public view returns (uint256[], uint256[]) {
        
        return (
        lockUser[_owner].lockBalanceStandard,
        lockUser[_owner].endTime);
    }
    function lockBalanceAll(address _owner) public view returns (uint256) {
        uint256 lockBalance = 0;
        for(uint256 i = 0; i < lockUser[_owner].lockBalanceStandard.length; i++){
            lockBalance = lockBalance.add(lockBalanceIndividual(_owner, i));
        }
        return lockBalance;
    }
    
}

contract StandardToken is Token, LockBalance {

    bool public isFinishRestore = false;
    bool public isFinishMint = false;

    constructor(string memory name_, string memory symbol_, uint8 decimals_, uint256 supply_) public {
        name = name_;
        symbol = symbol_;
        decimals = decimals_;
        uint256 initialSupply = supply_;
        totalSupply = initialSupply * 10 ** uint(decimals);
        user[owner].balance = totalSupply;
        emit Transfer(address(0), owner, totalSupply);
    }

    function validTransfer(address _from, address _to, uint256 _value, bool _lockCheck) internal view returns (bool) {
        super.validTransfer(_from, _to, _value, _lockCheck);
        if(_lockCheck) {
            require(_value <= useBalanceOf(_from));
        }
    }

    function transferWithtLockUser(address _to, uint256 _amount, uint256[] _lockAmount, uint256[] _endTime) onlyManagers public {  
        require(_lockAmount.length > 0);
        require(_lockAmount.length == _endTime.length);
        
        transfer(_to, _amount);
        
        for(uint256 i = 0; i < _lockAmount.length; i++){
            setLockUser(_to, _lockAmount[i], _endTime[i]);
        }
        
    }
 
    function useBalanceOf(address _owner) public view returns (uint256) {
        return balanceOf(_owner).sub(lockBalanceAll(_owner));
    }
  
    function finishMint() onlyOwner public {
        isFinishMint = true;
    }
    function finishRestore() onlyOwner public {
        isFinishRestore = true;
    }
    function mint(address _owner, uint256 _value) onlyOwner public returns (bool) {
        require(!isFinishMint);
        require(_value > 0);
        user[_owner].balance = user[_owner].balance.add(_value);
        totalSupply = totalSupply.add(_value);
        emit Transfer(this, _owner, _value);
        return true;
    }
   
    function transferRestore(address _from, address _to, uint256 _value) public onlyOwner returns (bool) {
        require(!isFinishRestore);
        require(user[_from].balance >= _value);
        require(_value > 0);
        
        user[_from].balance = user[_from].balance.sub(_value);
        user[_to].balance = user[_to].balance.add(_value);

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

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockBalanceAll","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"},{"name":"_endTime","type":"uint256"}],"name":"setLockUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"}],"name":"clearLockUserInfo","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"idx","type":"uint256"}],"name":"lockUserInfo","outputs":[{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"addManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"unlock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isFinishRestore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"},{"name":"_value","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferRestore","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_holder","type":"address"},{"name":"idx","type":"uint256"}],"name":"deleteLockUserInfoIdx","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isFinishMint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"useBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address[]"},{"name":"_value","type":"uint256[]"},{"name":"_endTime","type":"uint256[]"}],"name":"setLockUsers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishRestore","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockState","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"}],"name":"deleteManager","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_endTime","type":"uint256[]"}],"name":"deleteLockUserInfos","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getManagers","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"lockUserInfo","outputs":[{"name":"","type":"uint256[]"},{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"},{"name":"_lockAmount","type":"uint256[]"},{"name":"_endTime","type":"uint256[]"}],"name":"transferWithtLockUser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"lock","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"name_","type":"string"},{"name":"symbol_","type":"string"},{"name":"decimals_","type":"uint8"},{"name":"supply_","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"value","type":"uint256"},{"indexed":false,"name":"endTime","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]

60806040526000600260006101000a81548160ff0219169083151502179055506000600960006101000a81548160ff0219169083151502179055506000600960016101000a81548160ff0219169083151502179055503480156200006257600080fd5b5060405162003d1138038062003d11833981018060405281019080805182019291906020018051820192919060200180519060200190929190805190602001909291905050506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555084600390805190602001906200010292919062000256565b5083600490805190602001906200011b92919062000256565b5082600560006101000a81548160ff021916908360ff160217905550819050600560009054906101000a900460ff1660ff16600a0a8102600681905550600654600760008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a3505050505062000305565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029957805160ff1916838001178555620002ca565b82800160010185558215620002ca579182015b82811115620002c9578251825591602001919060010190620002ac565b5b509050620002d99190620002dd565b5090565b6200030291905b80821115620002fe576000816000905550600101620002e4565b5090565b90565b6139fc80620003156000396000f3006080604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f146101d257806306fdde0314610229578063072f3b67146102b9578063095ea7b314610310578063106ac57b1461037557806318160ddd146103b857806323b872dd146103e357806328d080f1146104685780632d06177a146104d05780632f6c493c14610513578063313ce5671461056e578063351779991461059f5780633f4ba83a146105ce57806340c10f19146105e55780634149953d1461064a57806342966c68146106cf57806351ecf2c214610714578063572b4032146107615780635c975abb1461079057806369132d43146107bf57806370a08231146108165780637e26b62d1461086d5780638456cb59146109595780638da5cb5b1461097057806390e99b09146109c757806394dbc70e146109de57806395d89b4114610a395780639679976014610ac9578063a19c77c714610b0c578063a8d088bb14610b92578063a9059cbb14610bfe578063ac1a717514610c63578063dd62ed3e14610d43578063e0c3e1e714610dba578063e4cc18be14610e8d578063f2fde38b14610ea4578063f435f5a714610ee7575b600080fd5b3480156101de57600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f42565b6040518082815260200191505060405180910390f35b34801561023557600080fd5b5061023e610fd1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561027e578082015181840152602081019050610263565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c557600080fd5b5061030e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061106f565b005b34801561031c57600080fd5b5061035b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611248565b604051808215151515815260200191505060405180910390f35b34801561038157600080fd5b506103b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113f2565b005b3480156103c457600080fd5b506103cd61151e565b6040518082815260200191505060405180910390f35b3480156103ef57600080fd5b5061044e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611528565b604051808215151515815260200191505060405180910390f35b34801561047457600080fd5b506104b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061189d565b604051808381526020018281526020019250505060405180910390f35b3480156104dc57600080fd5b50610511600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061195f565b005b34801561051f57600080fd5b50610554600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a4e565b604051808215151515815260200191505060405180910390f35b34801561057a57600080fd5b50610583611b9e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156105ab57600080fd5b506105b4611bb1565b604051808215151515815260200191505060405180910390f35b3480156105da57600080fd5b506105e3611bc4565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cb1565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b506106b5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e5e565b604051808215151515815260200191505060405180910390f35b3480156106db57600080fd5b506106fa600480360381019080803590602001909291905050506120dd565b604051808215151515815260200191505060405180910390f35b34801561072057600080fd5b5061075f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612281565b005b34801561076d57600080fd5b5061077661265d565b604051808215151515815260200191505060405180910390f35b34801561079c57600080fd5b506107a5612670565b604051808215151515815260200191505060405180910390f35b3480156107cb57600080fd5b50610800600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612683565b6040518082815260200191505060405180910390f35b34801561082257600080fd5b50610857600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126af565b6040518082815260200191505060405180910390f35b34801561087957600080fd5b506109576004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506126fb565b005b34801561096557600080fd5b5061096e612826565b005b34801561097c57600080fd5b50610985612914565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109d357600080fd5b506109dc612939565b005b3480156109ea57600080fd5b50610a1f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129b1565b604051808215151515815260200191505060405180910390f35b348015610a4557600080fd5b50610a4e612a0a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a8e578082015181840152602081019050610a73565b50505050905090810190601f168015610abb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ad557600080fd5b50610b0a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612aa8565b005b348015610b1857600080fd5b50610b90600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612c26565b005b348015610b9e57600080fd5b50610ba7612cf1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610bea578082015181840152602081019050610bcf565b505050509050019250505060405180910390f35b348015610c0a57600080fd5b50610c49600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d7f565b604051808215151515815260200191505060405180910390f35b348015610c6f57600080fd5b50610ca4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f50565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610ceb578082015181840152602081019050610cd0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610d2d578082015181840152602081019050610d12565b5050505090500194505050505060405180910390f35b348015610d4f57600080fd5b50610da4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613084565b6040518082815260200191505060405180910390f35b348015610dc657600080fd5b50610e8b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061310e565b005b348015610e9957600080fd5b50610ea261321e565b005b348015610eb057600080fd5b50610ee5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613296565b005b348015610ef357600080fd5b50610f28600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133eb565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610fc757610fb8610fa9858361353b565b8361360a90919063ffffffff16565b91508080600101915050610f4f565b8192505050919050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110675780601f1061103c57610100808354040283529160200191611067565b820191906000526020600020905b81548152906001019060200180831161104a57829003601f168201915b505050505081565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156110d457600191506110ea565b600090506110e133613628565b80925081935050505b8115156110f657600080fd5b428311151561110457600080fd5b60008411151561111357600080fd5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001849080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018390806001815401808255809150509060018203906000526020600020016000909192909190915055508473ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8585604051808381526020018281526020019250505060405180910390a25050505050565b6000600260009054906101000a900460ff1615151561126657600080fd5b60008214806112f457506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15156112ff57600080fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611457576001915061146d565b6000905061146433613628565b80925081935050505b81151561147957600080fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101816114c89190613953565b506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001816115189190613953565b50505050565b6000600654905090565b6000600260009054906101000a900460ff1615151561154657600080fd5b61155384848460016136d5565b50600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156115e257600080fd5b61163782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461370a90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506116d282600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461360a90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506117aa82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461370a90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001838154811015156118ef57fe5b9060005260206000200154600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561194957fe5b9060005260206000200154915091509250929050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119bd57600080fd5b60009150600090506119ce83613628565b8092508193505050811515156119e357600080fd5b60018390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ab45760019150611aca565b60009050611ac133613628565b80925081935050505b811515611ad657600080fd5b60011515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515611b3857600080fd5b6000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b600560009054906101000a900460ff1681565b600960009054906101000a900460ff1681565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c295760019150611c3f565b60009050611c3633613628565b80925081935050505b811515611c4b57600080fd5b600260009054906101000a900460ff161515611c6657600080fd5b6000600260006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d0e57600080fd5b600960019054906101000a900460ff16151515611d2a57600080fd5b600082111515611d3957600080fd5b611d8e82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461360a90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611de98260065461360a90919063ffffffff16565b6006819055508273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ebb57600080fd5b600960009054906101000a900460ff16151515611ed757600080fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410151515611f2857600080fd5b600082111515611f3757600080fd5b611f8c82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461370a90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061202782600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461360a90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561213a57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561218b57600080fd5b6121e082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461370a90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061223b8260065461370a90919063ffffffff16565b6006819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a160019050919050565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156122e657600191506122fc565b600090506122f333613628565b80925081935050505b81151561230857600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508310151561235b57600080fd5b6001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905003831415156125ab57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561244357fe5b9060005260206000200154600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561249d57fe5b9060005260206000200181905550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016001600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490500381548110151561254257fe5b9060005260206000200154600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561259c57fe5b90600052602060002001819055505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054809190600190036126009190613953565b50600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054809190600190036126569190613953565b5050505050565b600960019054906101000a900460ff1681565b600260009054906101000a900460ff1681565b60006126a861269183610f42565b61269a846126af565b61370a90919063ffffffff16565b9050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127615760019150612777565b6000905061276e33613628565b80925081935050505b81151561278357600080fd5b6000865111151561279357600080fd5b845186511415156127a357600080fd5b835186511415156127b357600080fd5b600092505b855183101561281e5761281186848151811015156127d257fe5b9060200190602002015186858151811015156127ea57fe5b90602001906020020151868681518110151561280257fe5b9060200190602002015161106f565b82806001019350506127b8565b505050505050565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561288b57600191506128a1565b6000905061289833613628565b80925081935050505b8115156128ad57600080fd5b600260009054906101000a900460ff161515156128c957600080fd5b6001600260006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561299457600080fd5b6001600960006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612aa05780601f10612a7557610100808354040283529160200191612aa0565b820191906000526020600020905b815481529060010190602001808311612a8357829003601f168201915b505050505081565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b0857600080fd5b6000925060009150612b1984613628565b8093508194505050821515612b2d57600080fd5b60018080549050039050600181815481101515612b4657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600183815481101515612b8057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180808054905003815481101515612bdd57fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001805480919060019003612c1f919061397f565b5050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612c8c5760019150612ca2565b60009050612c9933613628565b80925081935050505b811515612cae57600080fd5b600092505b8351831015612cea57612cdd858585815181101515612cce57fe5b90602001906020020151613723565b8280600101935050612cb3565b5050505050565b60606001805480602002602001604051908101604052809291908181526020018280548015612d7557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612d2b575b5050505050905090565b6000600260009054906101000a900460ff16151515612d9d57600080fd5b612daa33848460016136d5565b50612e0082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461370a90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612e9b82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461360a90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b606080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018180548060200260200160405190810160405280929190818152602001828054801561302257602002820191906000526020600020905b81548152602001906001019080831161300e575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561307457602002820191906000526020600020905b815481526020019060010190808311613060575b5050505050905091509150915091565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613174576001915061318a565b6000905061318133613628565b80925081935050505b81151561319657600080fd5b600085511115156131a657600080fd5b835185511415156131b657600080fd5b6131c08787612d7f565b50600092505b8451831015613215576132088786858151811015156131e157fe5b9060200190602002015186868151811015156131f957fe5b9060200190602002015161106f565b82806001019350506131c6565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561327957600080fd5b6001600960016101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132f157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561332d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156134515760019150613467565b6000905061345e33613628565b80925081935050505b81151561347357600080fd5b60001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151415156134d557600080fd5b6001600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018281548110151561358c57fe5b90600052602060002001544210156135ff57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811015156135ed57fe5b90600052602060002001549050613604565b600090505b92915050565b600080828401905083811015151561361e57fe5b8091505092915050565b60008060008090505b6001805490508110156136c4578373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561366457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156136b757600181925092506136cf565b8080600101915050613631565b600080809050925092505b50915091565b60006136e385858585613818565b508115613702576136f385612683565b831115151561370157600080fd5b5b949350505050565b600082821115151561371857fe5b818303905092915050565b600080600080925060009150600090505b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508110156137fb5783600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156137d157fe5b906000526020600020015414156137ee57600192508091506137fb565b8080600101915050613734565b82151561380757600080fd5b6138118583612281565b5050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561385557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561389157600080fd5b82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154101515156138e257600080fd5b811561394b5760001515600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561394a57600080fd5b5b949350505050565b81548183558181111561397a5781836000526020600020918201910161397991906139ab565b5b505050565b8154818355818111156139a6578183600052602060002091820191016139a591906139ab565b5b505050565b6139cd91905b808211156139c95760008160009055506001016139b1565b5090565b905600a165627a7a72305820876bffc25a3ccb8137345f63a56252c53b0d38a0a75a4a2c4ac4eec207a22ea80029000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000012a05f20000000000000000000000000000000000000000000000000000000000000000104b20706f7020636c69636b20636f696e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034b50430000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101cd576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063015d200f146101d257806306fdde0314610229578063072f3b67146102b9578063095ea7b314610310578063106ac57b1461037557806318160ddd146103b857806323b872dd146103e357806328d080f1146104685780632d06177a146104d05780632f6c493c14610513578063313ce5671461056e578063351779991461059f5780633f4ba83a146105ce57806340c10f19146105e55780634149953d1461064a57806342966c68146106cf57806351ecf2c214610714578063572b4032146107615780635c975abb1461079057806369132d43146107bf57806370a08231146108165780637e26b62d1461086d5780638456cb59146109595780638da5cb5b1461097057806390e99b09146109c757806394dbc70e146109de57806395d89b4114610a395780639679976014610ac9578063a19c77c714610b0c578063a8d088bb14610b92578063a9059cbb14610bfe578063ac1a717514610c63578063dd62ed3e14610d43578063e0c3e1e714610dba578063e4cc18be14610e8d578063f2fde38b14610ea4578063f435f5a714610ee7575b600080fd5b3480156101de57600080fd5b50610213600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f42565b6040518082815260200191505060405180910390f35b34801561023557600080fd5b5061023e610fd1565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561027e578082015181840152602081019050610263565b50505050905090810190601f1680156102ab5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102c557600080fd5b5061030e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919050505061106f565b005b34801561031c57600080fd5b5061035b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611248565b604051808215151515815260200191505060405180910390f35b34801561038157600080fd5b506103b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113f2565b005b3480156103c457600080fd5b506103cd61151e565b6040518082815260200191505060405180910390f35b3480156103ef57600080fd5b5061044e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611528565b604051808215151515815260200191505060405180910390f35b34801561047457600080fd5b506104b3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061189d565b604051808381526020018281526020019250505060405180910390f35b3480156104dc57600080fd5b50610511600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061195f565b005b34801561051f57600080fd5b50610554600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611a4e565b604051808215151515815260200191505060405180910390f35b34801561057a57600080fd5b50610583611b9e565b604051808260ff1660ff16815260200191505060405180910390f35b3480156105ab57600080fd5b506105b4611bb1565b604051808215151515815260200191505060405180910390f35b3480156105da57600080fd5b506105e3611bc4565b005b3480156105f157600080fd5b50610630600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611cb1565b604051808215151515815260200191505060405180910390f35b34801561065657600080fd5b506106b5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e5e565b604051808215151515815260200191505060405180910390f35b3480156106db57600080fd5b506106fa600480360381019080803590602001909291905050506120dd565b604051808215151515815260200191505060405180910390f35b34801561072057600080fd5b5061075f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612281565b005b34801561076d57600080fd5b5061077661265d565b604051808215151515815260200191505060405180910390f35b34801561079c57600080fd5b506107a5612670565b604051808215151515815260200191505060405180910390f35b3480156107cb57600080fd5b50610800600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612683565b6040518082815260200191505060405180910390f35b34801561082257600080fd5b50610857600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506126af565b6040518082815260200191505060405180910390f35b34801561087957600080fd5b506109576004803603810190808035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192905050506126fb565b005b34801561096557600080fd5b5061096e612826565b005b34801561097c57600080fd5b50610985612914565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109d357600080fd5b506109dc612939565b005b3480156109ea57600080fd5b50610a1f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129b1565b604051808215151515815260200191505060405180910390f35b348015610a4557600080fd5b50610a4e612a0a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a8e578082015181840152602081019050610a73565b50505050905090810190601f168015610abb5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610ad557600080fd5b50610b0a600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612aa8565b005b348015610b1857600080fd5b50610b90600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050612c26565b005b348015610b9e57600080fd5b50610ba7612cf1565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015610bea578082015181840152602081019050610bcf565b505050509050019250505060405180910390f35b348015610c0a57600080fd5b50610c49600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612d7f565b604051808215151515815260200191505060405180910390f35b348015610c6f57600080fd5b50610ca4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f50565b604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610ceb578082015181840152602081019050610cd0565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610d2d578082015181840152602081019050610d12565b5050505090500194505050505060405180910390f35b348015610d4f57600080fd5b50610da4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613084565b6040518082815260200191505060405180910390f35b348015610dc657600080fd5b50610e8b600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080602002602001604051908101604052809392919081815260200183836020028082843782019150505050505091929192908035906020019082018035906020019080806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050919291929050505061310e565b005b348015610e9957600080fd5b50610ea261321e565b005b348015610eb057600080fd5b50610ee5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613296565b005b348015610ef357600080fd5b50610f28600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506133eb565b604051808215151515815260200191505060405180910390f35b6000806000809150600090505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000180549050811015610fc757610fb8610fa9858361353b565b8361360a90919063ffffffff16565b91508080600101915050610f4f565b8192505050919050565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110675780601f1061103c57610100808354040283529160200191611067565b820191906000526020600020905b81548152906001019060200180831161104a57829003601f168201915b505050505081565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156110d457600191506110ea565b600090506110e133613628565b80925081935050505b8115156110f657600080fd5b428311151561110457600080fd5b60008411151561111357600080fd5b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001849080600181540180825580915050906001820390600052602060002001600090919290919091505550600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018390806001815401808255809150509060018203906000526020600020016000909192909190915055508473ffffffffffffffffffffffffffffffffffffffff167f49eaf4942f1237055eb4cfa5f31c9dfe50d5b4ade01e021f7de8be2fbbde557b8585604051808381526020018281526020019250505060405180910390a25050505050565b6000600260009054906101000a900460ff1615151561126657600080fd5b60008214806112f457506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b15156112ff57600080fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611457576001915061146d565b6000905061146433613628565b80925081935050505b81151561147957600080fd5b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101816114c89190613953565b506000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001816115189190613953565b50505050565b6000600654905090565b6000600260009054906101000a900460ff1615151561154657600080fd5b61155384848460016136d5565b50600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111515156115e257600080fd5b61163782600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461370a90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506116d282600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461360a90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055506117aa82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461370a90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600080600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001838154811015156118ef57fe5b9060005260206000200154600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561194957fe5b9060005260206000200154915091509250929050565b6000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156119bd57600080fd5b60009150600090506119ce83613628565b8092508193505050811515156119e357600080fd5b60018390806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611ab45760019150611aca565b60009050611ac133613628565b80925081935050505b811515611ad657600080fd5b60011515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff161515141515611b3857600080fd5b6000600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b600560009054906101000a900460ff1681565b600960009054906101000a900460ff1681565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c295760019150611c3f565b60009050611c3633613628565b80925081935050505b811515611c4b57600080fd5b600260009054906101000a900460ff161515611c6657600080fd5b6000600260006101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d0e57600080fd5b600960019054906101000a900460ff16151515611d2a57600080fd5b600082111515611d3957600080fd5b611d8e82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461360a90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550611de98260065461360a90919063ffffffff16565b6006819055508273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611ebb57600080fd5b600960009054906101000a900460ff16151515611ed757600080fd5b81600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410151515611f2857600080fd5b600082111515611f3757600080fd5b611f8c82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461370a90919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061202782600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461360a90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561213a57600080fd5b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154821115151561218b57600080fd5b6121e082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461370a90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018190555061223b8260065461370a90919063ffffffff16565b6006819055507fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb826040518082815260200191505060405180910390a160019050919050565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156122e657600191506122fc565b600090506122f333613628565b80925081935050505b81151561230857600080fd5b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508310151561235b57600080fd5b6001600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054905003831415156125ab57600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001016001600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490500381548110151561244357fe5b9060005260206000200154600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018481548110151561249d57fe5b9060005260206000200181905550600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016001600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001805490500381548110151561254257fe5b9060005260206000200154600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018481548110151561259c57fe5b90600052602060002001819055505b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018054809190600190036126009190613953565b50600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000018054809190600190036126569190613953565b5050505050565b600960019054906101000a900460ff1681565b600260009054906101000a900460ff1681565b60006126a861269183610f42565b61269a846126af565b61370a90919063ffffffff16565b9050919050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001549050919050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127615760019150612777565b6000905061276e33613628565b80925081935050505b81151561278357600080fd5b6000865111151561279357600080fd5b845186511415156127a357600080fd5b835186511415156127b357600080fd5b600092505b855183101561281e5761281186848151811015156127d257fe5b9060200190602002015186858151811015156127ea57fe5b90602001906020020151868681518110151561280257fe5b9060200190602002015161106f565b82806001019350506127b8565b505050505050565b600080600091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561288b57600191506128a1565b6000905061289833613628565b80925081935050505b8115156128ad57600080fd5b600260009054906101000a900460ff161515156128c957600080fd5b6001600260006101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a15050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561299457600080fd5b6001600960006101000a81548160ff021916908315150217905550565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff169050919050565b60048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612aa05780601f10612a7557610100808354040283529160200191612aa0565b820191906000526020600020905b815481529060010190602001808311612a8357829003601f168201915b505050505081565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515612b0857600080fd5b6000925060009150612b1984613628565b8093508194505050821515612b2d57600080fd5b60018080549050039050600181815481101515612b4657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600183815481101515612b8057fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180808054905003815481101515612bdd57fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001805480919060019003612c1f919061397f565b5050505050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415612c8c5760019150612ca2565b60009050612c9933613628565b80925081935050505b811515612cae57600080fd5b600092505b8351831015612cea57612cdd858585815181101515612cce57fe5b90602001906020020151613723565b8280600101935050612cb3565b5050505050565b60606001805480602002602001604051908101604052809291908181526020018280548015612d7557602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311612d2b575b5050505050905090565b6000600260009054906101000a900460ff16151515612d9d57600080fd5b612daa33848460016136d5565b50612e0082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461370a90919063ffffffff16565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550612e9b82600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015461360a90919063ffffffff16565b600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b606080600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018180548060200260200160405190810160405280929190818152602001828054801561302257602002820191906000526020600020905b81548152602001906001019080831161300e575b505050505091508080548060200260200160405190810160405280929190818152602001828054801561307457602002820191906000526020600020905b815481526020019060010190808311613060575b5050505050905091509150915091565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415613174576001915061318a565b6000905061318133613628565b80925081935050505b81151561319657600080fd5b600085511115156131a657600080fd5b835185511415156131b657600080fd5b6131c08787612d7f565b50600092505b8451831015613215576132088786858151811015156131e157fe5b9060200190602002015186868151811015156131f957fe5b9060200190602002015161106f565b82806001019350506131c6565b50505050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561327957600080fd5b6001600960016101000a81548160ff021916908315150217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156132f157600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561332d57600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060008091503373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156134515760019150613467565b6000905061345e33613628565b80925081935050505b81151561347357600080fd5b60001515600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff1615151415156134d557600080fd5b6001600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160006101000a81548160ff021916908315150217905550600192505050919050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001018281548110151561358c57fe5b90600052602060002001544210156135ff57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001828154811015156135ed57fe5b90600052602060002001549050613604565b600090505b92915050565b600080828401905083811015151561361e57fe5b8091505092915050565b60008060008090505b6001805490508110156136c4578373ffffffffffffffffffffffffffffffffffffffff1660018281548110151561366457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156136b757600181925092506136cf565b8080600101915050613631565b600080809050925092505b50915091565b60006136e385858585613818565b508115613702576136f385612683565b831115151561370157600080fd5b5b949350505050565b600082821115151561371857fe5b818303905092915050565b600080600080925060009150600090505b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101805490508110156137fb5783600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101828154811015156137d157fe5b906000526020600020015414156137ee57600192508091506137fb565b8080600101915050613734565b82151561380757600080fd5b6138118583612281565b5050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561385557600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415151561389157600080fd5b82600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154101515156138e257600080fd5b811561394b5760001515600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16151514151561394a57600080fd5b5b949350505050565b81548183558181111561397a5781836000526020600020918201910161397991906139ab565b5b505050565b8154818355818111156139a6578183600052602060002091820191016139a591906139ab565b5b505050565b6139cd91905b808211156139c95760008160009055506001016139b1565b5090565b905600a165627a7a72305820876bffc25a3ccb8137345f63a56252c53b0d38a0a75a4a2c4ac4eec207a22ea80029

Deployed Bytecode Sourcemap

10345:2341:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4134:8;;;10019:313;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10019:313:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3887:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3887:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3887:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7163:311;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7163:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5184:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5184:301:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8142:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8142:178:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6376:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6376:90:0;;;;;;;;;;;;;;;;;;;;;;;5491:504;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5491:504:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9594:213;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9594:213:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1904:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1904:232:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4694:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4694:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3939:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3939:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;10399:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10399:35:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2923:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2923:108:0;;;;;;11915:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11915:331:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12257:426;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12257:426:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4880:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4880:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8326:590;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8326:590:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10441:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10441:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;2618:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2618:26:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11594:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11594:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6472:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6472:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7480:362;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7480:362:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2809:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2809:106:0;;;;;;701:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;701:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;11826:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11826:83:0;;;;;;6589:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6589:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3912:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3912:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;3912:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2142:387;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2142:387:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9378:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9378:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1531:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1531:95:0;;;;;;;;;;;;;;;;;6007:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6007:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9813:200;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9813:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9813:200:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;9813:200:0;;;;;;;;;;;;;;;;;;;6700:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6700:139:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11160:425;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11160:425:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11743:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11743:77:0;;;;;;976:192;;8:9:-1;5:2;;;30:1;27;20:12;5:2;976:192:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4503:185;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4503:185:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10019:313;10080:7;10100:19;10138:9;10122:1;10100:23;;10150:1;10138:13;;10134:162;10157:8;:16;10166:6;10157:16;;;;;;;;;;;;;;;:36;;:43;;;;10153:1;:47;10134:162;;;10235:49;10251:32;10273:6;10281:1;10251:21;:32::i;:::-;10235:11;:15;;:49;;;;:::i;:::-;10221:63;;10202:3;;;;;;;10134:162;;;10313:11;10306:18;;10019:313;;;;;:::o;3887:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7163:311::-;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;7281:3;7270:8;:14;7262:23;;;;;;;;7314:1;7305:6;:10;7297:19;;;;;;;;7328:8;:13;7337:3;7328:13;;;;;;;;;;;;;;;:33;;7367:6;7328:46;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7328:46:0;;;;;;;;;;;;;;;;;;;;;;7385:8;:13;7394:3;7385:13;;;;;;;;;;;;;;;:21;;7412:8;7385:36;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;7385:36:0;;;;;;;;;;;;;;;;;;;;;;7444:3;7439:27;;;7449:6;7457:8;7439:27;;;;;;;;;;;;;;;;;;;;;;;;7163:311;;;;;:::o;5184:301::-;5265:4;2698:6;;;;;;;;;;;2697:7;2689:16;;;;;;;;5300:1;5290:6;:11;:54;;;;5343:1;5305:4;:16;5310:10;5305:16;;;;;;;;;;;;;;;:24;;:34;5330:8;5305:34;;;;;;;;;;;;;;;;:39;5290:54;5282:63;;;;;;;;5394:6;5357:4;:16;5362:10;5357:16;;;;;;;;;;;;;;;:24;;:34;5382:8;5357:34;;;;;;;;;;;;;;;:43;;;;5438:8;5417:38;;5426:10;5417:38;;;5448:6;5417:38;;;;;;;;;;;;;;;;;;5473:4;5466:11;;5184:301;;;;:::o;8142:178::-;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;8252:1;8217:8;:17;8226:7;8217:17;;;;;;;;;;;;;;;:25;;:36;;;;;:::i;:::-;;8311:1;8264:8;:17;8273:7;8264:17;;;;;;;;;;;;;;;:37;;:48;;;;;:::i;:::-;;8142:178;;;:::o;6376:90::-;6420:7;6447:11;;6440:18;;6376:90;:::o;5491:504::-;5587:4;2698:6;;;;;;;;;;;2697:7;2689:16;;;;;;;;5604:39;5618:5;5625:3;5630:6;5638:4;5604:13;:39::i;:::-;;5673:4;:11;5678:5;5673:11;;;;;;;;;;;;;;;:19;;:31;5693:10;5673:31;;;;;;;;;;;;;;;;5662:6;:42;;5654:51;;;;;;;;5740:31;5764:6;5740:4;:11;5745:5;5740:11;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;5718:4;:11;5723:5;5718:11;;;;;;;;;;;;;;;:19;;:53;;;;5802:29;5824:6;5802:4;:9;5807:3;5802:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;5782:4;:9;5787:3;5782:9;;;;;;;;;;;;;;;:17;;:49;;;;5878:43;5914:6;5878:4;:11;5883:5;5878:11;;;;;;;;;;;;;;;:19;;:31;5898:10;5878:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;5844:4;:11;5849:5;5844:11;;;;;;;;;;;;;;;:19;;:31;5864:10;5844:31;;;;;;;;;;;;;;;:77;;;;5953:3;5937:28;;5946:5;5937:28;;;5958:6;5937:28;;;;;;;;;;;;;;;;;;5983:4;5976:11;;5491:504;;;;;:::o;9594:213::-;9666:7;9675;9717:8;:16;9726:6;9717:16;;;;;;;;;;;;;;;:36;;9754:3;9717:41;;;;;;;;;;;;;;;;;;9769:8;:16;9778:6;9769:16;;;;;;;;;;;;;;;:24;;9794:3;9769:29;;;;;;;;;;;;;;;;;;9695:104;;;;9594:213;;;;;:::o;1904:232::-;1965:10;1994;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1978:5;1965:18;;2007:1;1994:14;;2036:17;2049:3;2036:12;:17::i;:::-;2019:34;;;;;;;;2083:5;2082:6;2074:15;;;;;;;;2110:8;2124:3;2110:18;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;2110:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1904:232;;;:::o;4694:177::-;4755:4;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;4801:4;4780:25;;:4;:12;4785:6;4780:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:25;;;4772:34;;;;;;;;4837:5;4817:4;:12;4822:6;4817:12;;;;;;;;;;;;;;;:17;;;:25;;;;;;;;;;;;;;;;;;4859:4;4852:11;;4694:177;;;;;:::o;3939:21::-;;;;;;;;;;;;;:::o;10399:35::-;;;;;;;;;;;;;:::o;2923:108::-;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;2774:6;;;;;;;;;;;2766:15;;;;;;;;2993:5;2984:6;;:14;;;;;;;;;;;;;;;;;;3014:9;;;;;;;;;;2923:108;;:::o;11915:331::-;11987:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;12013:12;;;;;;;;;;;12012:13;12004:22;;;;;;;;12054:1;12045:6;:10;12037:19;;;;;;;;12090:32;12115:6;12090:4;:12;12095:6;12090:12;;;;;;;;;;;;;;;:20;;;:24;;:32;;;;:::i;:::-;12067:4;:12;12072:6;12067:12;;;;;;;;;;;;;;;:20;;:55;;;;12147:23;12163:6;12147:11;;:15;;:23;;;;:::i;:::-;12133:11;:37;;;;12201:6;12186:30;;12195:4;12186:30;;;12209:6;12186:30;;;;;;;;;;;;;;;;;;12234:4;12227:11;;11915:331;;;;:::o;12257:426::-;12352:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;12378:15;;;;;;;;;;;12377:16;12369:25;;;;;;;;12436:6;12413:4;:11;12418:5;12413:11;;;;;;;;;;;;;;;:19;;;:29;;12405:38;;;;;;;;12471:1;12462:6;:10;12454:19;;;;;;;;12516:31;12540:6;12516:4;:11;12521:5;12516:11;;;;;;;;;;;;;;;:19;;;:23;;:31;;;;:::i;:::-;12494:4;:11;12499:5;12494:11;;;;;;;;;;;;;;;:19;;:53;;;;12578:29;12600:6;12578:4;:9;12583:3;12578:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;12558:4;:9;12563:3;12558:9;;;;;;;;;;;;;;;:17;;:49;;;;12641:3;12625:28;;12634:5;12625:28;;;12646:6;12625:28;;;;;;;;;;;;;;;;;;12671:4;12664:11;;12257:426;;;;;:::o;4880:296::-;4936:4;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;4971:4;:16;4976:10;4971:16;;;;;;;;;;;;;;;:24;;;4961:6;:34;;4953:43;;;;;;;;5034:36;5063:6;5034:4;:16;5039:10;5034:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;5007:4;:16;5012:10;5007:16;;;;;;;;;;;;;;;:24;;:63;;;;5095:23;5111:6;5095:11;;:15;;:23;;;;:::i;:::-;5081:11;:37;;;;5134:12;5139:6;5134:12;;;;;;;;;;;;;;;;;;5164:4;5157:11;;4880:296;;;:::o;8326:590::-;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;8432:8;:17;8441:7;8432:17;;;;;;;;;;;;;;;:25;;:32;;;;8426:3;:38;8418:47;;;;;;;;8524:1;8489:8;:17;8498:7;8489:17;;;;;;;;;;;;;;;:25;;:32;;;;:36;8482:3;:43;;8478:319;;;8575:8;:17;8584:7;8575:17;;;;;;;;;;;;;;;:25;;8636:1;8601:8;:17;8610:7;8601:17;;;;;;;;;;;;;;;:25;;:32;;;;:36;8575:63;;;;;;;;;;;;;;;;;;8542:8;:17;8551:7;8542:17;;;;;;;;;;;;;;;:25;;8568:3;8542:30;;;;;;;;;;;;;;;;;:96;;;;8698:8;:17;8707:7;8698:17;;;;;;;;;;;;;;;:37;;8783:1;8736:8;:17;8745:7;8736:17;;;;;;;;;;;;;;;:37;;:44;;;;:48;8698:87;;;;;;;;;;;;;;;;;;8653:8;:17;8662:7;8653:17;;;;;;;;;;;;;;;:37;;8691:3;8653:42;;;;;;;;;;;;;;;;;:132;;;;8478:319;8807:8;:17;8816:7;8807:17;;;;;;;;;;;;;;;:25;;:34;;;;;;;;;;;;:::i;:::-;;8852:8;:17;8861:7;8852:17;;;;;;;;;;;;;;;:37;;:46;;;;;;;;;;;;:::i;:::-;;8326:590;;;;:::o;10441:32::-;;;;;;;;;;;;;:::o;2618:26::-;;;;;;;;;;;;;:::o;11594:139::-;11653:7;11680:45;11702:22;11717:6;11702:14;:22::i;:::-;11680:17;11690:6;11680:9;:17::i;:::-;:21;;:45;;;;:::i;:::-;11673:52;;11594:139;;;:::o;6472:111::-;6528:7;6555:4;:12;6560:6;6555:12;;;;;;;;;;;;;;;:20;;;6548:27;;6472:111;;;:::o;7480:362::-;7730:9;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;7609:1;7596:3;:10;:14;7588:23;;;;;;;;7644:6;:13;7630:3;:10;:27;7622:36;;;;;;;;7691:8;:15;7677:3;:10;:29;7669:38;;;;;;;;7742:1;7730:13;;7726:109;7749:3;:10;7745:1;:14;7726:109;;;7780:43;7792:3;7796:1;7792:6;;;;;;;;;;;;;;;;;;7800;7807:1;7800:9;;;;;;;;;;;;;;;;;;7811:8;7820:1;7811:11;;;;;;;;;;;;;;;;;;7780;:43::i;:::-;7761:3;;;;;;;7726:109;;;7480:362;;;;;;:::o;2809:106::-;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;2698:6;;;;;;;;;;;2697:7;2689:16;;;;;;;;2880:4;2871:6;;:13;;;;;;;;;;;;;;;;;;2900:7;;;;;;;;;;2809:106;;:::o;701:20::-;;;;;;;;;;;;;:::o;11826:83::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;11897:4;11879:15;;:22;;;;;;;;;;;;;;;;;;11826:83::o;6589:105::-;6645:4;6669;:12;6674:6;6669:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;6662:24;;6589:105;;;:::o;3912:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2142:387::-;2206:10;2235;2345:21;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;2219:5;2206:18;;2248:1;2235:14;;2277:17;2290:3;2277:12;:17::i;:::-;2260:34;;;;;;;;2323:5;2315:14;;;;;;;;2387:1;2369:8;:15;;;;:19;2345:43;;2418:8;2427:16;2418:26;;;;;;;;;;;;;;;;;;;;;;;;;;;2400:8;2409:5;2400:15;;;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;2464:8;2491:1;2473:8;:15;;;;:19;2464:29;;;;;;;;;;;;;;;;;;2457:36;;;;;;;;;;;2504:8;:17;;;;;;;;;;;;:::i;:::-;;2142:387;;;;:::o;9378:208::-;9475:9;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;9487:1;9475:13;;9471:108;9494:8;:15;9490:1;:19;9471:108;;;9530:37;9550:3;9555:8;9564:1;9555:11;;;;;;;;;;;;;;;;;;9530:19;:37::i;:::-;9511:3;;;;;;;9471:108;;;9378:208;;;;;:::o;1531:95::-;1575:9;1610:8;1603:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1531:95;:::o;6007:355::-;6084:4;2698:6;;;;;;;;;;;2697:7;2689:16;;;;;;;;6101:44;6115:10;6127:3;6132:6;6140:4;6101:13;:44::i;:::-;;6185:36;6214:6;6185:4;:16;6190:10;6185:16;;;;;;;;;;;;;;;:24;;;:28;;:36;;;;:::i;:::-;6158:4;:16;6163:10;6158:16;;;;;;;;;;;;;;;:24;;:63;;;;6252:29;6274:6;6252:4;:9;6257:3;6252:9;;;;;;;;;;;;;;;:17;;;:21;;:29;;;;:::i;:::-;6232:4;:9;6237:3;6232:9;;;;;;;;;;;;;;;:17;;:49;;;;6320:3;6299:33;;6308:10;6299:33;;;6325:6;6299:33;;;;;;;;;;;;;;;;;;6350:4;6343:11;;6007:355;;;;:::o;9813:200::-;9872:9;9883;9933:8;:16;9942:6;9933:16;;;;;;;;;;;;;;;:36;;9980:8;:16;9989:6;9980:16;;;;;;;;;;;;;;;:24;;9915:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9813:200;;;:::o;6700:139::-;6774:7;6801:4;:12;6806:6;6801:12;;;;;;;;;;;;;;;:20;;:30;6822:8;6801:30;;;;;;;;;;;;;;;;6794:37;;6700:139;;;;:::o;11160:425::-;11453:9;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;11326:1;11305:11;:18;:22;11297:31;;;;;;;;11369:8;:15;11347:11;:18;:37;11339:46;;;;;;;;11406:22;11415:3;11420:7;11406:8;:22::i;:::-;;11465:1;11453:13;;11449:119;11472:11;:18;11468:1;:22;11449:119;;;11511:45;11523:3;11528:11;11540:1;11528:14;;;;;;;;;;;;;;;;;;11544:8;11553:1;11544:11;;;;;;;;;;;;;;;;;;11511;:45::i;:::-;11492:3;;;;;;;11449:119;;;11160:425;;;;;;;:::o;11743:77::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;11808:4;11793:12;;:19;;;;;;;;;;;;;;;;;;11743:77::o;976:192::-;944:5;;;;;;;;;;;930:19;;:10;:19;;;922:28;;;;;;;;1077:1;1057:22;;:8;:22;;;;1049:31;;;;;;;;1124:8;1096:37;;1117:5;;;;;;;;;;;1096:37;;;;;;;;;;;;1152:8;1144:5;;:16;;;;;;;;;;;;;;;;;;976:192;:::o;4503:185::-;4562:4;1280:10;1393;1293:5;1280:18;;1321:10;1312:19;;:5;;;;;;;;;;;:19;;;1309:166;;;1356:4;1348:12;;1309:166;;;1406:1;1393:14;;1439:24;1452:10;1439:12;:24::i;:::-;1422:41;;;;;;;;1309:166;1493:5;1485:14;;;;;;;;4608:5;4587:26;;:4;:12;4592:6;4587:12;;;;;;;;;;;;;;;:17;;;;;;;;;;;;:26;;;4579:35;;;;;;;;4654:4;4634;:12;4639:6;4634:12;;;;;;;;;;;;;;;:17;;;:24;;;;;;;;;;;;;;;;;;4676:4;4669:11;;4503:185;;;;;:::o;7858:272::-;7941:7;7970:8;:16;7979:6;7970:16;;;;;;;;;;;;;;;:24;;7995:6;7970:32;;;;;;;;;;;;;;;;;;7964:3;:38;7961:162;;;8026:8;:16;8035:6;8026:16;;;;;;;;;;;;;;;:36;;8063:6;8026:44;;;;;;;;;;;;;;;;;;8019:51;;;;7961:162;8110:1;8103:8;;7858:272;;;;;:::o;523:147::-;581:7;601:9;617:1;613;:5;601:17;;641:1;636;:6;;629:14;;;;;;661:1;654:8;;523:147;;;;;:::o;1638:260::-;1695:4;1701;1723:6;1732:1;1723:10;;1718:145;1740:8;:15;;;;1736:1;:19;1718:145;;;1796:3;1781:18;;:8;1790:1;1781:11;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;1777:75;;;1828:4;1834:1;1820:16;;;;;;1777:75;1757:3;;;;;;;1718:145;;;1881:5;1888:1;1873:17;;;;;;;1638:260;;;;;:::o;10879:273::-;10986:4;11003:51;11023:5;11030:3;11035:6;11043:10;11003:19;:51::i;:::-;;11068:10;11065:80;;;11113:19;11126:5;11113:12;:19::i;:::-;11103:6;:29;;11095:38;;;;;;;;11065:80;10879:273;;;;;;:::o;394:123::-;452:7;484:1;479;:6;;472:14;;;;;;508:1;504;:5;497:12;;394:123;;;;:::o;8922:450::-;9004:13;9036;9068:9;9020:5;9004:21;;9052:1;9036:17;;9080:1;9068:13;;9064:227;9087:8;:13;9096:3;9087:13;;;;;;;;;;;;;;;:21;;:28;;;;9083:1;:32;9064:227;;;9168:8;9140;:13;9149:3;9140:13;;;;;;;;;;;;;;;:21;;9162:1;9140:24;;;;;;;;;;;;;;;;;;:36;9137:143;;;9208:4;9197:15;;9239:1;9231:9;;9259:5;;9137:143;9117:3;;;;;;;9064:227;;;9309:8;9301:17;;;;;;;;9331:33;9353:3;9358:5;9331:21;:33::i;:::-;8922:450;;;;;:::o;4162:333::-;4269:4;4309;4294:20;;:3;:20;;;;4286:29;;;;;;;;4349:1;4334:17;;:3;:17;;;;4326:26;;;;;;;;4394:6;4371:4;:11;4376:5;4371:11;;;;;;;;;;;;;;;:19;;;:29;;4363:38;;;;;;;;4415:10;4412:76;;;4470:5;4450:25;;:4;:11;4455:5;4450:11;;;;;;;;;;;;;;;:16;;;;;;;;;;;;:25;;;4442:34;;;;;;;;4412:76;4162:333;;;;;;:::o;10345:2341::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://876bffc25a3ccb8137345f63a56252c53b0d38a0a75a4a2c4ac4eec207a22ea8
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.