This is the Debian GNU/Linux prepackaged version of the translation
files of the EXT2 file system utilities.  The EXT2 utilities were
written by Theodore Ts'o <tytso@mit.edu> and Remy Card
<card@masi.ibp.fr>.

Sources were obtained from http://sourceforge.net/projects/e2fsprogs

Packaging is Copyright (c) 2003-2006 Theodore Ts'o <tytso@mit.edu>
             Copyright (c) 1997-2003 Yann Dirson <dirson@debian.org>
	     Copyright (c) 2001 Alcove <http://www.alcove.com/>
	     Copyright (c) 1997 Klee Dienes
	     Copyright (c) 1995-1996 Michael Nonweiler <mrn20@cam.ac.uk>

Upstream Author: Theodore Ts'o <tytso@mit.edu>

Copyright notice:

This package, the EXT2 filesystem utilities, is protected by the GNU
General Public License.

	Copyright (c) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
	2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by Theodore Ts'o

On Debian GNU systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.

