Installing the Apache PhotArk M1 September 2009 Release binary distribution
=========================================================================================

Unzip Apache PhotArk binary distribution archive and you get the following:

      
   INSTALL       - this help file
   LICENSE       - the Apache License and any dependecy licenses
   NOTICE        - attribution notices associated with the licenses
   README        - readme for the release
   RELEASE_NOTES - description of this release 
   CHANGES       - A note of the major changes in this release

   /webapp       - The PhotArk Java EE application




