ETH Price: $3,603.67 (+4.38%)
 

Overview

Max Total Supply

2,000,000,000 ECKN

Holders

191

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
5 ECKN

Value
$0.00
0x25767d0f3924d89a90072c4d816bd8d2cfcdea35
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
EcobankaToken

Compiler Version
v0.7.0+commit.9e61f92b

Optimization Enabled:
Yes with 200 runs

Other Settings:
constantinople EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-04-21
*/

pragma solidity ^0.7.0;


interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

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

contract Context {

    constructor ()  { }

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
 
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;

        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

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

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

contract ERC20 is Context, IERC20 {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    constructor (string memory name, string memory symbol)  {
        _name = name;
        _symbol = symbol;
        _decimals = 4;
    }

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

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

    function decimals() public view returns (uint8) {
        return _decimals;
    }

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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


    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

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

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

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

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

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

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

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

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }

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

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

    function _setupDecimals(uint8 decimals_) internal {
        _decimals = decimals_;
    }

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

abstract contract ERC20Capped is ERC20 {
    using SafeMath for uint256;
    uint256 private _cap;

    constructor (uint256 cap)  {
        require(cap > 0, "ERC20Capped: cap is 0");
        _cap = cap;
    }

    function cap() public view returns (uint256) {
        return _cap;
    }

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

        if (from == address(0)) { // When minting tokens
            require(totalSupply().add(amount) <= _cap, "ERC20Capped: cap exceeded");
        }
    }
}

abstract contract ERC20Burnable is Context, ERC20 {
     using SafeMath for uint256;

    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }

    function burnFrom(address account, uint256 amount) public virtual {
        uint256 decreasedAllowance = allowance(account, _msgSender()).sub(amount, "ERC20: burn amount exceeds allowance");

        _approve(account, _msgSender(), decreasedAllowance);
        _burn(account, amount);
    }
}

interface IERC165 {
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

interface IERC1363 is IERC20, IERC165 {
    function transferAndCall(address to, uint256 value) external returns (bool);

    function transferAndCall(address to, uint256 value, bytes calldata data) external returns (bool);

    function transferFromAndCall(address from, address to, uint256 value) external returns (bool);

    function transferFromAndCall(address from, address to, uint256 value, bytes calldata data) external returns (bool);

    function approveAndCall(address spender, uint256 value) external returns (bool);

    function approveAndCall(address spender, uint256 value, bytes calldata data) external returns (bool);
}

// File: @openzeppelin/contracts/introspection/ERC165.sol
contract ERC165 is IERC165 {

    bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;

    mapping(bytes4 => bool) private _supportedInterfaces;

    constructor ()  {
        _registerInterface(_INTERFACE_ID_ERC165);
    }

    function supportsInterface(bytes4 interfaceId) public view override returns (bool) {
        return _supportedInterfaces[interfaceId];
    }

    function _registerInterface(bytes4 interfaceId) internal virtual {
        require(interfaceId != 0xffffffff, "ERC165: invalid interface id");
        _supportedInterfaces[interfaceId] = true;
    }
}

interface IERC1363Receiver {
    function onTransferReceived(address operator, address from, uint256 value, bytes calldata data) external returns (bytes4); // solhint-disable-line  max-line-length
}

interface IERC1363Spender {
    function onApprovalReceived(address owner, uint256 value, bytes calldata data) external returns (bytes4);
}

library ERC165Checker {

    bytes4 private constant _INTERFACE_ID_INVALID = 0xffffffff;

    bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;

    function supportsERC165(address account) internal view returns (bool) {
        return _supportsERC165Interface(account, _INTERFACE_ID_ERC165) &&
            !_supportsERC165Interface(account, _INTERFACE_ID_INVALID);
    }

    function supportsInterface(address account, bytes4 interfaceId) internal view returns (bool) {
        return supportsERC165(account) &&
            _supportsERC165Interface(account, interfaceId);
    }

    function supportsAllInterfaces(address account, bytes4[] memory interfaceIds) internal view returns (bool) {
        if (!supportsERC165(account)) {
            return false;
        }

        for (uint256 i = 0; i < interfaceIds.length; i++) {
            if (!_supportsERC165Interface(account, interfaceIds[i])) {
                return false;
            }
        }

        return true;
    }

    function _supportsERC165Interface(address account, bytes4 interfaceId) private view returns (bool) {
        (bool success, bool result) = _callERC165SupportsInterface(account, interfaceId);

        return (success && result);
    }

    function _callERC165SupportsInterface(address account, bytes4 interfaceId)
        private
        view
        returns (bool, bool)
    {
        bytes memory encodedParams = abi.encodeWithSelector(_INTERFACE_ID_ERC165, interfaceId);
        (bool success, bytes memory result) = account.staticcall{ gas: 3000000 }(encodedParams);
        if (result.length < 32) return (false, false);
        return (success, abi.decode(result, (bool)));
    }
}

contract ERC1363 is ERC20, IERC1363, ERC165 {
    using Address for address;

    bytes4 internal constant _INTERFACE_ID_ERC1363_TRANSFER = 0x4bbee2df;

    bytes4 internal constant _INTERFACE_ID_ERC1363_APPROVE = 0xfb9ec8ce;

    bytes4 private constant _ERC1363_RECEIVED = 0x88a7ca5c;

    bytes4 private constant _ERC1363_APPROVED = 0x7b04a2d0;

    constructor (
        string memory name,
        string memory symbol
    )  payable ERC20(name, symbol) {
        _registerInterface(_INTERFACE_ID_ERC1363_TRANSFER);
        _registerInterface(_INTERFACE_ID_ERC1363_APPROVE);
    }

    function transferAndCall(address to, uint256 value) public override returns (bool) {
        return transferAndCall(to, value, "");
    }

    function transferAndCall(address to, uint256 value, bytes memory data) public override returns (bool) {
        transfer(to, value);
        require(_checkAndCallTransfer(_msgSender(), to, value, data), "ERC1363: _checkAndCallTransfer reverts");
        return true;
    }

    function transferFromAndCall(address from, address to, uint256 value) public override returns (bool) {
        return transferFromAndCall(from, to, value, "");
    }

    function transferFromAndCall(address from, address to, uint256 value, bytes memory data) public override returns (bool) {
        transferFrom(from, to, value);
        require(_checkAndCallTransfer(from, to, value, data), "ERC1363: _checkAndCallTransfer reverts");
        return true;
    }

    function approveAndCall(address spender, uint256 value) public override returns (bool) {
        return approveAndCall(spender, value, "");
    }

    function approveAndCall(address spender, uint256 value, bytes memory data) public override returns (bool) {
        approve(spender, value);
        require(_checkAndCallApprove(spender, value, data), "ERC1363: _checkAndCallApprove reverts");
        return true;
    }

    function _checkAndCallTransfer(address from, address to, uint256 value, bytes memory data) internal returns (bool) {
        if (!to.isContract()) {
            return false;
        }
        bytes4 retval = IERC1363Receiver(to).onTransferReceived(
            _msgSender(), from, value, data
        );
        return (retval == _ERC1363_RECEIVED);
    }

    function _checkAndCallApprove(address spender, uint256 value, bytes memory data) internal returns (bool) {
        if (!spender.isContract()) {
            return false;
        }
        bytes4 retval = IERC1363Spender(spender).onApprovalReceived(
            _msgSender(), value, data
        );
        return (retval == _ERC1363_APPROVED);
    }
}

library EnumerableSet {

    struct Set {
        bytes32[] _values;

        mapping (bytes32 => uint256) _indexes;
    }

    function _add(Set storage set, bytes32 value) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }

    function _remove(Set storage set, bytes32 value) private returns (bool) {
        uint256 valueIndex = set._indexes[value];

        if (valueIndex != 0) { 

            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;

            bytes32 lastvalue = set._values[lastIndex];

            set._values[toDeleteIndex] = lastvalue;

            set._indexes[lastvalue] = toDeleteIndex + 1; 

            set._values.pop();

            delete set._indexes[value];

            return true;
        } else {
            return false;
        }
    }


    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }


    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }


    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        require(set._values.length > index, "EnumerableSet: index out of bounds");
        return set._values[index];
    }



    struct AddressSet {
        Set _inner;
    }


    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(value)));
    }


    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(value)));
    }

    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(value)));
    }


    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint256(_at(set._inner, index)));
    }



    struct UintSet {
        Set _inner;
    }

    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(value));
    }

    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(value));
    }

    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(value));
    }

    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }

    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return uint256(_at(set._inner, index));
    }
}

abstract contract AccessControl is Context {
    using EnumerableSet for EnumerableSet.AddressSet;
    using Address for address;

    struct RoleData {
        EnumerableSet.AddressSet members;
        bytes32 adminRole;
    }

    mapping (bytes32 => RoleData) private _roles;

    bytes32 public constant DEFAULT_ADMIN_ROLE = 0x00;

    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);

    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);

    function hasRole(bytes32 role, address account) public view returns (bool) {
        return _roles[role].members.contains(account);
    }


    function getRoleMemberCount(bytes32 role) public view returns (uint256) {
        return _roles[role].members.length();
    }

    function getRoleMember(bytes32 role, uint256 index) public view returns (address) {
        return _roles[role].members.at(index);
    }

    function getRoleAdmin(bytes32 role) public view returns (bytes32) {
        return _roles[role].adminRole;
    }

    function grantRole(bytes32 role, address account) public virtual {
        require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to grant");

        _grantRole(role, account);
    }

    function revokeRole(bytes32 role, address account) public virtual {
        require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to revoke");

        _revokeRole(role, account);
    }

    function renounceRole(bytes32 role, address account) public virtual {
        require(account == _msgSender(), "AccessControl: can only renounce roles for self");

        _revokeRole(role, account);
    }

    function _setupRole(bytes32 role, address account) internal virtual {
        _grantRole(role, account);
    }

    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
        _roles[role].adminRole = adminRole;
    }

    function _grantRole(bytes32 role, address account) private {
        if (_roles[role].members.add(account)) {
            emit RoleGranted(role, account, _msgSender());
        }
    }

    function _revokeRole(bytes32 role, address account) private {
        if (_roles[role].members.remove(account)) {
            emit RoleRevoked(role, account, _msgSender());
        }
    }
}

