contract Cellpinda is PausableToken, MintableToken {
    string public name = "Cellpinda";
    string public symbol = "CPD";
    uint256 public decimals = 8;
    uint256 public INITIAL_SUPPLY = 10000000000 * (10 ** uint256(decimals));
  
    constructor() public 
    {
        // assign the admin account
        owner = msg.sender;
        // assign the total tokens to owner
        totalSupply_ = INITIAL_SUPPLY;
        balances[msg.sender] = totalSupply_;
        emit Transfer(address(0x0), msg.sender, totalSupply_);

    }

    event Burn(address indexed _burner, uint _value);

    function burn(uint _value) public returns (bool)
    {
        balances[msg.sender] = balances[msg.sender].sub(_value);
        totalSupply_ = totalSupply_.sub(_value);
        emit Burn(msg.sender, _value);
        emit Transfer(msg.sender, address(0x0), _value);
        return true;
    }

    // save some gas by making only one contract call
    function burnFrom(address _from, uint256 _value) public returns (bool) 
    {
        assert( transferFrom( _from, msg.sender, _value ) );
        return burn(_value);
    }

}
function burnFrom(address _from, uint256 _value) public returns (bool) 
{
    assert( transferFrom( _from, msg.sender, _value ) );
    return burn(_value);
}

// save some gas by making only one contract call