END USER LICENSE AGREEMENT (ENGLISH)

Please read the following End User License Agreement carefully. By proceeding
with the installation, you agree to be bound by the terms of this agreement.
If you do not accept, please quit the installer and do not install the game.

The game and related software (collectively the "Software") is the copyrighted
work of Frozenbyte Ltd, and Alternative Games Ltd, except where otherwise noted.
All Rights Reserved. All use of the Software is governed by the terms of this
End User License Agreement. You are only allowed to use the Software for your
own use. Any use, reproduction or redistribution of the Software not expressly
stated herein or in other associated documentation, is strictly prohibited.

The Software is provided "as-is", without any warranty. To maximum extent
permitted by the applicable law, in no event shall Frozenbyte or Alternative
Games or any of the component manufacturers or licensors be held liable for
any damages arising from the use of or malfunction of the Software.

You are allowed to install the Software on one computer only. You are allowed
to create one backup copy of the media disc or installation files. All other
activities are forbidden. Furthermore, you are explicitly not allowed to
decompile, reproduce, reverse engineer or in other way disassemble the Software
or any of its components, or redistribute or export the Software or its
components in a way that would result in violation of any regulations or laws,
and specifically the U.S. export laws.

Frozenbyte retains the right to alter and modify these license terms in any way
at any time.

By installing or otherwise using this Software, you acknowledge to have read and
understood the terms in this agreement and agree to be bound by these terms. If
you do not agree with the terms, cancel the installation.

Frozenbyte Ltd.
Alternative Games Ltd.

http://www.frozenbyte.com
