Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: libjpeg6b
Source: <url://example.com>
#
# Please double check copyright with the licensecheck(1) command.

Files:     Makefile.am
           README.6b2
           ansi2knr.1
           change.log
           cjpeg.1
           configure.ac
           djpeg.1
           example.c
           jconfig.bcc
           jconfig.cfg
           jconfig.dj
           jconfig.mac
           jconfig.manx
           jconfig.mc6
           jconfig.sas
           jconfig.st
           jconfig.vc
           jconfig.vms
           jconfig.wat
           jpegtran.1
           libjpeg.map
           makcjpeg.st
           makdjpeg.st
           makeapps.ds
           makefile.ansi
           makefile.bcc
           makefile.cfg
           makefile.dj
           makefile.manx
           makefile.mc6
           makefile.mms
           makefile.sas
           makefile.unix
           makefile.vc
           makefile.vms
           makefile.wat
           makelib.ds
           makeproj.mac
           makljpeg.st
           maktjpeg.st
           makvms.opt
           rdjpgcom.1
           testimg.bmp
           testimg.jpg
           testimg.ppm
           testimgp.jpg
           testorig.jpg
           testprog.jpg
           usage.doc
           wizard.doc
           wrjpgcom.1
Copyright: __NO_COPYRIGHT_NOR_LICENSE__
License:   __NO_COPYRIGHT_NOR_LICENSE__

Files:     Makefile.in
           aclocal.m4
           config.guess
           config.sub
           configure
           depcomp
           install-sh
           ltmain.sh
           missing
Copyright: 1991 the Massachusetts Institute of Technology
           1992-2009 Free Software Foundation, Inc.
License:   __AUTO_PERMISSIVE__
 Autogenerated files with permissive licenses.

Files:     cderror.h
Copyright: 1994-1997 Thomas G. Lane.
License:   __HEADER___
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file defines the error and message codes for the cjpeg/djpeg
 applications.  These strings are not needed as part of the JPEG library
 proper.
 Edit this file to add new codes, or to translate the message strings to
 some other language.
 .
 To define the enum list of message codes, include this file without
 defining macro JMESSAGE.  To create a message string table, include it
 again with a suitable JMESSAGE definition (see jerror.c for an example).

Files:     jerror.h
Copyright: 1994-1997 Thomas G. Lane.
License:   __HEADER___
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file defines the error and message codes for the JPEG library.
 Edit this file to add new codes, or to translate the message strings to
 some other language.
 A set of error-reporting macros are defined too.  Some applications using
 the JPEG library may wish to include this file to get the error codes
 and/or the macros.
 .
 To define the enum list of message codes, include this file without
 defining macro JMESSAGE.  To create a message string table, include it
 again with a suitable JMESSAGE definition (see jerror.c for an example).

Files:     jdtrans.c
Copyright: 1995-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains library routines for transcoding decompression,
 that is, reading raw DCT coefficient arrays from an input JPEG file.
 The routines in jdapimin.c will also be needed by a transcoder.