contract Roles is AccessControl {

    bytes32 public constant MINTER_ROLE = keccak256("MINTER");
    bytes32 public constant OPERATOR_ROLE = keccak256("OPERATOR");

    constructor () {
        _setupRole(DEFAULT_ADMIN_ROLE, _msgSender());
        _setupRole(MINTER_ROLE, _msgSender());
        _setupRole(OPERATOR_ROLE, _msgSender());
    }

    modifier onlyMinter() {
        require(hasRole(MINTER_ROLE, _msgSender()), "Roles: caller does not have the MINTER role");
        _;
    }

    modifier onlyOperator() {
        require(hasRole(OPERATOR_ROLE, _msgSender()), "Roles: caller does not have the OPERATOR role");
        _;
    }
}

contract Ownable is Context {
    address payable private _owner;

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

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

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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

contract TokenRecover is Ownable {

    function recoverERC20(address tokenAddress, uint256 tokenAmount) public onlyOwner {
        IERC20(tokenAddress).transfer(owner(), tokenAmount);
    }
}

// SPDX-License-Identifier: MIT
contract EcobankaToken is ERC20Capped, ERC20Burnable, ERC1363, Roles, TokenRecover {
    using SafeMath for uint256;

    bool private _mintingFinished = false;

    bool private _transferEnabled = false;
    
    bool private _paused = false;
    
    uint256 private _rate = 215087879;

    event MintFinished();

    event TransferEnabled();
    
    event Paused();
    
    event PauseFinished();

    modifier canMint() {
        require(!_paused && !_mintingFinished, "EcobankaToken: minting not enabled");
        _;
    }

    modifier canTransfer(address from) {
        require(
            !_paused && (_transferEnabled || hasRole(OPERATOR_ROLE, from)),
            "EcobankaToken: transfer is not enabled or from does not have the OPERATOR role"
        );
        _;
    }

    constructor(
        string memory name,
        string memory symbol,
        uint8 decimals,
        uint256 cap,
        uint256 rate,
        uint256 initialSupply,
        bool transferEnabled,
        bool mintingFinished
    )
        ERC20Capped(cap)
        ERC1363(name, symbol)
    {
        (
            mintingFinished == false || cap == initialSupply,
            "EcobankaToken: if finish minting, cap must be equal to initialSupply"
        );
        
        _rate = rate;
        
        _setupDecimals(decimals);

        if (initialSupply > 0) {
            _mint(owner(), initialSupply);
        }

        if (mintingFinished) {
            finishMinting();
        }

        if (transferEnabled) {
            enableTransfer();
        }
    }
    
    
    receive() external payable { 
        createTokens();
    }
    

    function crowdsaleRate() public view returns (uint256) {
        return _rate;
    }
    

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

    function mintingFinished() public view returns (bool) {
        return _mintingFinished;
    }


    function transferEnabled() public view returns (bool) {
        return _transferEnabled;
    }
    
    function createTokens() payable public  canMint {
        require(msg.value >  0, "Value should be greater than zero");
        uint256  tokens = msg.value.mul(_rate).div(1000000000000000000);
        require(tokens >  0, "Tokens should be greater than zero");
        _mint(msg.sender, tokens);
        owner().transfer(msg.value);
    }
    

    
    function changeCrowdsaleRate(uint256 _value) public onlyOwner {
        require(_value >= 1  , "Rate cant be zero");
        _rate = _value;
    }


    function mint(address to, uint256 value) public canMint onlyMinter {
        _mint(to, value);
    }


    function transfer(address to, uint256 value) public virtual override(ERC20) canTransfer(_msgSender()) returns (bool) {
        return super.transfer(to, value);
    }


    function transferFrom(address from, address to, uint256 value) public virtual override(ERC20) canTransfer(from) returns (bool) {
        return super.transferFrom(from, to, value);
    }
    
    function finishCrowdsale() public onlyOwner {
        uint256  remainingTokens = cap().sub(totalSupply());
        _mint(owner(), remainingTokens);
        _mintingFinished = true;
        emit MintFinished();
    }


    function finishMinting() public onlyOwner {
        _mintingFinished = true;

        emit MintFinished();
    }
    

    function pause() public onlyOwner {
        _paused = true;
        emit Paused();
    }
    

    function resume() public onlyOwner {
        _paused = false;
        emit PauseFinished();
    }


    function enableTransfer() public onlyOwner {
        _transferEnabled = true;

        emit TransferEnabled();
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"},{"internalType":"uint256","name":"cap","type":"uint256"},{"internalType":"uint256","name":"rate","type":"uint256"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"bool","name":"transferEnabled","type":"bool"},{"internalType":"bool","name":"mintingFinished","type":"bool"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address payable","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address payable","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[],"name":"PauseFinished","type":"event"},{"anonymous":false,"inputs":[],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[],"name":"TransferEnabled","type":"event"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"changeCrowdsaleRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"createTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"crowdsaleRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishCrowdsale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finishMinting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resume","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009805462ffffff60a01b19169055630cd1fb07600a553480156200002857600080fd5b50604051620038663803806200386683398181016040526101008110156200004f57600080fd5b81019080805160405193929190846401000000008211156200007057600080fd5b9083019060208201858111156200008657600080fd5b8251640100000000811182820188101715620000a157600080fd5b82525081516020918201929091019080838360005b83811015620000d0578181015183820152602001620000b6565b50505050905090810190601f168015620000fe5780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012257600080fd5b9083019060208201858111156200013857600080fd5b82516401000000008111828201881017156200015357600080fd5b82525081516020918201929091019080838360005b838110156200018257818101518382015260200162000168565b50505050905090810190601f168015620001b05780820380516001836020036101000a031916815260200191505b506040908152602082810151918301516060840151608085015160a086015160c0909601518a5195985092965090949093909289918991889184918491620001ff916003919085019062000a62565b5080516200021590600490602084019062000a62565b50506005805460ff1916600417905550806200029257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f45524332304361707065643a2063617020697320300000000000000000000000604482015290519081900360640190fd5b600655620002c07f01ffc9a70000000000000000000000000000000000000000000000000000000062000451565b620002eb7f4bbee2df0000000000000000000000000000000000000000000000000000000062000451565b620003167ffb9ec8ce0000000000000000000000000000000000000000000000000000000062000451565b506200032f905060006200032962000520565b62000524565b6200035e7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc96200032962000520565b6200038d7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c6200032962000520565b60006200039962000520565b600980546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350801580620003f457508285145b50600a849055620004058662000534565b82156200042157620004216200041a6200054a565b8462000559565b801562000432576200043262000682565b811562000443576200044362000747565b505050505050505062000afe565b7fffffffff000000000000000000000000000000000000000000000000000000008082161415620004e357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433136353a20696e76616c696420696e7465726661636520696400000000604482015290519081900360640190fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152600760205260409020805460ff19166001179055565b3390565b6200053082826200080d565b5050565b6005805460ff191660ff92909216919091179055565b6009546001600160a01b031690565b6001600160a01b038216620005cf57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620005dd6000838362000888565b620005f981600254620008a560201b62001c6f1790919060201c565b6002556001600160a01b038216600090815260208181526040909120546200062c91839062001c6f620008a5821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6200068c62000520565b6009546001600160a01b03908116911614620006f857604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201819052602482015260008051602062003846833981519152604482015290519081900360640190fd5b6009805460ff60a01b1916740100000000000000000000000000000000000000001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b6200075162000520565b6009546001600160a01b03908116911614620007bd57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201819052602482015260008051602062003846833981519152604482015290519081900360640190fd5b6009805460ff60a81b191675010000000000000000000000000000000000000000001790556040517f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d90600090a1565b60008281526008602090815260409091206200083491839062001cc962000923821b17901c565b1562000530576200084462000520565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b620008a08383836200093a60201b62001cde1760201c565b505050565b6000828201838110156200091a57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60006200091a836001600160a01b038416620009f5565b62000952838383620008a060201b6200149b1760201c565b6001600160a01b038316620008a05760065462000987826200097362000a44565b620008a560201b62001c6f1790919060201c565b1115620008a057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b600062000a03838362000a4a565b62000a3b575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200091d565b5060006200091d565b60025490565b60009081526001919091016020526040902054151590565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000aa557805160ff191683800117855562000ad5565b8280016001018555821562000ad5579182015b8281111562000ad557825182559160200191906001019062000ab8565b5062000ae392915062000ae7565b5090565b5b8082111562000ae3576000815560010162000ae8565b612d388062000b0e6000396000f3fe60806040526004361061028c5760003560e01c8063715018a61161015a578063b4427263116100c1578063d547741f1161007a578063d547741f14610b6b578063d8fbe99414610ba4578063dd62ed3e14610be7578063f1b50c1d14610c22578063f2fde38b14610c37578063f5b541a614610c6a5761029b565b8063b442726314610974578063b80cdcf61461097c578063c1d34b8914610991578063ca15c87314610a64578063cae9ca5114610a8e578063d539139314610b565761029b565b80639010d07c116101135780639010d07c1461086f57806391d148541461089f57806395d89b41146108d8578063a217fddf146108ed578063a457c2d714610902578063a9059cbb1461093b5761029b565b8063715018a61461078d57806379cc6790146107a25780637d64bcb4146107db5780638456cb59146107f05780638980f11f146108055780638da5cb5b1461083e5761029b565b80633177029f116101fe57806340c10f19116101b757806340c10f19146106a357806342966c68146106dc5780634cd412d5146107065780635c07ac941461071b5780635c975abb1461074557806370a082311461075a5761029b565b80633177029f1461050657806335200cda1461053f578063355274ea1461055457806336568abe1461056957806339509351146105a25780634000aea0146105db5761029b565b80631296ee62116102505780631296ee62146103d557806318160ddd1461040e57806323b872dd14610435578063248a9ca3146104785780632f2ff15d146104a2578063313ce567146104db5761029b565b806301ffc9a7146102a0578063046f7da2146102e857806305d2035b146102fd57806306fdde0314610312578063095ea7b31461039c5761029b565b3661029b57610299610c7f565b005b600080fd5b3480156102ac57600080fd5b506102d4600480360360208110156102c357600080fd5b50356001600160e01b031916610dd5565b604080519115158252519081900360200190f35b3480156102f457600080fd5b50610299610df4565b34801561030957600080fd5b506102d4610e84565b34801561031e57600080fd5b50610327610e94565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b506102d4600480360360408110156103bf57600080fd5b506001600160a01b038135169060200135610f2a565b3480156103e157600080fd5b506102d4600480360360408110156103f857600080fd5b506001600160a01b038135169060200135610f48565b34801561041a57600080fd5b50610423610f6b565b60408051918252519081900360200190f35b34801561044157600080fd5b506102d46004803603606081101561045857600080fd5b506001600160a01b03813581169160208101359091169060400135610f71565b34801561048457600080fd5b506104236004803603602081101561049b57600080fd5b5035611017565b3480156104ae57600080fd5b50610299600480360360408110156104c557600080fd5b50803590602001356001600160a01b031661102c565b3480156104e757600080fd5b506104f0611094565b6040805160ff9092168252519081900360200190f35b34801561051257600080fd5b506102d46004803603604081101561052957600080fd5b506001600160a01b03813516906020013561109d565b34801561054b57600080fd5b506104236110b9565b34801561056057600080fd5b506104236110bf565b34801561057557600080fd5b506102996004803603604081101561058c57600080fd5b50803590602001356001600160a01b03166110c5565b3480156105ae57600080fd5b506102d4600480360360408110156105c557600080fd5b506001600160a01b038135169060200135611126565b3480156105e757600080fd5b506102d4600480360360608110156105fe57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561062e57600080fd5b82018360208201111561064057600080fd5b8035906020019184600183028401116401000000008311171561066257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611179945050505050565b3480156106af57600080fd5b50610299600480360360408110156106c657600080fd5b506001600160a01b0381351690602001356111de565b3480156106e857600080fd5b50610299600480360360208110156106ff57600080fd5b50356112ae565b34801561071257600080fd5b506102d46112c2565b34801561072757600080fd5b506102996004803603602081101561073e57600080fd5b50356112d2565b34801561075157600080fd5b506102d4611379565b34801561076657600080fd5b506104236004803603602081101561077d57600080fd5b50356001600160a01b0316611389565b34801561079957600080fd5b506102996113a4565b3480156107ae57600080fd5b50610299600480360360408110156107c557600080fd5b506001600160a01b038135169060200135611446565b3480156107e757600080fd5b506102996114a0565b3480156107fc57600080fd5b50610299611536565b34801561081157600080fd5b506102996004803603604081101561082857600080fd5b506001600160a01b0381351690602001356115cc565b34801561084a57600080fd5b506108536116b2565b604080516001600160a01b039092168252519081900360200190f35b34801561087b57600080fd5b506108536004803603604081101561089257600080fd5b50803590602001356116c1565b3480156108ab57600080fd5b506102d4600480360360408110156108c257600080fd5b50803590602001356001600160a01b03166116d9565b3480156108e457600080fd5b506103276116f1565b3480156108f957600080fd5b50610423611752565b34801561090e57600080fd5b506102d46004803603604081101561092557600080fd5b506001600160a01b038135169060200135611757565b34801561094757600080fd5b506102d46004803603604081101561095e57600080fd5b506001600160a01b0381351690602001356117bf565b610299610c7f565b34801561098857600080fd5b50610299611868565b34801561099d57600080fd5b506102d4600480360360808110156109b457600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156109ef57600080fd5b820183602082011115610a0157600080fd5b80359060200191846001830284011164010000000083111715610a2357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061192d945050505050565b348015610a7057600080fd5b5061042360048036036020811015610a8757600080fd5b503561198d565b348015610a9a57600080fd5b506102d460048036036060811015610ab157600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610ae157600080fd5b820183602082011115610af357600080fd5b80359060200191846001830284011164010000000083111715610b1557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506119a4945050505050565b348015610b6257600080fd5b506104236119f7565b348015610b7757600080fd5b5061029960048036036040811015610b8e57600080fd5b50803590602001356001600160a01b0316611a1b565b348015610bb057600080fd5b506102d460048036036060811015610bc757600080fd5b506001600160a01b03813581169160208101359091169060400135611a74565b348015610bf357600080fd5b5061042360048036036040811015610c0a57600080fd5b506001600160a01b0381358116916020013516611a91565b348015610c2e57600080fd5b50610299611abc565b348015610c4357600080fd5b5061029960048036036020811015610c5a57600080fd5b50356001600160a01b0316611b52565b348015610c7657600080fd5b50610423611c4b565b600954600160b01b900460ff16158015610ca35750600954600160a01b900460ff16155b610cde5760405162461bcd60e51b8152600401808060200182810382526022815260200180612aac6022913960400191505060405180910390fd5b60003411610d1d5760405162461bcd60e51b8152600401808060200182810382526021815260200180612c6a6021913960400191505060405180910390fd5b6000610d46670de0b6b3a7640000610d40600a5434611d5f90919063ffffffff16565b90611db8565b905060008111610d875760405162461bcd60e51b8152600401808060200182810382526022815260200180612ace6022913960400191505060405180910390fd5b610d913382611dfa565b610d996116b2565b6001600160a01b03166108fc349081150290604051600060405180830381858888f19350505050158015610dd1573d6000803e3d6000fd5b5050565b6001600160e01b03191660009081526007602052604090205460ff1690565b610dfc611eea565b6009546001600160a01b03908116911614610e4c576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60b01b191690556040517f276ac144d232a94090b24d455aaef4f930f5413f8b53eb27eda80c670a2b0fda90600090a1565b600954600160a01b900460ff1690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f205780601f10610ef557610100808354040283529160200191610f20565b820191906000526020600020905b815481529060010190602001808311610f0357829003601f168201915b5050505050905090565b6000610f3e610f37611eea565b8484611eee565b5060015b92915050565b6000610f64838360405180602001604052806000815250611179565b9392505050565b60025490565b6009546000908490600160b01b900460ff16158015610fc85750600954600160a81b900460ff1680610fc85750610fc87f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c826116d9565b6110035760405162461bcd60e51b815260040180806020018281038252604e815260200180612a5e604e913960600191505060405180910390fd5b61100e858585611fda565b95945050505050565b60009081526008602052604090206002015490565b60008281526008602052604090206002015461104f9061104a611eea565b6116d9565b61108a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806129a0602f913960400191505060405180910390fd5b610dd18282612052565b60055460ff1690565b6000610f648383604051806020016040528060008152506119a4565b600a5490565b60065490565b6110cd611eea565b6001600160a01b0316816001600160a01b03161461111c5760405162461bcd60e51b815260040180806020018281038252602f815260200180612cd4602f913960400191505060405180910390fd5b610dd182826120bb565b6000610f3e611133611eea565b846111748560016000611144611eea565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611c6f565b611eee565b600061118584846117bf565b50611199611191611eea565b858585612124565b6111d45760405162461bcd60e51b8152600401808060200182810382526026815260200180612b716026913960400191505060405180910390fd5b5060019392505050565b600954600160b01b900460ff161580156112025750600954600160a01b900460ff16155b61123d5760405162461bcd60e51b8152600401808060200182810382526022815260200180612aac6022913960400191505060405180910390fd5b6112697ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc961104a611eea565b6112a45760405162461bcd60e51b815260040180806020018281038252602b815260200180612b46602b913960400191505060405180910390fd5b610dd18282611dfa565b6112bf6112b9611eea565b82612269565b50565b600954600160a81b900460ff1690565b6112da611eea565b6009546001600160a01b0390811691161461132a576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6001811015611374576040805162461bcd60e51b8152602060048201526011602482015270526174652063616e74206265207a65726f60781b604482015290519081900360640190fd5b600a55565b600954600160b01b900460ff1690565b6001600160a01b031660009081526020819052604090205490565b6113ac611eea565b6009546001600160a01b039081169116146113fc576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600980546001600160a01b0319169055565b600061147d82604051806060016040528060248152602001612c006024913961147686611471611eea565b611a91565b9190612365565b90506114918361148b611eea565b83611eee565b61149b8383612269565b505050565b6114a8611eea565b6009546001600160a01b039081169116146114f8576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b61153e611eea565b6009546001600160a01b0390811691161461158e576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60b01b1916600160b01b1790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b6115d4611eea565b6009546001600160a01b03908116911614611624576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb61163b6116b2565b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561168257600080fd5b505af1158015611696573d6000803e3d6000fd5b505050506040513d60208110156116ac57600080fd5b50505050565b6009546001600160a01b031690565b6000828152600860205260408120610f6490836123fc565b6000828152600860205260408120610f649083612408565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f205780601f10610ef557610100808354040283529160200191610f20565b600081565b6000610f3e611764611eea565b8461117485604051806060016040528060258152602001612caf602591396001600061178e611eea565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190612365565b60006117c9611eea565b600954600160b01b900460ff1615801561181b5750600954600160a81b900460ff168061181b575061181b7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c826116d9565b6118565760405162461bcd60e51b815260040180806020018281038252604e815260200180612a5e604e913960600191505060405180910390fd5b611860848461241d565b949350505050565b611870611eea565b6009546001600160a01b039081169116146118c0576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b60006118db6118cd610f6b565b6118d56110bf565b90612431565b90506118ee6118e86116b2565b82611dfa565b6009805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150565b600061193a858585610f71565b5061194785858585612124565b6119825760405162461bcd60e51b8152600401808060200182810382526026815260200180612b716026913960400191505060405180910390fd5b506001949350505050565b6000818152600860205260408120610f4290612473565b60006119b08484610f2a565b506119bc84848461247e565b6111d45760405162461bcd60e51b8152600401808060200182810382526025815260200180612a396025913960400191505060405180910390fd5b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b600082815260086020526040902060020154611a399061104a611eea565b61111c5760405162461bcd60e51b8152600401808060200182810382526030815260200180612b166030913960400191505060405180910390fd5b60006118608484846040518060200160405280600081525061192d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b611ac4611eea565b6009546001600160a01b03908116911614611b14576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60a81b1916600160a81b1790556040517f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d90600090a1565b611b5a611eea565b6009546001600160a01b03908116911614611baa576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6001600160a01b038116611bef5760405162461bcd60e51b81526004018080602001828103825260268152602001806129f16026913960400191505060405180910390fd5b6009546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c81565b600082820183811015610f64576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610f64836001600160a01b0384166125b1565b611ce983838361149b565b6001600160a01b03831661149b57600654611d0c82611d06610f6b565b90611c6f565b111561149b576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b600082611d6e57506000610f42565b82820282848281611d7b57fe5b0414610f645760405162461bcd60e51b8152600401808060200182810382526021815260200180612b976021913960400191505060405180910390fd5b6000610f6483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125fb565b6001600160a01b038216611e55576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611e6160008383612660565b600254611e6e9082611c6f565b6002556001600160a01b038216600090815260208190526040902054611e949082611c6f565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b3390565b6001600160a01b038316611f335760405162461bcd60e51b8152600401808060200182810382526024815260200180612c8b6024913960400191505060405180910390fd5b6001600160a01b038216611f785760405162461bcd60e51b8152600401808060200182810382526022815260200180612a176022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000611fe784848461266b565b6111d484611ff3611eea565b61117485604051806060016040528060288152602001612bb8602891396001600160a01b038a16600090815260016020526040812090612031611eea565b6001600160a01b031681526020810191909152604001600020549190612365565b600082815260086020526040902061206a9082611cc9565b15610dd157612077611eea565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526008602052604090206120d390826127c6565b15610dd1576120e0611eea565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000612138846001600160a01b03166127db565b61214457506000611860565b6000846001600160a01b03166388a7ca5c61215d611eea565b8887876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156121d05781810151838201526020016121b8565b50505050905090810190601f1680156121fd5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561221f57600080fd5b505af1158015612233573d6000803e3d6000fd5b505050506040513d602081101561224957600080fd5b50516001600160e01b031916632229f29760e21b14915050949350505050565b6001600160a01b0382166122ae5760405162461bcd60e51b8152600401808060200182810382526021815260200180612c246021913960400191505060405180910390fd5b6122ba82600083612660565b6122f7816040518060600160405280602281526020016129cf602291396001600160a01b0385166000908152602081905260409020549190612365565b6001600160a01b03831660009081526020819052604090205560025461231d9082612431565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600081848411156123f45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123b95781810151838201526020016123a1565b50505050905090810190601f1680156123e65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000610f648383612814565b6000610f64836001600160a01b038416612878565b6000610f3e61242a611eea565b848461266b565b6000610f6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612365565b6000610f4282612890565b6000612492846001600160a01b03166127db565b61249e57506000610f64565b6000846001600160a01b0316637b04a2d06124b7611eea565b86866040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561251a578181015183820152602001612502565b50505050905090810190601f1680156125475780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561256857600080fd5b505af115801561257c573d6000803e3d6000fd5b505050506040513d602081101561259257600080fd5b50516001600160e01b0319166307b04a2d60e41b149150509392505050565b60006125bd8383612878565b6125f357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f42565b506000610f42565b6000818361264a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156123b95781810151838201526020016123a1565b50600083858161265657fe5b0495945050505050565b61149b838383611cde565b6001600160a01b0383166126b05760405162461bcd60e51b8152600401808060200182810382526025815260200180612c456025913960400191505060405180910390fd5b6001600160a01b0382166126f55760405162461bcd60e51b815260040180806020018281038252602381526020018061297d6023913960400191505060405180910390fd5b612700838383612660565b61273d81604051806060016040528060268152602001612af0602691396001600160a01b0386166000908152602081905260409020549190612365565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461276c9082611c6f565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000610f64836001600160a01b038416612894565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590611860575050151592915050565b815460009082106128565760405162461bcd60e51b815260040180806020018281038252602281526020018061295b6022913960400191505060405180910390fd5b82600001828154811061286557fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6000818152600183016020526040812054801561295057835460001980830191908101906000908790839081106128c757fe5b90600052602060002001549050808760000184815481106128e457fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061291457fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610f42565b6000915050610f4256fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373455243313336333a205f636865636b416e6443616c6c417070726f7665207265766572747345636f62616e6b61546f6b656e3a207472616e73666572206973206e6f7420656e61626c6564206f722066726f6d20646f6573206e6f74206861766520746865204f50455241544f5220726f6c6545636f62616e6b61546f6b656e3a206d696e74696e67206e6f7420656e61626c6564546f6b656e732073686f756c642062652067726561746572207468616e207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65526f6c65733a2063616c6c657220646f6573206e6f74206861766520746865204d494e54455220726f6c65455243313336333a205f636865636b416e6443616c6c5472616e736665722072657665727473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737356616c75652073686f756c642062652067726561746572207468616e207a65726f45524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220fb45faf0b159e2f5e9cfa0c5df4bacb5f5f448e049d3a74ebd15dcb2c6a81e4e64736f6c634300070000334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65720000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077359400000000000000000000000000000000000000000000000000000000000cd1fb07000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000645636f62616e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000445434b4e00000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x60806040526004361061028c5760003560e01c8063715018a61161015a578063b4427263116100c1578063d547741f1161007a578063d547741f14610b6b578063d8fbe99414610ba4578063dd62ed3e14610be7578063f1b50c1d14610c22578063f2fde38b14610c37578063f5b541a614610c6a5761029b565b8063b442726314610974578063b80cdcf61461097c578063c1d34b8914610991578063ca15c87314610a64578063cae9ca5114610a8e578063d539139314610b565761029b565b80639010d07c116101135780639010d07c1461086f57806391d148541461089f57806395d89b41146108d8578063a217fddf146108ed578063a457c2d714610902578063a9059cbb1461093b5761029b565b8063715018a61461078d57806379cc6790146107a25780637d64bcb4146107db5780638456cb59146107f05780638980f11f146108055780638da5cb5b1461083e5761029b565b80633177029f116101fe57806340c10f19116101b757806340c10f19146106a357806342966c68146106dc5780634cd412d5146107065780635c07ac941461071b5780635c975abb1461074557806370a082311461075a5761029b565b80633177029f1461050657806335200cda1461053f578063355274ea1461055457806336568abe1461056957806339509351146105a25780634000aea0146105db5761029b565b80631296ee62116102505780631296ee62146103d557806318160ddd1461040e57806323b872dd14610435578063248a9ca3146104785780632f2ff15d146104a2578063313ce567146104db5761029b565b806301ffc9a7146102a0578063046f7da2146102e857806305d2035b146102fd57806306fdde0314610312578063095ea7b31461039c5761029b565b3661029b57610299610c7f565b005b600080fd5b3480156102ac57600080fd5b506102d4600480360360208110156102c357600080fd5b50356001600160e01b031916610dd5565b604080519115158252519081900360200190f35b3480156102f457600080fd5b50610299610df4565b34801561030957600080fd5b506102d4610e84565b34801561031e57600080fd5b50610327610e94565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610361578181015183820152602001610349565b50505050905090810190601f16801561038e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a857600080fd5b506102d4600480360360408110156103bf57600080fd5b506001600160a01b038135169060200135610f2a565b3480156103e157600080fd5b506102d4600480360360408110156103f857600080fd5b506001600160a01b038135169060200135610f48565b34801561041a57600080fd5b50610423610f6b565b60408051918252519081900360200190f35b34801561044157600080fd5b506102d46004803603606081101561045857600080fd5b506001600160a01b03813581169160208101359091169060400135610f71565b34801561048457600080fd5b506104236004803603602081101561049b57600080fd5b5035611017565b3480156104ae57600080fd5b50610299600480360360408110156104c557600080fd5b50803590602001356001600160a01b031661102c565b3480156104e757600080fd5b506104f0611094565b6040805160ff9092168252519081900360200190f35b34801561051257600080fd5b506102d46004803603604081101561052957600080fd5b506001600160a01b03813516906020013561109d565b34801561054b57600080fd5b506104236110b9565b34801561056057600080fd5b506104236110bf565b34801561057557600080fd5b506102996004803603604081101561058c57600080fd5b50803590602001356001600160a01b03166110c5565b3480156105ae57600080fd5b506102d4600480360360408110156105c557600080fd5b506001600160a01b038135169060200135611126565b3480156105e757600080fd5b506102d4600480360360608110156105fe57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561062e57600080fd5b82018360208201111561064057600080fd5b8035906020019184600183028401116401000000008311171561066257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611179945050505050565b3480156106af57600080fd5b50610299600480360360408110156106c657600080fd5b506001600160a01b0381351690602001356111de565b3480156106e857600080fd5b50610299600480360360208110156106ff57600080fd5b50356112ae565b34801561071257600080fd5b506102d46112c2565b34801561072757600080fd5b506102996004803603602081101561073e57600080fd5b50356112d2565b34801561075157600080fd5b506102d4611379565b34801561076657600080fd5b506104236004803603602081101561077d57600080fd5b50356001600160a01b0316611389565b34801561079957600080fd5b506102996113a4565b3480156107ae57600080fd5b50610299600480360360408110156107c557600080fd5b506001600160a01b038135169060200135611446565b3480156107e757600080fd5b506102996114a0565b3480156107fc57600080fd5b50610299611536565b34801561081157600080fd5b506102996004803603604081101561082857600080fd5b506001600160a01b0381351690602001356115cc565b34801561084a57600080fd5b506108536116b2565b604080516001600160a01b039092168252519081900360200190f35b34801561087b57600080fd5b506108536004803603604081101561089257600080fd5b50803590602001356116c1565b3480156108ab57600080fd5b506102d4600480360360408110156108c257600080fd5b50803590602001356001600160a01b03166116d9565b3480156108e457600080fd5b506103276116f1565b3480156108f957600080fd5b50610423611752565b34801561090e57600080fd5b506102d46004803603604081101561092557600080fd5b506001600160a01b038135169060200135611757565b34801561094757600080fd5b506102d46004803603604081101561095e57600080fd5b506001600160a01b0381351690602001356117bf565b610299610c7f565b34801561098857600080fd5b50610299611868565b34801561099d57600080fd5b506102d4600480360360808110156109b457600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156109ef57600080fd5b820183602082011115610a0157600080fd5b80359060200191846001830284011164010000000083111715610a2357600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061192d945050505050565b348015610a7057600080fd5b5061042360048036036020811015610a8757600080fd5b503561198d565b348015610a9a57600080fd5b506102d460048036036060811015610ab157600080fd5b6001600160a01b0382351691602081013591810190606081016040820135640100000000811115610ae157600080fd5b820183602082011115610af357600080fd5b80359060200191846001830284011164010000000083111715610b1557600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506119a4945050505050565b348015610b6257600080fd5b506104236119f7565b348015610b7757600080fd5b5061029960048036036040811015610b8e57600080fd5b50803590602001356001600160a01b0316611a1b565b348015610bb057600080fd5b506102d460048036036060811015610bc757600080fd5b506001600160a01b03813581169160208101359091169060400135611a74565b348015610bf357600080fd5b5061042360048036036040811015610c0a57600080fd5b506001600160a01b0381358116916020013516611a91565b348015610c2e57600080fd5b50610299611abc565b348015610c4357600080fd5b5061029960048036036020811015610c5a57600080fd5b50356001600160a01b0316611b52565b348015610c7657600080fd5b50610423611c4b565b600954600160b01b900460ff16158015610ca35750600954600160a01b900460ff16155b610cde5760405162461bcd60e51b8152600401808060200182810382526022815260200180612aac6022913960400191505060405180910390fd5b60003411610d1d5760405162461bcd60e51b8152600401808060200182810382526021815260200180612c6a6021913960400191505060405180910390fd5b6000610d46670de0b6b3a7640000610d40600a5434611d5f90919063ffffffff16565b90611db8565b905060008111610d875760405162461bcd60e51b8152600401808060200182810382526022815260200180612ace6022913960400191505060405180910390fd5b610d913382611dfa565b610d996116b2565b6001600160a01b03166108fc349081150290604051600060405180830381858888f19350505050158015610dd1573d6000803e3d6000fd5b5050565b6001600160e01b03191660009081526007602052604090205460ff1690565b610dfc611eea565b6009546001600160a01b03908116911614610e4c576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60b01b191690556040517f276ac144d232a94090b24d455aaef4f930f5413f8b53eb27eda80c670a2b0fda90600090a1565b600954600160a01b900460ff1690565b60038054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f205780601f10610ef557610100808354040283529160200191610f20565b820191906000526020600020905b815481529060010190602001808311610f0357829003601f168201915b5050505050905090565b6000610f3e610f37611eea565b8484611eee565b5060015b92915050565b6000610f64838360405180602001604052806000815250611179565b9392505050565b60025490565b6009546000908490600160b01b900460ff16158015610fc85750600954600160a81b900460ff1680610fc85750610fc87f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c826116d9565b6110035760405162461bcd60e51b815260040180806020018281038252604e815260200180612a5e604e913960600191505060405180910390fd5b61100e858585611fda565b95945050505050565b60009081526008602052604090206002015490565b60008281526008602052604090206002015461104f9061104a611eea565b6116d9565b61108a5760405162461bcd60e51b815260040180806020018281038252602f8152602001806129a0602f913960400191505060405180910390fd5b610dd18282612052565b60055460ff1690565b6000610f648383604051806020016040528060008152506119a4565b600a5490565b60065490565b6110cd611eea565b6001600160a01b0316816001600160a01b03161461111c5760405162461bcd60e51b815260040180806020018281038252602f815260200180612cd4602f913960400191505060405180910390fd5b610dd182826120bb565b6000610f3e611133611eea565b846111748560016000611144611eea565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611c6f565b611eee565b600061118584846117bf565b50611199611191611eea565b858585612124565b6111d45760405162461bcd60e51b8152600401808060200182810382526026815260200180612b716026913960400191505060405180910390fd5b5060019392505050565b600954600160b01b900460ff161580156112025750600954600160a01b900460ff16155b61123d5760405162461bcd60e51b8152600401808060200182810382526022815260200180612aac6022913960400191505060405180910390fd5b6112697ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc961104a611eea565b6112a45760405162461bcd60e51b815260040180806020018281038252602b815260200180612b46602b913960400191505060405180910390fd5b610dd18282611dfa565b6112bf6112b9611eea565b82612269565b50565b600954600160a81b900460ff1690565b6112da611eea565b6009546001600160a01b0390811691161461132a576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6001811015611374576040805162461bcd60e51b8152602060048201526011602482015270526174652063616e74206265207a65726f60781b604482015290519081900360640190fd5b600a55565b600954600160b01b900460ff1690565b6001600160a01b031660009081526020819052604090205490565b6113ac611eea565b6009546001600160a01b039081169116146113fc576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600980546001600160a01b0319169055565b600061147d82604051806060016040528060248152602001612c006024913961147686611471611eea565b611a91565b9190612365565b90506114918361148b611eea565b83611eee565b61149b8383612269565b505050565b6114a8611eea565b6009546001600160a01b039081169116146114f8576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a1565b61153e611eea565b6009546001600160a01b0390811691161461158e576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60b01b1916600160b01b1790556040517f9e87fac88ff661f02d44f95383c817fece4bce600a3dab7a54406878b965e75290600090a1565b6115d4611eea565b6009546001600160a01b03908116911614611624576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b816001600160a01b031663a9059cbb61163b6116b2565b836040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561168257600080fd5b505af1158015611696573d6000803e3d6000fd5b505050506040513d60208110156116ac57600080fd5b50505050565b6009546001600160a01b031690565b6000828152600860205260408120610f6490836123fc565b6000828152600860205260408120610f649083612408565b60048054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610f205780601f10610ef557610100808354040283529160200191610f20565b600081565b6000610f3e611764611eea565b8461117485604051806060016040528060258152602001612caf602591396001600061178e611eea565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190612365565b60006117c9611eea565b600954600160b01b900460ff1615801561181b5750600954600160a81b900460ff168061181b575061181b7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c826116d9565b6118565760405162461bcd60e51b815260040180806020018281038252604e815260200180612a5e604e913960600191505060405180910390fd5b611860848461241d565b949350505050565b611870611eea565b6009546001600160a01b039081169116146118c0576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b60006118db6118cd610f6b565b6118d56110bf565b90612431565b90506118ee6118e86116b2565b82611dfa565b6009805460ff60a01b1916600160a01b1790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150565b600061193a858585610f71565b5061194785858585612124565b6119825760405162461bcd60e51b8152600401808060200182810382526026815260200180612b716026913960400191505060405180910390fd5b506001949350505050565b6000818152600860205260408120610f4290612473565b60006119b08484610f2a565b506119bc84848461247e565b6111d45760405162461bcd60e51b8152600401808060200182810382526025815260200180612a396025913960400191505060405180910390fd5b7ff0887ba65ee2024ea881d91b74c2450ef19e1557f03bed3ea9f16b037cbe2dc981565b600082815260086020526040902060020154611a399061104a611eea565b61111c5760405162461bcd60e51b8152600401808060200182810382526030815260200180612b166030913960400191505060405180910390fd5b60006118608484846040518060200160405280600081525061192d565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b611ac4611eea565b6009546001600160a01b03908116911614611b14576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6009805460ff60a81b1916600160a81b1790556040517f75fce015c314a132947a3e42f6ab79ab8e05397dabf35b4d742dea228bbadc2d90600090a1565b611b5a611eea565b6009546001600160a01b03908116911614611baa576040805162461bcd60e51b81526020600482018190526024820152600080516020612be0833981519152604482015290519081900360640190fd5b6001600160a01b038116611bef5760405162461bcd60e51b81526004018080602001828103825260268152602001806129f16026913960400191505060405180910390fd5b6009546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600980546001600160a01b0319166001600160a01b0392909216919091179055565b7f523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0c81565b600082820183811015610f64576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000610f64836001600160a01b0384166125b1565b611ce983838361149b565b6001600160a01b03831661149b57600654611d0c82611d06610f6b565b90611c6f565b111561149b576040805162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015290519081900360640190fd5b600082611d6e57506000610f42565b82820282848281611d7b57fe5b0414610f645760405162461bcd60e51b8152600401808060200182810382526021815260200180612b976021913960400191505060405180910390fd5b6000610f6483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506125fb565b6001600160a01b038216611e55576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b611e6160008383612660565b600254611e6e9082611c6f565b6002556001600160a01b038216600090815260208190526040902054611e949082611c6f565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b3390565b6001600160a01b038316611f335760405162461bcd60e51b8152600401808060200182810382526024815260200180612c8b6024913960400191505060405180910390fd5b6001600160a01b038216611f785760405162461bcd60e51b8152600401808060200182810382526022815260200180612a176022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000611fe784848461266b565b6111d484611ff3611eea565b61117485604051806060016040528060288152602001612bb8602891396001600160a01b038a16600090815260016020526040812090612031611eea565b6001600160a01b031681526020810191909152604001600020549190612365565b600082815260086020526040902061206a9082611cc9565b15610dd157612077611eea565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526008602052604090206120d390826127c6565b15610dd1576120e0611eea565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000612138846001600160a01b03166127db565b61214457506000611860565b6000846001600160a01b03166388a7ca5c61215d611eea565b8887876040518563ffffffff1660e01b815260040180856001600160a01b03168152602001846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156121d05781810151838201526020016121b8565b50505050905090810190601f1680156121fd5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561221f57600080fd5b505af1158015612233573d6000803e3d6000fd5b505050506040513d602081101561224957600080fd5b50516001600160e01b031916632229f29760e21b14915050949350505050565b6001600160a01b0382166122ae5760405162461bcd60e51b8152600401808060200182810382526021815260200180612c246021913960400191505060405180910390fd5b6122ba82600083612660565b6122f7816040518060600160405280602281526020016129cf602291396001600160a01b0385166000908152602081905260409020549190612365565b6001600160a01b03831660009081526020819052604090205560025461231d9082612431565b6002556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b600081848411156123f45760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156123b95781810151838201526020016123a1565b50505050905090810190601f1680156123e65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000610f648383612814565b6000610f64836001600160a01b038416612878565b6000610f3e61242a611eea565b848461266b565b6000610f6483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612365565b6000610f4282612890565b6000612492846001600160a01b03166127db565b61249e57506000610f64565b6000846001600160a01b0316637b04a2d06124b7611eea565b86866040518463ffffffff1660e01b815260040180846001600160a01b0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561251a578181015183820152602001612502565b50505050905090810190601f1680156125475780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b15801561256857600080fd5b505af115801561257c573d6000803e3d6000fd5b505050506040513d602081101561259257600080fd5b50516001600160e01b0319166307b04a2d60e41b149150509392505050565b60006125bd8383612878565b6125f357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610f42565b506000610f42565b6000818361264a5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156123b95781810151838201526020016123a1565b50600083858161265657fe5b0495945050505050565b61149b838383611cde565b6001600160a01b0383166126b05760405162461bcd60e51b8152600401808060200182810382526025815260200180612c456025913960400191505060405180910390fd5b6001600160a01b0382166126f55760405162461bcd60e51b815260040180806020018281038252602381526020018061297d6023913960400191505060405180910390fd5b612700838383612660565b61273d81604051806060016040528060268152602001612af0602691396001600160a01b0386166000908152602081905260409020549190612365565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461276c9082611c6f565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6000610f64836001600160a01b038416612894565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590611860575050151592915050565b815460009082106128565760405162461bcd60e51b815260040180806020018281038252602281526020018061295b6022913960400191505060405180910390fd5b82600001828154811061286557fe5b9060005260206000200154905092915050565b60009081526001919091016020526040902054151590565b5490565b6000818152600183016020526040812054801561295057835460001980830191908101906000908790839081106128c757fe5b90600052602060002001549050808760000184815481106128e457fe5b60009182526020808320909101929092558281526001898101909252604090209084019055865487908061291457fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050610f42565b6000915050610f4256fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e647345524332303a207472616e7366657220746f20746865207a65726f2061646472657373416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e7445524332303a206275726e20616d6f756e7420657863656564732062616c616e63654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373455243313336333a205f636865636b416e6443616c6c417070726f7665207265766572747345636f62616e6b61546f6b656e3a207472616e73666572206973206e6f7420656e61626c6564206f722066726f6d20646f6573206e6f74206861766520746865204f50455241544f5220726f6c6545636f62616e6b61546f6b656e3a206d696e74696e67206e6f7420656e61626c6564546f6b656e732073686f756c642062652067726561746572207468616e207a65726f45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b65526f6c65733a2063616c6c657220646f6573206e6f74206861766520746865204d494e54455220726f6c65455243313336333a205f636865636b416e6443616c6c5472616e736665722072657665727473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657245524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737356616c75652073686f756c642062652067726561746572207468616e207a65726f45524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636520726f6c657320666f722073656c66a2646970667358221220fb45faf0b159e2f5e9cfa0c5df4bacb5f5f448e049d3a74ebd15dcb2c6a81e4e64736f6c63430007000033

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

0000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000077359400000000000000000000000000000000000000000000000000000000000cd1fb07000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000645636f62616e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000445434b4e00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name (string): Ecoban
Arg [1] : symbol (string): ECKN
Arg [2] : decimals (uint8): 0
Arg [3] : cap (uint256): 2000000000
Arg [4] : rate (uint256): 215087879
Arg [5] : initialSupply (uint256): 1000000000
Arg [6] : transferEnabled (bool): True
Arg [7] : mintingFinished (bool): False

-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000140
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [3] : 0000000000000000000000000000000000000000000000000000000077359400
Arg [4] : 000000000000000000000000000000000000000000000000000000000cd1fb07
Arg [5] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [9] : 45636f62616e0000000000000000000000000000000000000000000000000000
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [11] : 45434b4e00000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

22286:4026:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23970:14;:12;:14::i;:::-;22286:4026;;;;;9714:142;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9714:142:0;-1:-1:-1;;;;;;9714:142:0;;:::i;:::-;;;;;;;;;;;;;;;;;;25890:100;;;;;;;;;;;;;:::i;24198:96::-;;;;;;;;;;;;;:::i;3745:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4599:169;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4599:169:0;;;;;;;;:::i;12766:139::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12766:139:0;;;;;;;;:::i;4022:100::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;25225:188;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25225:188:0;;;;;;;;;;;;;;;;;:::i;18935:114::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18935:114:0;;:::i;19057:227::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19057:227:0;;;;;;-1:-1:-1;;;;;19057:227:0;;:::i;3931:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13676:147;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13676:147:0;;;;;;;;:::i;24006:86::-;;;;;;;;;;;;;:::i;7744:75::-;;;;;;;;;;;;;:::i;19530:209::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19530:209:0;;;;;;-1:-1:-1;;;;;19530:209:0;;:::i;5105:218::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5105:218:0;;;;;;;;:::i;12913:276::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12913:276:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12913:276:0;;-1:-1:-1;12913:276:0;;-1:-1:-1;;;;;12913:276:0:i;24935:102::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24935:102:0;;;;;;;;:::i;8245:91::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8245:91:0;;:::i;24304:96::-;;;;;;;;;;;;;:::i;24776:149::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24776:149:0;;:::i;24106:78::-;;;;;;;;;;;;;:::i;4130:119::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4130:119:0;-1:-1:-1;;;;;4130:119:0;;:::i;21637:148::-;;;;;;;;;;;;;:::i;8344:295::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8344:295:0;;;;;;;;:::i;25655:116::-;;;;;;;;;;;;;:::i;25785:91::-;;;;;;;;;;;;;:::i;22094:152::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22094:152:0;;;;;;;;:::i;21415:87::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;21415:87:0;;;;;;;;;;;;;;18789:138;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18789:138:0;;;;;;;:::i;18505:139::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18505:139:0;;;;;;-1:-1:-1;;;;;18505:139:0;;:::i;3836:87::-;;;;;;;;;;;;;:::i;18253:49::-;;;;;;;;;;;;;:::i;5333:269::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5333:269:0;;;;;;;;:::i;25047:168::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25047:168:0;;;;;;;;:::i;24412:344::-;;;:::i;25425:220::-;;;;;;;;;;;;;:::i;13372:296::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13372:296:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13372:296:0;;-1:-1:-1;13372:296:0;;-1:-1:-1;;;;;13372:296:0:i;18654:127::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18654:127:0;;:::i;13831:273::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13831:273:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13831:273:0;;-1:-1:-1;13831:273:0;;-1:-1:-1;;;;;13831:273:0:i;20437:57::-;;;;;;;;;;;;;:::i;19292:230::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19292:230:0;;;;;;-1:-1:-1;;;;;19292:230:0;;:::i;13197:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13197:167:0;;;;;;;;;;;;;;;;;:::i;4440:151::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4440:151:0;;;;;;;;;;:::i;26000:120::-;;;;;;;;;;;;;:::i;21793:252::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21793:252:0;-1:-1:-1;;;;;21793:252:0;;:::i;20501:61::-;;;;;;;;;;;;;:::i;24412:344::-;22751:7;;-1:-1:-1;;;22751:7:0;;;;22750:8;:29;;;;-1:-1:-1;22763:16:0;;-1:-1:-1;;;22763:16:0;;;;22762:17;22750:29;22742:76;;;;-1:-1:-1;;;22742:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24492:1:::1;24479:9;:14;24471:60;;;;-1:-1:-1::0;;;24471:60:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24542:15;24560:45;24585:19;24560:20;24574:5;;24560:9;:13;;:20;;;;:::i;:::-;:24:::0;::::1;:45::i;:::-;24542:63;;24634:1;24624:6;:11;24616:58;;;;-1:-1:-1::0;;;24616:58:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24685:25;24691:10;24703:6;24685:5;:25::i;:::-;24721:7;:5;:7::i;:::-;-1:-1:-1::0;;;;;24721:16:0::1;:27;24738:9;24721:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;22829:1;24412:344::o:0;9714:142::-;-1:-1:-1;;;;;;9815:33:0;9791:4;9815:33;;;:20;:33;;;;;;;;;9714:142::o;25890:100::-;21560:12;:10;:12::i;:::-;21550:6;;-1:-1:-1;;;;;21550:6:0;;;:22;;;21542:67;;;;;-1:-1:-1;;;21542:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21542:67:0;;;;;;;;;;;;;;;25936:7:::1;:15:::0;;-1:-1:-1;;;;25936:15:0::1;::::0;;25967::::1;::::0;::::1;::::0;25946:5:::1;::::0;25967:15:::1;25890:100::o:0;24198:96::-;24270:16;;-1:-1:-1;;;24270:16:0;;;;;24198:96::o;3745:83::-;3815:5;3808:12;;;;;;;;-1:-1:-1;;3808:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3782:13;;3808:12;;3815:5;;3808:12;;3815:5;3808:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3745:83;:::o;4599:169::-;4682:4;4699:39;4708:12;:10;:12::i;:::-;4722:7;4731:6;4699:8;:39::i;:::-;-1:-1:-1;4756:4:0;4599:169;;;;;:::o;12766:139::-;12843:4;12867:30;12883:2;12887:5;12867:30;;;;;;;;;;;;:15;:30::i;:::-;12860:37;12766:139;-1:-1:-1;;;12766:139:0:o;4022:100::-;4102:12;;4022:100;:::o;25225:188::-;22915:7;;25346:4;;25331;;-1:-1:-1;;;22915:7:0;;;;22914:8;:62;;;;-1:-1:-1;22927:16:0;;-1:-1:-1;;;22927:16:0;;;;;:48;;;22947:28;20541:21;22970:4;22947:7;:28::i;:::-;22892:190;;;;-1:-1:-1;;;22892:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25370:35:::1;25389:4;25395:2;25399:5;25370:18;:35::i;:::-;25363:42:::0;25225:188;-1:-1:-1;;;;;25225:188:0:o;18935:114::-;18992:7;19019:12;;;:6;:12;;;;;:22;;;;18935:114::o;19057:227::-;19149:12;;;;:6;:12;;;;;:22;;;19141:45;;19173:12;:10;:12::i;:::-;19141:7;:45::i;:::-;19133:105;;;;-1:-1:-1;;;19133:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19251:25;19262:4;19268:7;19251:10;:25::i;3931:83::-;3997:9;;;;3931:83;:::o;13676:147::-;13757:4;13781:34;13796:7;13805:5;13781:34;;;;;;;;;;;;:14;:34::i;24006:86::-;24079:5;;24006:86;:::o;7744:75::-;7807:4;;7744:75;:::o;19530:209::-;19628:12;:10;:12::i;:::-;-1:-1:-1;;;;;19617:23:0;:7;-1:-1:-1;;;;;19617:23:0;;19609:83;;;;-1:-1:-1;;;19609:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19705:26;19717:4;19723:7;19705:11;:26::i;5105:218::-;5193:4;5210:83;5219:12;:10;:12::i;:::-;5233:7;5242:50;5281:10;5242:11;:25;5254:12;:10;:12::i;:::-;-1:-1:-1;;;;;5242:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;5242:25:0;;;:34;;;;;;;;;;;:38;:50::i;:::-;5210:8;:83::i;12913:276::-;13009:4;13026:19;13035:2;13039:5;13026:8;:19::i;:::-;;13064:52;13086:12;:10;:12::i;:::-;13100:2;13104:5;13111:4;13064:21;:52::i;:::-;13056:103;;;;-1:-1:-1;;;13056:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13177:4:0;12913:276;;;;;:::o;24935:102::-;22751:7;;-1:-1:-1;;;22751:7:0;;;;22750:8;:29;;;;-1:-1:-1;22763:16:0;;-1:-1:-1;;;22763:16:0;;;;22762:17;22750:29;22742:76;;;;-1:-1:-1;;;22742:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20796:34:::1;20475:19;20817:12;:10;:12::i;20796:34::-;20788:90;;;;-1:-1:-1::0;;;20788:90:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25013:16:::2;25019:2;25023:5;25013;:16::i;8245:91::-:0;8301:27;8307:12;:10;:12::i;:::-;8321:6;8301:5;:27::i;:::-;8245:91;:::o;24304:96::-;24376:16;;-1:-1:-1;;;24376:16:0;;;;;24304:96::o;24776:149::-;21560:12;:10;:12::i;:::-;21550:6;;-1:-1:-1;;;;;21550:6:0;;;:22;;;21542:67;;;;;-1:-1:-1;;;21542:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21542:67:0;;;;;;;;;;;;;;;24867:1:::1;24857:6;:11;;24849:43;;;::::0;;-1:-1:-1;;;24849:43:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;24849:43:0;;;;;;;;;;;;;::::1;;24903:5;:14:::0;24776:149::o;24106:78::-;24169:7;;-1:-1:-1;;;24169:7:0;;;;;24106:78::o;4130:119::-;-1:-1:-1;;;;;4223:18:0;4196:7;4223:18;;;;;;;;;;;;4130:119::o;21637:148::-;21560:12;:10;:12::i;:::-;21550:6;;-1:-1:-1;;;;;21550:6:0;;;:22;;;21542:67;;;;;-1:-1:-1;;;21542:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21542:67:0;;;;;;;;;;;;;;;21728:6:::1;::::0;21707:40:::1;::::0;21744:1:::1;::::0;-1:-1:-1;;;;;21728:6:0::1;::::0;21707:40:::1;::::0;21744:1;;21707:40:::1;21758:6;:19:::0;;-1:-1:-1;;;;;;21758:19:0::1;::::0;;21637:148::o;8344:295::-;8421:26;8450:84;8487:6;8450:84;;;;;;;;;;;;;;;;;:32;8460:7;8469:12;:10;:12::i;:::-;8450:9;:32::i;:::-;:36;:84;:36;:84::i;:::-;8421:113;;8547:51;8556:7;8565:12;:10;:12::i;:::-;8579:18;8547:8;:51::i;:::-;8609:22;8615:7;8624:6;8609:5;:22::i;:::-;8344:295;;;:::o;25655:116::-;21560:12;:10;:12::i;:::-;21550:6;;-1:-1:-1;;;;;21550:6:0;;;:22;;;21542:67;;;;;-1:-1:-1;;;21542:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21542:67:0;;;;;;;;;;;;;;;25708:16:::1;:23:::0;;-1:-1:-1;;;;25708:23:0::1;-1:-1:-1::0;;;25708:23:0::1;::::0;;25749:14:::1;::::0;::::1;::::0;25708:23;;25749:14:::1;25655:116::o:0;25785:91::-;21560:12;:10;:12::i;:::-;21550:6;;-1:-1:-1;;;;;21550:6:0;;;:22;;;21542:67;;;;;-1:-1:-1;;;21542:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21542:67:0;;;;;;;;;;;;;;;25830:7:::1;:14:::0;;-1:-1:-1;;;;25830:14:0::1;-1:-1:-1::0;;;25830:14:0::1;::::0;;25860:8:::1;::::0;::::1;::::0;25830:14;;25860:8:::1;25785:91::o:0;22094:152::-;21560:12;:10;:12::i;:::-;21550:6;;-1:-1:-1;;;;;21550:6:0;;;:22;;;21542:67;;;;;-1:-1:-1;;;21542:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21542:67:0;;;;;;;;;;;;;;;22194:12:::1;-1:-1:-1::0;;;;;22187:29:0::1;;22217:7;:5;:7::i;:::-;22226:11;22187:51;;;;;;;;;;;;;-1:-1:-1::0;;;;;22187:51:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;;22094:152:0:o;21415:87::-;21488:6;;-1:-1:-1;;;;;21488:6:0;21415:87;:::o;18789:138::-;18862:7;18889:12;;;:6;:12;;;;;:30;;18913:5;18889:23;:30::i;18505:139::-;18574:4;18598:12;;;:6;:12;;;;;:38;;18628:7;18598:29;:38::i;3836:87::-;3908:7;3901:14;;;;;;;;-1:-1:-1;;3901:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3875:13;;3901:14;;3908:7;;3901:14;;3908:7;3901:14;;;;;;;;;;;;;;;;;;;;;;;;18253:49;18298:4;18253:49;:::o;5333:269::-;5426:4;5443:129;5452:12;:10;:12::i;:::-;5466:7;5475:96;5514:15;5475:96;;;;;;;;;;;;;;;;;:11;:25;5487:12;:10;:12::i;:::-;-1:-1:-1;;;;;5475:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;5475:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;25047:168::-;25158:4;25135:12;:10;:12::i;:::-;22915:7;;-1:-1:-1;;;22915:7:0;;;;22914:8;:62;;;;-1:-1:-1;22927:16:0;;-1:-1:-1;;;22927:16:0;;;;;:48;;;22947:28;20541:21;22970:4;22947:7;:28::i;:::-;22892:190;;;;-1:-1:-1;;;22892:190:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25182:25:::1;25197:2;25201:5;25182:14;:25::i;:::-;25175:32:::0;25047:168;-1:-1:-1;;;;25047:168:0:o;25425:220::-;21560:12;:10;:12::i;:::-;21550:6;;-1:-1:-1;;;;;21550:6:0;;;:22;;;21542:67;;;;;-1:-1:-1;;;21542:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21542:67:0;;;;;;;;;;;;;;;25480:24:::1;25507;25517:13;:11;:13::i;:::-;25507:5;:3;:5::i;:::-;:9:::0;::::1;:24::i;:::-;25480:51;;25542:31;25548:7;:5;:7::i;:::-;25557:15;25542:5;:31::i;:::-;25584:16;:23:::0;;-1:-1:-1;;;;25584:23:0::1;-1:-1:-1::0;;;25584:23:0::1;::::0;;25623:14:::1;::::0;::::1;::::0;25584:23;;25623:14:::1;21620:1;25425:220::o:0;13372:296::-;13486:4;13503:29;13516:4;13522:2;13526:5;13503:12;:29::i;:::-;;13551:44;13573:4;13579:2;13583:5;13590:4;13551:21;:44::i;:::-;13543:95;;;;-1:-1:-1;;;13543:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13656:4:0;13372:296;;;;;;:::o;18654:127::-;18717:7;18744:12;;;:6;:12;;;;;:29;;:27;:29::i;13831:273::-;13931:4;13948:23;13956:7;13965:5;13948:7;:23::i;:::-;;13990:42;14011:7;14020:5;14027:4;13990:20;:42::i;:::-;13982:92;;;;-1:-1:-1;;;13982:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20437:57;20475:19;20437:57;:::o;19292:230::-;19385:12;;;;:6;:12;;;;;:22;;;19377:45;;19409:12;:10;:12::i;19377:45::-;19369:106;;;;-1:-1:-1;;;19369:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13197:167;13292:4;13316:40;13336:4;13342:2;13346:5;13316:40;;;;;;;;;;;;:19;:40::i;4440:151::-;-1:-1:-1;;;;;4556:18:0;;;4529:7;4556:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4440:151::o;26000:120::-;21560:12;:10;:12::i;:::-;21550:6;;-1:-1:-1;;;;;21550:6:0;;;:22;;;21542:67;;;;;-1:-1:-1;;;21542:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21542:67:0;;;;;;;;;;;;;;;26054:16:::1;:23:::0;;-1:-1:-1;;;;26054:23:0::1;-1:-1:-1::0;;;26054:23:0::1;::::0;;26095:17:::1;::::0;::::1;::::0;26054:23;;26095:17:::1;26000:120::o:0;21793:252::-;21560:12;:10;:12::i;:::-;21550:6;;-1:-1:-1;;;;;21550:6:0;;;:22;;;21542:67;;;;;-1:-1:-1;;;21542:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;21542:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21890:22:0;::::1;21882:73;;;;-1:-1:-1::0;;;21882:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21992:6;::::0;21971:38:::1;::::0;-1:-1:-1;;;;;21971:38:0;;::::1;::::0;21992:6:::1;::::0;21971:38:::1;::::0;21992:6:::1;::::0;21971:38:::1;22020:6;:17:::0;;-1:-1:-1;;;;;;22020:17:0::1;-1:-1:-1::0;;;;;22020:17:0;;;::::1;::::0;;;::::1;::::0;;21793:252::o;20501:61::-;20541:21;20501:61;:::o;1035:181::-;1093:7;1125:5;;;1149:6;;;;1141:46;;;;;-1:-1:-1;;;1141:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;16438:143;16508:4;16532:41;16537:3;-1:-1:-1;;;;;16557:14:0;;16532:4;:41::i;7827:318::-;7936:44;7963:4;7969:2;7973:6;7936:26;:44::i;:::-;-1:-1:-1;;;;;7997:18:0;;7993:145;;8092:4;;8063:25;8081:6;8063:13;:11;:13::i;:::-;:17;;:25::i;:::-;:33;;8055:71;;;;;-1:-1:-1;;;8055:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;1568:250;1626:7;1650:6;1646:47;;-1:-1:-1;1680:1:0;1673:8;;1646:47;1717:5;;;1721:1;1717;:5;:1;1741:5;;;;;:10;1733:56;;;;-1:-1:-1;;;1733:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1826:132;1884:7;1911:39;1915:1;1918;1911:39;;;;;;;;;;;;;;;;;:3;:39::i;6157:378::-;-1:-1:-1;;;;;6241:21:0;;6233:65;;;;;-1:-1:-1;;;6233:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6311:49;6340:1;6344:7;6353:6;6311:20;:49::i;:::-;6388:12;;:24;;6405:6;6388:16;:24::i;:::-;6373:12;:39;-1:-1:-1;;;;;6444:18:0;;:9;:18;;;;;;;;;;;:30;;6467:6;6444:22;:30::i;:::-;-1:-1:-1;;;;;6423:18:0;;:9;:18;;;;;;;;;;;:51;;;;6490:37;;;;;;;6423:18;;:9;;6490:37;;;;;;;;;;6157:378;;:::o;775:106::-;863:10;775:106;:::o;6969:346::-;-1:-1:-1;;;;;7071:19:0;;7063:68;;;;-1:-1:-1;;;7063:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7150:21:0;;7142:68;;;;-1:-1:-1;;;7142:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7223:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7275:32;;;;;;;;;;;;;;;;;6969:346;;;:::o;4776:321::-;4882:4;4899:36;4909:6;4917:9;4928:6;4899:9;:36::i;:::-;4946:121;4955:6;4963:12;:10;:12::i;:::-;4977:89;5015:6;4977:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4977:19:0;;;;;;:11;:19;;;;;;4997:12;:10;:12::i;:::-;-1:-1:-1;;;;;4977:33:0;;;;;;;;;;;;-1:-1:-1;4977:33:0;;;:89;:37;:89::i;20001:188::-;20075:12;;;;:6;:12;;;;;:33;;20100:7;20075:24;:33::i;:::-;20071:111;;;20157:12;:10;:12::i;:::-;-1:-1:-1;;;;;20130:40:0;20148:7;-1:-1:-1;;;;;20130:40:0;20142:4;20130:40;;;;;;;;;;20001:188;;:::o;20197:192::-;20272:12;;;;:6;:12;;;;;:36;;20300:7;20272:27;:36::i;:::-;20268:114;;;20357:12;:10;:12::i;:::-;-1:-1:-1;;;;;20330:40:0;20348:7;-1:-1:-1;;;;;20330:40:0;20342:4;20330:40;;;;;;;;;;20197:192;;:::o;14112:364::-;14221:4;14243:15;:2;-1:-1:-1;;;;;14243:13:0;;:15::i;:::-;14238:61;;-1:-1:-1;14282:5:0;14275:12;;14238:61;14309:13;14342:2;-1:-1:-1;;;;;14325:39:0;;14379:12;:10;:12::i;:::-;14393:4;14399:5;14406:4;14325:96;;;;;;;;;;;;;-1:-1:-1;;;;;14325:96:0;;;;;;-1:-1:-1;;;;;14325:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14325:96:0;-1:-1:-1;;;;;;14440:27:0;-1:-1:-1;;;14440:27:0;;-1:-1:-1;;14112:364:0;;;;;;:::o;6543:418::-;-1:-1:-1;;;;;6627:21:0;;6619:67;;;;-1:-1:-1;;;6619:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6699:49;6720:7;6737:1;6741:6;6699:20;:49::i;:::-;6782:68;6805:6;6782:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6782:18:0;;:9;:18;;;;;;;;;;;;:68;:22;:68::i;:::-;-1:-1:-1;;;;;6761:18:0;;:9;:18;;;;;;;;;;:89;6876:12;;:24;;6893:6;6876:16;:24::i;:::-;6861:12;:39;6916:37;;;;;;;;6942:1;;-1:-1:-1;;;;;6916:37:0;;;;;;;;;;;;6543:418;;:::o;1368:192::-;1454:7;1490:12;1482:6;;;;1474:29;;;;-1:-1:-1;;;1474:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1526:5:0;;;1368:192::o;17041:149::-;17115:7;17158:22;17162:3;17174:5;17158:3;:22::i;16748:158::-;16828:4;16852:46;16862:3;-1:-1:-1;;;;;16882:14:0;;16852:9;:46::i;4257:175::-;4343:4;4360:42;4370:12;:10;:12::i;:::-;4384:9;4395:6;4360:9;:42::i;1224:136::-;1282:7;1309:43;1313:1;1316;1309:43;;;;;;;;;;;;;;;;;:3;:43::i;16916:117::-;16979:7;17006:19;17014:3;17006:7;:19::i;14484:357::-;14583:4;14605:20;:7;-1:-1:-1;;;;;14605:18:0;;:20::i;:::-;14600:66;;-1:-1:-1;14649:5:0;14642:12;;14600:66;14676:13;14708:7;-1:-1:-1;;;;;14692:43:0;;14750:12;:10;:12::i;:::-;14764:5;14771:4;14692:94;;;;;;;;;;;;;-1:-1:-1;;;;;14692:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14692:94:0;-1:-1:-1;;;;;;14805:27:0;-1:-1:-1;;;14805:27:0;;-1:-1:-1;;14484:357:0;;;;;:::o;14984:291::-;15047:4;15069:21;15079:3;15084:5;15069:9;:21::i;:::-;15064:204;;-1:-1:-1;15107:23:0;;;;;;;;:11;:23;;;;;;;;;;;;;15167:18;;15145:19;;;:12;;;:19;;;;;;:40;;;;15200:11;;15064:204;-1:-1:-1;15251:5:0;15244:12;;1966:191;2052:7;2087:12;2080:5;2072:28;;;;-1:-1:-1;;;2072:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2111:9;2127:1;2123;:5;;;;;;;1966:191;-1:-1:-1;;;;;1966:191:0:o;26128:181::-;26257:44;26284:4;26290:2;26294:6;26257:26;:44::i;5610:539::-;-1:-1:-1;;;;;5716:20:0;;5708:70;;;;-1:-1:-1;;;5708:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5797:23:0;;5789:71;;;;-1:-1:-1;;;5789:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5873:47;5894:6;5902:9;5913:6;5873:20;:47::i;:::-;5953:71;5975:6;5953:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5953:17:0;;:9;:17;;;;;;;;;;;;:71;:21;:71::i;:::-;-1:-1:-1;;;;;5933:17:0;;;:9;:17;;;;;;;;;;;:91;;;;6058:20;;;;;;;:32;;6083:6;6058:24;:32::i;:::-;-1:-1:-1;;;;;6035:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;6106:35;;;;;;;6035:20;;6106:35;;;;;;;;;;;;;5610:539;;;:::o;16591:149::-;16664:4;16688:44;16696:3;-1:-1:-1;;;;;16716:14:0;;16688:7;:44::i;2499:322::-;2559:4;2730:20;;2628:66;2770:23;;;;;;:42;;-1:-1:-1;;2797:15:0;;;2762:51;-1:-1:-1;;2499:322:0:o;16165:204::-;16260:18;;16232:7;;16260:26;-1:-1:-1;16252:73:0;;;;-1:-1:-1;;;16252:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16343:3;:11;;16355:5;16343:18;;;;;;;;;;;;;;;;16336:25;;16165:204;;;;:::o;15907:129::-;15980:4;16004:19;;;:12;;;;;:19;;;;;;:24;;;15907:129::o;16046:109::-;16129:18;;16046:109::o;15283:614::-;15349:4;15387:19;;;:12;;;:19;;;;;;15423:15;;15419:471;;15531:18;;-1:-1:-1;;15482:14:0;;;;15531:22;;;;15458:21;;15531:3;;:22;;15590;;;;;;;;;;;;;;15570:42;;15658:9;15629:3;:11;;15641:13;15629:26;;;;;;;;;;;;;;;;;;;:38;;;;15684:23;;;15726:1;15684:12;;;:23;;;;;;15710:17;;;15684:43;;15745:17;;15684:3;;15745:17;;;;;;;;;;;;;;;;;;;;;;15786:3;:12;;:19;15799:5;15786:19;;;;;;;;;;;15779:26;;;15829:4;15822:11;;;;;;;;15419:471;15873:5;15866:12;;;;

Swarm Source

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