contract Ownable
{
    /**
    * @dev Address of the current owner
    */
    address public owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    // Constructor. Set the original `owner` of the contract to the sender account.
    function Ownable() public
    {
        owner = msg.sender;
    }

    // Throws if called by any account other than the owner.
    modifier onlyOwner()
    {
        require(msg.sender == owner);
        _;
    }

    /** Allows the current owner to transfer control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function transferOwnership(address newOwner) onlyOwner public
    {
        require(newOwner != address(0));
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}
// Contract Ownable (defines a contract with an owner)
//------------------------------------------------------------------------------------------------------------
function Ownable() public
    {
        owner = msg.sender;
    }
// Constructor. Set the original `owner` of the contract to the sender account.