Files:     jmemdosa.asm
Copyright: 1992 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains low-level interface routines to support the MS-DOS
 backing store manager (jmemdos.c).  Routines are provided to access disk
 files through direct DOS calls, and to access XMS and EMS drivers.
 .
 This file should assemble with Microsoft's MASM or any compatible
 assembler (including Borland's Turbo Assembler).  If you haven't got
 a compatible assembler, better fall back to jmemansi.c or jmemname.c.
 .
 To minimize dependence on the C compiler's register usage conventions,
 we save and restore all 8086 registers, even though most compilers only
 require SI,DI,DS to be preserved.  Also, we use only 16-bit-wide return
 values, which everybody returns in AX.
 .
 Based on code contributed by Ge' Weijers.

Files:     filelist.doc
Copyright: 1994-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 Here is a road map to the files in the IJG JPEG distribution.  The
 distribution includes the JPEG library proper, plus two application
 programs ("cjpeg" and "djpeg") which use the library to convert JPEG
 files to and from some other popular image formats.  A third application
 "jpegtran" uses the library to do lossless conversion between different
 variants of JPEG.  There are also two stand-alone applications,
 "rdjpgcom" and "wrjpgcom".
 .
 THE JPEG LIBRARY

Files:     jdmerge.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains code for merged upsampling/color conversion.
 .
 This file combines functions from jdsample.c and jdcolor.c;
 read those files first to understand what's going on.
 .
 When the chroma components are to be upsampled by simple replication
 (ie, box filtering), we can save some work in color conversion by
 calculating all the output pixels corresponding to a pair of chroma
 samples at one time.  In the conversion equations

Files:     jmemsys.h
Copyright: 1992-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This include file defines the interface between the system-independent
 and system-dependent portions of the JPEG memory manager.  No other
 modules need include it.  (The system-independent portion is jmemmgr.c;
 there are several different versions of the system-dependent portion.)
 .
 This file works as-is for the system-dependent memory managers supplied
 in the IJG distribution.  You may need to modify it if you write a
 custom memory manager.  If system-dependent changes are needed in
 this file, the best method is to #ifdef them based on a configuration

Files:     jidctint.c
Copyright: 1991-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a slow-but-accurate integer implementation of the
 inverse DCT (Discrete Cosine Transform).  In the IJG code, this routine
 must also perform dequantization of the input coefficients.
 .
 A 2-D IDCT can be done by 1-D IDCT on each column followed by 1-D IDCT
 on each row (or vice versa, but it's more convenient to emit a row at
 a time).  Direct algorithms are also available, but they are much more
 complex and seem not to be any faster when reduced to code.
 .
 This implementation is based on an algorithm described in
 C. Loeffler, A. Ligtenberg and G. Moschytz, "Practical Fast 1-D DCT
 Algorithms with 11 Multiplications", Proc. Int'l. Conf. on Acoustics,
 Speech, and Signal Processing 1989 (ICASSP '89), pp. 988-991.
 The primary algorithm described there uses 11 multiplies and 29 adds.
 We use their alternate method with 12 multiplies and 32 adds.
 The advantage of this method is that no data path contains more than one
 multiplication; this allows a very simple and accurate implementation in
 scaled fixed-point arithmetic, with a minimal number of shifts.

Files:     jcmaster.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains master control logic for the JPEG compressor.
 These routines are concerned with parameter validation, initial setup,
 and inter-pass control (determining the number of passes and the work
 to be done in each pass).

Files:     jidctfst.c
Copyright: 1994-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a fast, not so accurate integer implementation of the
 inverse DCT (Discrete Cosine Transform).  In the IJG code, this routine
 must also perform dequantization of the input coefficients.
 .
 A 2-D IDCT can be done by 1-D IDCT on each column followed by 1-D IDCT
 on each row (or vice versa, but it's more convenient to emit a row at
 a time).  Direct algorithms are also available, but they are much more
 complex and seem not to be any faster when reduced to code.
 .
 This implementation is based on Arai, Agui, and Nakajima's algorithm for
 scaled DCT.  Their original paper (Trans. IEICE E-71(11):1095) is in
 Japanese, but the algorithm is described in the Pennebaker & Mitchell
 JPEG textbook (see REFERENCES section in file README).  The following code
 is based directly on figure 4-8 in P&M.
 While an 8-point DCT cannot be done in less than 11 multiplies, it is
 possible to arrange the computation so that many of the multiplies are
 simple scalings of the final outputs.  These multiplies can then be
 folded into the multiplications or divisions by the JPEG quantization
 table entries.  The AA&N method leaves only 5 multiplies and 29 adds
 to be done in the DCT itself.
 The primary disadvantage of this method is that with fixed-point math,
 accuracy is lost due to imprecise representation of the scaled
 quantization values.  The smaller the quantization table entry, the less
 precise the scaled value, so this implementation does worse with high-
 quality-setting files than with low-quality ones.

Files:     jversion.h
Copyright: 1991-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains software version identification.

Files:     jctrans.c
Copyright: 1995-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains library routines for transcoding compression,
 that is, writing raw DCT coefficient arrays to an output JPEG file.
 The routines in jcapimin.c will also be needed by a transcoder.

Files:     jmemansi.c
Copyright: 1992-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file provides a simple generic implementation of the system-
 dependent portion of the JPEG memory manager.  This implementation
 assumes that you have the ANSI-standard library routine tmpfile().
 Also, the problem of determining the amount of memory available
 is shoved onto the user.

Files:     jutils.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains tables and miscellaneous utility routines needed
 for both compression and decompression.
 Note we prefix all global names with "j" to minimize conflicts with
 a surrounding application.

Files:     jconfig.doc
Copyright: 1991-1994 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file documents the configuration options that are required to
 customize the JPEG software for a particular system.
 .
 The actual configuration options for a particular installation are stored
 in jconfig.h.  On many machines, jconfig.h can be generated automatically
 or copied from one of the "canned" jconfig files that we supply.  But if
 you need to generate a jconfig.h file by hand, this file tells you how.
 .
 DO NOT EDIT THIS FILE --- IT WON'T ACCOMPLISH ANYTHING.
 EDIT A COPY NAMED JCONFIG.H.
 .
 These symbols indicate the properties of your machine or compiler.
 #define the symbol if yes, #undef it if no.

Files:     jpegtran.c
Copyright: 1995-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a command-line user interface for JPEG transcoding.
 It is very similar to cjpeg.c, but provides lossless transcoding between
 different JPEG file formats.  It also provides some lossless and sort-of-
 lossless transformations of JPEG data.

Files:     install.doc
Copyright: 1991-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file explains how to configure and install the IJG software.  We have
 tried to make this software extremely portable and flexible, so that it can be
 adapted to almost any environment.  The downside of this decision is that the
 installation process is complicated.  We have provided shortcuts to simplify
 the task on common systems.  But in any case, you will need at least a little
 familiarity with C programming and program build procedures for your system.
 .
 If you are only using this software as part of a larger program, the larger
 program's installation procedure may take care of configuring the IJG code.
 For example, Ghostscript's installation script will configure the IJG code.
 You don't need to read this file if you just want to compile Ghostscript.
 .
 If you are on a Unix machine, you may not need to read this file at all.
 Try doing
 ./configure
 make
 make test
 If that doesn't complain, do
 make install
 (better do "make -n install" first to see if the makefile will put the files
 where you want them).  Read further if you run into snags or want to customize
 the code for your system.
 .
 TABLE OF CONTENTS

Files:     jcmarker.c
Copyright: 1991-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to write JPEG datastream markers.

Files:     jfdctflt.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a floating-point implementation of the
 forward DCT (Discrete Cosine Transform).
 .
 This implementation should be more accurate than either of the integer
 DCT implementations.  However, it may not give the same results on all
 machines because of differences in roundoff behavior.  Speed will depend
 on the hardware's floating point capacity.
 .
 A 2-D DCT can be done by 1-D DCT on each row followed by 1-D DCT
 on each column.  Direct algorithms are also available, but they are
 much more complex and seem not to be any faster when reduced to code.
 .
 This implementation is based on Arai, Agui, and Nakajima's algorithm for
 scaled DCT.  Their original paper (Trans. IEICE E-71(11):1095) is in
 Japanese, but the algorithm is described in the Pennebaker & Mitchell
 JPEG textbook (see REFERENCES section in file README).  The following code
 is based directly on figure 4-8 in P&M.
 While an 8-point DCT cannot be done in less than 11 multiplies, it is
 possible to arrange the computation so that many of the multiplies are
 simple scalings of the final outputs.  These multiplies can then be
 folded into the multiplications or divisions by the JPEG quantization
 table entries.  The AA&N method leaves only 5 multiplies and 29 adds
 to be done in the DCT itself.
 The primary disadvantage of this method is that with a fixed-point
 implementation, accuracy is lost due to imprecise representation of the
 scaled quantization values.  However, that problem does not arise if
 we use floating point arithmetic.

Files:     jdhuff.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains Huffman entropy decoding routines.
 .
 Much of the complexity here has to do with supporting input suspension.
 If the data source module demands suspension, we want to be able to back
 up to the start of the current MCU.  To do this, we copy state variables
 into local working storage, and update them back to the permanent
 storage only upon successful completion of an MCU.

Files:     jcomapi.c
Copyright: 1994-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains application interface routines that are used for both
 compression and decompression.

Files:     jdpostct.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains the decompression postprocessing controller.
 This controller manages the upsampling, color conversion, and color
 quantization/reduction steps; specifically, it controls the buffering
 between upsample/color conversion and color quantization/reduction.
 .
 If no color quantization/reduction is required, then this module has no
 work to do, and it just hands off to the upsample/color conversion code.
 An integrated upsample/convert/quantize process would replace this module
 entirely.

Files:     jdapimin.c
Copyright: 1994-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains application interface code for the decompression half
 of the JPEG library.  These are the "minimum" API routines that may be
 needed in either the normal full-decompression case or the
 transcoding-only case.
 .
 Most of the routines intended to be called directly by an application
 are in this file or in jdapistd.c.  But also see jcomapi.c for routines
 shared by compression and decompression, and jdtrans.c for the transcoding
 case.

Files:     libjpeg.doc
Copyright: 1994-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file describes how to use the IJG JPEG library within an application
 program.  Read it if you want to write a program that uses the library.
 .
 The file example.c provides heavily commented skeleton code for calling the
 JPEG library.  Also see jpeglib.h (the include file to be used by application
 programs) for full details about data structures and function parameter lists.
 The library source code, of course, is the ultimate reference.
 .
 Note that there have been *major* changes from the application interface
 presented by IJG version 4 and earlier versions.  The old design had several
 inherent limitations, and it had accumulated a lot of cruft as we added
 features while trying to minimize application-interface changes.  We have
 sacrificed backward compatibility in the version 5 rewrite, but we think the
 improvements justify this.
 .
 TABLE OF CONTENTS

Files:     jdcolor.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains output colorspace conversion routines.

Files:     jdsample.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains upsampling routines.
 .
 Upsampling input data is counted in "row groups".  A row group

Files:     jchuff.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains Huffman entropy encoding routines.
 .
 Much of the complexity here has to do with supporting output suspension.
 If the data destination module demands suspension, we want to be able to
 back up to the start of the current MCU.  To do this, we copy state
 variables into local working storage, and update them back to the
 permanent JPEG objects only upon successful completion of an MCU.

Files:     coderules.doc
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 Since numerous people will be contributing code and bug fixes, it's important
 to establish a common coding style.  The goal of using similar coding styles
 is much more important than the details of just what that style is.
 .
 In general we follow the recommendations of "Recommended C Style and Coding
 Standards" revision 6.1 (Cannon et al. as modified by Spencer, Keppel and
 Brader).  This document is available in the IJG FTP archive (see
 jpeg/doc/cstyle.ms.tbl.Z, or cstyle.txt.Z for those without nroff/tbl).
 .
 Block comments should be laid out thusly:
 .
 /*
 *  Block comments in this style.
 */
 .
 We indent statements in K&R style, e.g.,
 if (test) {
 then-part;
 } else {
 else-part;
 }
 with two spaces per indentation level.  (This indentation convention is
 handled automatically by GNU Emacs and many other text editors.)
 .
 Multi-word names should be written in lower case with underscores, e.g.,

Files:     transupp.h
Copyright: 1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains declarations for image transformation routines and
 other utility code used by the jpegtran sample application.  These are
 NOT part of the core JPEG library.  But we keep these routines separate
 from jpegtran.c to ease the task of maintaining jpegtran-like programs
 that have other user interfaces.
 .
 NOTE: all the routines declared here have very specific requirements
 about when they are to be executed during the reading and writing of the
 source and destination files.  See the comments in transupp.c, or see
 jpegtran.c for an example of correct usage.
 .
 If you happen not to want the image transform support, disable it here

Files:     jdmaster.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains master control logic for the JPEG decompressor.
 These routines are concerned with selecting the modules to be executed
 and with determining the number of passes and the work to be done in each
 pass.

Files:     jdinput.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains input control logic for the JPEG decompressor.
 These routines are concerned with controlling the decompressor's input
 processing (marker reading and coefficient decoding).  The actual input
 reading is done in jdmarker.c, jdhuff.c, and jdphuff.c.

Files:     jcphuff.c
Copyright: 1995-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains Huffman entropy encoding routines for progressive JPEG.
 .
 We do not support output suspension in this module, since the library
 currently does not allow multiple-scan files to be written with output
 suspension.

Files:     jmemmac.c
Copyright: 1992-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 jmemmac.c provides an Apple Macintosh implementation of the system-
 dependent portion of the JPEG memory manager.

Files:     wrppm.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to write output images in PPM/PGM format.
 The extended 2-byte-per-sample raw PPM/PGM formats are supported.
 The PBMPLUS library is NOT required to compile this software
 (but it is highly useful as a set of PPM image manipulation programs).
 .
 These routines may need modification for non-Unix environments or
 specialized applications.  As they stand, they assume output to
 an ordinary stdio stream.

Files:     structure.doc
Copyright: 1991-1995 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file provides an overview of the architecture of the IJG JPEG software;
 that is, the functions of the various modules in the system and the interfaces
 between modules.  For more precise details about any data structure or calling
 convention, see the include files and comments in the source code.
 .
 We assume that the reader is already somewhat familiar with the JPEG standard.
 The README file includes references for learning about JPEG.  The file
 libjpeg.doc describes the library from the viewpoint of an application
 programmer using the library; it's best to read that file before this one.
 Also, the file coderules.doc describes the coding style conventions we use.
 .
 In this document, JPEG-specific terminology follows the JPEG standard:
 A "component" means a color channel, e.g., Red or Luminance.
 A "sample" is a single component value (i.e., one number in the image data).
 A "coefficient" is a frequency coefficient (a DCT transform output number).
 A "block" is an 8x8 group of samples or coefficients.
 An "MCU" (minimum coded unit) is an interleaved set of blocks of size
 determined by the sampling factors, or a single block in a
 noninterleaved scan.
 We do not use the terms "pixel" and "sample" interchangeably.  When we say
 pixel, we mean an element of the full-size image, while a sample is an element
 of the downsampled image.  Thus the number of samples may vary across
 components while the number of pixels does not.  (This terminology is not used
 rigorously throughout the code, but it is used in places where confusion would
 otherwise result.)
 .
 *** System features ***
 .
 The IJG distribution contains two parts:
 * A subroutine library for JPEG compression and decompression.
 * cjpeg/djpeg, two sample applications that use the library to transform
 JFIF JPEG files to and from several other image formats.
 cjpeg/djpeg are of no great intellectual complexity: they merely add a simple
 command-line user interface and I/O routines for several uncompressed image
 formats.  This document concentrates on the library itself.
 .
 We desire the library to be capable of supporting all JPEG baseline, extended
 sequential, and progressive DCT processes.  Hierarchical processes are not
 supported.
 .
 The library does not support the lossless (spatial) JPEG process.  Lossless
 JPEG shares little or no code with lossy JPEG, and would normally be used
 without the extensive pre- and post-processing provided by this library.
 We feel that lossless JPEG is better handled by a separate library.
 .
 Within these limits, any set of compression parameters allowed by the JPEG
 spec should be readable for decompression.  (We can be more restrictive about
 what formats we can generate.)  Although the system design allows for all
 parameter values, some uncommon settings are not yet implemented and may
 never be; nonintegral sampling ratios are the prime example.  Furthermore,
 we treat 8-bit vs. 12-bit data precision as a compile-time switch, not a
 run-time option, because most machines can store 8-bit pixels much more
 compactly than 12-bit.
 .
 For legal reasons, JPEG arithmetic coding is not currently supported, but
 extending the library to include it would be straightforward.
 .
 By itself, the library handles only interchange JPEG datastreams --- in
 particular the widely used JFIF file format.  The library can be used by
 surrounding code to process interchange or abbreviated JPEG datastreams that
 are embedded in more complex file formats.  (For example, libtiff uses this
 library to implement JPEG compression within the TIFF file format.)
 .
 The library includes a substantial amount of code that is not covered by the
 JPEG standard but is necessary for typical applications of JPEG.  These
 functions preprocess the image before JPEG compression or postprocess it after
 decompression.  They include colorspace conversion, downsampling/upsampling,
 and color quantization.  This code can be omitted if not needed.
 .
 A wide range of quality vs. speed tradeoffs are possible in JPEG processing,
 and even more so in decompression postprocessing.  The decompression library
 provides multiple implementations that cover most of the useful tradeoffs,
 ranging from very-high-quality down to fast-preview operation.  On the
 compression side we have generally not provided low-quality choices, since
 compression is normally less time-critical.  It should be understood that the
 low-quality modes may not meet the JPEG standard's accuracy requirements;
 nonetheless, they are useful for viewers.
 .
 *** Portability issues ***
 .
 Portability is an essential requirement for the library.  The key portability
 issues that show up at the level of system architecture are:
 .
 1.  Memory usage.  We want the code to be able to run on PC-class machines
 with limited memory.  Images should therefore be processed sequentially (in
 strips), to avoid holding the whole image in memory at once.  Where a
 full-image buffer is necessary, we should be able to use either virtual memory
 or temporary files.
 .
 2.  Near/far pointer distinction.  To run efficiently on 80x86 machines, the
 code should distinguish "small" objects (kept in near data space) from
 "large" ones (kept in far data space).  This is an annoying restriction, but
 fortunately it does not impact code quality for less brain-damaged machines,
 and the source code clutter turns out to be minimal with sufficient use of
 pointer typedefs.
 .
 3. Data precision.  We assume that "char" is at least 8 bits, "short" and
 "int" at least 16, "long" at least 32.  The code will work fine with larger
 data sizes, although memory may be used inefficiently in some cases.  However,
 the JPEG compressed datastream must ultimately appear on external storage as a
 sequence of 8-bit bytes if it is to conform to the standard.  This may pose a
 problem on machines where char is wider than 8 bits.  The library represents
 compressed data as an array of values of typedef JOCTET.  If no data type
 exactly 8 bits wide is available, custom data source and data destination
 modules must be written to unpack and pack the chosen JOCTET datatype into
 8-bit external representation.
 .
 *** System overview ***
 .
 The compressor and decompressor are each divided into two main sections:
 the JPEG compressor or decompressor proper, and the preprocessing or
 postprocessing functions.  The interface between these two sections is the
 image data that the official JPEG spec regards as its input or output: this
 data is in the colorspace to be used for compression, and it is downsampled
 to the sampling factors to be used.  The preprocessing and postprocessing
 steps are responsible for converting a normal image representation to or from
 this form.  (Those few applications that want to deal with YCbCr downsampled
 data can skip the preprocessing or postprocessing step.)
 .
 Looking more closely, the compressor library contains the following main
 elements:
 .
 Preprocessing:
 * Color space conversion (e.g., RGB to YCbCr).
 * Edge expansion and downsampling.  Optionally, this step can do simple
 smoothing --- this is often helpful for low-quality source data.
 JPEG proper:
 * MCU assembly, DCT, quantization.
 * Entropy coding (sequential or progressive, Huffman or arithmetic).
 .
 In addition to these modules we need overall control, marker generation,
 and support code (memory management & error handling).  There is also a
 module responsible for physically writing the output data --- typically
 this is just an interface to fwrite(), but some applications may need to
 do something else with the data.
 .
 The decompressor library contains the following main elements:
 .
 JPEG proper:
 * Entropy decoding (sequential or progressive, Huffman or arithmetic).
 * Dequantization, inverse DCT, MCU disassembly.
 Postprocessing:
 * Upsampling.  Optionally, this step may be able to do more general
 rescaling of the image.
 * Color space conversion (e.g., YCbCr to RGB).  This step may also
 provide gamma adjustment [ currently it does not ].
 * Optional color quantization (e.g., reduction to 256 colors).
 * Optional color precision reduction (e.g., 24-bit to 15-bit color).
 [This feature is not currently implemented.]
 .
 We also need overall control, marker parsing, and a data source module.
 The support code (memory management & error handling) can be shared with
 the compression half of the library.
 .
 There may be several implementations of each of these elements, particularly
 in the decompressor, where a wide range of speed/quality tradeoffs is very
 useful.  It must be understood that some of the best speedups involve
 merging adjacent steps in the pipeline.  For example, upsampling, color space
 conversion, and color quantization might all be done at once when using a
 low-quality ordered-dither technique.  The system architecture is designed to
 allow such merging where appropriate.
 .
 Note: it is convenient to regard edge expansion (padding to block boundaries)
 as a preprocessing/postprocessing function, even though the JPEG spec includes
 it in compression/decompression.  We do this because downsampling/upsampling
 can be simplified a little if they work on padded data: it's not necessary to
 have special cases at the right and bottom edges.  Therefore the interface
 buffer is always an integral number of blocks wide and high, and we expect
 compression preprocessing to pad the source data properly.  Padding will occur
 only to the next block (8-sample) boundary.  In an interleaved-scan situation,
 additional dummy blocks may be used to fill out MCUs, but the MCU assembly and
 disassembly logic will create or discard these blocks internally.  (This is
 advantageous for speed reasons, since we avoid DCTing the dummy blocks.
 It also permits a small reduction in file size, because the compressor can
 choose dummy block contents so as to minimize their size in compressed form.
 Finally, it makes the interface buffer specification independent of whether
 the file is actually interleaved or not.)  Applications that wish to deal
 directly with the downsampled data must provide similar buffering and padding
 for odd-sized images.
 .
 *** Poor man's object-oriented programming ***
 .
 It should be clear by now that we have a lot of quasi-independent processing
 steps, many of which have several possible behaviors.  To avoid cluttering the
 code with lots of switch statements, we use a simple form of object-style
 programming to separate out the different possibilities.
 .
 For example, two different color quantization algorithms could be implemented
 as two separate modules that present the same external interface; at runtime,
 the calling code will access the proper module indirectly through an "object".
 .
 We can get the limited features we need while staying within portable C.
 The basic tool is a function pointer.  An "object" is just a struct
 containing one or more function pointer fields, each of which corresponds to
 a method name in real object-oriented languages.  During initialization we
 fill in the function pointers with references to whichever module we have
 determined we need to use in this run.  Then invocation of the module is done
 by indirecting through a function pointer; on most machines this is no more
 expensive than a switch statement, which would be the only other way of
 making the required run-time choice.  The really significant benefit, of
 course, is keeping the source code clean and well structured.
 .
 We can also arrange to have private storage that varies between different
 implementations of the same kind of object.  We do this by making all the
 module-specific object structs be separately allocated entities, which will
 be accessed via pointers in the master compression or decompression struct.
 The "public" fields or methods for a given kind of object are specified by
 a commonly known struct.  But a module's initialization code can allocate
 a larger struct that contains the common struct as its first member, plus
 additional private fields.  With appropriate pointer casting, the module's
 internal functions can access these private fields.  (For a simple example,
 see jdatadst.c, which implements the external interface specified by struct

Files:     jdphuff.c
Copyright: 1995-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains Huffman entropy decoding routines for progressive JPEG.
 .
 Much of the complexity here has to do with supporting input suspension.
 If the data source module demands suspension, we want to be able to back
 up to the start of the current MCU.  To do this, we copy state variables
 into local working storage, and update them back to the permanent
 storage only upon successful completion of an MCU.

Files:     jdatasrc.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains decompression data source routines for the case of
 reading JPEG data from a file (or any stdio stream).  While these routines
 are sufficient for most applications, some will want to use a different
 source manager.
 IMPORTANT: we assume that fread() will correctly transcribe an array of
 JOCTETs from 8-bit-wide elements on external storage.  If char is wider
 than 8 bits on your machine, you may need to do some tweaking.

Files:     rdtarga.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to read input images in Targa format.
 .
 These routines may need modification for non-Unix environments or
 specialized applications.  As they stand, they assume input from
 an ordinary stdio stream.  They further assume that reading begins

Files:     cdjpeg.h
Copyright: 1994-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains common declarations for the sample applications
 cjpeg and djpeg.  It is NOT used by the core JPEG library.

Files:     jinclude.h
Copyright: 1991-1994 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file exists to provide a single place to fix any problems with
 including the wrong system include files.  (Common problems are taken
 care of by the standard jconfig symbols, but on really weird systems
 you may have to edit this file.)
 .
 NOTE: this file is NOT intended to be included by applications using the
 JPEG library.  Most applications need only include jpeglib.h.
 .
 Include auto-config file to find out which system include files we need.

Files:     rdbmp.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to read input images in Microsoft "BMP"
 format (MS Windows 3.x, OS/2 1.x, and OS/2 2.x flavors).
 Currently, only 8-bit and 24-bit images are supported, not 1-bit or
 4-bit (feeding such low-depth images into JPEG would be silly anyway).
 Also, we don't support RLE-compressed files.
 .
 These routines may need modification for non-Unix environments or
 specialized applications.  As they stand, they assume input from
 an ordinary stdio stream.  They further assume that reading begins

Files:     jcsample.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains downsampling routines.
 .
 Downsampling input data is counted in "row groups".  A row group

Files:     rdppm.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to read input images in PPM/PGM format.
 The extended 2-byte-per-sample raw PPM/PGM formats are supported.
 The PBMPLUS library is NOT required to compile this software
 (but it is highly useful as a set of PPM image manipulation programs).
 .
 These routines may need modification for non-Unix environments or
 specialized applications.  As they stand, they assume input from
 an ordinary stdio stream.  They further assume that reading begins

Files:     ckconfig.c
Copyright: 1991-1994 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This program is intended to help you determine how to configure the JPEG
 software for installation on a particular system.  The idea is to try to
 compile and execute this program.  If your compiler fails to compile the
 program, make changes as indicated in the comments below.  Once you can
 compile the program, run it, and it will produce a "jconfig.h" file for
 your system.
 .
 As a general rule, each time you try to compile this program,
 pay attention only to the *first* error message you get from the compiler.
 Many C compilers will issue lots of spurious error messages once they
 have gotten confused.  Go to the line indicated in the first error message,
 and read the comments preceding that line to see what to change.
 .
 Almost all of the edits you may need to make to this program consist of

Files:     jmemmgr.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains the JPEG system-independent memory management
 routines.  This code is usable across a wide variety of machines; most
 of the system dependencies have been isolated in a separate file.
 The major functions provided here are:
 * pool-based allocation and freeing of memory;
 * policy decisions about how to divide available memory among the
 virtual arrays;
 * control logic for swapping virtual arrays between main memory and
 backing storage.
 The separate system-dependent file provides the actual backing-storage
 access code, and it contains the policy decision about how much total
 main memory to use.
 This file is system-dependent in the sense that some of its functions
 are unnecessary in some systems.  For example, if there is enough virtual
 memory so that backing storage will never be used, much of the virtual
 array control logic could be removed.  (Of course, if you have that much
 memory then you shouldn't care about a little bit of unused code...)

Files:     jpeglib.h
Copyright: 1991-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file defines the application interface for the JPEG library.
 Most applications using the library need only include this file,
 and perhaps jerror.h if they want to know the exact error codes.

Files:     transupp.c
Copyright: 1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains image transformation routines and other utility code
 used by the jpegtran sample application.  These are NOT part of the core
 JPEG library.  But we keep these routines separate from jpegtran.c to
 ease the task of maintaining jpegtran-like programs that have other user
 interfaces.
 .
 Although this file really shouldn't have access to the library internals,

Files:     jdct.h
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This include file contains common declarations for the forward and
 inverse DCT modules.  These declarations are private to the DCT managers
 (jcdctmgr.c, jddctmgr.c) and the individual DCT algorithms.
 The individual DCT algorithms are kept in separate files to ease
 machine-dependent tuning (e.g., assembly coding).
 .
 A forward DCT routine is given a pointer to a work area of type DCTELEM[];
 the DCT is to be performed in-place in that buffer.  Type DCTELEM is int
 for 8-bit samples, INT32 for 12-bit samples.  (NOTE: Floating-point DCT

Files:     wrbmp.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to write output images in Microsoft "BMP"
 format (MS Windows 3.x and OS/2 1.x flavors).
 Either 8-bit colormapped or 24-bit full-color format can be written.
 No compression is supported.
 .
 These routines may need modification for non-Unix environments or
 specialized applications.  As they stand, they assume output to
 an ordinary stdio stream.
 .
 This code contributed by James Arthur Boucher.

Files:     jdatadst.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains compression data destination routines for the case of
 emitting JPEG data to a file (or any stdio stream).  While these routines
 are sufficient for most applications, some will want to use a different
 destination manager.
 IMPORTANT: we assume that fwrite() will correctly transcribe an array of
 JOCTETs into 8-bit-wide elements on external storage.  If char is wider
 than 8 bits on your machine, you may need to do some tweaking.

Files:     jfdctint.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a slow-but-accurate integer implementation of the
 forward DCT (Discrete Cosine Transform).
 .
 A 2-D DCT can be done by 1-D DCT on each row followed by 1-D DCT
 on each column.  Direct algorithms are also available, but they are
 much more complex and seem not to be any faster when reduced to code.
 .
 This implementation is based on an algorithm described in
 C. Loeffler, A. Ligtenberg and G. Moschytz, "Practical Fast 1-D DCT
 Algorithms with 11 Multiplications", Proc. Int'l. Conf. on Acoustics,
 Speech, and Signal Processing 1989 (ICASSP '89), pp. 988-991.
 The primary algorithm described there uses 11 multiplies and 29 adds.
 We use their alternate method with 12 multiplies and 32 adds.
 The advantage of this method is that no data path contains more than one
 multiplication; this allows a very simple and accurate implementation in
 scaled fixed-point arithmetic, with a minimal number of shifts.

Files:     jccoefct.c
Copyright: 1994-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains the coefficient buffer controller for compression.
 This controller is the top level of the JPEG compressor proper.
 The coefficient buffer lies between forward-DCT and entropy encoding steps.

Files:     jquant2.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains 2-pass color quantization (color mapping) routines.
 These routines provide selection of a custom color map for an image,
 followed by mapping of the image to that color map, with optional
 Floyd-Steinberg dithering.
 It is also possible to use just the second pass to map to an arbitrary
 externally-given color map.
 .
 Note: ordered dithering is not supported, since there isn't any fast
 way to compute intercolor distances; it's unclear that ordered dither's
 fundamental assumptions even hold with an irregularly spaced color map.

Files:     jddctmgr.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains the inverse-DCT management logic.
 This code selects a particular IDCT implementation to be used,
 and it performs related housekeeping chores.  No code in this file
 is executed per IDCT step, only during output pass setup.
 .
 Note that the IDCT routines are responsible for performing coefficient
 dequantization as well as the IDCT proper.  This module sets up the
 dequantization multiplier table needed by the IDCT routine.

Files:     jdapistd.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains application interface code for the decompression half
 of the JPEG library.  These are the "standard" API routines that are
 used in the normal full-decompression case.  They are not used by a
 transcoding-only application.  Note that if an application links in

Files:     jdhuff.h
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains declarations for Huffman entropy decoding routines
 that are shared between the sequential decoder (jdhuff.c) and the
 progressive decoder (jdphuff.c).  No other modules need to see these.
 .
 Short forms of external names for systems with brain-damaged linkers.

Files:     jidctred.c
Copyright: 1994-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains inverse-DCT routines that produce reduced-size output:
 either 4x4, 2x2, or 1x1 pixels from an 8x8 DCT block.
 .
 The implementation is based on the Loeffler, Ligtenberg and Moschytz (LL&M)
 algorithm used in jidctint.c.  We simply replace each 8-to-8 1-D IDCT step
 with an 8-to-4 step that produces the four averages of two adjacent outputs
 (or an 8-to-2 step producing two averages of four outputs, for 2x2 output).
 These steps were derived by computing the corresponding values at the end
 of the normal LL&M code, then simplifying as much as possible.
 .
 1x1 is trivial: just take the DC coefficient divided by 8.
 .
 See jidctint.c for additional comments.

Files:     rdrle.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to read input images in Utah RLE format.
 The Utah Raster Toolkit library is required (version 3.1 or later).
 .
 These routines may need modification for non-Unix environments or
 specialized applications.  As they stand, they assume input from
 an ordinary stdio stream.  They further assume that reading begins

Files:     rdjpgcom.c
Copyright: 1994-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a very simple stand-alone application that displays
 the text in COM (comment) markers in a JFIF file.
 This may be useful as an example of the minimum logic needed to parse
 JPEG markers.

Files:     jfdctfst.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a fast, not so accurate integer implementation of the
 forward DCT (Discrete Cosine Transform).
 .
 A 2-D DCT can be done by 1-D DCT on each row followed by 1-D DCT
 on each column.  Direct algorithms are also available, but they are
 much more complex and seem not to be any faster when reduced to code.
 .
 This implementation is based on Arai, Agui, and Nakajima's algorithm for
 scaled DCT.  Their original paper (Trans. IEICE E-71(11):1095) is in
 Japanese, but the algorithm is described in the Pennebaker & Mitchell
 JPEG textbook (see REFERENCES section in file README).  The following code
 is based directly on figure 4-8 in P&M.
 While an 8-point DCT cannot be done in less than 11 multiplies, it is
 possible to arrange the computation so that many of the multiplies are
 simple scalings of the final outputs.  These multiplies can then be
 folded into the multiplications or divisions by the JPEG quantization
 table entries.  The AA&N method leaves only 5 multiplies and 29 adds
 to be done in the DCT itself.
 The primary disadvantage of this method is that with fixed-point math,
 accuracy is lost due to imprecise representation of the scaled
 quantization values.  The smaller the quantization table entry, the less
 precise the scaled value, so this implementation does worse with high-
 quality-setting files than with low-quality ones.

Files:     wrgif.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to write output images in GIF format.
 .
 NOTE: to avoid entanglements with Unisys' patent on LZW compression,   *
 this code has been modified to output "uncompressed GIF" files.        *
 There is no trace of the LZW algorithm in this file.                   *
 .
 These routines may need modification for non-Unix environments or
 specialized applications.  As they stand, they assume output to
 an ordinary stdio stream.
 .
 This code is loosely based on ppmtogif from the PBMPLUS distribution
 of Feb. 1991.  That file contains the following copyright notice:
 Based on GIFENCODE by David Rowley <mgardi@watdscu.waterloo.edu>.
 Lempel-Ziv compression based on "compress" by Spencer W. Thomas et al.
 Copyright (C) 1989 by Jef Poskanzer.
 Permission to use, copy, modify, and distribute this software and its
 documentation for any purpose and without fee is hereby granted, provided
 that the above copyright notice appear in all copies and that both that
 copyright notice and this permission notice appear in supporting
 documentation.  This software is provided "as is" without express or
 implied warranty.
 .
 We are also required to state that
 "The Graphics Interchange Format(c) is the Copyright property of
 CompuServe Incorporated. GIF(sm) is a Service Mark property of
 CompuServe Incorporated."

Files:     jcdctmgr.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains the forward-DCT management logic.
 This code selects a particular DCT implementation to be used,
 and it performs related housekeeping chores including coefficient
 quantization.

Files:     jmemname.c
Copyright: 1992-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file provides a generic implementation of the system-dependent
 portion of the JPEG memory manager.  This implementation assumes that
 you must explicitly construct a name for each temp file.
 Also, the problem of determining the amount of memory available
 is shoved onto the user.

Files:     jcmainct.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains the main buffer controller for compression.
 The main buffer lies between the pre-processor and the JPEG
 compressor proper; it holds downsampled data in the JPEG colorspace.

Files:     rdswitch.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to process some of cjpeg's more complicated
 command-line switches.  Switches processed here are:
 -qtables file		Read quantization tables from text file
 -scans file		Read scan script from text file
 -qslots N[,N,...]	Set component quantization table selectors
 -sample HxV[,HxV,...]	Set component sampling factors

Files:     jdmainct.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains the main buffer controller for decompression.
 The main buffer lies between the JPEG decompressor proper and the
 post-processor; it holds downsampled data in the JPEG colorspace.
 .
 Note that this code is bypassed in raw-data mode, since the application
 supplies the equivalent of the main buffer in that case.

Files:     wrrle.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to write output images in RLE format.
 The Utah Raster Toolkit library is required (version 3.1 or later).
 .
 These routines may need modification for non-Unix environments or
 specialized applications.  As they stand, they assume output to
 an ordinary stdio stream.
 .
 Based on code contributed by Mike Lijewski,
 with updates from Robert Hutchinson.

Files:     jccolor.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains input colorspace conversion routines.

Files:     djpeg.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a command-line user interface for the JPEG decompressor.
 It should work on any system with Unix- or MS-DOS-style command lines.
 .
 Two different command line styles are permitted, depending on the

Files:     jmemnobs.c
Copyright: 1992-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file provides a really simple implementation of the system-
 dependent portion of the JPEG memory manager.  This implementation
 assumes that no backing-store files are needed: all required space
 can be obtained from malloc().
 This is very portable in the sense that it'll compile on almost anything,
 but you'd better have lots of main memory (or virtual memory) if you want
 to process big images.

Files:     jchuff.h
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains declarations for Huffman entropy encoding routines
 that are shared between the sequential encoder (jchuff.c) and the
 progressive encoder (jcphuff.c).  No other modules need to see these.
 .
 The legal range of a DCT coefficient is
 -1024 .. +1023  for 8-bit data;
 -16384 .. +16383 for 12-bit data.
 Hence the magnitude should always fit in 10 or 14 bits respectively.

Files:     jcprepct.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains the compression preprocessing controller.
 This controller manages the color conversion, downsampling,
 and edge expansion steps.
 .
 Most of the complexity here is associated with buffering input rows
 as required by the downsampler.  See the comments at the head of
 jcsample.c for the downsampler's needs.

Files:     jidctflt.c
Copyright: 1994-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a floating-point implementation of the
 inverse DCT (Discrete Cosine Transform).  In the IJG code, this routine
 must also perform dequantization of the input coefficients.
 .
 This implementation should be more accurate than either of the integer
 IDCT implementations.  However, it may not give the same results on all
 machines because of differences in roundoff behavior.  Speed will depend
 on the hardware's floating point capacity.
 .
 A 2-D IDCT can be done by 1-D IDCT on each column followed by 1-D IDCT
 on each row (or vice versa, but it's more convenient to emit a row at
 a time).  Direct algorithms are also available, but they are much more
 complex and seem not to be any faster when reduced to code.
 .
 This implementation is based on Arai, Agui, and Nakajima's algorithm for
 scaled DCT.  Their original paper (Trans. IEICE E-71(11):1095) is in
 Japanese, but the algorithm is described in the Pennebaker & Mitchell
 JPEG textbook (see REFERENCES section in file README).  The following code
 is based directly on figure 4-8 in P&M.
 While an 8-point DCT cannot be done in less than 11 multiplies, it is
 possible to arrange the computation so that many of the multiplies are
 simple scalings of the final outputs.  These multiplies can then be
 folded into the multiplications or divisions by the JPEG quantization
 table entries.  The AA&N method leaves only 5 multiplies and 29 adds
 to be done in the DCT itself.
 The primary disadvantage of this method is that with a fixed-point
 implementation, accuracy is lost due to imprecise representation of the
 scaled quantization values.  However, that problem does not arise if
 we use floating point arithmetic.

Files:     cdjpeg.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains common support routines used by the IJG application
 programs (cjpeg, djpeg, jpegtran).

Files:     jcinit.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains initialization logic for the JPEG compressor.
 This routine is in charge of selecting the modules to be executed and
 making an initialization call to each one.
 .
 Logically, this code belongs in jcmaster.c.  It's split out because
 linking this routine implies linking the entire compression library.
 For a transcoding-only application, we want to be able to use jcmaster.c
 without linking in the whole library.

Files:     wrtarga.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to write output images in Targa format.
 .
 These routines may need modification for non-Unix environments or
 specialized applications.  As they stand, they assume output to
 an ordinary stdio stream.
 .
 Based on code contributed by Lee Daniel Crocker.

Files:     wrjpgcom.c
Copyright: 1994-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a very simple stand-alone application that inserts
 user-supplied text as a COM (comment) marker in a JFIF file.
 This may be useful as an example of the minimum logic needed to parse
 JPEG markers.

Files:     jquant1.c
Copyright: 1991-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains 1-pass color quantization (color mapping) routines.
 These routines provide mapping to a fixed color map using equally spaced
 color values.  Optional Floyd-Steinberg or ordered dithering is available.

Files:     jdmarker.c
Copyright: 1991-1998 Thomas G. Lane. Modified 2013  Bill Allombert for CVE 2013-6629 and 2013-6630  applying a fix  Guido Vollbeding.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to decode JPEG datastream markers.
 Most of the complexity arises from our desire to support input
 suspension: if not all of the data for a marker is available,
 we must exit back to the application.  On resumption, we reprocess
 the marker.

Files:     jcapimin.c
Copyright: 1994-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains application interface code for the compression half
 of the JPEG library.  These are the "minimum" API routines that may be
 needed in either the normal full-compression case or the transcoding-only
 case.
 .
 Most of the routines intended to be called directly by an application
 are in this file or in jcapistd.c.  But also see jcparam.c for
 parameter-setup helper routines, jcomapi.c for routines shared by
 compression and decompression, and jctrans.c for the transcoding case.

Files:     rdcolmap.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file implements djpeg's "-map file" switch.  It reads a source image
 and constructs a colormap to be supplied to the JPEG decompressor.
 .
 Currently, these file formats are supported for the map file:
 GIF: the contents of the GIF's global colormap are used.
 PPM (either text or raw flavor): the entire file is read and
 each unique pixel value is entered in the map.
 Note that reading a large PPM file will be horrendously slow.
 Typically, a PPM-format map file should contain just one pixel
 of each desired color.  Such a file can be extracted from an
 ordinary image PPM file with ppmtomap(1).
 .
 Rescaling a PPM that has a maxval unequal to MAXJSAMPLE is not
 currently implemented.

Files:     README
Copyright: __NO_COPYRIGHT__ in: README
License:   __UNKNOWN__
 Permission is hereby granted to use, copy, modify, and distribute this
 software (or portions thereof) for any purpose, without fee, subject to these
 conditions:
 (1) If any part of the source code for this software is distributed, then this
 .
 unaltered; and any additions, deletions, or changes to the original files
 must be clearly indicated in accompanying documentation.
 (2) If only executable code is distributed, then the accompanying
 documentation must state that "this software is based in part on the work of
 the Independent JPEG Group".
 (3) Permission for use of this software is granted only if the user accepts
 full responsibility for any undesirable consequences; the authors accept
 NO LIABILITY for damages of any kind.
 .
 These conditions apply to any software derived from or based on the IJG code,
 not just to the unmodified library.  If you use our work, you ought to
 acknowledge us.
 .
 Permission is NOT granted for the use of any IJG author's name or company name
 in advertising or publicity relating to this software or products derived from
 it.  This software may be referred to only as "the Independent JPEG Group's
 software".
 .
 We specifically permit and encourage the use of this software as the basis of
 commercial products, provided that all warranty or liability claims are
 assumed by the product vendor.
 .
 ansi2knr.c is included in this distribution by permission of L. Peter Deutsch,
 sole proprietor of its copyright holder, Aladdin Enterprises of Menlo Park, CA.
 ansi2knr.c is NOT covered by the above copyright and conditions, but instead
 by the usual distribution terms of the Free Software Foundation; principally,
 that you must include source code if you redistribute it.  (See the file
 ansi2knr.c for full details.)  However, since ansi2knr.c is not needed as part
 of any program generated from the IJG code, this does not limit you more than
 the foregoing paragraphs do.
 .
 The Unix configuration script "configure" was produced with GNU Autoconf.
 It is copyright by the Free Software Foundation but is freely distributable.
 The same holds for its supporting scripts (config.guess, config.sub,
 ltconfig, ltmain.sh).  Another support script, install-sh, is copyright
 by M.I.T. but is also freely distributable.
 .
 It appears that the arithmetic coding option of the JPEG spec is covered by
 patents owned by IBM, AT&T, and Mitsubishi.  Hence arithmetic coding cannot
 legally be used without obtaining one or more licenses.  For this reason,
 support for arithmetic coding has been removed from the free JPEG software.
 (Since arithmetic coding provides only a marginal gain over the unpatented
 Huffman mode, it is unlikely that very many implementations will support it.)
 So far as we are aware, there are no patent restrictions on the remaining
 code.
 .
 The IJG distribution formerly included code to read and write GIF files.
 To avoid entanglement with the Unisys LZW patent, GIF reading support has
 been removed altogether, and the GIF writer has been simplified to produce
 "uncompressed GIFs".  This technique does not use the LZW algorithm; the
 resulting GIF files are larger than usual, but are readable by all standard
 GIF decoders.
 .
 We are required to state that
 "The Graphics Interchange Format(c) is the Copyright property of
 CompuServe Incorporated.  GIF(sm) is a Service Mark property of
 CompuServe Incorporated."
 .
 REFERENCES

Files:     jerror.c
Copyright: 1991-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains simple error-reporting and trace-message routines.
 These are suitable for Unix-like systems and others where writing to
 stderr is the right thing to do.  Many applications will want to replace
 some or all of these routines.

Files:     jmemdos.c
Copyright: 1992-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file provides an MS-DOS-compatible implementation of the system-
 dependent portion of the JPEG memory manager.  Temporary data can be
 stored in extended or expanded memory as well as in regular DOS files.

Files:     rdgif.c
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains routines to read input images in GIF format.
 .
 NOTE: to avoid entanglements with Unisys' patent on LZW compression,      *
 the ability to read GIF files has been removed from the IJG distribution. *
 Sorry about that.                                                         *
 .
 We are required to state that
 "The Graphics Interchange Format(c) is the Copyright property of
 CompuServe Incorporated. GIF(sm) is a Service Mark property of
 CompuServe Incorporated."

Files:     jcapistd.c
Copyright: 1994-1996 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains application interface code for the compression half
 of the JPEG library.  These are the "standard" API routines that are
 used in the normal full-compression case.  They are not used by a
 transcoding-only application.  Note that if an application links in

Files:     jcparam.c
Copyright: 1991-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains optional default-setting code for the JPEG compressor.
 Applications do not have to use this file, but those that don't use it
 must know a lot more about the innards of the JPEG code.

Files:     jmorecfg.h
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains additional configuration options that customize the
 JPEG software for special applications or support machine-dependent
 optimizations.  Most users will not need to touch this file.

Files:     cjpeg.c
Copyright: 1991-1998 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains a command-line user interface for the JPEG compressor.
 It should work on any system with Unix- or MS-DOS-style command lines.
 .
 Two different command line styles are permitted, depending on the

Files:     jdcoefct.c
Copyright: 1994-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file contains the coefficient buffer controller for decompression.
 This controller is the top level of the JPEG decompressor proper.
 The coefficient buffer lies between entropy decoding and inverse-DCT steps.
 .
 In buffered-image mode, this controller is the interface between
 input-oriented processing and output-oriented processing.
 Also, the input side (only) is used when reading a file for transcoding.

Files:     jpegint.h
Copyright: 1991-1997 Thomas G. Lane.
License:   __UNKNOWN__
 This file is part of the Independent JPEG Group's software.
 For conditions of distribution and use, see the accompanying README file.
 .
 This file provides common declarations for the various JPEG modules.
 These declarations are considered internal to the JPEG library; most
 applications using the library shouldn't need to include this file.
 .
 Declarations for both compression & decompression

Files:     ansi2knr.c
Copyright: 1988 Richard M. Stallman
License:   __UNKNOWN__ with unknown exception
 Everyone is permitted to copy and distribute verbatim copies of this
 license, but changing it is not allowed.  You can also use this wording
 to make the terms for other programs.
 .
 The license agreements of most software companies keep you at the
 mercy of those companies.  By contrast, our general public license is
 intended to give everyone the right to share Ghostscript.  To make sure
 that you get the rights we want you to have, we need to make
 restrictions that forbid anyone to deny you these rights or to ask you
 to surrender the rights.  Hence this license agreement.
 .
 Specifically, we want to make sure that you have the right to give
 away copies of Ghostscript, that you receive source code or else can get
 it if you want it, that you can change Ghostscript or use pieces of it
 in new free programs, and that you know you can do these things.
 .
 To make sure that everyone has such rights, we have to forbid you to
 deprive anyone else of these rights.  For example, if you distribute
 copies of Ghostscript, 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 tell them their rights.
 .
 Also, for our own protection, we must make certain that everyone finds
 out that there is no warranty for Ghostscript.  If Ghostscript is
 modified by someone else and passed on, we want its recipients to know
 that what they have is not what we distributed, so that any problems
 introduced by others will not reflect on our reputation.
 .
 Therefore we (Richard M. Stallman and the Free Software Foundation,
 Inc.) make the following terms which say what you must do to be allowed
 to distribute or change Ghostscript.
 .
 COPYING POLICIES
 .
 1. You may copy and distribute verbatim copies of Ghostscript source
 code as you receive it, in any medium, provided that you conspicuously
 and appropriately publish on each copy a valid copyright and license
 notice "Copyright (C) 1989 Aladdin Enterprises.
 Distributed by Free Software Foundation, Inc." (or with whatever year is
 appropriate); keep intact the notices on all files that refer to this
 License Agreement and to the absence of any warranty; and give any other
 recipients of the Ghostscript program a copy of this License Agreement
 along with the program.  You may charge a distribution fee for the
 physical act of transferring a copy.
 .
 2. You may modify your copy or copies of Ghostscript or any portion of
 it, and copy and distribute such modifications under the terms of
 Paragraph 1 above, provided that you also do the following:
 .
 a) cause the modified files to carry prominent notices stating
 that you changed the files and the date of any change; and
 .
 b) cause the whole of any work that you distribute or publish,
 that in whole or in part contains or is a derivative of Ghostscript
 or any part thereof, to be licensed at no charge to all third
 parties on terms identical to those contained in this License
 Agreement (except that you may choose to grant more extensive
 warranty protection to some or all third parties, at your option).
 .
 c) You may charge a distribution fee for the physical act of
 transferring a copy, and you may at your option offer warranty
 protection in exchange for a fee.
 .
 Mere aggregation of another unrelated program with this program (or its
 derivative) on a volume of a storage or distribution medium does not bring
 the other program under the scope of these terms.
 .
 3. You may copy and distribute Ghostscript (or a portion or derivative
 of it, under Paragraph 2) in object code or executable form under the
 terms of Paragraphs 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
 Paragraphs 1 and 2 above; or,
 .
 b) accompany it with a written offer, valid for at least three
 years, to give any third party free (except for a nominal
 shipping charge) a complete machine-readable copy of the
 corresponding source code, to be distributed under the terms of
 Paragraphs 1 and 2 above; or,
 .
 c) accompany it with the information you received as to where the
 corresponding source code may be obtained.  (This alternative is
 allowed only for noncommercial distribution and only if you
 received the program in object code or executable form alone.)
 .
 For an executable file, complete source code means all the source code for
 all modules it contains; but, as a special exception, it need not include
 source code for modules which are standard libraries that accompany the
 operating system on which the executable file runs.
 .
 4. You may not copy, sublicense, distribute or transfer Ghostscript
 except as expressly provided under this License Agreement.  Any attempt
 otherwise to copy, sublicense, distribute or transfer Ghostscript is
 void and your rights to use the program under this License agreement
 shall be automatically terminated.  However, parties who have received
 computer software programs from you with this License Agreement will not
 have their licenses terminated so long as such parties remain in full
 compliance.
 .
 5. If you wish to incorporate parts of Ghostscript into other free
 programs whose distribution conditions are different, write to the Free
 Software Foundation at 675 Mass Ave, Cambridge, MA 02139.  We have not
 yet worked out a simple rule that can be stated here, but we will often
 permit this.  We 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.
 .
 Your comments and suggestions about our licensing policies and our
 software are welcome!  Please contact the Free Software Foundation,
 Inc., 675 Mass Ave, Cambridge, MA 02139, or call (617) 876-3296.
 .
 NO WARRANTY
 .
 BECAUSE GHOSTSCRIPT IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY
 NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW.  EXCEPT
 WHEN OTHERWISE STATED IN WRITING, FREE SOFTWARE FOUNDATION, INC, RICHARD
 M. STALLMAN, ALADDIN ENTERPRISES, L. PETER DEUTSCH, AND/OR OTHER PARTIES
 PROVIDE GHOSTSCRIPT "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 GHOSTSCRIPT IS WITH
 YOU.  SHOULD GHOSTSCRIPT PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
 NECESSARY SERVICING, REPAIR OR CORRECTION.
 .
 IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL RICHARD M.
 STALLMAN, THE FREE SOFTWARE FOUNDATION, INC., L. PETER DEUTSCH, ALADDIN
 ENTERPRISES, AND/OR ANY OTHER PARTY WHO MAY MODIFY AND REDISTRIBUTE
 GHOSTSCRIPT AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
 ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR
 CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE
 (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
 INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A FAILURE OF THE
 PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS) GHOSTSCRIPT, EVEN IF YOU
 HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM
 BY ANY OTHER PARTY.
 .
 The FSF address in the above text is the old one.

#----------------------------------------------------------------------------
# Files marked as NO_LICENSE_TEXT_FOUND may be covered by the following
# license/copyright files.
