END-USER LICENSE AGREEMENT

IMPORTANT - READ CAREFULLY:  Please be sure to carefully read and understand all of the rights and restrictions described in this End-User License Agreement ("EULA").

AGREEMENT

This document is an agreement between you and Atari, Inc. and its affiliated companies ("Company").  The enclosed software game disc(s), cartridge or Game Pak ("Software") and any accompanying printed materials are licensed to you only on the condition that you accept all of the terms contained in this EULA.

By opening this package and installing or otherwise using the Software you agree to be bound by the terms of this EULA.  If you do not agree to the terms of this EULA you may not install or use the Software and within 15 days of purchase you must call the Tech Support telephone number listed in the manual accompanying the Software (the "Manual").  Select the Automated Phone System's Main Menu option for Consumer Services and follow the prompts.

You will be given a Return Merchandise Authorization number (RMA #) by the technician.  You then have 15 days from the date of this contact to return the Software in its protective covering, the Manual and the original sales invoice to the address supplied to you.

If this is a PC product, when you install the Software you will be asked to review and either accept or not accept the terms of the EULA by clicking the "I Accept" button.  By clicking the "I Accept" button you acknowledge that you have read the EULA, understand it and agree to be bound by its terms and conditions.

COPYRIGHT
The Software is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties.  All title and copyrights in and to the Software (including but not limited to any images, photographs, animations, video, music, text and "applets" incorporated into the Software) and any printed materials accompanying the Software are owned by the Company or its Licensors.

GRANT OF LICENSE
The Software is licensed and not sold to you and its use is subject to this EULA.  The Company grants you a limited, personal, non-exclusive license to use the Software in the manner described in the user documentation.  The Company reserves all rights not expressly granted to you in this EULA.

PERMITTED USES
1. If the Software is configured for loading on a hard drive, you may install and use the Software on a single computer.
2. You may make and maintain one copy of the Software for backup and archival purposes, provided that the original and copy of the Software are kept in your possession.
3. You may permanently transfer all your rights under this EULA, provided you retain no copies, you transfer all of the Software (including all component parts, the media and printed materials and any upgrades) and the recipient reads and accepts this EULA.

RESTRICTIONS
1. You may not delete or obscure any copyright, trademark or other proprietary notice on the Software or accompanying printed materials.
2. You may not decompile, modify, reverse engineer, disassemble or otherwise reproduce the Software.
3. You may not copy, rent, lease, sublicense, distribute, publicly display the Software, create derivative works based on the Software (except to the extent expressly permitted in the Editor and End-User Variation section of this Agreement or other documentation accompanying the Software) or otherwise commercially exploit the Software.
4. You may not electronically transmit the Software from one computer, console or other platform to another or over a network.
5. You may not use any backup or archival copy of the Software for any purpose other than to replace the original copy in the event it's destroyed or becomes defective.

EDITOR AND END-USER VARIATIONS
If the Software includes a feature that allows you to modify the Software or to construct new variations (an "Editor"), you may use such Editor to create modifications or enhancements to the Software, including the construction of new levels (collectively the "Variations"), subject to the following restrictions.  Your Variations: (i) must only work with the full, registered copy of the Software; (ii) must not contain modifications to any executable file; (iii) must not contain any libelous, defamatory or other illegal material, material that is scandalous or invades the rights of privacy or publicity of any third party; (iv) must not contain any trademarks, copyright-protected work or other property of third parties; and (v) may not be commercially exploited by you, including but not limited to making such Variations available for sale or as part of a pay-per-play or timesharing service.

TERMINATION
This EULA is effective until terminated.  You may terminate this EULA at any time by destroying the Software.  This EULA will terminate automatically without notice from the Company if you fail to comply with any provisions of this EULA.  All provisions of this EULA as to warranties, limitation of liability, remedies and damages will survive termination.

LIMITED WARRANTY AND DISCLAIMER OF WARRANTIES
You are aware and agree that use of the Software and the media on which is recorded is at your sole risk.  The Software and media are supplied "AS IS."  Unless otherwise provided by applicable law, the Company warrants to the original purchaser of this product that the Software storage medium will be free from defects in materials and workmanship under normal use for ninety (90) days from the date of purchase.  The warranty is void if the defect has arisen through accident, abuse, neglect or misapplication.  If the Software fails to conform to this warranty, you may at your sole and exclusive remedy, obtain a replacement free of charge if you return the defective Software.  Follow the Product Return Procedures described in the Manual.  The Company does not warrant that the Software or its operations or functions will meet your requirements, or that the use of the Software will be without interruption or error.

TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, EXCEPT FOR THE EXPRESS WARRANTY SET FORTH ABOVE, THE COMPANY DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING AND WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. EXCEPT FOR THE EXPRESS WARRANTY SET FORTH ABOVE, THE COMPANY DOES NOT WARRANT, GUARANTEE OR MAKE ANY REPRESENTATION REGARDING THE USE OR THE RESULTS OF THE USE OF THE SOFTWARE IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS OR OTHERWISE.  SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF OR LIMITATIONS ON IMPLIED WARRANTIES, SO THE ABOVE EXCLUSIONS AND LIMITATIONS MAY NOT APPLY TO YOU.

LIMITATION OF LIABILITY

IN NO EVENT WILL THE COMPANY OR ITS EMPLOYEES OR LICENSORS BE LIABLE FOR ANY INCIDENTAL, INDIRECT, SPECIAL, CONSEQUENTIAL OR PUNITIVE DAMAGES, OR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR INJURY TO PERSON OR PROPERTY, FOR LOSS OF PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, LOSS OF PRIVACY, FAILURE TO MEET ANY DUTY AND NEGLIGENCE) ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OR INABILITY TO USE THE SOFTWARE, EVEN IF THE COMPANY OR AN AUTHORIZED REPRESENTATIVE OF THE COMPANY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.  SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU.

IN NO EVENT WILL THE LIABILITY OF THE COMPANY FOR DAMAGES WITH RESPECT TO THE SOFTWARE EXCEED THE AMOUNTS ACTUALLY PAID BY YOU FOR THE SOFTWARE.

CHOICE OF LAW AND VENUE
This EULA is governed by the laws of the United States of America and the State of New York, exclusive of its conflicts of law provisions.  The exclusive venue for litigation regarding or arising from this EULA is New York County, New York and you agree to submit to the Jurisdiction of the courts of New York County, New York for any such litigation.

MISCELLANEOUS
If any provision or portion of this EULA is found to be unlawful, void, or for any reason unenforceable, it will be severed from and in no way affect the validity or enforceability of the remaining provisions of the EULA.

This EULA constitutes the entire agreement between you and the Company regarding the Software and its use.
