contract BurnableCADVToken is ERC20 {

    uint8 public decimals = 18;
    string public name;
    string public symbol;
    
    /**
     * @dev set the amount of tokens that an owner allowed to a spender.
     *  
     * This function is disabled because using it is risky, so a revert()
     * is always called as the first line of code.
     * Instead of this function, use increaseApproval or decreaseApproval.
     * 
     * @param spender The address which will spend the funds.
     * @param value The amount of tokens to increase the allowance by.
     */
    function approve(address spender, uint256 value) public returns (bool) {
        revert();
        spender = spender;
        value = value;
        return false;
    }
    
    function increaseApproval(address _spender, uint _addedValue) public returns (bool);
    function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool);
    function multipleTransfer(address[] _tos, uint256 _value) public returns (bool);
    function burn(uint256 _value) public;
    event Burn(address indexed burner, uint256 value);
    
}
/**
 * @title BurnableCADVToken interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
function approve(address spender, uint256 value) public returns (bool) {
    revert();
    spender = spender;
    value = value;
    return false;
}

/**
 * @dev set the amount of tokens that an owner allowed to a spender.
 *  
 * This function is disabled because using it is risky, so a revert()
 * is always called as the first line of code.
 * Instead of this function, use increaseApproval or decreaseApproval.
 * 
 * @param spender The address which will spend the funds.
 * @param value The amount of tokens to increase the allowance by.
 */