[X2Go-Commits] [x2goclient-contrib] 01/01: Add UPX 3.91, which was used on x2goclient 4.0.1.2

git-admin at x2go.org git-admin at x2go.org
Sat Jan 18 16:32:23 CET 2014


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goclient-contrib.

commit ce10276b7d8f8f189c9f7172c77122c0635be2aa
Author: Mike DePaulo <mikedep333 at gmail.com>
Date:   Sat Jan 18 10:32:03 2014 -0500

    Add UPX 3.91, which was used on x2goclient 4.0.1.2
---
 upx/3.91_bin/BUGS       |   51 +++
 upx/3.91_bin/COPYING    |  339 ++++++++++++++++
 upx/3.91_bin/LICENSE    |  138 +++++++
 upx/3.91_bin/NEWS       |  485 ++++++++++++++++++++++
 upx/3.91_bin/README     |  142 +++++++
 upx/3.91_bin/README.1ST |   23 ++
 upx/3.91_bin/THANKS     |   61 +++
 upx/3.91_bin/TODO       |  114 ++++++
 upx/3.91_bin/upx.1      | 1036 +++++++++++++++++++++++++++++++++++++++++++++++
 upx/3.91_bin/upx.doc    |  843 ++++++++++++++++++++++++++++++++++++++
 upx/3.91_bin/upx.exe    |  Bin 0 -> 305152 bytes
 upx/3.91_bin/upx.html   |  894 ++++++++++++++++++++++++++++++++++++++++
 upx/3.91_src.tar.bz2    |  Bin 0 -> 904747 bytes
 13 files changed, 4126 insertions(+)

