/*
	version.h (12.06.10)
	Version constants.

	Free exFAT implementation.
	Copyright (C) 2010-2013  Andrew Nayenko

	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 2 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License along
	with this program; if not, write to the Free Software Foundation, Inc.,
	51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#ifndef VERSION_H_INCLUDED
#define VERSION_H_INCLUDED

#define EXFAT_VERSION_MAJOR 1
#define EXFAT_VERSION_MINOR 0
#define EXFAT_VERSION_PATCH 0

#endif /* ifndef VERSION_H_INCLUDED */
