contract HasEther is Ownable {

  /**
   * @dev allows direct send by settings a default function with the `payable` flag.
   */
  function() public payable {
  }

  /**
   * @dev Transfer all Ether held by the contract to the owner.
   */
  function recoverETH_SendbyMistake() external onlyOwner {
    // solium-disable-next-line security/no-send
    assert(owner.send(address(this).balance));
  }
}
/**
 * @title Contracts that should not own Ether
 * @author Remco Bloemen <remco@2π.com>
 * @dev This tries to block incoming ether to prevent accidental loss of Ether. Should Ether end up
 * in the contract, it will allow the owner to reclaim this ether.
 * @notice Ether can still be send to this contract by:
 * calling functions labeled `payable`
 * `selfdestruct(contract_address)`
 * mining directly to the contract address
 */
function() public payable {
}

/**
 * @dev allows direct send by settings a default function with the `payable` flag.
 */