contract BurnableToken is StandardToken {

  address public constant BURN_ADDRESS = 0;

  /** How many tokens we burned */
  event Burned(address burner, uint burnedAmount);

  /**
   * Burn extra tokens from a balance.
   *
   */
  function burn(uint burnAmount) public {
    address burner = msg.sender;
    balances[burner] = safeSub(balances[burner], burnAmount);
    totalSupply = safeSub(totalSupply, burnAmount);
    Burned(burner, burnAmount);
  }
}
function burn(uint burnAmount) public {
  address burner = msg.sender;
  balances[burner] = safeSub(balances[burner], burnAmount);
  totalSupply = safeSub(totalSupply, burnAmount);
  Burned(burner, burnAmount);
}

/**
 * Burn extra tokens from a balance.
 *
 */