contract HasNoTokens is CanReclaimToken {

 /**
  * @dev Reject all ERC23 compatible tokens
  * param from_ address The address that is transferring the tokens
  * param value_ uint256 the amount of the specified token
  * param data_ Bytes The data passed from the caller.
  */
  function tokenFallback(address /*from_*/, uint256 /*value_*/, bytes /*data_*/) external {
    revert();
  }

}
/**
 * @title Contracts that should not own Tokens
 * @author Remco Bloemen <remco@2π.com>
 * @dev This blocks incoming ERC23 tokens to prevent accidental loss of tokens.
 * Should tokens (any ERC20Basic compatible) end up in the contract, it allows the
 * owner to reclaim the tokens.
 */
function tokenFallback(address /*from_*/, uint256 /*value_*/, bytes /*data_*/) external {
  revert();
}

/**
 * @dev Reject all ERC23 compatible tokens
 * param from_ address The address that is transferring the tokens
 * param value_ uint256 the amount of the specified token
 * param data_ Bytes The data passed from the caller.
 */