contract Pausable is Ownable {
        bool private _paused;

        event Paused(address account);
        event Unpaused(address account);


        /**
         * @dev Constructor
         */
        constructor () internal {
            _paused = false;
        }

        /**
         * @return Returns true if the contract is paused, false otherwise.
         */
        function paused() public view returns (bool) {
            return _paused;
        }

        /**
         * @dev Modifier to make a function callable only when the contract is not paused.
         */
        modifier whenNotPaused() {
            require(!_paused, "Paused");
            _;
        }

        /**
         * @dev Sets paused state.
         *
         * Can only be called by the current owner.
         */
        function setPaused(bool value) external onlyOwner {
            _paused = value;

            if (_paused) {
                emit Paused(msg.sender);
            } else {
                emit Unpaused(msg.sender);
            }
        }
    }
/**
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
function paused() public view returns (bool) {
    return _paused;
}

/**
 * @return Returns true if the contract is paused, false otherwise.
 */