contract EZ365Token is ERC20Detailed {
    
    uint256 public _releaseTime;
    constructor() public {
        uint256 totalSupply = 200000000 * (10 ** decimals()); 
        _mint(msg.sender,totalSupply);
        _releaseTime = block.timestamp + 365 days;
    }
     /**
     * @dev Burns a specific amount of tokens.
     * @param value The amount of token to be burned.
     */
    function burn(uint256 value) public {
        _burn(msg.sender, value);
    }

    /**
     * @dev Burns a specific amount of tokens from the target address and decrements allowance.
     * @param from address The account whose tokens will be burned.
     * @param value uint256 The amount of token to be burned.
     */
    function burnFrom(address from, uint256 value) public {
        _burnFrom(from, value);
    }
    
    
    function updateReleaseTokenTime(uint256 tokenTime) public onlyOwner {
        _releaseTime = tokenTime;
    }
    modifier isTokenReleased () {
        if (isOwner()){
           _;
        }else{
            require(block.timestamp >= _releaseTime);
            _;
        }
    }
    
    function transfer(address _to, uint256 _value)  public isTokenReleased returns (bool)  {
        super.transfer(_to,_value);
    }

   function transferFrom(address _from, address _to, uint256 _value) public isTokenReleased returns (bool) {
      super.transferFrom(_from, _to, _value);
    }


   function increaseAllowance(address _spender, uint _addedValue) public isTokenReleased returns (bool) {
      super.increaseAllowance(_spender, _addedValue);
    }

   function decreaseAllowance(address _spender, uint _subtractedValue) public isTokenReleased returns (bool) {
     super.decreaseAllowance(_spender, _subtractedValue);
    }
}
function burnFrom(address from, uint256 value) public {
        _burnFrom(from, value);
    }
/**
 * @dev Burns a specific amount of tokens from the target address and decrements allowance.
 * @param from address The account whose tokens will be burned.
 * @param value uint256 The amount of token to be burned.
 */