diff --git a/upx/3.91_bin/BUGS b/upx/3.91_bin/BUGS
new file mode 100755
index 0000000..ee6f284
--- /dev/null
+++ b/upx/3.91_bin/BUGS
@@ -0,0 +1,51 @@
+                 ooooo     ooo ooooooooo.   ooooooo  ooooo
+                 `888'     `8' `888   `Y88.  `8888    d8'
+                  888       8   888   .d88'    Y888..8P
+                  888       8   888ooo88P'      `8888'
+                  888       8   888            .8PY888.
+                  `88.    .8'   888           d8'  `888b
+                    `YbodP'    o888o        o888o  o88888o
+
+
+                    The Ultimate Packer for eXecutables
+   Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser
+                        http://upx.sourceforge.net
+
+
+Limitations and other things which are not (yet) supported:
+===========================================================
+
+djgpp2/coff
+-----------
+ * all overlays (except Allegro pakfiles) are silently stripped
+
+dos/exe
+-------
+ * normal dos/exes with new exe headers
+ * max ~24000 relocation records (...should be enough for everyone ;-)
+ * exe + sys combined images
+
+watcom/le
+---------
+ * 16-bit selector alias fixups
+ * 16-bit offset relocation for objects larger than 4 KiB
+ * 16:16 fixups
+
+If you need any of the above (they're very rare), send us an URL of a
+test file.
+
+ * 16-bit objects are not loaded into DOS memory
+ * There is still a problem with the wdosx extender: if you compress a
+   watcom/le file which does NOT contain the wdosx extender, and after this
+   you bind the wdosx stub to the compressed file, then it will work.
+   Otherwise it won't.
+ * unpacked pmwlite compressed programs might not work when compressed
+   with UPX (this is a bug in pmwunlite)
+
+win32/pe
+--------
+ * writable shared sections (`--force' *may* work)
+ * certificates in the image
+ * compressing files which contain a big BSS requires lots of memory
+   during compression
+
diff --git a/upx/3.91_bin/COPYING b/upx/3.91_bin/COPYING
new file mode 100755
index 0000000..d159169
--- /dev/null
+++ b/upx/3.91_bin/COPYING
@@ -0,0 +1,339 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                            NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/upx/3.91_bin/LICENSE b/upx/3.91_bin/LICENSE
new file mode 100755
index 0000000..444ded8
--- /dev/null
+++ b/upx/3.91_bin/LICENSE
@@ -0,0 +1,138 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+
+
+                 ooooo     ooo ooooooooo.   ooooooo  ooooo
+                 `888'     `8' `888   `Y88.  `8888    d8'
+                  888       8   888   .d88'    Y888..8P
+                  888       8   888ooo88P'      `8888'
+                  888       8   888            .8PY888.
+                  `88.    .8'   888           d8'  `888b
+                    `YbodP'    o888o        o888o  o88888o
+
+
+                    The Ultimate Packer for eXecutables
+          Copyright (c) 1996-2000 Markus Oberhumer & Laszlo Molnar
+               http://wildsau.idv.uni-linz.ac.at/mfx/upx.html
+                          http://www.nexus.hu/upx
+                            http://upx.tsx.org
+
+
+PLEASE CAREFULLY READ THIS LICENSE AGREEMENT, ESPECIALLY IF YOU PLAN
+TO MODIFY THE UPX SOURCE CODE OR USE A MODIFIED UPX VERSION.
+
+
+ABSTRACT
+========
+
+   UPX and UCL are copyrighted software distributed under the terms
+   of the GNU General Public License (hereinafter the "GPL").
+
+   The stub which is imbedded in each UPX compressed program is part
+   of UPX and UCL, and contains code that is under our copyright. The
+   terms of the GNU General Public License still apply as compressing
+   a program is a special form of linking with our stub.
+
+   As a special exception we grant the free usage of UPX for all
+   executables, including commercial programs.
+   See below for details and restrictions.
+
+
+COPYRIGHT
+=========
+
+   UPX and UCL are copyrighted software. All rights remain with the authors.
+
+   UPX is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer
+   UPX is Copyright (C) 1996-2000 Laszlo Molnar
+
+   UCL is Copyright (C) 1996-2000 Markus Franz Xaver Johannes Oberhumer
+
+
+GNU GENERAL PUBLIC LICENSE
+==========================
+
+   UPX and the UCL library are free software; you can redistribute them
+   and/or modify them under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2 of
+   the License, or (at your option) any later version.
+
+   UPX and UCL are distributed in the hope that they will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; see the file COPYING.
+
+
+SPECIAL EXCEPTION FOR COMPRESSED EXECUTABLES
+============================================
+
+   The stub which is imbedded in each UPX compressed program is part
+   of UPX and UCL, and contains code that is under our copyright. The
+   terms of the GNU General Public License still apply as compressing
+   a program is a special form of linking with our stub.
+
+   Hereby Markus F.X.J. Oberhumer and Laszlo Molnar grant you special
+   permission to freely use and distribute all UPX compressed programs
+   (including commercial ones), subject to the following restrictions:
+
+   1. You must compress your program with a completely unmodified UPX
+      version; either with our precompiled version, or (at your option)
+      with a self compiled version of the unmodified UPX sources as
+      distributed by us.
+   2. This also implies that the UPX stub must be completely unmodfied, i.e.
+      the stub imbedded in your compressed program must be byte-identical
+      to the stub that is produced by the official unmodified UPX version.
+   3. The decompressor and any other code from the stub must exclusively get
+      used by the unmodified UPX stub for decompressing your program at
+      program startup. No portion of the stub may get read, copied,
+      called or otherwise get used or accessed by your program.
+
+
+ANNOTATIONS
+===========
+
+  - You can use a modified UPX version or modified UPX stub only for
+    programs that are compatible with the GNU General Public License.
+
+  - We grant you special permission to freely use and distribute all UPX
+    compressed programs. But any modification of the UPX stub (such as,
+    but not limited to, removing our copyright string or making your
+    program non-decompressible) will immediately revoke your right to
+    use and distribute a UPX compressed program.
+
+  - UPX is not a software protection tool; by requiring that you use
+    the unmodified UPX version for your proprietary programs we
+    make sure that any user can decompress your program. This protects
+    both you and your users as nobody can hide malicious code -
+    any program that cannot be decompressed is highly suspicious
+    by definition.
+
+  - You can integrate all or part of UPX and UCL into projects that
+    are compatible with the GNU GPL, but obviously you cannot grant
+    any special exceptions beyond the GPL for our code in your project.
+
+  - We want to actively support manufacturers of virus scanners and
+    similar security software. Please contact us if you would like to
+    incorporate parts of UPX or UCL into such a product.
+
+
+
+Markus F.X.J. Oberhumer                   Laszlo Molnar
+markus.oberhumer at jk.uni-linz.ac.at        ml1050 at cdata.tvnet.hu
+
+Linz, Austria, 25 Feb 2000
+
+
+
+-----BEGIN PGP SIGNATURE-----
+Version: 2.6.3ia
+Charset: noconv
+
+iQCVAwUBOLaLS210fyLu8beJAQFYVAP/ShzENWKLTvedLCjZbDcwaBEHfUVcrGMI
+wE7frMkbWT2zmkdv9hW90WmjMhOBu7yhUplvN8BKOtLiolEnZmLCYu8AGCwr5wBf
+dfLoClxnzfTtgQv5axF1awp4RwCUH3hf4cDrOVqmAsWXKPHtm4hx96jF6L4oHhjx
+OO03+ojZdO8=
+=CS52
+-----END PGP SIGNATURE-----
diff --git a/upx/3.91_bin/NEWS b/upx/3.91_bin/NEWS
new file mode 100755
index 0000000..de56c33
--- /dev/null
+++ b/upx/3.91_bin/NEWS
@@ -0,0 +1,485 @@
+==================================================================
+User visible changes for UPX
+==================================================================
+
+Changes in 3.91 (30 Sep 2013):
+  * Added experimental support for Windows 64-bit PE files, based on
+    work by Stefan Widmann. Please use for testing only!
+  * bug fixes
+
+==================================================================
+
+Changes in 3.09 (18 Feb 2013):
+  * New option --preserve-build-id for GNU ELF.
+  * Allow for code signing and LC_UUID on Mac OS X executables.
+  * Allow non-contiguous LC_SEGMENTs and 0==.vmsize for Mach-O.
+  * Allow zero-filled final page in PackUnix::canUnpack().
+  * bug fixes
+
+Changes in 3.08 (12 Dec 2011):
+  * Fix allocation in runtime stub for darwin.macho-entry (i386 and amd64).
+  * Compress shared library on ELF i386 only [ld.so threatens even this case].
+  * Attempt to support ELF on QNX 6.3.0 for armel (experimental).
+  * Better diagnostic when ELF -fPIC is needed.
+  * PT_NOTE improvements for *BSD.
+  * Preserve more ELF .e_flags on ARM.
+  * Minor code improvements for ELF stubs.
+  * Defend against another flavor of corrupt PE header.
+  * bug fixes
+
+Changes in 3.07 (08 Sep 2010):
+  * win32/pe: fixed relocation handling for files with *no* TLS callbacks
+    [severe bug introduced in 3.06]
+
+Changes in 3.06 (04 Sep 2010):
+  * win32/pe: TLS callback support contributed by Stefan Widmann. Thanks!
+  * bug fixes
+
+Changes in 3.05 (27 Apr 2010):
+  * i386-linux and amd64-linux support shared libraries (DT_INIT must
+    exist, all info needed by runtime loader must be first in .text, etc.)
+  * Linux /proc/self/exe now is preserved by default, by leaving behind
+    one page.  New compress-time option --unmap-all-pages is available.
+  * Withdraw support for shared libraries on Darwin (Apple Mac OS X)
+    because upx does not understand enough about .dylib.
+  * bug fixes
+
+Changes in 3.04 (27 Sep 2009):
+  * new format Mach/AMD64 supports 64-bit programs on Apple Macintosh.
+  * new formats Dylib/i386 and Dylib/ppc32 support shared libraries
+    [such as browser plugins] on Darwin (Apple Macintosh).  An existing
+    -init function (LC_ROUTINES command) is required.
+  * new format vmlinuz/armel for Debian NSLU2 (etc.) linux kernel
+  * bvmlinuz boot protocol 2.08 for 386 Linux kernel
+  * Extended ABI version 4 for armel-eabi ARM Linux ELF
+  * bug fixes
+
+Changes in 3.03 (27 Apr 2008):
+  * implement cache flushing for PowerPC (esp. model 440)
+  * fix cache flushing on MIPS (>3 MiB compressed, or with holes)
+  * fix MIPS big-endian
+  * bug fixes
+
+Changes in 3.02 (16 Dec 2007):
+  * fix unmapping on arm-linux.elf
+  * fix error checking in mmap for i386-linux.elf [triggered by -fPIE]
+  * bug fixes
+
+Changes in 3.01 (31 Jul 2007):
+  * new options --no-mode, --no-owner and --no-time to disable preservation
+    of mode (file permissions), file ownership and timestamps.
+  * dos/exe: fixed an incorrect error message caused by a bug in
+    relocation handling
+  * new format linux/mipsel supports ELF on [32-bit] R3000
+  * fix argv[0] on PowerPC with --lzma
+  * bug fixes
+
+Changes in 3.00 (27 Apr 2007):
+  * watcom/le & tmt/adam: fixed a problem when using certain filters
+
+Changes in 2.93 beta (08 Mar 2007):
+  * new formats Mach/i386 and Mach/fat support Mac OS X i686 and
+    Universal binaries [i686 and PowerPC only]
+  * dos/exe: LZMA is now also supported for 16-bit dos/exe. Please note that
+    you have to explicitly use '--lzma' even for '--ultra-brute' here
+    because runtime decompression is about 30 times slower than NRV -
+    which is really noticeable on old machines.
+  * dos/exe: fixed a rarely occuring bug in relocation handling
+  * win32/pe & arm/pe: better icon compression handling
+
+Changes in 2.92 beta (23 Jan 2007):
+  * new option '--ultra-brute' which tries even more variants
+  * slightly improved compression ratio for some files when
+    using '--brute' or '--ultra-brute'
+  * bug fixes
+
+Changes in 2.91 beta (29 Nov 2006):
+  * assorted bug fixes
+  * arm/pe: fix "missing" icon & version info resource problem for wince 5
+  * win32/pe & arm/pe: added option --compress-icons=3 to compress all icons
+
+Changes in 2.90 beta (08 Oct 2006):
+  * LZMA algorithm support for most of the 32-bit and 64-bit file formats;
+    use new option '--lzma' to enable
+  * new format: BSD/elf386 supporting FreeBSD, NetBSD and OpenBSD
+    via auto-detection of PT_NOTE or EI_OSABI
+  * arm/pe: all the NRV compression methods are now supported
+    (only NRV2D is missing in thumb mode)
+  * linux/elf386, linux/ElfAMD: remember /proc/self/exe in environment
+  * major source code changes: the runtime decompression stubs are now
+    built from internal ELF objects
+
+==================================================================
+
+Changes in 2.03 (07 Nov 2006):
+  * bvmlinuz/386: fix for kernels not at 0x100000; also allow x86_64
+  * linux/elf386: work around Linux kernel bug (0-length .bss needs PF_W)
+
+Changes in 2.02 (13 Aug 2006):
+  * linux/386: work around Linux kernel bug (".bss" requires PF_W)
+  * linux/ppc32, mach/ppc32: compressed programs now work on a 405 CPU
+  * vmlinuz/386: fixed zlib uncompression problem on DOS
+
+Changes in 2.01 (06 Jun 2006):
+  * arm/pe: better DLL support
+  * dos/exe: device driver support added
+  * linux/386: Fix --force-execve for PaX, grSecurity, and strict SELinux.
+    /tmp must support execve(); therefore /tmp cannot be mounted 'noexec'.
+  * win32/pe & arm/pe: added new option '--keep-resource=' for
+    excluding selected resources from compression
+
+Changes in 2.00 (27 Apr 2006):
+  * linux/386: the stub now prints an error message if some strict
+    SELinux mode does prevent runtime decompression and execution
+    (for a fully SELinux-compatible but otherwise inferior compression
+    format you can use the '--force-execve' option)
+  * linux/386: worked around a problem where certain Linux kernels
+    clobber the %ebx register during a syscall
+  * win32/pe: disable filters for files with broken PE headers
+
+Changes in 1.96 beta (13 Apr 2006):
+  * arm/pe: added filter support
+  * win32/pe: removed an unnecessary check so that Delphi 2006 and
+    Digital Mars C++ programs finally are supported
+
+Changes in 1.95 beta (09 Apr 2006):
+  * arm/pe: added DLL support
+  * arm/pe: added thumb mode stub support
+  * arm/pe: added unpacking support
+  * win32/pe: really worked around R6002 runtime errors
+
+Changes in 1.94 beta (11 Mar 2006):
+  * new format: added support for arm/pe (ARM executables running on WinCE)
+  * new format: added support for linux elf/amd64
+  * new format: added support for linux elf/ppc32
+  * new format: added support for mach/ppc32 (Apple Mac OS X)
+  * win32/pe: hopefully working "load config" support
+  * win32/pe: R6002 runtime errors worked around
+  * win32/pe: the stub now clears the dirty stack
+
+Changes in 1.93 beta (07 Feb 2005):
+  * vmlinuz/386: fixes to support more kernels
+
+Changes in 1.92 beta (20 Jul 2004):
+  * win32/pe: added option '--strip-loadconf' to strip the SEH load
+    config section [NOTE: this option is obsolete since UPX 1.94]
+  * win32/pe: try to detect .NET (win32/net) files [not yet supported by UPX]
+  * vmlinux/386: new format that directly supports building Linux kernels
+  * source code: now compiles cleanly under Win64
+
+Changes in 1.91 beta (30 Jun 2004):
+  * djgpp2/coff: added support for recent binutils versions
+  * linux/elf386, linux/sh386: lots of improvements
+  * vmlinuz/386: added support for recent kernels
+  * watcom/le: don't crash on files without relocations
+  * win32/pe: stricter checks of some PE values
+  * option '--brute' now implies '--crp-ms=999999'.
+  * source code: much improved portability using ACC, the
+    Automatic Compiler Configuration
+  * source code: compile fixes for strict ISO C++ compilers
+  * source code: compile fixes for Win64
+  * re-synced with upx 1.25 branch
+
+Changes in 1.90 beta (11 Nov 2002):
+  * implemented several new options for finer compression control:
+    '--all-methods', '--all-filters' and '--brute'
+  * ps1/exe: new format - UPX now supports PlayStation One programs
+  * linux/386: added the option '--force-execve'
+  * vmlinuz/386: better kernel detection and sanity checks
+  * re-synced with upx 1.24 branch
+  * documentation updates
+
+Changes in 1.11 beta (20 Dec 2000):
+  * vmlinuz/386: new format - UPX now supports bootable linux kernels
+  * linux/elf386: added the new ELF direct-to-memory executable format - no
+    more temp files are needed for decompression!
+  * linux/sh386: added the new shell direct-to-memory executable format - no
+    more temp files are needed for decompression!
+  * reduced overall memory requirements during packing
+  * quite a number of internal source code rearrangements
+
+==================================================================
+
+Changes in 1.25 (29 Jun 2004)
+  * INFO: http://upx.sourceforge.net is the permanent UPX home page
+  * watcom/le: don't crash on files without relocations
+  * win32/pe: stricter checks of some PE values
+  * source code: much improved portability using ACC, the
+    Automatic Compiler Configuration
+  * source code: compile fixes for strict ISO C++ compilers
+  * source code: compile fixes for Win64
+
+Changes in 1.24 (07 Nov 2002)
+  * djgpp2/coff: stricter check of the COFF header to work around a
+    problem with certain binutils versions
+
+Changes in 1.23 (05 Sep 2002)
+  * atari/tos: fixed an unpacking problem where a buffer was too
+    small (introduced in 1.22)
+  * linux/386: don't give up too early if a single block turns out
+    to be incompressible
+  * documentation: added some quick tips how to achieve the best
+    compression ratio for the final release of your application
+  * fixed a rare situation where the exit code was not set correctly
+
+Changes in 1.22 (27 Jun 2002)
+  * atari/tos: the stub now flushes the CPU cache to avoid
+    problems on 68030+ machines
+  * source code: additional compiler support for Borland C++,
+    Digital Mars C++ and Watcom C++
+
+Changes in 1.21 (01 Jun 2002)
+  * New option '--crp-ms=' for slightly better compression at the cost
+    of higher memory requirements during compression.
+    Try 'upx --best --crp-ms=100000'. See the docs for more info.
+  * source code: portability fixes
+  * source code: compile fixes for g++ 3.0 and g++ 3.1
+
+Changes in 1.20 (23 May 2001)
+  * slightly faster compression
+  * work around a gcc problem in the latest djgpp2 distribution
+  * watcom/le: fixed detection of already compressed files
+  * win32/pe: do not compress RT_MANIFEST resource types
+  * win32/pe: improved the error message for empty resource sections
+  * [NOTE: the jump from 1.08 to 1.20 is to avoid confusion with
+           our unstable development releases 1.1x and 1.9x]
+
+Changes in 1.08 (30 Apr 2001)
+  * new native port to atari/tos
+  * win32/pe: shortened the identstring
+  * source code: portability fixes - UPX now builds cleanly under m68k CPUs
+
+Changes in 1.07 (20 Feb 2001)
+  * win32/pe: corrected the TLS callback check
+  * win32/pe: really fixed that rare bug in relocation handling
+  * win32/pe: experimental support for SizeOfHeaders > 0x1000
+  * win32/pe: check for superfluous data between sections
+  * win32/pe: compressing screensavers (.scr) should finally work
+
+Changes in 1.06 (27 Jan 2001)
+  * win32/pe: the check for TLS callbacks introduced in 1.05
+      was too strict - disabled for now
+  * dos/com: decreased the decompressor stack size a little bit
+
+Changes in 1.05 (24 Jan 2001)
+  * win32/pe: refuse to compress programs with TLS callbacks
+  * win32/pe: stub changes to avoid slowdowns with some virus monitors
+  * win32/pe: reverted the relocation handling changes in 1.04
+  * linux/386: dont try to compress Linux kernel images (have a look
+      at the unstable UPX 1.1x beta versions for that)
+
+Changes in 1.04 (19 Dec 2000)
+  * dos/exe: fixed an internal error when using '--no-reloc'
+  * win32/pe: fixed a rare bug in the relocation handling code
+  * some tunings for the default compression level
+
+Changes in 1.03 (30 Nov 2000)
+  * linked with a new version of the NRV compression library:
+      - improved compression ratio a little bit
+      - overall significantly faster compression
+      - much faster when using high compression levels like '-9' or '--best'
+      - much faster with large files
+  * atari/tos: added support for FreeMiNT
+  * the 32-bit DOS version now uses the new CWSDSTUB extender
+
+Changes in 1.02 (13 Sep 2000)
+  * watcom/le: fixed a problem with the Causeway extender
+  * win32/pe: don't automatically strip relocs if they seem needed
+  * support multiple backup generations when using '-k'
+  * updated the console screen driver
+
+Changes in 1.01 (09 Apr 2000)
+  * win32/pe: fixed an uncompression problem in DLLs with empty
+    fixup sections
+  * win32/pe: fixed another rare uncompression problem - a field in the
+    PE header was set incorrectly
+
+Changes in 1.00 (26 Mar 2000)
+  * documentation updates
+  * watcom/le: do not duplicate the non-resident name table
+  * win32/pe: fixed an import handling problem: sometimes too much data
+    could be deleted from a file -> the uncompressed file would not work
+    anymore
+
+Changes in 0.99.3 (07 Mar 2000)
+  * win32/pe: fixed a rare problem in the stub string handling part
+
+Changes in 0.99.2 (02 Mar 2000)
+  * dos/exe: fixed a typo causing an internal error (introduced in 0.99.1)
+
+Changes in 0.99.1 (29 Feb 2000)
+  * win32/pe: fixed some object alignments which were causing
+    problems when loading compressed DLLs under Windows NT/2000
+
+Changes in 0.99 (25 Feb 2000)
+  * FULL SOURCE CODE RELEASED UNDER THE TERMS OF THE GNU GPL
+  * win32/pe: changed default to '--strip-relocs=1'
+  * dos/com and dos/sys: fixed a bad decompressor problem
+  * linux/386: the counter for the progress indicator was off by one
+
+Changes in 0.94 (06 Dec 1999)
+  * win32/pe: the stub now calls ExitProcess in case of import errors
+  * under DOS and Windows, the environment variable UPX now accepts
+    a '#' as replacement for '=' because of a COMMAND.COM limitation
+
+Changes in 0.93 (22 Nov 1999)
+  * win32/pe: fixed --strip-relocs problem with uncompression
+  * win32/pe: fixed a bug which could produce a broken decompressor stub
+  * linux/386: yet another FreeBSD compatibility fix
+
+Changes in 0.92 (14 Nov 1999)
+  * win32/pe: really fixed that one line (see below)
+
+Changes in 0.91 (13 Nov 1999)
+  * win32/pe: an important one-line fix for the newly introduced problems
+  * dos/com and dos/sys: fixed an internal error
+  * dos/exe: correctly restore cs when uncompressing
+
+Changes in 0.90 (10 Nov 1999)
+  * all formats: '--overlay=copy' now is the default overlay mode
+  * improved compression ratio for most files
+  * win32/pe: uncompression is finally supported
+  * win32/pe: never compress REGISTRY resources
+  * win32/pe: headersize was not set in PE header
+  * win32/pe: resource handling is rewritten
+  * win32/pe: the last :-) TLS problem is fixed
+  * win32/pe: somewhat less memory is required during compression
+  * linux/386: fixed compression of scripts which was broken since 0.71
+  * linux/386: more FreeBSD compatibility issues
+  * changed option: '-i' now prints some more details during compression
+    (not finished yet)
+
+Changes in 0.84 (04 Oct 1999)
+  * dos/exe: fixed a rare problem where the decompressor could crash
+  * some other minor fixes
+
+Changes in 0.83 (17 Sep 1999)
+  * dos/exe: fixed minimal memory requirement problem for some files
+  * win32/pe: fixed a bug which caused a crash in some compressed files
+  * linux/386: various improvements in the stub; also, for the sake
+    of FreeBSD users, the stub is now branded as Linux/ELF
+
+Changes in 0.82 (16 Aug 1999)
+  * dos/exe: fixed a decompressor bug which could cause crash on some files
+  * linux/386: section headers are now stripped from the stub so that
+    'strip' won't ruin a compressed file any longer
+  * wc/le: support for stack not in the last object disabled again
+  * win32/pe: removed some unneeded data
+
+Changes in 0.81 (04 Aug 1999)
+  * win32/pe: fixed an important bug in import handling
+  * dos/com: fixed an internal error that could happen with very small files
+
+Changes in 0.80 (03 Aug 1999)
+  * you can set some default options in the environment var 'UPX'
+  * dos/com: the decompressor stub now checks for enough free memory
+  * dos/exe: decompressor rewritten, some bugs are fixed
+  * dos/exe: new option '--no-reloc': no relocation data is put into
+    the DOS header
+  * tmt/adam: added support for more stubs, detect already packed files
+  * tmt/adam: new option '--copy-overlay'
+  * wc/le: reduced memory requirement during uncompression
+  * wc/le: support files which do not contain their stack in the last object
+  * wc/le: fixed a bug which could cause a crash, improved relocation
+    handling
+  * wc/le: new option '--copy-overlay'
+  * win32/pe: '--compress-icons=2' is now the default
+  * win32/pe: even better TLS support
+  * win32/pe: versioninfo works on NT
+  * win32/pe: import by ordinal from kernel32.dll works
+  * win32/pe: other import improvements: importing a nonexistent DLL
+    results in a usual Windows message, importing a nonexistent function
+    results in program exit (instead of crash ;-)
+  * win32/pe: new option: '--compress-resources=0'
+  * win32/pe: reduced memory requirement during uncompression, some
+    files might even require LESS memory when they're compressed
+  * win32/pe: TYPELIBs should work now
+  * win32/pe: improved relocation handling, 16-bit relocations should work
+  * win32/pe: new option '--strip-relocs' (only if you know what you are doing)
+  * win32/pe: new option '--copy-overlay'
+  * important internal changes: now the stubs are built at runtime
+
+Changes in 0.72 (12 May 1999)
+  * tmt/adam: fixed a serious problem in the decompressor stub; all
+    compressed tmt files should be recompressed
+  * win32/pe: fixed the 'shared sections not supported' warning:
+    read-only shared sections are fine
+  * win32/pe: never compress TYPELIB resources
+  * win32/pe: compressed files are hopefully less suspicious to heuristic
+    virus scanners now
+  * linux/386: minor decompressor stub updates, nicer progress bar
+
+Changes in 0.71 (19 Apr 1999)
+  * dos/exe: added option '--no-overlay'
+  * linux/386: various improvements in the stub, most notably the
+    overhead for an extra cleanup process has been removed
+  * win32/pe: added support for export forwarders
+  * win32/pe: added support for DLLs without entry point or imports
+  * win32/pe: yet another .bss fix
+  * win32/pe: new option '--compress-icons=2': compress all icons
+    which are not in the first icon directory
+  * win32/pe: rearranged stub to avoid false alerts from some virus scanners
+
+Changes in 0.70 (30 Mar 1999)
+  * added support for linux/386 executables
+  * improved compression ratio quite a bit
+  * added new compression level '--best' to squeeze out even some more bytes
+  * win32/pe: TLS support is much better now
+  * win32/pe: --compress-icons=0 should now work as well
+  * the usual minor fixes for win32/pe
+
+Changes in 0.62 (16 Mar 1999)
+  * win32/pe: --compress-icons and --compress-exports are on now by default
+  * win32/pe: --compress-icons should really work now
+  * win32/pe: fixed a problem with embedded .bss sections
+
+Changes in 0.61 (08 Mar 1999)
+  * atari/tos: fixed a problem where the bss segment could become too small
+
+Changes in 0.60 (06 Mar 1999)
+  * win32/pe: fixed file corruption when the size of the export data is invalid
+  * win32/pe: fixed a problem with empty resource data
+  * win32/pe: compressed file alignment set to minimum value
+  * win32/pe: made all compressed sections writable
+  * fixed some other win32/pe bugs
+  * fixed an address optimization problem for some not Watcom LE files
+  * fixed a bug which could make UPX hang when an exe header contained
+    an illegal value
+  * added some compression flags for the win32/pe format
+  * added support for Atari ST/TT executables (atari/tos)
+  * improved compression ratio
+  * improved compression speed
+
+Changes in 0.51 (14 Jan 1999)
+  * fixed a small bug in the PE header that would prevent some compressed
+    win32/pe executables from running under Windows NT and WINE
+
+Changes in 0.50 (03 Jan 1999)
+  * added support for PE format executables (win32/pe & rtm32/pe)
+  * added support for TMT executables (tmt/adam)
+  * fixed a dos/sys bug that affected OpenDOS
+
+Changes in 0.40 (05 Oct 1998)
+  * improved compression ratio
+  * fixed a small but fatal bug in dos/sys introduced in 0.30
+  * fixed a rare bug in dos/exe
+  * worked around a bug in djgpp's strip 2.8
+  * djgpp/coff: Allegro packfile support should work now
+  * added dos/exeh compression method (works on 386+)
+
+Changes in 0.30 (27 Jul 1998)
+  * fixed a serious bug in the 32-bit compressors - please don't use
+    djgpp/coff and watcom/le compressed files from previous versions,
+    some of them are possibly damaged !
+  * the 16-bit uncompressors are a little bit shorter & faster
+  * fixed progress indicator for VESA and SVGA text modes
+
+Changes in 0.20 (05 Jul 1998)
+  * second public beta release
+  * too many changes to list here
+
+Changes in 0.05 (26 May 1998)
+  * first public beta release
+
+
+# vim:set syntax=off tw=0 ts=4 sw=4 et: -*- coding: utf-8 -*-
diff --git a/upx/3.91_bin/README b/upx/3.91_bin/README
new file mode 100755
index 0000000..63ccb5d
--- /dev/null
+++ b/upx/3.91_bin/README
@@ -0,0 +1,142 @@
+                 ooooo     ooo ooooooooo.   ooooooo  ooooo
+                 `888'     `8' `888   `Y88.  `8888    d8'
+                  888       8   888   .d88'    Y888..8P
+                  888       8   888ooo88P'      `8888'
+                  888       8   888            .8PY888.
+                  `88.    .8'   888           d8'  `888b
+                    `YbodP'    o888o        o888o  o88888o
+
+
+                    The Ultimate Packer for eXecutables
+   Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser
+                        http://upx.sourceforge.net
+
+
+
+WELCOME
+=======
+
+Welcome to UPX !
+
+Please don't forget to read the file LICENSE - UPX is distributed
+under the GNU General Public License (GPL) with special exceptions
+allowing the distribution of all compressed executables, including
+commercial programs.
+
+
+INTRODUCTION
+============
+
+UPX is an advanced executable file compressor. UPX will typically
+reduce the file size of programs and DLLs by around 50%-70%, thus
+reducing disk space, network load times, download times and
+other distribution and storage costs.
+
+Programs and libraries compressed by UPX are completely self-contained
+and run exactly as before, with no runtime or memory penalty for most
+of the supported formats.
+
+UPX supports a number of different executable formats, including
+Windows 95/98/ME/NT/2000/XP/CE programs and DLLs, DOS programs,
+and Linux executables and kernels.
+
+UPX is free software distributed under the term of the GNU General
+Public License. Full source code is available.
+
+UPX may be distributed and used freely, even with commercial applications.
+See the UPX License Agreement for details.
+
+UPX is rated number one in the well known Archive Comparison Test. Visit
+http://compression.ca/ .
+
+UPX aims to be Commercial Quality Freeware.
+
+
+SHORT DOCUMENTATION
+===================
+
+'upx program.exe' will compress a program or DLL. For best compression
+results try 'upx --brute program.exe'.
+
+Please see the file UPX.DOC for the full documentation. The files
+NEWS and BUGS also contain various tidbits of information.
+
+
+DISCLAIMER
+==========
+
+UPX comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE.
+
+Having said that, we think that UPX is quite stable now. Indeed we
+have compressed lots of files without any problems. Also, the
+current version has undergone several months of beta testing -
+actually it's almost 8 years since our first public beta.
+
+This is the first production quality release, and we plan that future
+releases will be backward compatible with this version.
+
+Please report all problems or suggestions to the authors. Thanks.
+
+
+THE FUTURE
+==========
+
+  - We'd really love to support handheld systems like the PalmPilot because
+    compression makes a lot of sense here. And - because of the atari/tos
+    format - we already have a working decompressor in 68000 assembly.
+    Unfortunately we know next to nothing about the operating system
+    architecture of such handhelds, so we need some information from
+    an expert. Please contact us if you think you can help.
+
+  - The Linux approach could probably get ported to a lot of other Unix
+    variants, at least for other i386 architectures it shouldn't be too
+    much work. If someone sends me a fresh hard disk and an official
+    FreeBSD/OpenBSD/NetBSD/Solaris/BeOS... CD I might take a look at it ;-)
+
+  - We will *NOT* add any sort of protection and/or encryption.
+    This only gives people a false feeling of security because
+    by definition all protectors/compressors can be broken.
+    And don't trust any advertisement of authors of other executable
+    compressors about this topic - just do a websearch on "unpackers"...
+
+  - Fix all remaining bugs - keep your reports coming ;-)
+
+  - See the file PROJECTS in the source code distribution if you want
+    to contribute.
+
+
+COPYRIGHT
+=========
+
+Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer
+Copyright (C) 1996-2013 Laszlo Molnar
+Copyright (C) 2000-2013 John F. Reiser
+
+This program may be used freely, and you are welcome to
+redistribute it under certain conditions.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+UPX License Agreement for more details.
+
+You should have received a copy of the UPX License Agreement along
+with this program; see the file LICENSE. If not, visit the UPX home page.
+
+
+Share and enjoy,
+Markus & Laszlo
+
+
+   Markus F.X.J. Oberhumer              Laszlo Molnar
+   <markus at oberhumer.com>               <ml1050 at users.sourceforge.net>
+
+
+
+[ The term UPX is a shorthand for the Ultimate Packer for eXecutables
+  and holds no connection with potential owners of registered trademarks
+  or other rights. ]
+
+[ Feel free to contact us if you have commercial compression requirements
+  or interesting job offers. ]
+
diff --git a/upx/3.91_bin/README.1ST b/upx/3.91_bin/README.1ST
new file mode 100755
index 0000000..51ad081
--- /dev/null
+++ b/upx/3.91_bin/README.1ST
@@ -0,0 +1,23 @@
+                 ooooo     ooo ooooooooo.   ooooooo  ooooo
+                 `888'     `8' `888   `Y88.  `8888    d8'
+                  888       8   888   .d88'    Y888..8P
+                  888       8   888ooo88P'      `8888'
+                  888       8   888            .8PY888.
+                  `88.    .8'   888           d8'  `888b
+                    `YbodP'    o888o        o888o  o88888o
+
+
+                    The Ultimate Packer for eXecutables
+   Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser
+                        http://upx.sourceforge.net
+
+
+MAJOR NEWS IN UPX 3
+===================
+
+The main news since UPX 2 are:
+
+  * new format: added support for linux elf/arm
+
+  * better compression using the LZMA algorithm (option '--lzma')
+
diff --git a/upx/3.91_bin/THANKS b/upx/3.91_bin/THANKS
new file mode 100755
index 0000000..159429b
--- /dev/null
+++ b/upx/3.91_bin/THANKS
@@ -0,0 +1,61 @@
+                 ooooo     ooo ooooooooo.   ooooooo  ooooo
+                 `888'     `8' `888   `Y88.  `8888    d8'
+                  888       8   888   .d88'    Y888..8P
+                  888       8   888ooo88P'      `8888'
+                  888       8   888            .8PY888.
+                  `88.    .8'   888           d8'  `888b
+                    `YbodP'    o888o        o888o  o88888o
+
+
+                    The Ultimate Packer for eXecutables
+   Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser
+                        http://upx.sourceforge.net
+
+
+.___..        .
+  |  |_  _.._ ;_/ __
+  |  [ )(_][ )| \_)
+--------------------
+
+UPX would not be what it is today without the invaluable help of
+everybody who was kind enough to spend time testing it, using it
+in applications and reporting bugs.
+
+The following people made especially gracious contributions of their
+time and energy in helping to track down bugs, add new features, and
+generally assist in the UPX maintainership process:
+
+Adam Ierymenko <api at one.net>
+  for severals ideas for the Linux version
+Andi Kleen <ak at muc.de> and Jamie Lokier <nospam at cern.ch>
+  for the /proc/self/fd/X and other Linux suggestions
+Andreas Muegge <andreas.muegge at gmx.de>
+  for the Win32 GUI
+Atli Mar Gudmundsson <agudmundsson at symantec.com>
+  for several comments on the win32/pe stub
+Charles W. Sandmann <sandmann at clio.rice.edu>
+  for the idea with the stubless decompressor in djgpp2/coff
+Ice
+  for debugging the PE headersize problem down
+Joergen Ibsen <jibz at hotmail.com> and d'b
+  for the relocation & address optimization ideas
+John S. Fine <johnfine at erols.com>
+  for the new version of the dos/exe decompressor
+Lukundoo <Lukundoo at softhome.net>
+  for beta testing
+Michael Devore
+  for initial dos/exe device driver support
+Oleg V. Volkov <rover at lglobus.ru>
+  for various FreeBSD specific informations
+The Owl & G-RoM
+  for the --compress-icons fix
+Ralph Roth <RalphRoth at gmx.net>
+  for reporting several bugs
+Salvador Eduardo Tropea
+  for beta testing
+Stefan Widmann
+  for the win32/pe TLS callback support
+The WINE project (http://www.winehq.com/)
+  for lots of useful information found in their PE loader sources
+Natascha
+
diff --git a/upx/3.91_bin/TODO b/upx/3.91_bin/TODO
new file mode 100755
index 0000000..210d9a1
--- /dev/null
+++ b/upx/3.91_bin/TODO
@@ -0,0 +1,114 @@
+UPX TODO list. Last updated 2006-12-08.
+
+
+IMPORTANT PROBLEMS THAT SHOULD BE FIXED SOON:
+
+- [None]
+
+
+OTHER:
+
+- docs: convert docs from upx.pod to use AsciiDoc
+
+- check all <const_cast> to make sure they are not invalid
+
+- throwNotCompressible() is not a real error, so make the output nicer
+  (info: bla bla). Also ui.cpp (total_*).
+
+
+-----------------------------------------------------------------------
+
+
+IMPROVED COMPRESSION RATIO
+==========================
+
+- experiment with new filters
+
+- implement filters for dos/exe
+
+- filters: could we exploit a f->firstcall info field ?
+
+- for small programs (e.g. < 64k), try an additional algorithm
+  to see if it gives better compression
+
+
+ALL FORMATS
+===========
+
+- more thoroughly test the exe-header in canPack()
+  and throw exceptions when encountering bad values.
+
+- implement `--cpu=486' option to use bswap on the 32-bit formats
+    (if cpu >= 486)
+
+
+FORMAT DJGPP2/COFF
+==================
+
+- handle overlays
+
+- fix default file extension handling when the --coff option is set
+
+
+FORMAT DOS/EXE
+==============
+
+- implement filters
+
+- add a check so that we don't pack djgpp1 binaries
+
+
+FORMAT LINUX/386
+================
+
+- don't mmap() the temporary output file - this seems to improve
+    file io speed
+
+
+FORMAT TMT/ADAM
+===============
+
+- the decompressors are already aligned, no need for an
+    extra alignment
+
+
+FORMAT WATCOM/LE
+================
+
+- handle files without relocations
+
+- the decompressors are already aligned, no need for an
+    extra alignment
+
+- fix default file extension handling when the --le option is set
+
+- handle holes in the file
+
+
+FORMAT WIN16/NE
+===============
+
+- implement readFileHeader() to correctly identify a win16/ne
+  executable, so that the call for contribution will get thrown
+
+
+FORMAT WIN32/PE
+===============
+
+- fix the section alignment with the Intel compiler
+
+- decrease runtime memory overhead
+
+3 - difficult) don't compress the BSS section and other holes.
+
+4 - medium - ml) fix when objectalign < 0x1000
+
+4 - easy - ml) put the original offset of moved resources somewhere into
+    the res.dir. (if it's safe to do)
+
+4 - ??? - ml) fix FIXMEs
+
+5 - medium - ml) try to put the preprocessed imports & relocs back to their
+    original section if possible. this could save some virtual memory
+    address space.
+
diff --git a/upx/3.91_bin/upx.1 b/upx/3.91_bin/upx.1
new file mode 100755
index 0000000..7104f77
--- /dev/null
+++ b/upx/3.91_bin/upx.1
@@ -0,0 +1,1036 @@
+.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.13)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.el \{\
+.    de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "UPX 1"
+.TH UPX 1 "2013-09-30" "upx 3.91" " "
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+upx \- compress or expand executable files
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+\&\fBupx\fR [\ \fIcommand\fR\ ] [\ \fIoptions\fR\ ] \fIfilename\fR...
+.SH "ABSTRACT"
+.IX Header "ABSTRACT"
+.Vb 3
+\&                    The Ultimate Packer for eXecutables
+\&   Copyright (c) 1996\-2013 Markus Oberhumer, Laszlo Molnar & John Reiser
+\&                        http://upx.sourceforge.net
+.Ve
+.PP
+\&\fB\s-1UPX\s0\fR is a portable, extendable, high-performance executable packer for
+several different executable formats. It achieves an excellent compression
+ratio and offers \fI*very*\fR fast decompression. Your executables suffer
+no memory overhead or other drawbacks for most of the formats supported,
+because of in-place decompression.
+.PP
+While you may use \fB\s-1UPX\s0\fR freely for both non-commercial and commercial
+executables (for details see the file \s-1LICENSE\s0), we would highly
+appreciate if you credit \fB\s-1UPX\s0\fR and ourselves in the documentation,
+possibly including a reference to the \fB\s-1UPX\s0\fR home page. Thanks.
+.PP
+[ Using \fB\s-1UPX\s0\fR in non-OpenSource applications without proper credits
+is considered not politically correct ;\-) ]
+.SH "DISCLAIMER"
+.IX Header "DISCLAIMER"
+\&\fB\s-1UPX\s0\fR comes with \s-1ABSOLUTELY\s0 \s-1NO\s0 \s-1WARRANTY\s0; for details see the file \s-1LICENSE\s0.
+.PP
+This is the first production quality release, and we plan that future 1.xx
+releases will be backward compatible with this version.
+.PP
+Please report all problems or suggestions to the authors. Thanks.
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fB\s-1UPX\s0\fR is a versatile executable packer with the following features:
+.PP
+.Vb 2
+\&  \- excellent compression ratio: compresses better than zip/gzip,
+\&      use UPX to decrease the size of your distribution !
+\&
+\&  \- very fast decompression: about 10 MiB/sec on an ancient Pentium 133,
+\&      about 200 MiB/sec on an Athlon XP 2000+.
+\&
+\&  \- no memory overhead for your compressed executables for most of the
+\&      supported formats
+\&
+\&  \- safe: you can list, test and unpack your executables
+\&      Also, a checksum of both the compressed and uncompressed file is
+\&      maintained internally.
+\&
+\&  \- universal: UPX can pack a number of executable formats:
+\&      * atari/tos
+\&      * bvmlinuz/386    [bootable Linux kernel]
+\&      * djgpp2/coff
+\&      * dos/com
+\&      * dos/exe
+\&      * dos/sys
+\&      * linux/386
+\&      * linux/elf386
+\&      * linux/sh386
+\&      * ps1/exe
+\&      * rtm32/pe
+\&      * tmt/adam
+\&      * vmlinuz/386     [bootable Linux kernel]
+\&      * vmlinux/386
+\&      * watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay)
+\&      * win32/pe (exe and dll)
+\&      * arm/pe (exe and dll)
+\&      * linux/elfamd64
+\&      * linux/elfppc32
+\&      * mach/elfppc32
+\&
+\&  \- portable: UPX is written in portable endian\-neutral C++
+\&
+\&  \- extendable: because of the class layout it\*(Aqs very easy to support
+\&      new executable formats or add new compression algorithms
+\&
+\&  \- free: UPX can be distributed and used freely. And from version 0.99
+\&      the full source code of UPX is released under the GNU General Public
+\&      License (GPL) !
+.Ve
+.PP
+You probably understand now why we call \fB\s-1UPX\s0\fR the "\fIultimate\fR"
+executable packer.
+.SH "COMMANDS"
+.IX Header "COMMANDS"
+.SS "Compress"
+.IX Subsection "Compress"
+This is the default operation, eg. \fBupx yourfile.exe\fR will compress the file
+specified on the command line.
+.SS "Decompress"
+.IX Subsection "Decompress"
+All \fB\s-1UPX\s0\fR supported file formats can be unpacked using the \fB\-d\fR switch, eg.
+\&\fBupx \-d yourfile.exe\fR will uncompress the file you've just compressed.
+.SS "Test"
+.IX Subsection "Test"
+The \fB\-t\fR command tests the integrity of the compressed and uncompressed
+data, eg. \fBupx \-t yourfile.exe\fR check whether your file can be safely
+decompressed. Note, that this command doesn't check the whole file, only
+the part that will be uncompressed during program execution. This means
+that you should not use this command instead of a virus checker.
+.SS "List"
+.IX Subsection "List"
+The \fB\-l\fR command prints out some information about the compressed files
+specified on the command line as parameters, eg \fBupx \-l yourfile.exe\fR
+shows the compressed / uncompressed size and the compression ratio of
+\&\fIyourfile.exe\fR.
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+\&\fB\-q\fR: be quiet, suppress warnings
+.PP
+\&\fB\-q \-q\fR (or \fB\-qq\fR): be very quiet, suppress errors
+.PP
+\&\fB\-q \-q \-q\fR (or \fB\-qqq\fR): produce no output at all
+.PP
+\&\fB\-\-help\fR: prints the help
+.PP
+\&\fB\-\-version\fR: print the version of \fB\s-1UPX\s0\fR
+.PP
+\&\fB\-\-exact\fR: when compressing, require to be able to get a byte-identical file
+after decompression with option \fB\-d\fR. [\s-1NOTE:\s0 this is work in progress and is
+not supported for all formats yet. If you do care, as a workaround you can
+compress and then decompress your program a first time \- any further
+compress-decompress steps should then yield byte-identical results
+as compared to the first decompressed version.]
+.PP
+[ ...to be written... \- type `\fBupx \-\-help\fR' for now ]
+.SH "COMPRESSION LEVELS & TUNING"
+.IX Header "COMPRESSION LEVELS & TUNING"
+\&\fB\s-1UPX\s0\fR offers ten different compression levels from \fB\-1\fR to \fB\-9\fR,
+and \fB\-\-best\fR.  The default compression level is \fB\-8\fR for files
+smaller than 512 KiB, and \fB\-7\fR otherwise.
+.IP "\(bu" 4
+Compression levels 1, 2 and 3 are pretty fast.
+.IP "\(bu" 4
+Compression levels 4, 5 and 6 achieve a good time/ratio performance.
+.IP "\(bu" 4
+Compression levels 7, 8 and 9 favor compression ratio over speed.
+.IP "\(bu" 4
+Compression level \fB\-\-best\fR may take a long time.
+.PP
+Note that compression level \fB\-\-best\fR can be somewhat slow for large
+files, but you definitely should use it when releasing a final version
+of your program.
+.PP
+Quick info for achieving the best compression ratio:
+.IP "\(bu" 4
+Try \fBupx \-\-brute myfile.exe\fR or even \fBupx \-\-ultra\-brute myfile.exe\fR.
+.IP "\(bu" 4
+Try if \fB\-\-overlay=strip\fR works.
+.IP "\(bu" 4
+For win32/pe programs there's \fB\-\-strip\-relocs=0\fR. See notes below.
+.SH "OVERLAY HANDLING OPTIONS"
+.IX Header "OVERLAY HANDLING OPTIONS"
+Info: An \*(L"overlay\*(R" means auxiliary data attached after the logical end of
+an executable, and it often contains application specific data
+(this is a common practice to avoid an extra data file, though
+it would be better to use resource sections).
+.PP
+\&\fB\s-1UPX\s0\fR handles overlays like many other executable packers do: it simply
+copies the overlay after the compressed image. This works with some
+files, but doesn't work with others, depending on how an application
+actually accesses this overlayed data.
+.PP
+.Vb 1
+\&  \-\-overlay=copy    Copy any extra data attached to the file. [DEFAULT]
+\&
+\&  \-\-overlay=strip   Strip any overlay from the program instead of
+\&                    copying it. Be warned, this may make the compressed
+\&                    program crash or otherwise unusable.
+\&
+\&  \-\-overlay=skip    Refuse to compress any program which has an overlay.
+.Ve
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+The environment variable \fB\s-1UPX\s0\fR can hold a set of default
+options for \fB\s-1UPX\s0\fR. These options are interpreted first and
+can be overwritten by explicit command line parameters.
+For example:
+.PP
+.Vb 3
+\&    for DOS/Windows:   set UPX=\-9 \-\-compress\-icons#0
+\&    for sh/ksh/zsh:    UPX="\-9 \-\-compress\-icons=0"; export UPX
+\&    for csh/tcsh:      setenv UPX "\-9 \-\-compress\-icons=0"
+.Ve
+.PP
+Under DOS/Windows you must use '#' instead of '=' when setting the
+environment variable because of a \s-1COMMAND\s0.COM limitation.
+.PP
+Not all of the options are valid in the environment variable \-
+\&\fB\s-1UPX\s0\fR will tell you.
+.PP
+You can explicitly use the \fB\-\-no\-env\fR option to ignore the
+environment variable.
+.SH "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS"
+.IX Header "NOTES FOR THE SUPPORTED EXECUTABLE FORMATS"
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1ATARI/TOS\s0"
+.IX Subsection "NOTES FOR ATARI/TOS"
+This is the executable format used by the Atari \s-1ST/TT\s0, a Motorola 68000
+based personal computer which was popular in the late '80s. Support
+of this format is only because of nostalgic feelings of one of
+the authors and serves no practical purpose :\-).
+See http://www.freemint.de for more info.
+.PP
+Packed programs will be byte-identical to the original after uncompression.
+All debug information will be stripped, though.
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 4
+\&  \-\-all\-methods       Compress the program several times, using all
+\&                      available compression methods. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default method gives the best results anyway.
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1BVMLINUZ/I386\s0"
+.IX Subsection "NOTES FOR BVMLINUZ/I386"
+Same as vmlinuz/i386.
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1DOS/COM\s0"
+.IX Subsection "NOTES FOR DOS/COM"
+Obviously \fB\s-1UPX\s0\fR won't work with executables that want to read data from
+themselves (like some commandline utilities that ship with Win95/98/ME).
+.PP
+Compressed programs only work on a 286+.
+.PP
+Packed programs will be byte-identical to the original after uncompression.
+.PP
+Maximum uncompressed size: ~65100 bytes.
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 1
+\&  \-\-8086              Create an executable that works on any 8086 CPU.
+\&
+\&  \-\-all\-methods       Compress the program several times, using all
+\&                      available compression methods. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default method gives the best results anyway.
+\&
+\&  \-\-all\-filters       Compress the program several times, using all
+\&                      available preprocessing filters. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default filter gives the best results anyway.
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1DOS/EXE\s0"
+.IX Subsection "NOTES FOR DOS/EXE"
+dos/exe stands for all \*(L"normal\*(R" 16\-bit \s-1DOS\s0 executables.
+.PP
+Obviously \fB\s-1UPX\s0\fR won't work with executables that want to read data from
+themselves (like some command line utilities that ship with Win95/98/ME).
+.PP
+Compressed programs only work on a 286+.
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 1
+\&  \-\-8086              Create an executable that works on any 8086 CPU.
+\&
+\&  \-\-no\-reloc          Use no relocation records in the exe header.
+\&
+\&  \-\-all\-methods       Compress the program several times, using all
+\&                      available compression methods. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default method gives the best results anyway.
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1DOS/SYS\s0"
+.IX Subsection "NOTES FOR DOS/SYS"
+Compressed programs only work on a 286+.
+.PP
+Packed programs will be byte-identical to the original after uncompression.
+.PP
+Maximum uncompressed size: ~65350 bytes.
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 1
+\&  \-\-8086              Create an executable that works on any 8086 CPU.
+\&
+\&  \-\-all\-methods       Compress the program several times, using all
+\&                      available compression methods. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default method gives the best results anyway.
+\&
+\&  \-\-all\-filters       Compress the program several times, using all
+\&                      available preprocessing filters. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default filter gives the best results anyway.
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1DJGPP2/COFF\s0"
+.IX Subsection "NOTES FOR DJGPP2/COFF"
+First of all, it is recommended to use \fB\s-1UPX\s0\fR *instead* of \fBstrip\fR. strip has
+the very bad habit of replacing your stub with its own (outdated) version.
+Additionally \fB\s-1UPX\s0\fR corrects a bug/feature in strip v2.8.x: it
+will fix the 4 KiB alignment of the stub.
+.PP
+\&\fB\s-1UPX\s0\fR includes the full functionality of stubify. This means it will
+automatically stubify your \s-1COFF\s0 files. Use the option \fB\-\-coff\fR to
+disable this functionality (see below).
+.PP
+\&\fB\s-1UPX\s0\fR automatically handles Allegro packfiles.
+.PP
+The \s-1DLM\s0 format (a rather exotic shared library extension) is not supported.
+.PP
+Packed programs will be byte-identical to the original after uncompression.
+All debug information and trailing garbage will be stripped, though.
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 2
+\&  \-\-coff              Produce COFF output instead of EXE. By default
+\&                      UPX keeps your current stub.
+\&
+\&  \-\-all\-methods       Compress the program several times, using all
+\&                      available compression methods. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default method gives the best results anyway.
+\&
+\&  \-\-all\-filters       Compress the program several times, using all
+\&                      available preprocessing filters. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default filter gives the best results anyway.
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1LINUX\s0 [general]"
+.IX Subsection "NOTES FOR LINUX [general]"
+Introduction
+.PP
+.Vb 4
+\&  Linux/386 support in UPX consists of 3 different executable formats,
+\&  one optimized for ELF executables ("linux/elf386"), one optimized
+\&  for shell scripts ("linux/sh386"), and one generic format
+\&  ("linux/386").
+\&
+\&  We will start with a general discussion first, but please
+\&  also read the relevant docs for each of the individual formats.
+\&
+\&  Also, there is special support for bootable kernels \- see the
+\&  description of the vmlinuz/386 format.
+.Ve
+.PP
+General user's overview
+.PP
+.Vb 7
+\&  Running a compressed executable program trades less space on a
+\&  \`\`permanent\*(Aq\*(Aq storage medium (such as a hard disk, floppy disk,
+\&  CD\-ROM, flash memory, EPROM, etc.) for more space in one or more
+\&  \`\`temporary\*(Aq\*(Aq storage media (such as RAM, swap space, /tmp, etc.).
+\&  Running a compressed executable also requires some additional CPU
+\&  cycles to generate the compressed executable in the first place,
+\&  and to decompress it at each invocation.
+\&
+\&  How much space is traded?  It depends on the executable, but many
+\&  programs save 30% to 50% of permanent disk space.  How much CPU
+\&  overhead is there?  Again, it depends on the executable, but
+\&  decompression speed generally is at least many megabytes per second,
+\&  and frequently is limited by the speed of the underlying disk
+\&  or network I/O.
+\&
+\&  Depending on the statistics of usage and access, and the relative
+\&  speeds of CPU, RAM, swap space, /tmp, and file system storage, then
+\&  invoking and running a compressed executable can be faster than
+\&  directly running the corresponding uncompressed program.
+\&  The operating system might perform fewer expensive I/O operations
+\&  to invoke the compressed program.  Paging to or from swap space
+\&  or /tmp might be faster than paging from the general file system.
+\&  \`\`Medium\-sized\*(Aq\*(Aq programs which access about 1/3 to 1/2 of their
+\&  stored program bytes can do particularly well with compression.
+\&  Small programs tend not to benefit as much because the absolute
+\&  savings is less.  Big programs tend not to benefit proportionally
+\&  because each invocation may use only a small fraction of the program,
+\&  yet UPX decompresses the entire program before invoking it.
+\&  But in environments where disk or flash memory storage is limited,
+\&  then compression may win anyway.
+\&
+\&  Currently, executables compressed by UPX do not share RAM at runtime
+\&  in the way that executables mapped from a file system do.  As a
+\&  result, if the same program is run simultaneously by more than one
+\&  process, then using the compressed version will require more RAM and/or
+\&  swap space.  So, shell programs (bash, csh, etc.)  and \`\`make\*(Aq\*(Aq
+\&  might not be good candidates for compression.
+\&
+\&  UPX recognizes three executable formats for Linux: Linux/elf386,
+\&  Linux/sh386, and Linux/386.  Linux/386 is the most generic format;
+\&  it accommodates any file that can be executed.  At runtime, the UPX
+\&  decompression stub re\-creates in /tmp a copy of the original file,
+\&  and then the copy is (re\-)executed with the same arguments.
+\&  ELF binary executables prefer the Linux/elf386 format by default,
+\&  because UPX decompresses them directly into RAM, uses only one
+\&  exec, does not use space in /tmp, and does not use /proc.
+\&  Shell scripts where the underlying shell accepts a \`\`\-c\*(Aq\*(Aq argument
+\&  can use the Linux/sh386 format.  UPX decompresses the shell script
+\&  into low memory, then maps the shell and passes the entire text of the
+\&  script as an argument with a leading \`\`\-c\*(Aq\*(Aq.
+.Ve
+.PP
+General benefits:
+.PP
+.Vb 4
+\&  \- UPX can compress all executables, be it AOUT, ELF, libc4, libc5,
+\&    libc6, Shell/Perl/Python/... scripts, standalone Java .class
+\&    binaries, or whatever...
+\&    All scripts and programs will work just as before.
+\&
+\&  \- Compressed programs are completely self\-contained. No need for
+\&    any external program.
+\&
+\&  \- UPX keeps your original program untouched. This means that
+\&    after decompression you will have a byte\-identical version,
+\&    and you can use UPX as a file compressor just like gzip.
+\&    [ Note that UPX maintains a checksum of the file internally,
+\&      so it is indeed a reliable alternative. ]
+\&
+\&  \- As the stub only uses syscalls and isn\*(Aqt linked against libc it
+\&    should run under any Linux configuration that can run ELF
+\&    binaries.
+\&
+\&  \- For the same reason compressed executables should run under
+\&    FreeBSD and other systems which can run Linux binaries.
+\&    [ Please send feedback on this topic ]
+.Ve
+.PP
+General drawbacks:
+.PP
+.Vb 4
+\&  \- It is not advisable to compress programs which usually have many
+\&    instances running (like \`sh\*(Aq or \`make\*(Aq) because the common segments of
+\&    compressed programs won\*(Aqt be shared any longer between different
+\&    processes.
+\&
+\&  \- \`ldd\*(Aq and \`size\*(Aq won\*(Aqt show anything useful because all they
+\&    see is the statically linked stub.  Since version 0.82 the section
+\&    headers are stripped from the UPX stub and \`size\*(Aq doesn\*(Aqt even
+\&    recognize the file format.  The file patches/patch\-elfcode.h has a
+\&    patch to fix this bug in \`size\*(Aq and other programs which use GNU BFD.
+.Ve
+.PP
+General notes:
+.PP
+.Vb 2
+\&  \- As UPX leaves your original program untouched it is advantageous
+\&    to strip it before compression.
+\&
+\&  \- If you compress a script you will lose platform independence \-
+\&    this could be a problem if you are using NFS mounted disks.
+\&
+\&  \- Compression of suid, guid and sticky\-bit programs is rejected
+\&    because of possible security implications.
+\&
+\&  \- For the same reason there is no sense in making any compressed
+\&    program suid.
+\&
+\&  \- Obviously UPX won\*(Aqt work with executables that want to read data
+\&    from themselves. E.g., this might be a problem for Perl scripts
+\&    which access their _\|_DATA_\|_ lines.
+\&
+\&  \- In case of internal errors the stub will abort with exitcode 127.
+\&    Typical reasons for this to happen are that the program has somehow
+\&    been modified after compression.
+\&    Running \`strace \-o strace.log compressed_file\*(Aq will tell you more.
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1LINUX/ELF386\s0"
+.IX Subsection "NOTES FOR LINUX/ELF386"
+Please read the general Linux description first.
+.PP
+The linux/elf386 format decompresses directly into \s-1RAM\s0,
+uses only one exec, does not use space in /tmp,
+and does not use /proc.
+.PP
+Linux/elf386 is automatically selected for Linux \s-1ELF\s0 executables.
+.PP
+Packed programs will be byte-identical to the original after uncompression.
+.PP
+How it works:
+.PP
+.Vb 9
+\&  For ELF executables, UPX decompresses directly to memory, simulating
+\&  the mapping that the operating system kernel uses during exec(),
+\&  including the PT_INTERP program interpreter (if any).
+\&  The brk() is set by a special PT_LOAD segment in the compressed
+\&  executable itself.  UPX then wipes the stack clean except for
+\&  arguments, environment variables, and Elf_auxv entries (this is
+\&  required by bugs in the startup code of /lib/ld\-linux.so as of
+\&  May 2000), and transfers control to the program interpreter or
+\&  the e_entry address of the original executable.
+\&
+\&  The UPX stub is about 1700 bytes long, partly written in assembler
+\&  and only uses kernel syscalls. It is not linked against any libc.
+.Ve
+.PP
+Specific drawbacks:
+.PP
+.Vb 9
+\&  \- For linux/elf386 and linux/sh386 formats, you will be relying on
+\&    RAM and swap space to hold all of the decompressed program during
+\&    the lifetime of the process.  If you already use most of your swap
+\&    space, then you may run out.  A system that is "out of memory"
+\&    can become fragile.  Many programs do not react gracefully when
+\&    malloc() returns 0.  With newer Linux kernels, the kernel
+\&    may decide to kill some processes to regain memory, and you
+\&    may not like the kernel\*(Aqs choice of which to kill.  Running
+\&    /usr/bin/top is one way to check on the usage of swap space.
+.Ve
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 1
+\&  (none)
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1LINUX/SH386\s0"
+.IX Subsection "NOTES FOR LINUX/SH386"
+Please read the general Linux description first.
+.PP
+Shell scripts where the underling shell accepts a ``\-c'' argument
+can use the Linux/sh386 format.  \fB\s-1UPX\s0\fR decompresses the shell script
+into low memory, then maps the shell and passes the entire text of the
+script as an argument with a leading ``\-c''.
+It does not use space in /tmp, and does not use /proc.
+.PP
+Linux/sh386 is automatically selected for shell scripts that
+use a known shell.
+.PP
+Packed programs will be byte-identical to the original after uncompression.
+.PP
+How it works:
+.PP
+.Vb 8
+\&  For shell script executables (files beginning with "#!/" or "#! /")
+\&  where the shell is known to accept "\-c <command>", UPX decompresses
+\&  the file into low memory, then maps the shell (and its PT_INTERP),
+\&  and passes control to the shell with the entire decompressed file
+\&  as the argument after "\-c".  Known shells are sh, ash, bash, bsh, csh,
+\&  ksh, tcsh, pdksh.  Restriction: UPX cannot use this method
+\&  for shell scripts which use the one optional string argument after
+\&  the shell name in the script (example: "#! /bin/sh option3\en".)
+\&
+\&  The UPX stub is about 1700 bytes long, partly written in assembler
+\&  and only uses kernel syscalls. It is not linked against any libc.
+.Ve
+.PP
+Specific drawbacks:
+.PP
+.Vb 9
+\&  \- For linux/elf386 and linux/sh386 formats, you will be relying on
+\&    RAM and swap space to hold all of the decompressed program during
+\&    the lifetime of the process.  If you already use most of your swap
+\&    space, then you may run out.  A system that is "out of memory"
+\&    can become fragile.  Many programs do not react gracefully when
+\&    malloc() returns 0.  With newer Linux kernels, the kernel
+\&    may decide to kill some processes to regain memory, and you
+\&    may not like the kernel\*(Aqs choice of which to kill.  Running
+\&    /usr/bin/top is one way to check on the usage of swap space.
+.Ve
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 1
+\&  (none)
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1LINUX/386\s0"
+.IX Subsection "NOTES FOR LINUX/386"
+Please read the general Linux description first.
+.PP
+The generic linux/386 format decompresses to /tmp and needs
+/proc file system support. It starts the decompressed program
+via the \fIexecve()\fR syscall.
+.PP
+Linux/386 is only selected if the specialized linux/elf386
+and linux/sh386 won't recognize a file.
+.PP
+Packed programs will be byte-identical to the original after uncompression.
+.PP
+How it works:
+.PP
+.Vb 7
+\&  For files which are not ELF and not a script for a known "\-c" shell,
+\&  UPX uses kernel execve(), which first requires decompressing to a
+\&  temporary file in the file system.  Interestingly \-
+\&  because of the good memory management of the Linux kernel \- this
+\&  often does not introduce a noticeable delay, and in fact there
+\&  will be no disk access at all if you have enough free memory as
+\&  the entire process takes places within the file system buffers.
+\&
+\&  A compressed executable consists of the UPX stub and an overlay
+\&  which contains the original program in a compressed form.
+\&
+\&  The UPX stub is a statically linked ELF executable and does
+\&  the following at program startup:
+\&
+\&    1) decompress the overlay to a temporary location in /tmp
+\&    2) open the temporary file for reading
+\&    3) try to delete the temporary file and start (execve)
+\&       the uncompressed program in /tmp using /proc/<pid>/fd/X as
+\&       attained by step 2)
+\&    4) if that fails, fork off a subprocess to clean up and
+\&       start the program in /tmp in the meantime
+\&
+\&  The UPX stub is about 1700 bytes long, partly written in assembler
+\&  and only uses kernel syscalls. It is not linked against any libc.
+.Ve
+.PP
+Specific drawbacks:
+.PP
+.Vb 4
+\&  \- You need additional free disk space for the uncompressed program
+\&    in your /tmp directory. This program is deleted immediately after
+\&    decompression, but you still need it for the full execution time
+\&    of the program.
+\&
+\&  \- You must have /proc file system support as the stub wants to open
+\&    /proc/<pid>/exe and needs /proc/<pid>/fd/X. This also means that you
+\&    cannot compress programs that are used during the boot sequence
+\&    before /proc is mounted.
+\&
+\&  \- Utilities like \`top\*(Aq will display numerical values in the process
+\&    name field. This is because Linux computes the process name from
+\&    the first argument of the last execve syscall (which is typically
+\&    something like /proc/<pid>/fd/3).
+\&
+\&  \- Because of temporary decompression to disk the decompression speed
+\&    is not as fast as with the other executable formats. Still, I can see
+\&    no noticeable delay when starting programs like my ~3 MiB emacs (which
+\&    is less than 1 MiB when compressed :\-).
+.Ve
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 3
+\&  \-\-force\-execve      Force the use of the generic linux/386 "execve"
+\&                      format, i.e. do not try the linux/elf386 and
+\&                      linux/sh386 formats.
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1PS1/EXE\s0"
+.IX Subsection "NOTES FOR PS1/EXE"
+This is the executable format used by the Sony PlayStation (PSone),
+a Mips R3000 based gaming console which is popular since the late '90s.
+Support of this format is very similar to the Atari one, because of
+nostalgic feelings of one of the authors.
+.PP
+Packed programs will be byte-identical to the original after uncompression,
+until further notice.
+.PP
+Maximum uncompressed size: ~1.89 / ~7.60 MiB.
+.PP
+Notes:
+.PP
+.Vb 6
+\&  \- UPX creates as default a suitable executable for CD\-Mastering
+\&    and console transfer. For a CD\-Master main executable you could also try
+\&    the special option "\-\-boot\-only" as described below.
+\&    It has been reported that upx packed executables are fully compatible with
+\&    the Sony PlayStation 2 (PS2, PStwo) and Sony PlayStation Portable (PSP) in
+\&    Sony PlayStation (PSone) emulation mode.
+\&
+\&  \- Normally the packed files use the same memory areas like the uncompressed
+\&    versions, so they will not override other memory areas while unpacking.
+\&    If this isn\*(Aqt possible UPX will abort showing a \*(Aqpacked data overlap\*(Aq
+\&    error. With the "\-\-force" option UPX will relocate the loading address
+\&    for the packed file, but this isn\*(Aqt a real problem if it is a single or
+\&    the main executable.
+.Ve
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 4
+\&  \-\-all\-methods       Compress the program several times, using all
+\&                      available compression methods. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default method gives the best results anyway.
+\&
+\&  \-\-8\-bit             Uses 8 bit size compression [default: 32 bit]
+\&
+\&  \-\-8mib\-ram          PSone has 8 MiB ram available [default: 2 MiB]
+\&
+\&  \-\-boot\-only         This format is for main exes and CD\-Mastering only !
+\&                      It may slightly improve the compression ratio,
+\&                      decompression routines are faster than default ones.
+\&                      But it cannot be used for console transfer !
+\&
+\&  \-\-no\-align          This option disables CD mode 2 data sector format
+\&                      alignment. May slightly improves the compression ratio,
+\&                      but the compressed executable will not boot from a CD.
+\&                      Use it for console transfer only !
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1RTM32/PE\s0 and \s-1ARM/PE\s0"
+.IX Subsection "NOTES FOR RTM32/PE and ARM/PE"
+Same as win32/pe.
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1TMT/ADAM\s0"
+.IX Subsection "NOTES FOR TMT/ADAM"
+This format is used by the \s-1TMT\s0 Pascal compiler \- see http://www.tmt.com/ .
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 4
+\&  \-\-all\-methods       Compress the program several times, using all
+\&                      available compression methods. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default method gives the best results anyway.
+\&
+\&  \-\-all\-filters       Compress the program several times, using all
+\&                      available preprocessing filters. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default filter gives the best results anyway.
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1VMLINUZ/386\s0"
+.IX Subsection "NOTES FOR VMLINUZ/386"
+The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed
+bootable Linux kernel image (\*(L"vmlinuz\*(R", \*(L"zImage\*(R", \*(L"bzImage\*(R"),
+gzip-decompress it and re-compress it with the \fB\s-1UPX\s0\fR compression method.
+.PP
+vmlinuz/386 is completely unrelated to the other Linux executable
+formats, and it does not share any of their drawbacks.
+.PP
+Notes:
+.PP
+.Vb 3
+\&  \- Be sure that "vmlinuz/386" or "bvmlinuz/386" is displayed
+\&  during compression \- otherwise a wrong executable format
+\&  may have been used, and the kernel won\*(Aqt boot.
+.Ve
+.PP
+Benefits:
+.PP
+.Vb 4
+\&  \- Better compression (but note that the kernel was already compressed,
+\&  so the improvement is not as large as with other formats).
+\&  Still, the bytes saved may be essential for special needs like
+\&  boot disks.
+\&
+\&     For example, this is what I get for my 2.2.16 kernel:
+\&        1589708  vmlinux
+\&         641073  bzImage        [original]
+\&         560755  bzImage.upx    [compressed by "upx \-9"]
+\&
+\&  \- Much faster decompression at kernel boot time (but kernel
+\&    decompression speed is not really an issue these days).
+.Ve
+.PP
+Drawbacks:
+.PP
+.Vb 1
+\&  (none)
+.Ve
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 4
+\&  \-\-all\-methods       Compress the program several times, using all
+\&                      available compression methods. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default method gives the best results anyway.
+\&
+\&  \-\-all\-filters       Compress the program several times, using all
+\&                      available preprocessing filters. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default filter gives the best results anyway.
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1WATCOM/LE\s0"
+.IX Subsection "NOTES FOR WATCOM/LE"
+\&\fB\s-1UPX\s0\fR has been successfully tested with the following extenders:
+  \s-1DOS4G\s0, \s-1DOS4GW\s0, \s-1PMODE/W\s0, DOS32a, CauseWay.
+  The \s-1WDOS/X\s0 extender is partly supported (for details
+  see the file bugs \s-1BUGS\s0).
+.PP
+DLLs and the \s-1LX\s0 format are not supported.
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 2
+\&  \-\-le                Produce an unbound LE output instead of
+\&                      keeping the current stub.
+.Ve
+.SS "\s-1NOTES\s0 \s-1FOR\s0 \s-1WIN32/PE\s0"
+.IX Subsection "NOTES FOR WIN32/PE"
+The \s-1PE\s0 support in \fB\s-1UPX\s0\fR is quite stable now, but probably there are
+still some incompatibilities with some files.
+.PP
+Because of the way \fB\s-1UPX\s0\fR (and other packers for this format) works, you
+can see increased memory usage of your compressed files because the whole
+program is loaded into memory at startup.
+If you start several instances of huge compressed programs you're
+wasting memory because the common segments of the program won't
+get shared across the instances.
+On the other hand if you're compressing only smaller programs, or
+running only one instance of larger programs, then this penalty is
+smaller, but it's still there.
+.PP
+If you're running executables from network, then compressed programs
+will load faster, and require less bandwidth during execution.
+.PP
+DLLs are supported. But \s-1UPX\s0 compressed DLLs can not share common data and
+code when they got used by multiple applications. So compressing msvcrt.dll
+is a waste of memory, but compressing the dll plugins of a particular
+application may be a better idea.
+.PP
+Screensavers are supported, with the restriction that the filename
+must end with \*(L".scr\*(R" (as screensavers are handled slightly different
+than normal exe files).
+.PP
+\&\s-1UPX\s0 compressed \s-1PE\s0 files have some minor memory overhead (usually in the
+10 \- 30 KiB range) which can be seen by specifying the \*(L"\-i\*(R" command
+line switch during compression.
+.PP
+Extra options available for this executable format:
+.PP
+.Vb 9
+\& \-\-compress\-exports=0 Don\*(Aqt compress the export section.
+\&                      Use this if you plan to run the compressed
+\&                      program under Wine.
+\& \-\-compress\-exports=1 Compress the export section. [DEFAULT]
+\&                      Compression of the export section can improve the
+\&                      compression ratio quite a bit but may not work
+\&                      with all programs (like winword.exe).
+\&                      UPX never compresses the export section of a DLL
+\&                      regardless of this option.
+\&
+\&  \-\-compress\-icons=0  Don\*(Aqt compress any icons.
+\&  \-\-compress\-icons=1  Compress all but the first icon.
+\&  \-\-compress\-icons=2  Compress all icons which are not in the
+\&                      first icon directory. [DEFAULT]
+\&  \-\-compress\-icons=3  Compress all icons.
+\&
+\&  \-\-compress\-resources=0  Don\*(Aqt compress any resources at all.
+\&
+\&  \-\-keep\-resource=list Don\*(Aqt compress resources specified by the list.
+\&                      The members of the list are separated by commas.
+\&                      A list member has the following format: I<type[/name]>.
+\&                      I<Type> is the type of the resource. Standard types
+\&                      must be specified as decimal numbers, user types can be
+\&                      specified by decimal IDs or strings. I<Name> is the
+\&                      identifier of the resource. It can be a decimal number
+\&                      or a string. For example:
+\&
+\&                      \-\-keep\-resource=2/MYBITMAP,5,6/12345
+\&
+\&                      UPX won\*(Aqt compress the named bitmap resource "MYBITMAP",
+\&                      it leaves every dialog (5) resource uncompressed, and
+\&                      it won\*(Aqt touch the string table resource with identifier
+\&                      12345.
+\&
+\&  \-\-force             Force compression even when there is an
+\&                      unexpected value in a header field.
+\&                      Use with care.
+\&
+\&  \-\-strip\-relocs=0    Don\*(Aqt strip relocation records.
+\&  \-\-strip\-relocs=1    Strip relocation records. [DEFAULT]
+\&                      This option only works on executables with base
+\&                      address greater or equal to 0x400000. Usually the
+\&                      compressed files becomes smaller, but some files
+\&                      may become larger. Note that the resulting file will
+\&                      not work under Windows 3.x (Win32s).
+\&                      UPX never strips relocations from a DLL
+\&                      regardless of this option.
+\&
+\&  \-\-all\-methods       Compress the program several times, using all
+\&                      available compression methods. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default method gives the best results anyway.
+\&
+\&  \-\-all\-filters       Compress the program several times, using all
+\&                      available preprocessing filters. This may improve
+\&                      the compression ratio in some cases, but usually
+\&                      the default filter gives the best results anyway.
+.Ve
+.SH "DIAGNOSTICS"
+.IX Header "DIAGNOSTICS"
+Exit status is normally 0; if an error occurs, exit status
+is 1. If a warning occurs, exit status is 2.
+.PP
+\&\fB\s-1UPX\s0\fR's diagnostics are intended to be self-explanatory.
+.SH "BUGS"
+.IX Header "BUGS"
+Please report all bugs immediately to the authors.
+.SH "AUTHORS"
+.IX Header "AUTHORS"
+.Vb 2
+\& Markus F.X.J. Oberhumer <markus at oberhumer.com>
+\& http://www.oberhumer.com
+\&
+\& Laszlo Molnar <ml1050 at users.sourceforge.net>
+\&
+\& John F. Reiser <jreiser at BitWagon.com>
+\&
+\& Jens Medoch <jssg at users.sourceforge.net>
+.Ve
+.SH "COPYRIGHT"
+.IX Header "COPYRIGHT"
+Copyright (C) 1996\-2013 Markus Franz Xaver Johannes Oberhumer
+.PP
+Copyright (C) 1996\-2013 Laszlo Molnar
+.PP
+Copyright (C) 2000\-2013 John F. Reiser
+.PP
+Copyright (C) 2002\-2013 Jens Medoch
+.PP
+This program may be used freely, and you are welcome to
+redistribute it under certain conditions.
+.PP
+This program is distributed in the hope that it will be useful,
+but \s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of
+\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0.  See the
+\&\fB\s-1UPX\s0 License Agreement\fR for more details.
+.PP
+You should have received a copy of the \s-1UPX\s0 License Agreement along
+with this program; see the file \s-1LICENSE\s0. If not, visit the \s-1UPX\s0 home page.
diff --git a/upx/3.91_bin/upx.doc b/upx/3.91_bin/upx.doc
new file mode 100755
index 0000000..cc6f7e2
--- /dev/null
+++ b/upx/3.91_bin/upx.doc
@@ -0,0 +1,843 @@
+NAME
+    upx - compress or expand executable files
+
+SYNOPSIS
+    upx [ *command* ] [ *options* ] *filename*...
+
+ABSTRACT
+                        The Ultimate Packer for eXecutables
+       Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser
+                            http://upx.sourceforge.net
+
+    UPX is a portable, extendable, high-performance executable packer for
+    several different executable formats. It achieves an excellent
+    compression ratio and offers **very** fast decompression. Your
+    executables suffer no memory overhead or other drawbacks for most of the
+    formats supported, because of in-place decompression.
+
+    While you may use UPX freely for both non-commercial and commercial
+    executables (for details see the file LICENSE), we would highly
+    appreciate if you credit UPX and ourselves in the documentation,
+    possibly including a reference to the UPX home page. Thanks.
+
+    [ Using UPX in non-OpenSource applications without proper credits is
+    considered not politically correct ;-) ]
+
+DISCLAIMER
+    UPX comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE.
+
+    This is the first production quality release, and we plan that future
+    1.xx releases will be backward compatible with this version.
+
+    Please report all problems or suggestions to the authors. Thanks.
+
+DESCRIPTION
+    UPX is a versatile executable packer with the following features:
+
+      - excellent compression ratio: compresses better than zip/gzip,
+          use UPX to decrease the size of your distribution !
+
+      - very fast decompression: about 10 MiB/sec on an ancient Pentium 133,
+          about 200 MiB/sec on an Athlon XP 2000+.
+
+      - no memory overhead for your compressed executables for most of the
+          supported formats
+
+      - safe: you can list, test and unpack your executables
+          Also, a checksum of both the compressed and uncompressed file is
+          maintained internally.
+
+      - universal: UPX can pack a number of executable formats:
+          * atari/tos
+          * bvmlinuz/386    [bootable Linux kernel]
+          * djgpp2/coff
+          * dos/com
+          * dos/exe
+          * dos/sys
+          * linux/386
+          * linux/elf386
+          * linux/sh386
+          * ps1/exe
+          * rtm32/pe
+          * tmt/adam
+          * vmlinuz/386     [bootable Linux kernel]
+          * vmlinux/386
+          * watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay)
+          * win32/pe (exe and dll)
+          * arm/pe (exe and dll)
+          * linux/elfamd64
+          * linux/elfppc32
+          * mach/elfppc32
+
+      - portable: UPX is written in portable endian-neutral C++
+
+      - extendable: because of the class layout it's very easy to support
+          new executable formats or add new compression algorithms
+
+      - free: UPX can be distributed and used freely. And from version 0.99
+          the full source code of UPX is released under the GNU General Public
+          License (GPL) !
+
+    You probably understand now why we call UPX the "*ultimate*" executable
+    packer.
+
+COMMANDS
+  Compress
+    This is the default operation, eg. upx yourfile.exe will compress the
+    file specified on the command line.
+
+  Decompress
+    All UPX supported file formats can be unpacked using the -d switch, eg.
+    upx -d yourfile.exe will uncompress the file you've just compressed.
+
+  Test
+    The -t command tests the integrity of the compressed and uncompressed
+    data, eg. upx -t yourfile.exe check whether your file can be safely
+    decompressed. Note, that this command doesn't check the whole file, only
+    the part that will be uncompressed during program execution. This means
+    that you should not use this command instead of a virus checker.
+
+  List
+    The -l command prints out some information about the compressed files
+    specified on the command line as parameters, eg upx -l yourfile.exe
+    shows the compressed / uncompressed size and the compression ratio of
+    *yourfile.exe*.
+
+OPTIONS
+    -q: be quiet, suppress warnings
+
+    -q -q (or -qq): be very quiet, suppress errors
+
+    -q -q -q (or -qqq): produce no output at all
+
+    --help: prints the help
+
+    --version: print the version of UPX
+
+    --exact: when compressing, require to be able to get a byte-identical
+    file after decompression with option -d. [NOTE: this is work in progress
+    and is not supported for all formats yet. If you do care, as a
+    workaround you can compress and then decompress your program a first
+    time - any further compress-decompress steps should then yield
+    byte-identical results as compared to the first decompressed version.]
+
+    [ ...to be written... - type `upx --help' for now ]
+
+COMPRESSION LEVELS & TUNING
+    UPX offers ten different compression levels from -1 to -9, and --best.
+    The default compression level is -8 for files smaller than 512 KiB, and
+    -7 otherwise.
+
+    *   Compression levels 1, 2 and 3 are pretty fast.
+
+    *   Compression levels 4, 5 and 6 achieve a good time/ratio performance.
+
+    *   Compression levels 7, 8 and 9 favor compression ratio over speed.
+
+    *   Compression level --best may take a long time.
+
+    Note that compression level --best can be somewhat slow for large files,
+    but you definitely should use it when releasing a final version of your
+    program.
+
+    Quick info for achieving the best compression ratio:
+
+    *   Try upx --brute myfile.exe or even upx --ultra-brute myfile.exe.
+
+    *   Try if --overlay=strip works.
+
+    *   For win32/pe programs there's --strip-relocs=0. See notes below.
+
+OVERLAY HANDLING OPTIONS
+    Info: An "overlay" means auxiliary data attached after the logical end
+    of an executable, and it often contains application specific data (this
+    is a common practice to avoid an extra data file, though it would be
+    better to use resource sections).
+
+    UPX handles overlays like many other executable packers do: it simply
+    copies the overlay after the compressed image. This works with some
+    files, but doesn't work with others, depending on how an application
+    actually accesses this overlayed data.
+
+      --overlay=copy    Copy any extra data attached to the file. [DEFAULT]
+
+      --overlay=strip   Strip any overlay from the program instead of
+                        copying it. Be warned, this may make the compressed
+                        program crash or otherwise unusable.
+
+      --overlay=skip    Refuse to compress any program which has an overlay.
+
+ENVIRONMENT
+    The environment variable UPX can hold a set of default options for UPX.
+    These options are interpreted first and can be overwritten by explicit
+    command line parameters. For example:
+
+        for DOS/Windows:   set UPX=-9 --compress-icons#0
+        for sh/ksh/zsh:    UPX="-9 --compress-icons=0"; export UPX
+        for csh/tcsh:      setenv UPX "-9 --compress-icons=0"
+
+    Under DOS/Windows you must use '#' instead of '=' when setting the
+    environment variable because of a COMMAND.COM limitation.
+
+    Not all of the options are valid in the environment variable - UPX will
+    tell you.
+
+    You can explicitly use the --no-env option to ignore the environment
+    variable.
+
+NOTES FOR THE SUPPORTED EXECUTABLE FORMATS
+  NOTES FOR ATARI/TOS
+    This is the executable format used by the Atari ST/TT, a Motorola 68000
+    based personal computer which was popular in the late '80s. Support of
+    this format is only because of nostalgic feelings of one of the authors
+    and serves no practical purpose :-). See http://www.freemint.de for more
+    info.
+
+    Packed programs will be byte-identical to the original after
+    uncompression. All debug information will be stripped, though.
+
+    Extra options available for this executable format:
+
+      --all-methods       Compress the program several times, using all
+                          available compression methods. This may improve
+                          the compression ratio in some cases, but usually
+                          the default method gives the best results anyway.
+
+  NOTES FOR BVMLINUZ/I386
+    Same as vmlinuz/i386.
+
+  NOTES FOR DOS/COM
+    Obviously UPX won't work with executables that want to read data from
+    themselves (like some commandline utilities that ship with Win95/98/ME).
+
+    Compressed programs only work on a 286+.
+
+    Packed programs will be byte-identical to the original after
+    uncompression.
+
+    Maximum uncompressed size: ~65100 bytes.
+
+    Extra options available for this executable format:
+
+      --8086              Create an executable that works on any 8086 CPU.
+
+      --all-methods       Compress the program several times, using all
+                          available compression methods. This may improve
+                          the compression ratio in some cases, but usually
+                          the default method gives the best results anyway.
+
+      --all-filters       Compress the program several times, using all
+                          available preprocessing filters. This may improve
+                          the compression ratio in some cases, but usually
+                          the default filter gives the best results anyway.
+
+  NOTES FOR DOS/EXE
+    dos/exe stands for all "normal" 16-bit DOS executables.
+
+    Obviously UPX won't work with executables that want to read data from
+    themselves (like some command line utilities that ship with
+    Win95/98/ME).
+
+    Compressed programs only work on a 286+.
+
+    Extra options available for this executable format:
+
+      --8086              Create an executable that works on any 8086 CPU.
+
+      --no-reloc          Use no relocation records in the exe header.
+
+      --all-methods       Compress the program several times, using all
+                          available compression methods. This may improve
+                          the compression ratio in some cases, but usually
+                          the default method gives the best results anyway.
+
+  NOTES FOR DOS/SYS
+    Compressed programs only work on a 286+.
+
+    Packed programs will be byte-identical to the original after
+    uncompression.
+
+    Maximum uncompressed size: ~65350 bytes.
+
+    Extra options available for this executable format:
+
+      --8086              Create an executable that works on any 8086 CPU.
+
+      --all-methods       Compress the program several times, using all
+                          available compression methods. This may improve
+                          the compression ratio in some cases, but usually
+                          the default method gives the best results anyway.
+
+      --all-filters       Compress the program several times, using all
+                          available preprocessing filters. This may improve
+                          the compression ratio in some cases, but usually
+                          the default filter gives the best results anyway.
+
+  NOTES FOR DJGPP2/COFF
+    First of all, it is recommended to use UPX *instead* of strip. strip has
+    the very bad habit of replacing your stub with its own (outdated)
+    version. Additionally UPX corrects a bug/feature in strip v2.8.x: it
+    will fix the 4 KiB alignment of the stub.
+
+    UPX includes the full functionality of stubify. This means it will
+    automatically stubify your COFF files. Use the option --coff to disable
+    this functionality (see below).
+
+    UPX automatically handles Allegro packfiles.
+
+    The DLM format (a rather exotic shared library extension) is not
+    supported.
+
+    Packed programs will be byte-identical to the original after
+    uncompression. All debug information and trailing garbage will be
+    stripped, though.
+
+    Extra options available for this executable format:
+
+      --coff              Produce COFF output instead of EXE. By default
+                          UPX keeps your current stub.
+
+      --all-methods       Compress the program several times, using all
+                          available compression methods. This may improve
+                          the compression ratio in some cases, but usually
+                          the default method gives the best results anyway.
+
+      --all-filters       Compress the program several times, using all
+                          available preprocessing filters. This may improve
+                          the compression ratio in some cases, but usually
+                          the default filter gives the best results anyway.
+
+  NOTES FOR LINUX [general]
+    Introduction
+
+      Linux/386 support in UPX consists of 3 different executable formats,
+      one optimized for ELF executables ("linux/elf386"), one optimized
+      for shell scripts ("linux/sh386"), and one generic format
+      ("linux/386").
+
+      We will start with a general discussion first, but please
+      also read the relevant docs for each of the individual formats.
+
+      Also, there is special support for bootable kernels - see the
+      description of the vmlinuz/386 format.
+
+    General user's overview
+
+      Running a compressed executable program trades less space on a
+      ``permanent'' storage medium (such as a hard disk, floppy disk,
+      CD-ROM, flash memory, EPROM, etc.) for more space in one or more
+      ``temporary'' storage media (such as RAM, swap space, /tmp, etc.).
+      Running a compressed executable also requires some additional CPU
+      cycles to generate the compressed executable in the first place,
+      and to decompress it at each invocation.
+
+      How much space is traded?  It depends on the executable, but many
+      programs save 30% to 50% of permanent disk space.  How much CPU
+      overhead is there?  Again, it depends on the executable, but
+      decompression speed generally is at least many megabytes per second,
+      and frequently is limited by the speed of the underlying disk
+      or network I/O.
+
+      Depending on the statistics of usage and access, and the relative
+      speeds of CPU, RAM, swap space, /tmp, and file system storage, then
+      invoking and running a compressed executable can be faster than
+      directly running the corresponding uncompressed program.
+      The operating system might perform fewer expensive I/O operations
+      to invoke the compressed program.  Paging to or from swap space
+      or /tmp might be faster than paging from the general file system.
+      ``Medium-sized'' programs which access about 1/3 to 1/2 of their
+      stored program bytes can do particularly well with compression.
+      Small programs tend not to benefit as much because the absolute
+      savings is less.  Big programs tend not to benefit proportionally
+      because each invocation may use only a small fraction of the program,
+      yet UPX decompresses the entire program before invoking it.
+      But in environments where disk or flash memory storage is limited,
+      then compression may win anyway.
+
+      Currently, executables compressed by UPX do not share RAM at runtime
+      in the way that executables mapped from a file system do.  As a
+      result, if the same program is run simultaneously by more than one
+      process, then using the compressed version will require more RAM and/or
+      swap space.  So, shell programs (bash, csh, etc.)  and ``make''
+      might not be good candidates for compression.
+
+      UPX recognizes three executable formats for Linux: Linux/elf386,
+      Linux/sh386, and Linux/386.  Linux/386 is the most generic format;
+      it accommodates any file that can be executed.  At runtime, the UPX
+      decompression stub re-creates in /tmp a copy of the original file,
+      and then the copy is (re-)executed with the same arguments.
+      ELF binary executables prefer the Linux/elf386 format by default,
+      because UPX decompresses them directly into RAM, uses only one
+      exec, does not use space in /tmp, and does not use /proc.
+      Shell scripts where the underlying shell accepts a ``-c'' argument
+      can use the Linux/sh386 format.  UPX decompresses the shell script
+      into low memory, then maps the shell and passes the entire text of the
+      script as an argument with a leading ``-c''.
+
+    General benefits:
+
+      - UPX can compress all executables, be it AOUT, ELF, libc4, libc5,
+        libc6, Shell/Perl/Python/... scripts, standalone Java .class
+        binaries, or whatever...
+        All scripts and programs will work just as before.
+
+      - Compressed programs are completely self-contained. No need for
+        any external program.
+
+      - UPX keeps your original program untouched. This means that
+        after decompression you will have a byte-identical version,
+        and you can use UPX as a file compressor just like gzip.
+        [ Note that UPX maintains a checksum of the file internally,
+          so it is indeed a reliable alternative. ]
+
+      - As the stub only uses syscalls and isn't linked against libc it
+        should run under any Linux configuration that can run ELF
+        binaries.
+
+      - For the same reason compressed executables should run under
+        FreeBSD and other systems which can run Linux binaries.
+        [ Please send feedback on this topic ]
+
+    General drawbacks:
+
+      - It is not advisable to compress programs which usually have many
+        instances running (like `sh' or `make') because the common segments of
+        compressed programs won't be shared any longer between different
+        processes.
+
+      - `ldd' and `size' won't show anything useful because all they
+        see is the statically linked stub.  Since version 0.82 the section
+        headers are stripped from the UPX stub and `size' doesn't even
+        recognize the file format.  The file patches/patch-elfcode.h has a
+        patch to fix this bug in `size' and other programs which use GNU BFD.
+
+    General notes:
+
+      - As UPX leaves your original program untouched it is advantageous
+        to strip it before compression.
+
+      - If you compress a script you will lose platform independence -
+        this could be a problem if you are using NFS mounted disks.
+
+      - Compression of suid, guid and sticky-bit programs is rejected
+        because of possible security implications.
+
+      - For the same reason there is no sense in making any compressed
+        program suid.
+
+      - Obviously UPX won't work with executables that want to read data
+        from themselves. E.g., this might be a problem for Perl scripts
+        which access their __DATA__ lines.
+
+      - In case of internal errors the stub will abort with exitcode 127.
+        Typical reasons for this to happen are that the program has somehow
+        been modified after compression.
+        Running `strace -o strace.log compressed_file' will tell you more.
+
+  NOTES FOR LINUX/ELF386
+    Please read the general Linux description first.
+
+    The linux/elf386 format decompresses directly into RAM, uses only one
+    exec, does not use space in /tmp, and does not use /proc.
+
+    Linux/elf386 is automatically selected for Linux ELF executables.
+
+    Packed programs will be byte-identical to the original after
+    uncompression.
+
+    How it works:
+
+      For ELF executables, UPX decompresses directly to memory, simulating
+      the mapping that the operating system kernel uses during exec(),
+      including the PT_INTERP program interpreter (if any).
+      The brk() is set by a special PT_LOAD segment in the compressed
+      executable itself.  UPX then wipes the stack clean except for
+      arguments, environment variables, and Elf_auxv entries (this is
+      required by bugs in the startup code of /lib/ld-linux.so as of
+      May 2000), and transfers control to the program interpreter or
+      the e_entry address of the original executable.
+
+      The UPX stub is about 1700 bytes long, partly written in assembler
+      and only uses kernel syscalls. It is not linked against any libc.
+
+    Specific drawbacks:
+
+      - For linux/elf386 and linux/sh386 formats, you will be relying on
+        RAM and swap space to hold all of the decompressed program during
+        the lifetime of the process.  If you already use most of your swap
+        space, then you may run out.  A system that is "out of memory"
+        can become fragile.  Many programs do not react gracefully when
+        malloc() returns 0.  With newer Linux kernels, the kernel
+        may decide to kill some processes to regain memory, and you
+        may not like the kernel's choice of which to kill.  Running
+        /usr/bin/top is one way to check on the usage of swap space.
+
+    Extra options available for this executable format:
+
+      (none)
+
+  NOTES FOR LINUX/SH386
+    Please read the general Linux description first.
+
+    Shell scripts where the underling shell accepts a ``-c'' argument can
+    use the Linux/sh386 format. UPX decompresses the shell script into low
+    memory, then maps the shell and passes the entire text of the script as
+    an argument with a leading ``-c''. It does not use space in /tmp, and
+    does not use /proc.
+
+    Linux/sh386 is automatically selected for shell scripts that use a known
+    shell.
+
+    Packed programs will be byte-identical to the original after
+    uncompression.
+
+    How it works:
+
+      For shell script executables (files beginning with "#!/" or "#! /")
+      where the shell is known to accept "-c <command>", UPX decompresses
+      the file into low memory, then maps the shell (and its PT_INTERP),
+      and passes control to the shell with the entire decompressed file
+      as the argument after "-c".  Known shells are sh, ash, bash, bsh, csh,
+      ksh, tcsh, pdksh.  Restriction: UPX cannot use this method
+      for shell scripts which use the one optional string argument after
+      the shell name in the script (example: "#! /bin/sh option3\n".)
+
+      The UPX stub is about 1700 bytes long, partly written in assembler
+      and only uses kernel syscalls. It is not linked against any libc.
+
+    Specific drawbacks:
+
+      - For linux/elf386 and linux/sh386 formats, you will be relying on
+        RAM and swap space to hold all of the decompressed program during
+        the lifetime of the process.  If you already use most of your swap
+        space, then you may run out.  A system that is "out of memory"
+        can become fragile.  Many programs do not react gracefully when
+        malloc() returns 0.  With newer Linux kernels, the kernel
+        may decide to kill some processes to regain memory, and you
+        may not like the kernel's choice of which to kill.  Running
+        /usr/bin/top is one way to check on the usage of swap space.
+
+    Extra options available for this executable format:
+
+      (none)
+
+  NOTES FOR LINUX/386
+    Please read the general Linux description first.
+
+    The generic linux/386 format decompresses to /tmp and needs /proc file
+    system support. It starts the decompressed program via the execve()
+    syscall.
+
+    Linux/386 is only selected if the specialized linux/elf386 and
+    linux/sh386 won't recognize a file.
+
+    Packed programs will be byte-identical to the original after
+    uncompression.
+
+    How it works:
+
+      For files which are not ELF and not a script for a known "-c" shell,
+      UPX uses kernel execve(), which first requires decompressing to a
+      temporary file in the file system.  Interestingly -
+      because of the good memory management of the Linux kernel - this
+      often does not introduce a noticeable delay, and in fact there
+      will be no disk access at all if you have enough free memory as
+      the entire process takes places within the file system buffers.
+
+      A compressed executable consists of the UPX stub and an overlay
+      which contains the original program in a compressed form.
+
+      The UPX stub is a statically linked ELF executable and does
+      the following at program startup:
+
+        1) decompress the overlay to a temporary location in /tmp
+        2) open the temporary file for reading
+        3) try to delete the temporary file and start (execve)
+           the uncompressed program in /tmp using /proc/<pid>/fd/X as
+           attained by step 2)
+        4) if that fails, fork off a subprocess to clean up and
+           start the program in /tmp in the meantime
+
+      The UPX stub is about 1700 bytes long, partly written in assembler
+      and only uses kernel syscalls. It is not linked against any libc.
+
+    Specific drawbacks:
+
+      - You need additional free disk space for the uncompressed program
+        in your /tmp directory. This program is deleted immediately after
+        decompression, but you still need it for the full execution time
+        of the program.
+
+      - You must have /proc file system support as the stub wants to open
+        /proc/<pid>/exe and needs /proc/<pid>/fd/X. This also means that you
+        cannot compress programs that are used during the boot sequence
+        before /proc is mounted.
+
+      - Utilities like `top' will display numerical values in the process
+        name field. This is because Linux computes the process name from
+        the first argument of the last execve syscall (which is typically
+        something like /proc/<pid>/fd/3).
+
+      - Because of temporary decompression to disk the decompression speed
+        is not as fast as with the other executable formats. Still, I can see
+        no noticeable delay when starting programs like my ~3 MiB emacs (which
+        is less than 1 MiB when compressed :-).
+
+    Extra options available for this executable format:
+
+      --force-execve      Force the use of the generic linux/386 "execve"
+                          format, i.e. do not try the linux/elf386 and
+                          linux/sh386 formats.
+
+  NOTES FOR PS1/EXE
+    This is the executable format used by the Sony PlayStation (PSone), a
+    Mips R3000 based gaming console which is popular since the late '90s.
+    Support of this format is very similar to the Atari one, because of
+    nostalgic feelings of one of the authors.
+
+    Packed programs will be byte-identical to the original after
+    uncompression, until further notice.
+
+    Maximum uncompressed size: ~1.89 / ~7.60 MiB.
+
+    Notes:
+
+      - UPX creates as default a suitable executable for CD-Mastering
+        and console transfer. For a CD-Master main executable you could also try
+        the special option "--boot-only" as described below.
+        It has been reported that upx packed executables are fully compatible with
+        the Sony PlayStation 2 (PS2, PStwo) and Sony PlayStation Portable (PSP) in
+        Sony PlayStation (PSone) emulation mode.
+
+      - Normally the packed files use the same memory areas like the uncompressed
+        versions, so they will not override other memory areas while unpacking.
+        If this isn't possible UPX will abort showing a 'packed data overlap'
+        error. With the "--force" option UPX will relocate the loading address
+        for the packed file, but this isn't a real problem if it is a single or
+        the main executable.
+
+    Extra options available for this executable format:
+
+      --all-methods       Compress the program several times, using all
+                          available compression methods. This may improve
+                          the compression ratio in some cases, but usually
+                          the default method gives the best results anyway.
+
+      --8-bit             Uses 8 bit size compression [default: 32 bit]
+
+      --8mib-ram          PSone has 8 MiB ram available [default: 2 MiB]
+
+      --boot-only         This format is for main exes and CD-Mastering only !
+                          It may slightly improve the compression ratio,
+                          decompression routines are faster than default ones.
+                          But it cannot be used for console transfer !
+
+      --no-align          This option disables CD mode 2 data sector format
+                          alignment. May slightly improves the compression ratio,
+                          but the compressed executable will not boot from a CD.
+                          Use it for console transfer only !
+
+  NOTES FOR RTM32/PE and ARM/PE
+    Same as win32/pe.
+
+  NOTES FOR TMT/ADAM
+    This format is used by the TMT Pascal compiler - see http://www.tmt.com/
+    .
+
+    Extra options available for this executable format:
+
+      --all-methods       Compress the program several times, using all
+                          available compression methods. This may improve
+                          the compression ratio in some cases, but usually
+                          the default method gives the best results anyway.
+
+      --all-filters       Compress the program several times, using all
+                          available preprocessing filters. This may improve
+                          the compression ratio in some cases, but usually
+                          the default filter gives the best results anyway.
+
+  NOTES FOR VMLINUZ/386
+    The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed bootable
+    Linux kernel image ("vmlinuz", "zImage", "bzImage"), gzip-decompress it
+    and re-compress it with the UPX compression method.
+
+    vmlinuz/386 is completely unrelated to the other Linux executable
+    formats, and it does not share any of their drawbacks.
+
+    Notes:
+
+      - Be sure that "vmlinuz/386" or "bvmlinuz/386" is displayed
+      during compression - otherwise a wrong executable format
+      may have been used, and the kernel won't boot.
+
+    Benefits:
+
+      - Better compression (but note that the kernel was already compressed,
+      so the improvement is not as large as with other formats).
+      Still, the bytes saved may be essential for special needs like
+      boot disks.
+
+         For example, this is what I get for my 2.2.16 kernel:
+            1589708  vmlinux
+             641073  bzImage        [original]
+             560755  bzImage.upx    [compressed by "upx -9"]
+
+      - Much faster decompression at kernel boot time (but kernel
+        decompression speed is not really an issue these days).
+
+    Drawbacks:
+
+      (none)
+
+    Extra options available for this executable format:
+
+      --all-methods       Compress the program several times, using all
+                          available compression methods. This may improve
+                          the compression ratio in some cases, but usually
+                          the default method gives the best results anyway.
+
+      --all-filters       Compress the program several times, using all
+                          available preprocessing filters. This may improve
+                          the compression ratio in some cases, but usually
+                          the default filter gives the best results anyway.
+
+  NOTES FOR WATCOM/LE
+    UPX has been successfully tested with the following extenders: DOS4G,
+    DOS4GW, PMODE/W, DOS32a, CauseWay. The WDOS/X extender is partly
+    supported (for details see the file bugs BUGS).
+
+    DLLs and the LX format are not supported.
+
+    Extra options available for this executable format:
+
+      --le                Produce an unbound LE output instead of
+                          keeping the current stub.
+
+  NOTES FOR WIN32/PE
+    The PE support in UPX is quite stable now, but probably there are still
+    some incompatibilities with some files.
+
+    Because of the way UPX (and other packers for this format) works, you
+    can see increased memory usage of your compressed files because the
+    whole program is loaded into memory at startup. If you start several
+    instances of huge compressed programs you're wasting memory because the
+    common segments of the program won't get shared across the instances. On
+    the other hand if you're compressing only smaller programs, or running
+    only one instance of larger programs, then this penalty is smaller, but
+    it's still there.
+
+    If you're running executables from network, then compressed programs
+    will load faster, and require less bandwidth during execution.
+
+    DLLs are supported. But UPX compressed DLLs can not share common data
+    and code when they got used by multiple applications. So compressing
+    msvcrt.dll is a waste of memory, but compressing the dll plugins of a
+    particular application may be a better idea.
+
+    Screensavers are supported, with the restriction that the filename must
+    end with ".scr" (as screensavers are handled slightly different than
+    normal exe files).
+
+    UPX compressed PE files have some minor memory overhead (usually in the
+    10 - 30 KiB range) which can be seen by specifying the "-i" command line
+    switch during compression.
+
+    Extra options available for this executable format:
+
+     --compress-exports=0 Don't compress the export section.
+                          Use this if you plan to run the compressed
+                          program under Wine.
+     --compress-exports=1 Compress the export section. [DEFAULT]
+                          Compression of the export section can improve the
+                          compression ratio quite a bit but may not work
+                          with all programs (like winword.exe).
+                          UPX never compresses the export section of a DLL
+                          regardless of this option.
+
+      --compress-icons=0  Don't compress any icons.
+      --compress-icons=1  Compress all but the first icon.
+      --compress-icons=2  Compress all icons which are not in the
+                          first icon directory. [DEFAULT]
+      --compress-icons=3  Compress all icons.
+
+      --compress-resources=0  Don't compress any resources at all.
+
+      --keep-resource=list Don't compress resources specified by the list.
+                          The members of the list are separated by commas.
+                          A list member has the following format: I<type[/name]>.
+                          I<Type> is the type of the resource. Standard types
+                          must be specified as decimal numbers, user types can be
+                          specified by decimal IDs or strings. I<Name> is the
+                          identifier of the resource. It can be a decimal number
+                          or a string. For example:
+
+                          --keep-resource=2/MYBITMAP,5,6/12345
+
+                          UPX won't compress the named bitmap resource "MYBITMAP",
+                          it leaves every dialog (5) resource uncompressed, and
+                          it won't touch the string table resource with identifier
+                          12345.
+
+      --force             Force compression even when there is an
+                          unexpected value in a header field.
+                          Use with care.
+
+      --strip-relocs=0    Don't strip relocation records.
+      --strip-relocs=1    Strip relocation records. [DEFAULT]
+                          This option only works on executables with base
+                          address greater or equal to 0x400000. Usually the
+                          compressed files becomes smaller, but some files
+                          may become larger. Note that the resulting file will
+                          not work under Windows 3.x (Win32s).
+                          UPX never strips relocations from a DLL
+                          regardless of this option.
+
+      --all-methods       Compress the program several times, using all
+                          available compression methods. This may improve
+                          the compression ratio in some cases, but usually
+                          the default method gives the best results anyway.
+
+      --all-filters       Compress the program several times, using all
+                          available preprocessing filters. This may improve
+                          the compression ratio in some cases, but usually
+                          the default filter gives the best results anyway.
+
+DIAGNOSTICS
+    Exit status is normally 0; if an error occurs, exit status is 1. If a
+    warning occurs, exit status is 2.
+
+    UPX's diagnostics are intended to be self-explanatory.
+
+BUGS
+    Please report all bugs immediately to the authors.
+
+AUTHORS
+     Markus F.X.J. Oberhumer <markus at oberhumer.com>
+     http://www.oberhumer.com
+
+     Laszlo Molnar <ml1050 at users.sourceforge.net>
+
+     John F. Reiser <jreiser at BitWagon.com>
+
+     Jens Medoch <jssg at users.sourceforge.net>
+
+COPYRIGHT
+    Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer
+
+    Copyright (C) 1996-2013 Laszlo Molnar
+
+    Copyright (C) 2000-2013 John F. Reiser
+
+    Copyright (C) 2002-2013 Jens Medoch
+
+    This program may be used freely, and you are welcome to redistribute it
+    under certain conditions.
+
+    This program is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the UPX License
+    Agreement for more details.
+
+    You should have received a copy of the UPX License Agreement along with
+    this program; see the file LICENSE. If not, visit the UPX home page.
+
diff --git a/upx/3.91_bin/upx.exe b/upx/3.91_bin/upx.exe
new file mode 100755
index 0000000..1c331c7
Binary files /dev/null and b/upx/3.91_bin/upx.exe differ
diff --git a/upx/3.91_bin/upx.html b/upx/3.91_bin/upx.html
new file mode 100755
index 0000000..c364bb3
--- /dev/null
+++ b/upx/3.91_bin/upx.html
@@ -0,0 +1,894 @@
+<?xml version="1.0" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>upx - compress or expand executable files</title>
+<meta http-equiv="content-type" content="text/html; charset=utf-8" />
+<link rev="made" href="mailto:root at localhost" />
+</head>
+
+<body style="background-color: white">
+
+
+<!-- INDEX BEGIN -->
+<div name="index">
+<p><a name="__index__"></a></p>
+<!--
+
+<ul>
+
+  <li><a href="#name">NAME</a></li>
+  <li><a href="#synopsis">SYNOPSIS</a></li>
+  <li><a href="#abstract">ABSTRACT</a></li>
+  <li><a href="#disclaimer">DISCLAIMER</a></li>
+  <li><a href="#description">DESCRIPTION</a></li>
+  <li><a href="#commands">COMMANDS</a></li>
+  <ul>
+
+    <li><a href="#compress">Compress</a></li>
+    <li><a href="#decompress">Decompress</a></li>
+    <li><a href="#test">Test</a></li>
+    <li><a href="#list">List</a></li>
+  </ul>
+
+  <li><a href="#options">OPTIONS</a></li>
+  <li><a href="#compression_levels___tuning">COMPRESSION LEVELS & TUNING</a></li>
+  <li><a href="#overlay_handling_options">OVERLAY HANDLING OPTIONS</a></li>
+  <li><a href="#environment">ENVIRONMENT</a></li>
+  <li><a href="#notes_for_the_supported_executable_formats">NOTES FOR THE SUPPORTED EXECUTABLE FORMATS</a></li>
+  <ul>
+
+    <li><a href="#notes_for_atari_tos">NOTES FOR ATARI/TOS</a></li>
+    <li><a href="#notes_for_bvmlinuz_i386">NOTES FOR BVMLINUZ/I386</a></li>
+    <li><a href="#notes_for_dos_com">NOTES FOR DOS/COM</a></li>
+    <li><a href="#notes_for_dos_exe">NOTES FOR DOS/EXE</a></li>
+    <li><a href="#notes_for_dos_sys">NOTES FOR DOS/SYS</a></li>
+    <li><a href="#notes_for_djgpp2_coff">NOTES FOR DJGPP2/COFF</a></li>
+    <li><a href="#notes_for_linux__general_">NOTES FOR LINUX [general]</a></li>
+    <li><a href="#notes_for_linux_elf386">NOTES FOR LINUX/ELF386</a></li>
+    <li><a href="#notes_for_linux_sh386">NOTES FOR LINUX/SH386</a></li>
+    <li><a href="#notes_for_linux_386">NOTES FOR LINUX/386</a></li>
+    <li><a href="#notes_for_ps1_exe">NOTES FOR PS1/EXE</a></li>
+    <li><a href="#notes_for_rtm32_pe_and_arm_pe">NOTES FOR RTM32/PE and ARM/PE</a></li>
+    <li><a href="#notes_for_tmt_adam">NOTES FOR TMT/ADAM</a></li>
+    <li><a href="#notes_for_vmlinuz_386">NOTES FOR VMLINUZ/386</a></li>
+    <li><a href="#notes_for_watcom_le">NOTES FOR WATCOM/LE</a></li>
+    <li><a href="#notes_for_win32_pe">NOTES FOR WIN32/PE</a></li>
+  </ul>
+
+  <li><a href="#diagnostics">DIAGNOSTICS</a></li>
+  <li><a href="#bugs">BUGS</a></li>
+  <li><a href="#authors">AUTHORS</a></li>
+  <li><a href="#copyright">COPYRIGHT</a></li>
+</ul>
+
+-->
+
+
+</div>
+<!-- INDEX END -->
+
+<p>
+</p>
+<h1><a name="name">NAME</a></h1>
+<p>upx - compress or expand executable files</p>
+<p>
+</p>
+<hr />
+<h1><a name="synopsis">SYNOPSIS</a></h1>
+<p><strong>upx</strong> [ <em>command</em> ] [ <em>options</em> ] <em>filename</em>...</p>
+<p>
+</p>
+<hr />
+<h1><a name="abstract">ABSTRACT</a></h1>
+<pre>
+                    The Ultimate Packer for eXecutables
+   Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser
+                        <a href="http://upx.sourceforge.net">http://upx.sourceforge.net</a></pre>
+<p><strong>UPX</strong> is a portable, extendable, high-performance executable packer for
+several different executable formats. It achieves an excellent compression
+ratio and offers <em>*very*</em> fast decompression. Your executables suffer
+no memory overhead or other drawbacks for most of the formats supported,
+because of in-place decompression.</p>
+<p>While you may use <strong>UPX</strong> freely for both non-commercial and commercial
+executables (for details see the file LICENSE), we would highly
+appreciate if you credit <strong>UPX</strong> and ourselves in the documentation,
+possibly including a reference to the <strong>UPX</strong> home page. Thanks.</p>
+<p>[ Using <strong>UPX</strong> in non-OpenSource applications without proper credits
+is considered not politically correct ;-) ]</p>
+<p>
+</p>
+<hr />
+<h1><a name="disclaimer">DISCLAIMER</a></h1>
+<p><strong>UPX</strong> comes with ABSOLUTELY NO WARRANTY; for details see the file LICENSE.</p>
+<p>This is the first production quality release, and we plan that future 1.xx
+releases will be backward compatible with this version.</p>
+<p>Please report all problems or suggestions to the authors. Thanks.</p>
+<p>
+</p>
+<hr />
+<h1><a name="description">DESCRIPTION</a></h1>
+<p><strong>UPX</strong> is a versatile executable packer with the following features:</p>
+<pre>
+  - excellent compression ratio: compresses better than zip/gzip,
+      use UPX to decrease the size of your distribution !</pre>
+<pre>
+  - very fast decompression: about 10 MiB/sec on an ancient Pentium 133,
+      about 200 MiB/sec on an Athlon XP 2000+.</pre>
+<pre>
+  - no memory overhead for your compressed executables for most of the
+      supported formats</pre>
+<pre>
+  - safe: you can list, test and unpack your executables
+      Also, a checksum of both the compressed and uncompressed file is
+      maintained internally.</pre>
+<pre>
+  - universal: UPX can pack a number of executable formats:
+      * atari/tos
+      * bvmlinuz/386    [bootable Linux kernel]
+      * djgpp2/coff
+      * dos/com
+      * dos/exe
+      * dos/sys
+      * linux/386
+      * linux/elf386
+      * linux/sh386
+      * ps1/exe
+      * rtm32/pe
+      * tmt/adam
+      * vmlinuz/386     [bootable Linux kernel]
+      * vmlinux/386
+      * watcom/le (supporting DOS4G, PMODE/W, DOS32a and CauseWay)
+      * win32/pe (exe and dll)
+      * arm/pe (exe and dll)
+      * linux/elfamd64
+      * linux/elfppc32
+      * mach/elfppc32</pre>
+<pre>
+  - portable: UPX is written in portable endian-neutral C++</pre>
+<pre>
+  - extendable: because of the class layout it's very easy to support
+      new executable formats or add new compression algorithms</pre>
+<pre>
+  - free: UPX can be distributed and used freely. And from version 0.99
+      the full source code of UPX is released under the GNU General Public
+      License (GPL) !</pre>
+<p>You probably understand now why we call <strong>UPX</strong> the "<em>ultimate</em>"
+executable packer.</p>
+<p>
+</p>
+<hr />
+<h1><a name="commands">COMMANDS</a></h1>
+<p>
+</p>
+<h2><a name="compress">Compress</a></h2>
+<p>This is the default operation, eg. <strong>upx yourfile.exe</strong> will compress the file
+specified on the command line.</p>
+<p>
+</p>
+<h2><a name="decompress">Decompress</a></h2>
+<p>All <strong>UPX</strong> supported file formats can be unpacked using the <strong>-d</strong> switch, eg.
+<strong>upx -d yourfile.exe</strong> will uncompress the file you've just compressed.</p>
+<p>
+</p>
+<h2><a name="test">Test</a></h2>
+<p>The <strong>-t</strong> command tests the integrity of the compressed and uncompressed
+data, eg. <strong>upx -t yourfile.exe</strong> check whether your file can be safely
+decompressed. Note, that this command doesn't check the whole file, only
+the part that will be uncompressed during program execution. This means
+that you should not use this command instead of a virus checker.</p>
+<p>
+</p>
+<h2><a name="list">List</a></h2>
+<p>The <strong>-l</strong> command prints out some information about the compressed files
+specified on the command line as parameters, eg <strong>upx -l yourfile.exe</strong>
+shows the compressed / uncompressed size and the compression ratio of
+<em>yourfile.exe</em>.</p>
+<p>
+</p>
+<hr />
+<h1><a name="options">OPTIONS</a></h1>
+<p><strong>-q</strong>: be quiet, suppress warnings</p>
+<p><strong>-q -q</strong> (or <strong>-qq</strong>): be very quiet, suppress errors</p>
+<p><strong>-q -q -q</strong> (or <strong>-qqq</strong>): produce no output at all</p>
+<p><strong>--help</strong>: prints the help</p>
+<p><strong>--version</strong>: print the version of <strong>UPX</strong></p>
+<p><strong>--exact</strong>: when compressing, require to be able to get a byte-identical file
+after decompression with option <strong>-d</strong>. [NOTE: this is work in progress and is
+not supported for all formats yet. If you do care, as a workaround you can
+compress and then decompress your program a first time - any further
+compress-decompress steps should then yield byte-identical results
+as compared to the first decompressed version.]</p>
+<p>[ ...to be written... - type `<strong>upx --help</strong>' for now ]</p>
+<p>
+</p>
+<hr />
+<h1><a name="compression_levels___tuning">COMPRESSION LEVELS & TUNING</a></h1>
+<p><strong>UPX</strong> offers ten different compression levels from <strong>-1</strong> to <strong>-9</strong>,
+and <strong>--best</strong>.  The default compression level is <strong>-8</strong> for files
+smaller than 512 KiB, and <strong>-7</strong> otherwise.</p>
+<ul>
+<li>
+<p>Compression levels 1, 2 and 3 are pretty fast.</p>
+</li>
+<li>
+<p>Compression levels 4, 5 and 6 achieve a good time/ratio performance.</p>
+</li>
+<li>
+<p>Compression levels 7, 8 and 9 favor compression ratio over speed.</p>
+</li>
+<li>
+<p>Compression level <strong>--best</strong> may take a long time.</p>
+</li>
+</ul>
+<p>Note that compression level <strong>--best</strong> can be somewhat slow for large
+files, but you definitely should use it when releasing a final version
+of your program.</p>
+<p>Quick info for achieving the best compression ratio:</p>
+<ul>
+<li>
+<p>Try <strong>upx --brute myfile.exe</strong> or even <strong>upx --ultra-brute myfile.exe</strong>.</p>
+</li>
+<li>
+<p>Try if <strong>--overlay=strip</strong> works.</p>
+</li>
+<li>
+<p>For win32/pe programs there's <strong>--strip-relocs=0</strong>. See notes below.</p>
+</li>
+</ul>
+<p>
+</p>
+<hr />
+<h1><a name="overlay_handling_options">OVERLAY HANDLING OPTIONS</a></h1>
+<p>Info: An "overlay" means auxiliary data attached after the logical end of
+an executable, and it often contains application specific data
+(this is a common practice to avoid an extra data file, though
+it would be better to use resource sections).</p>
+<p><strong>UPX</strong> handles overlays like many other executable packers do: it simply
+copies the overlay after the compressed image. This works with some
+files, but doesn't work with others, depending on how an application
+actually accesses this overlayed data.</p>
+<pre>
+  --overlay=copy    Copy any extra data attached to the file. [DEFAULT]</pre>
+<pre>
+  --overlay=strip   Strip any overlay from the program instead of
+                    copying it. Be warned, this may make the compressed
+                    program crash or otherwise unusable.</pre>
+<pre>
+  --overlay=skip    Refuse to compress any program which has an overlay.</pre>
+<p>
+</p>
+<hr />
+<h1><a name="environment">ENVIRONMENT</a></h1>
+<p>The environment variable <strong>UPX</strong> can hold a set of default
+options for <strong>UPX</strong>. These options are interpreted first and
+can be overwritten by explicit command line parameters.
+For example:</p>
+<pre>
+    for DOS/Windows:   set UPX=-9 --compress-icons#0
+    for sh/ksh/zsh:    UPX="-9 --compress-icons=0"; export UPX
+    for csh/tcsh:      setenv UPX "-9 --compress-icons=0"</pre>
+<p>Under DOS/Windows you must use '#' instead of '=' when setting the
+environment variable because of a COMMAND.COM limitation.</p>
+<p>Not all of the options are valid in the environment variable -
+<strong>UPX</strong> will tell you.</p>
+<p>You can explicitly use the <strong>--no-env</strong> option to ignore the
+environment variable.</p>
+<p>
+</p>
+<hr />
+<h1><a name="notes_for_the_supported_executable_formats">NOTES FOR THE SUPPORTED EXECUTABLE FORMATS</a></h1>
+<p>
+</p>
+<h2><a name="notes_for_atari_tos">NOTES FOR ATARI/TOS</a></h2>
+<p>This is the executable format used by the Atari ST/TT, a Motorola 68000
+based personal computer which was popular in the late '80s. Support
+of this format is only because of nostalgic feelings of one of
+the authors and serves no practical purpose :-).
+See <a href="http://www.freemint.de">http://www.freemint.de</a> for more info.</p>
+<p>Packed programs will be byte-identical to the original after uncompression.
+All debug information will be stripped, though.</p>
+<p>Extra options available for this executable format:</p>
+<pre>
+  --all-methods       Compress the program several times, using all
+                      available compression methods. This may improve
+                      the compression ratio in some cases, but usually
+                      the default method gives the best results anyway.</pre>
+<p>
+</p>
+<h2><a name="notes_for_bvmlinuz_i386">NOTES FOR BVMLINUZ/I386</a></h2>
+<p>Same as vmlinuz/i386.</p>
+<p>
+</p>
+<h2><a name="notes_for_dos_com">NOTES FOR DOS/COM</a></h2>
+<p>Obviously <strong>UPX</strong> won't work with executables that want to read data from
+themselves (like some commandline utilities that ship with Win95/98/ME).</p>
+<p>Compressed programs only work on a 286+.</p>
+<p>Packed programs will be byte-identical to the original after uncompression.</p>
+<p>Maximum uncompressed size: ~65100 bytes.</p>
+<p>Extra options available for this executable format:</p>
+<pre>
+  --8086              Create an executable that works on any 8086 CPU.</pre>
+<pre>
+  --all-methods       Compress the program several times, using all
+                      available compression methods. This may improve
+                      the compression ratio in some cases, but usually
+                      the default method gives the best results anyway.</pre>
+<pre>
+  --all-filters       Compress the program several times, using all
+                      available preprocessing filters. This may improve
+                      the compression ratio in some cases, but usually
+                      the default filter gives the best results anyway.</pre>
+<p>
+</p>
+<h2><a name="notes_for_dos_exe">NOTES FOR DOS/EXE</a></h2>
+<p>dos/exe stands for all "normal" 16-bit DOS executables.</p>
+<p>Obviously <strong>UPX</strong> won't work with executables that want to read data from
+themselves (like some command line utilities that ship with Win95/98/ME).</p>
+<p>Compressed programs only work on a 286+.</p>
+<p>Extra options available for this executable format:</p>
+<pre>
+  --8086              Create an executable that works on any 8086 CPU.</pre>
+<pre>
+  --no-reloc          Use no relocation records in the exe header.</pre>
+<pre>
+  --all-methods       Compress the program several times, using all
+                      available compression methods. This may improve
+                      the compression ratio in some cases, but usually
+                      the default method gives the best results anyway.</pre>
+<p>
+</p>
+<h2><a name="notes_for_dos_sys">NOTES FOR DOS/SYS</a></h2>
+<p>Compressed programs only work on a 286+.</p>
+<p>Packed programs will be byte-identical to the original after uncompression.</p>
+<p>Maximum uncompressed size: ~65350 bytes.</p>
+<p>Extra options available for this executable format:</p>
+<pre>
+  --8086              Create an executable that works on any 8086 CPU.</pre>
+<pre>
+  --all-methods       Compress the program several times, using all
+                      available compression methods. This may improve
+                      the compression ratio in some cases, but usually
+                      the default method gives the best results anyway.</pre>
+<pre>
+  --all-filters       Compress the program several times, using all
+                      available preprocessing filters. This may improve
+                      the compression ratio in some cases, but usually
+                      the default filter gives the best results anyway.</pre>
+<p>
+</p>
+<h2><a name="notes_for_djgpp2_coff">NOTES FOR DJGPP2/COFF</a></h2>
+<p>First of all, it is recommended to use <strong>UPX</strong> *instead* of <strong>strip</strong>. strip has
+the very bad habit of replacing your stub with its own (outdated) version.
+Additionally <strong>UPX</strong> corrects a bug/feature in strip v2.8.x: it
+will fix the 4 KiB alignment of the stub.</p>
+<p><strong>UPX</strong> includes the full functionality of stubify. This means it will
+automatically stubify your COFF files. Use the option <strong>--coff</strong> to
+disable this functionality (see below).</p>
+<p><strong>UPX</strong> automatically handles Allegro packfiles.</p>
+<p>The DLM format (a rather exotic shared library extension) is not supported.</p>
+<p>Packed programs will be byte-identical to the original after uncompression.
+All debug information and trailing garbage will be stripped, though.</p>
+<p>Extra options available for this executable format:</p>
+<pre>
+  --coff              Produce COFF output instead of EXE. By default
+                      UPX keeps your current stub.</pre>
+<pre>
+  --all-methods       Compress the program several times, using all
+                      available compression methods. This may improve
+                      the compression ratio in some cases, but usually
+                      the default method gives the best results anyway.</pre>
+<pre>
+  --all-filters       Compress the program several times, using all
+                      available preprocessing filters. This may improve
+                      the compression ratio in some cases, but usually
+                      the default filter gives the best results anyway.</pre>
+<p>
+</p>
+<h2><a name="notes_for_linux__general_">NOTES FOR LINUX [general]</a></h2>
+<p>Introduction</p>
+<pre>
+  Linux/386 support in UPX consists of 3 different executable formats,
+  one optimized for ELF executables ("linux/elf386"), one optimized
+  for shell scripts ("linux/sh386"), and one generic format
+  ("linux/386").</pre>
+<pre>
+  We will start with a general discussion first, but please
+  also read the relevant docs for each of the individual formats.</pre>
+<pre>
+  Also, there is special support for bootable kernels - see the
+  description of the vmlinuz/386 format.</pre>
+<p>General user's overview</p>
+<pre>
+  Running a compressed executable program trades less space on a
+  ``permanent'' storage medium (such as a hard disk, floppy disk,
+  CD-ROM, flash memory, EPROM, etc.) for more space in one or more
+  ``temporary'' storage media (such as RAM, swap space, /tmp, etc.).
+  Running a compressed executable also requires some additional CPU
+  cycles to generate the compressed executable in the first place,
+  and to decompress it at each invocation.</pre>
+<pre>
+  How much space is traded?  It depends on the executable, but many
+  programs save 30% to 50% of permanent disk space.  How much CPU
+  overhead is there?  Again, it depends on the executable, but
+  decompression speed generally is at least many megabytes per second,
+  and frequently is limited by the speed of the underlying disk
+  or network I/O.</pre>
+<pre>
+  Depending on the statistics of usage and access, and the relative
+  speeds of CPU, RAM, swap space, /tmp, and file system storage, then
+  invoking and running a compressed executable can be faster than
+  directly running the corresponding uncompressed program.
+  The operating system might perform fewer expensive I/O operations
+  to invoke the compressed program.  Paging to or from swap space
+  or /tmp might be faster than paging from the general file system.
+  ``Medium-sized'' programs which access about 1/3 to 1/2 of their
+  stored program bytes can do particularly well with compression.
+  Small programs tend not to benefit as much because the absolute
+  savings is less.  Big programs tend not to benefit proportionally
+  because each invocation may use only a small fraction of the program,
+  yet UPX decompresses the entire program before invoking it.
+  But in environments where disk or flash memory storage is limited,
+  then compression may win anyway.</pre>
+<pre>
+  Currently, executables compressed by UPX do not share RAM at runtime
+  in the way that executables mapped from a file system do.  As a
+  result, if the same program is run simultaneously by more than one
+  process, then using the compressed version will require more RAM and/or
+  swap space.  So, shell programs (bash, csh, etc.)  and ``make''
+  might not be good candidates for compression.</pre>
+<pre>
+  UPX recognizes three executable formats for Linux: Linux/elf386,
+  Linux/sh386, and Linux/386.  Linux/386 is the most generic format;
+  it accommodates any file that can be executed.  At runtime, the UPX
+  decompression stub re-creates in /tmp a copy of the original file,
+  and then the copy is (re-)executed with the same arguments.
+  ELF binary executables prefer the Linux/elf386 format by default,
+  because UPX decompresses them directly into RAM, uses only one
+  exec, does not use space in /tmp, and does not use /proc.
+  Shell scripts where the underlying shell accepts a ``-c'' argument
+  can use the Linux/sh386 format.  UPX decompresses the shell script
+  into low memory, then maps the shell and passes the entire text of the
+  script as an argument with a leading ``-c''.</pre>
+<p>General benefits:</p>
+<pre>
+  - UPX can compress all executables, be it AOUT, ELF, libc4, libc5,
+    libc6, Shell/Perl/Python/... scripts, standalone Java .class
+    binaries, or whatever...
+    All scripts and programs will work just as before.</pre>
+<pre>
+  - Compressed programs are completely self-contained. No need for
+    any external program.</pre>
+<pre>
+  - UPX keeps your original program untouched. This means that
+    after decompression you will have a byte-identical version,
+    and you can use UPX as a file compressor just like gzip.
+    [ Note that UPX maintains a checksum of the file internally,
+      so it is indeed a reliable alternative. ]</pre>
+<pre>
+  - As the stub only uses syscalls and isn't linked against libc it
+    should run under any Linux configuration that can run ELF
+    binaries.</pre>
+<pre>
+  - For the same reason compressed executables should run under
+    FreeBSD and other systems which can run Linux binaries.
+    [ Please send feedback on this topic ]</pre>
+<p>General drawbacks:</p>
+<pre>
+  - It is not advisable to compress programs which usually have many
+    instances running (like `sh' or `make') because the common segments of
+    compressed programs won't be shared any longer between different
+    processes.</pre>
+<pre>
+  - `ldd' and `size' won't show anything useful because all they
+    see is the statically linked stub.  Since version 0.82 the section
+    headers are stripped from the UPX stub and `size' doesn't even
+    recognize the file format.  The file patches/patch-elfcode.h has a
+    patch to fix this bug in `size' and other programs which use GNU BFD.</pre>
+<p>General notes:</p>
+<pre>
+  - As UPX leaves your original program untouched it is advantageous
+    to strip it before compression.</pre>
+<pre>
+  - If you compress a script you will lose platform independence -
+    this could be a problem if you are using NFS mounted disks.</pre>
+<pre>
+  - Compression of suid, guid and sticky-bit programs is rejected
+    because of possible security implications.</pre>
+<pre>
+  - For the same reason there is no sense in making any compressed
+    program suid.</pre>
+<pre>
+  - Obviously UPX won't work with executables that want to read data
+    from themselves. E.g., this might be a problem for Perl scripts
+    which access their __DATA__ lines.</pre>
+<pre>
+  - In case of internal errors the stub will abort with exitcode 127.
+    Typical reasons for this to happen are that the program has somehow
+    been modified after compression.
+    Running `strace -o strace.log compressed_file' will tell you more.</pre>
+<p>
+</p>
+<h2><a name="notes_for_linux_elf386">NOTES FOR LINUX/ELF386</a></h2>
+<p>Please read the general Linux description first.</p>
+<p>The linux/elf386 format decompresses directly into RAM,
+uses only one exec, does not use space in /tmp,
+and does not use /proc.</p>
+<p>Linux/elf386 is automatically selected for Linux ELF executables.</p>
+<p>Packed programs will be byte-identical to the original after uncompression.</p>
+<p>How it works:</p>
+<pre>
+  For ELF executables, UPX decompresses directly to memory, simulating
+  the mapping that the operating system kernel uses during exec(),
+  including the PT_INTERP program interpreter (if any).
+  The brk() is set by a special PT_LOAD segment in the compressed
+  executable itself.  UPX then wipes the stack clean except for
+  arguments, environment variables, and Elf_auxv entries (this is
+  required by bugs in the startup code of /lib/ld-linux.so as of
+  May 2000), and transfers control to the program interpreter or
+  the e_entry address of the original executable.</pre>
+<pre>
+  The UPX stub is about 1700 bytes long, partly written in assembler
+  and only uses kernel syscalls. It is not linked against any libc.</pre>
+<p>Specific drawbacks:</p>
+<pre>
+  - For linux/elf386 and linux/sh386 formats, you will be relying on
+    RAM and swap space to hold all of the decompressed program during
+    the lifetime of the process.  If you already use most of your swap
+    space, then you may run out.  A system that is "out of memory"
+    can become fragile.  Many programs do not react gracefully when
+    malloc() returns 0.  With newer Linux kernels, the kernel
+    may decide to kill some processes to regain memory, and you
+    may not like the kernel's choice of which to kill.  Running
+    /usr/bin/top is one way to check on the usage of swap space.</pre>
+<p>Extra options available for this executable format:</p>
+<pre>
+  (none)</pre>
+<p>
+</p>
+<h2><a name="notes_for_linux_sh386">NOTES FOR LINUX/SH386</a></h2>
+<p>Please read the general Linux description first.</p>
+<p>Shell scripts where the underling shell accepts a ``-c'' argument
+can use the Linux/sh386 format.  <strong>UPX</strong> decompresses the shell script
+into low memory, then maps the shell and passes the entire text of the
+script as an argument with a leading ``-c''.
+It does not use space in /tmp, and does not use /proc.</p>
+<p>Linux/sh386 is automatically selected for shell scripts that
+use a known shell.</p>
+<p>Packed programs will be byte-identical to the original after uncompression.</p>
+<p>How it works:</p>
+<pre>
+  For shell script executables (files beginning with "#!/" or "#! /")
+  where the shell is known to accept "-c <command>", UPX decompresses
+  the file into low memory, then maps the shell (and its PT_INTERP),
+  and passes control to the shell with the entire decompressed file
+  as the argument after "-c".  Known shells are sh, ash, bash, bsh, csh,
+  ksh, tcsh, pdksh.  Restriction: UPX cannot use this method
+  for shell scripts which use the one optional string argument after
+  the shell name in the script (example: "#! /bin/sh option3\n".)</pre>
+<pre>
+  The UPX stub is about 1700 bytes long, partly written in assembler
+  and only uses kernel syscalls. It is not linked against any libc.</pre>
+<p>Specific drawbacks:</p>
+<pre>
+  - For linux/elf386 and linux/sh386 formats, you will be relying on
+    RAM and swap space to hold all of the decompressed program during
+    the lifetime of the process.  If you already use most of your swap
+    space, then you may run out.  A system that is "out of memory"
+    can become fragile.  Many programs do not react gracefully when
+    malloc() returns 0.  With newer Linux kernels, the kernel
+    may decide to kill some processes to regain memory, and you
+    may not like the kernel's choice of which to kill.  Running
+    /usr/bin/top is one way to check on the usage of swap space.</pre>
+<p>Extra options available for this executable format:</p>
+<pre>
+  (none)</pre>
+<p>
+</p>
+<h2><a name="notes_for_linux_386">NOTES FOR LINUX/386</a></h2>
+<p>Please read the general Linux description first.</p>
+<p>The generic linux/386 format decompresses to /tmp and needs
+/proc file system support. It starts the decompressed program
+via the <code>execve()</code> syscall.</p>
+<p>Linux/386 is only selected if the specialized linux/elf386
+and linux/sh386 won't recognize a file.</p>
+<p>Packed programs will be byte-identical to the original after uncompression.</p>
+<p>How it works:</p>
+<pre>
+  For files which are not ELF and not a script for a known "-c" shell,
+  UPX uses kernel execve(), which first requires decompressing to a
+  temporary file in the file system.  Interestingly -
+  because of the good memory management of the Linux kernel - this
+  often does not introduce a noticeable delay, and in fact there
+  will be no disk access at all if you have enough free memory as
+  the entire process takes places within the file system buffers.</pre>
+<pre>
+  A compressed executable consists of the UPX stub and an overlay
+  which contains the original program in a compressed form.</pre>
+<pre>
+  The UPX stub is a statically linked ELF executable and does
+  the following at program startup:</pre>
+<pre>
+    1) decompress the overlay to a temporary location in /tmp
+    2) open the temporary file for reading
+    3) try to delete the temporary file and start (execve)
+       the uncompressed program in /tmp using /proc/<pid>/fd/X as
+       attained by step 2)
+    4) if that fails, fork off a subprocess to clean up and
+       start the program in /tmp in the meantime</pre>
+<pre>
+  The UPX stub is about 1700 bytes long, partly written in assembler
+  and only uses kernel syscalls. It is not linked against any libc.</pre>
+<p>Specific drawbacks:</p>
+<pre>
+  - You need additional free disk space for the uncompressed program
+    in your /tmp directory. This program is deleted immediately after
+    decompression, but you still need it for the full execution time
+    of the program.</pre>
+<pre>
+  - You must have /proc file system support as the stub wants to open
+    /proc/<pid>/exe and needs /proc/<pid>/fd/X. This also means that you
+    cannot compress programs that are used during the boot sequence
+    before /proc is mounted.</pre>
+<pre>
+  - Utilities like `top' will display numerical values in the process
+    name field. This is because Linux computes the process name from
+    the first argument of the last execve syscall (which is typically
+    something like /proc/<pid>/fd/3).</pre>
+<pre>
+  - Because of temporary decompression to disk the decompression speed
+    is not as fast as with the other executable formats. Still, I can see
+    no noticeable delay when starting programs like my ~3 MiB emacs (which
+    is less than 1 MiB when compressed :-).</pre>
+<p>Extra options available for this executable format:</p>
+<pre>
+  --force-execve      Force the use of the generic linux/386 "execve"
+                      format, i.e. do not try the linux/elf386 and
+                      linux/sh386 formats.</pre>
+<p>
+</p>
+<h2><a name="notes_for_ps1_exe">NOTES FOR PS1/EXE</a></h2>
+<p>This is the executable format used by the Sony PlayStation (PSone),
+a Mips R3000 based gaming console which is popular since the late '90s.
+Support of this format is very similar to the Atari one, because of
+nostalgic feelings of one of the authors.</p>
+<p>Packed programs will be byte-identical to the original after uncompression,
+until further notice.</p>
+<p>Maximum uncompressed size: ~1.89 / ~7.60 MiB.</p>
+<p>Notes:</p>
+<pre>
+  - UPX creates as default a suitable executable for CD-Mastering
+    and console transfer. For a CD-Master main executable you could also try
+    the special option "--boot-only" as described below.
+    It has been reported that upx packed executables are fully compatible with
+    the Sony PlayStation 2 (PS2, PStwo) and Sony PlayStation Portable (PSP) in
+    Sony PlayStation (PSone) emulation mode.</pre>
+<pre>
+  - Normally the packed files use the same memory areas like the uncompressed
+    versions, so they will not override other memory areas while unpacking.
+    If this isn't possible UPX will abort showing a 'packed data overlap'
+    error. With the "--force" option UPX will relocate the loading address
+    for the packed file, but this isn't a real problem if it is a single or
+    the main executable.</pre>
+<p>Extra options available for this executable format:</p>
+<pre>
+  --all-methods       Compress the program several times, using all
+                      available compression methods. This may improve
+                      the compression ratio in some cases, but usually
+                      the default method gives the best results anyway.</pre>
+<pre>
+  --8-bit             Uses 8 bit size compression [default: 32 bit]</pre>
+<pre>
+  --8mib-ram          PSone has 8 MiB ram available [default: 2 MiB]</pre>
+<pre>
+  --boot-only         This format is for main exes and CD-Mastering only !
+                      It may slightly improve the compression ratio,
+                      decompression routines are faster than default ones.
+                      But it cannot be used for console transfer !</pre>
+<pre>
+  --no-align          This option disables CD mode 2 data sector format
+                      alignment. May slightly improves the compression ratio,
+                      but the compressed executable will not boot from a CD.
+                      Use it for console transfer only !</pre>
+<p>
+</p>
+<h2><a name="notes_for_rtm32_pe_and_arm_pe">NOTES FOR RTM32/PE and ARM/PE</a></h2>
+<p>Same as win32/pe.</p>
+<p>
+</p>
+<h2><a name="notes_for_tmt_adam">NOTES FOR TMT/ADAM</a></h2>
+<p>This format is used by the TMT Pascal compiler - see <a href="http://www.tmt.com/">http://www.tmt.com/</a> .</p>
+<p>Extra options available for this executable format:</p>
+<pre>
+  --all-methods       Compress the program several times, using all
+                      available compression methods. This may improve
+                      the compression ratio in some cases, but usually
+                      the default method gives the best results anyway.</pre>
+<pre>
+  --all-filters       Compress the program several times, using all
+                      available preprocessing filters. This may improve
+                      the compression ratio in some cases, but usually
+                      the default filter gives the best results anyway.</pre>
+<p>
+</p>
+<h2><a name="notes_for_vmlinuz_386">NOTES FOR VMLINUZ/386</a></h2>
+<p>The vmlinuz/386 and bvmlinuz/386 formats take a gzip-compressed
+bootable Linux kernel image ("vmlinuz", "zImage", "bzImage"),
+gzip-decompress it and re-compress it with the <strong>UPX</strong> compression method.</p>
+<p>vmlinuz/386 is completely unrelated to the other Linux executable
+formats, and it does not share any of their drawbacks.</p>
+<p>Notes:</p>
+<pre>
+  - Be sure that "vmlinuz/386" or "bvmlinuz/386" is displayed
+  during compression - otherwise a wrong executable format
+  may have been used, and the kernel won't boot.</pre>
+<p>Benefits:</p>
+<pre>
+  - Better compression (but note that the kernel was already compressed,
+  so the improvement is not as large as with other formats).
+  Still, the bytes saved may be essential for special needs like
+  boot disks.</pre>
+<pre>
+     For example, this is what I get for my 2.2.16 kernel:
+        1589708  vmlinux
+         641073  bzImage        [original]
+         560755  bzImage.upx    [compressed by "upx -9"]</pre>
+<pre>
+  - Much faster decompression at kernel boot time (but kernel
+    decompression speed is not really an issue these days).</pre>
+<p>Drawbacks:</p>
+<pre>
+  (none)</pre>
+<p>Extra options available for this executable format:</p>
+<pre>
+  --all-methods       Compress the program several times, using all
+                      available compression methods. This may improve
+                      the compression ratio in some cases, but usually
+                      the default method gives the best results anyway.</pre>
+<pre>
+  --all-filters       Compress the program several times, using all
+                      available preprocessing filters. This may improve
+                      the compression ratio in some cases, but usually
+                      the default filter gives the best results anyway.</pre>
+<p>
+</p>
+<h2><a name="notes_for_watcom_le">NOTES FOR WATCOM/LE</a></h2>
+<p><strong>UPX</strong> has been successfully tested with the following extenders:
+  DOS4G, DOS4GW, PMODE/W, DOS32a, CauseWay.
+  The WDOS/X extender is partly supported (for details
+  see the file bugs BUGS).</p>
+<p>DLLs and the LX format are not supported.</p>
+<p>Extra options available for this executable format:</p>
+<pre>
+  --le                Produce an unbound LE output instead of
+                      keeping the current stub.</pre>
+<p>
+</p>
+<h2><a name="notes_for_win32_pe">NOTES FOR WIN32/PE</a></h2>
+<p>The PE support in <strong>UPX</strong> is quite stable now, but probably there are
+still some incompatibilities with some files.</p>
+<p>Because of the way <strong>UPX</strong> (and other packers for this format) works, you
+can see increased memory usage of your compressed files because the whole
+program is loaded into memory at startup.
+If you start several instances of huge compressed programs you're
+wasting memory because the common segments of the program won't
+get shared across the instances.
+On the other hand if you're compressing only smaller programs, or
+running only one instance of larger programs, then this penalty is
+smaller, but it's still there.</p>
+<p>If you're running executables from network, then compressed programs
+will load faster, and require less bandwidth during execution.</p>
+<p>DLLs are supported. But UPX compressed DLLs can not share common data and
+code when they got used by multiple applications. So compressing msvcrt.dll
+is a waste of memory, but compressing the dll plugins of a particular
+application may be a better idea.</p>
+<p>Screensavers are supported, with the restriction that the filename
+must end with ".scr" (as screensavers are handled slightly different
+than normal exe files).</p>
+<p>UPX compressed PE files have some minor memory overhead (usually in the
+10 - 30 KiB range) which can be seen by specifying the "-i" command
+line switch during compression.</p>
+<p>Extra options available for this executable format:</p>
+<pre>
+ --compress-exports=0 Don't compress the export section.
+                      Use this if you plan to run the compressed
+                      program under Wine.
+ --compress-exports=1 Compress the export section. [DEFAULT]
+                      Compression of the export section can improve the
+                      compression ratio quite a bit but may not work
+                      with all programs (like winword.exe).
+                      UPX never compresses the export section of a DLL
+                      regardless of this option.</pre>
+<pre>
+  --compress-icons=0  Don't compress any icons.
+  --compress-icons=1  Compress all but the first icon.
+  --compress-icons=2  Compress all icons which are not in the
+                      first icon directory. [DEFAULT]
+  --compress-icons=3  Compress all icons.</pre>
+<pre>
+  --compress-resources=0  Don't compress any resources at all.</pre>
+<pre>
+  --keep-resource=list Don't compress resources specified by the list.
+                      The members of the list are separated by commas.
+                      A list member has the following format: I<type[/name]>.
+                      I<Type> is the type of the resource. Standard types
+                      must be specified as decimal numbers, user types can be
+                      specified by decimal IDs or strings. I<Name> is the
+                      identifier of the resource. It can be a decimal number
+                      or a string. For example:</pre>
+<pre>
+                      --keep-resource=2/MYBITMAP,5,6/12345</pre>
+<pre>
+                      UPX won't compress the named bitmap resource "MYBITMAP",
+                      it leaves every dialog (5) resource uncompressed, and
+                      it won't touch the string table resource with identifier
+                      12345.</pre>
+<pre>
+  --force             Force compression even when there is an
+                      unexpected value in a header field.
+                      Use with care.</pre>
+<pre>
+  --strip-relocs=0    Don't strip relocation records.
+  --strip-relocs=1    Strip relocation records. [DEFAULT]
+                      This option only works on executables with base
+                      address greater or equal to 0x400000. Usually the
+                      compressed files becomes smaller, but some files
+                      may become larger. Note that the resulting file will
+                      not work under Windows 3.x (Win32s).
+                      UPX never strips relocations from a DLL
+                      regardless of this option.</pre>
+<pre>
+  --all-methods       Compress the program several times, using all
+                      available compression methods. This may improve
+                      the compression ratio in some cases, but usually
+                      the default method gives the best results anyway.</pre>
+<pre>
+  --all-filters       Compress the program several times, using all
+                      available preprocessing filters. This may improve
+                      the compression ratio in some cases, but usually
+                      the default filter gives the best results anyway.</pre>
+<p>
+</p>
+<hr />
+<h1><a name="diagnostics">DIAGNOSTICS</a></h1>
+<p>Exit status is normally 0; if an error occurs, exit status
+is 1. If a warning occurs, exit status is 2.</p>
+<p><strong>UPX</strong>'s diagnostics are intended to be self-explanatory.</p>
+<p>
+</p>
+<hr />
+<h1><a name="bugs">BUGS</a></h1>
+<p>Please report all bugs immediately to the authors.</p>
+<p>
+</p>
+<hr />
+<h1><a name="authors">AUTHORS</a></h1>
+<pre>
+ Markus F.X.J. Oberhumer <markus at oberhumer.com>
+ <a href="http://www.oberhumer.com">http://www.oberhumer.com</a></pre>
+<pre>
+ Laszlo Molnar <ml1050 at users.sourceforge.net></pre>
+<pre>
+ John F. Reiser <jreiser at BitWagon.com></pre>
+<pre>
+ Jens Medoch <jssg at users.sourceforge.net></pre>
+<p>
+</p>
+<hr />
+<h1><a name="copyright">COPYRIGHT</a></h1>
+<p>Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer</p>
+<p>Copyright (C) 1996-2013 Laszlo Molnar</p>
+<p>Copyright (C) 2000-2013 John F. Reiser</p>
+<p>Copyright (C) 2002-2013 Jens Medoch</p>
+<p>This program may be used freely, and you are welcome to
+redistribute it under certain conditions.</p>
+<p>This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+<strong>UPX License Agreement</strong> for more details.</p>
+<p>You should have received a copy of the UPX License Agreement along
+with this program; see the file LICENSE. If not, visit the UPX home page.</p>
+
+</body>
+
+</html>
diff --git a/upx/3.91_src.tar.bz2 b/upx/3.91_src.tar.bz2
new file mode 100755
index 0000000..b0652a7
Binary files /dev/null and b/upx/3.91_src.tar.bz2 differ

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goclient-contrib.git



More information about the x2go-commits mailing list