LEGAL NOTICE

Software: Htmlc, version 2.21 of September 2009.
hereinafter referred to as "the software".

The software has been designed and produced by Pierre Weis,
research worker for the Institut National de Recherche en Informatique
et en Automatique (INRIA) - Domaine de Voluceau - Rocquencourt - 78153
Le Chesnay Cedex - France.

INRIA holds all ownership rights to Htmlc.

Preamble:

The software is currently being developed and INRIA desires
that it be used by the scientific community so as to test, evaluate
and develop it.  To this end, INRIA has decided to have a prototype of
the software distributed on the Internet.

a- Extent of the rights granted by the INRIA to the user of the software:

INRIA freely grants the right to use, modify and integrate the
software in another software, provided that all derivative works are
distributed under the conditions described in point b- below.

b- Reproduction of the software:

INRIA grants any user of the software the right to reproduce it so as
to circulate it in accordance with the same purposes and conditions as
those defined at point a- above.  Any copy of the software and/or relevant
documentation must comprise reference to the ownership of INRIA and
the present file.

The user undertakes to distribute the software either as unmodified
source files, identical to those originally made public by INRIA, or as
executable binaries obtained by compiling the original source files.

Source distribution of derivative works obtained by modifying the
software or integrating it in another software is allowed, only if the
distribution consists of the unmodified, original source files for the
software, along with difference files (patches) to be applied by the
user of the derivative work.

Binary distribution of derivative works obtained by modifying the
software or integrating it in another software is allowed, only if the
distribution explicitely contains the following sentance

``Htmlc code is used into this software; htmlc is copyrighted INRIA
  and can be downloaded from http://htmlc.inria.fr/.''

Typical place for this phrase being the About-dialog and the
documentation of the derivative work.

As regards any other type of distribution, the user undertakes to
apply to obtain the express approval of INRIA.

c- Guarantees:

Please note that the software is a product currently being developed.
INRIA shall not be responsible in any way concerning conformity, and in
particular shall not be liable should the software not comply with the
requirements of the user, INRIA not being obliged to repair any
possible direct or indirect damage.

d- Distribution of files generated by Htmlc:

INRIA freely grants the right to distribute the files generated
by Htmlc.
