]> git.alsa-project.org Git - alsa-tools.git/commitdiff
Added hdspconf utility by Thomas Charbonnel (requiring FLTK)
authorTakashi Iwai <tiwai@suse.de>
Wed, 2 Jul 2003 10:21:11 +0000 (10:21 +0000)
committerTakashi Iwai <tiwai@suse.de>
Wed, 2 Jul 2003 10:21:11 +0000 (10:21 +0000)
38 files changed:
hdspconf/AUTHORS [new file with mode: 0644]
hdspconf/COPYING [new file with mode: 0644]
hdspconf/ChangeLog [new file with mode: 0644]
hdspconf/INSTALL [new file with mode: 0644]
hdspconf/Makefile.am [new file with mode: 0644]
hdspconf/NEWS [new file with mode: 0644]
hdspconf/README [new file with mode: 0644]
hdspconf/configure.in [new file with mode: 0644]
hdspconf/cvscompile [new file with mode: 0644]
hdspconf/pixmaps/Makefile.am [new file with mode: 0644]
hdspconf/pixmaps/alsalogo.xpm [new file with mode: 0644]
hdspconf/pixmaps/lad_banner.xpm [new file with mode: 0644]
hdspconf/pixmaps/rme.xpm [new file with mode: 0644]
hdspconf/src/HC_AboutText.cxx [new file with mode: 0644]
hdspconf/src/HC_AboutText.h [new file with mode: 0644]
hdspconf/src/HC_AutoSyncRef.cxx [new file with mode: 0644]
hdspconf/src/HC_AutoSyncRef.h [new file with mode: 0644]
hdspconf/src/HC_CardPane.cxx [new file with mode: 0644]
hdspconf/src/HC_CardPane.h [new file with mode: 0644]
hdspconf/src/HC_ClockSource.cxx [new file with mode: 0644]
hdspconf/src/HC_ClockSource.h [new file with mode: 0644]
hdspconf/src/HC_PrefSyncRef.cxx [new file with mode: 0644]
hdspconf/src/HC_PrefSyncRef.h [new file with mode: 0644]
hdspconf/src/HC_SpdifFreq.cxx [new file with mode: 0644]
hdspconf/src/HC_SpdifFreq.h [new file with mode: 0644]
hdspconf/src/HC_SpdifIn.cxx [new file with mode: 0644]
hdspconf/src/HC_SpdifIn.h [new file with mode: 0644]
hdspconf/src/HC_SpdifOut.cxx [new file with mode: 0644]
hdspconf/src/HC_SpdifOut.h [new file with mode: 0644]
hdspconf/src/HC_SyncCheck.cxx [new file with mode: 0644]
hdspconf/src/HC_SyncCheck.h [new file with mode: 0644]
hdspconf/src/HC_SystemClock.cxx [new file with mode: 0644]
hdspconf/src/HC_SystemClock.h [new file with mode: 0644]
hdspconf/src/HC_XpmRenderer.cxx [new file with mode: 0644]
hdspconf/src/HC_XpmRenderer.h [new file with mode: 0644]
hdspconf/src/Makefile.am [new file with mode: 0644]
hdspconf/src/defines.h [new file with mode: 0644]
hdspconf/src/hdspconf.cxx [new file with mode: 0644]

diff --git a/hdspconf/AUTHORS b/hdspconf/AUTHORS
new file mode 100644 (file)
index 0000000..38ca8f0
--- /dev/null
@@ -0,0 +1 @@
+Thomas Charbonnel <thomas@undata.org>
diff --git a/hdspconf/COPYING b/hdspconf/COPYING
new file mode 100644 (file)
index 0000000..d60c31a
--- /dev/null
@@ -0,0 +1,340 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  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 Library 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.
+\f
+                   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.)
+\f
+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.
+\f
+  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.
+\f
+  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
+\f
+           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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  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 Library General
+Public License instead of this License.
diff --git a/hdspconf/ChangeLog b/hdspconf/ChangeLog
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/hdspconf/INSTALL b/hdspconf/INSTALL
new file mode 100644 (file)
index 0000000..54caf7c
--- /dev/null
@@ -0,0 +1,229 @@
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
+Foundation, Inc.
+
+   This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+   These are generic installation instructions.
+
+   The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation.  It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions.  Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+   It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring.  (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+   If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release.  If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+   The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'.  You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+  1. `cd' to the directory containing the package's source code and type
+     `./configure' to configure the package for your system.  If you're
+     using `csh' on an old version of System V, you might need to type
+     `sh ./configure' instead to prevent `csh' from trying to execute
+     `configure' itself.
+
+     Running `configure' takes awhile.  While running, it prints some
+     messages telling which features it is checking for.
+
+  2. Type `make' to compile the package.
+
+  3. Optionally, type `make check' to run any self-tests that come with
+     the package.
+
+  4. Type `make install' to install the programs and any data files and
+     documentation.
+
+  5. You can remove the program binaries and object files from the
+     source code directory by typing `make clean'.  To also remove the
+     files that `configure' created (so you can compile the package for
+     a different kind of computer), type `make distclean'.  There is
+     also a `make maintainer-clean' target, but that is intended mainly
+     for the package's developers.  If you use it, you may have to get
+     all sorts of other programs in order to regenerate files that came
+     with the distribution.
+
+Compilers and Options
+=====================
+
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+   You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment.  Here
+is an example:
+
+     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+   *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+   You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory.  To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script.  `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+   If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory.  After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+   By default, `make install' will install the package's files in
+`/usr/local/bin', `/usr/local/man', etc.  You can specify an
+installation prefix other than `/usr/local' by giving `configure' the
+option `--prefix=PATH'.
+
+   You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files.  If you
+give `configure' the option `--exec-prefix=PATH', the package will use
+PATH as the prefix for installing programs and libraries.
+Documentation and other data files will still use the regular prefix.
+
+   In addition, if you use an unusual directory layout you can give
+options like `--bindir=PATH' to specify different values for particular
+kinds of files.  Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+   If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+   Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System).  The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+   For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option.  TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+     CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+     OS KERNEL-OS
+
+   See the file `config.sub' for the possible values of each field.  If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+   If you are _building_ compiler tools for cross-compiling, you should
+use the `--target=TYPE' option to select the type of system they will
+produce code for.
+
+   If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists.  Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+   Variables not defined in a site shell script can be set in the
+environment passed to `configure'.  However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost.  In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'.  For example:
+
+     ./configure CC=/usr/local2/bin/gcc
+
+will cause the specified gcc to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+`configure' Invocation
+======================
+
+   `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+     Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+     Print the version of Autoconf used to generate the `configure'
+     script, and exit.
+
+`--cache-file=FILE'
+     Enable the cache: use and save the results of the tests in FILE,
+     traditionally `config.cache'.  FILE defaults to `/dev/null' to
+     disable caching.
+
+`--config-cache'
+`-C'
+     Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+     Do not print messages saying which checks are being made.  To
+     suppress all normal output, redirect it to `/dev/null' (any error
+     messages will still be shown).
+
+`--srcdir=DIR'
+     Look for the package's source code in directory DIR.  Usually
+     `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options.  Run
+`configure --help' for more details.
+
diff --git a/hdspconf/Makefile.am b/hdspconf/Makefile.am
new file mode 100644 (file)
index 0000000..d27796c
--- /dev/null
@@ -0,0 +1 @@
+SUBDIRS = src pixmaps
diff --git a/hdspconf/NEWS b/hdspconf/NEWS
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/hdspconf/README b/hdspconf/README
new file mode 100644 (file)
index 0000000..0e006c1
--- /dev/null
@@ -0,0 +1,2 @@
+HDSPConfig is a GUI to control the Hammerfall HDSP Alsa Settings.
+Up to four hdsp cards are supported.
diff --git a/hdspconf/configure.in b/hdspconf/configure.in
new file mode 100644 (file)
index 0000000..32a448c
--- /dev/null
@@ -0,0 +1,62 @@
+AC_INIT(src/hdspconf.cxx)
+AM_INIT_AUTOMAKE(hdspconf, 1.0)
+
+AC_PROG_CXX
+AC_PROG_MAKE_SET
+AC_STDC_HEADERS
+AC_PATH_X
+
+AM_PATH_ALSA(0.9.0)
+
+dnl kernel header files
+AC_MSG_CHECKING(for kernel header files)
+AC_ARG_WITH(kernel,
+  [  --with-kernel=ver       specify kernel version (for example 2.5.5-pre1)],
+  [kerneldir="$withval"], [kerneldir=""])
+if test "$kerneldir" != "" -a -r "/lib/modules/$kerneldir/build/include/sound"; then
+  kerneldir="/lib/modules/$kerneldir/build/include"
+  AC_MSG_RESULT($kerneldir)
+else
+  if test -z "$kerneldir"; then
+    AC_MSG_RESULT("not specified")
+  else
+    AC_MSG_RESULT("directory /lib/modules/$kerneldir/build/include/sound not found")
+  fi
+  kerneldir=""
+fi
+
+dnl path for sound/asound.h
+AC_MSG_CHECKING(for directory with ALSA kernel headers)
+AC_ARG_WITH(soundbase,
+  [  --with-soundbase=dir    specify base directory with kernel sound headers (optional)],
+  [soundbasedir="$withval"], [soundbasedir="$kerneldir"])
+if test "$soundbasedir" != "" -a -r "$soundbasedir/sound" ; then
+  ALSA_CFLAGS="$ALSA_CFLAGS -I$soundbasedir"
+  CFLAGS="$CFLAGS -I$soundbasedir"
+  AC_MSG_RESULT($ALSA_CFLAGS)
+else
+  if test "x$prefix" != xNONE; then
+    aprefix=$prefix
+  else
+    aprefix=$ac_default_prefix
+  fi
+  if test -z "$soundbasedir" -a -r "$aprefix/include/sound"; then
+    ALSA_CFLAGS="$ALSA_CFLAGS -I$aprefix/include"
+    CFLAGS="$CFLAGS -I$aprefix/include"
+    AC_MSG_RESULT($ALSA_CFLAGS)
+  else
+    AC_MSG_RESULT("not specified - using C compiler defaults")
+  fi
+fi
+
+AC_PATH_PROG(FLTK_CONFIG, fltk-config, no)
+if test "$FLTK_CONFIG" = "no"; then
+  AC_MSG_ERROR(no fltk-config is found)
+fi
+FLTK_CXXFLAGS=`$FLTK_CONFIG $fltk_config_args --cxxflags`
+FLTK_LIBS=`$FLTK_CONFIG $fltk_config_args --ldflags`
+
+CXXFLAGS="$CXXFLAGS $ALSA_CFLAGS $FLTK_CXXFLAGS"
+LDFLAGS="$LDFLAGS $ALSA_LIBS $FLTK_LIBS"
+
+AC_OUTPUT(Makefile src/Makefile pixmaps/Makefile)
diff --git a/hdspconf/cvscompile b/hdspconf/cvscompile
new file mode 100644 (file)
index 0000000..e8a1c45
--- /dev/null
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+if test "x$AUTOMAKE_DIR" = "x"; then
+  if test -d /usr/local/share/automake; then
+    AUTOMAKE_DIR=/usr/local/share/automake
+  fi
+  if test -d /usr/share/automake; then
+    AUTOMAKE_DIR="/usr/share/automake"
+  fi
+fi
+
+for f in install-sh mkinstalldirs missing; do
+  cp -av $AUTOMAKE_DIR/$f .
+done
+
+aclocal $ACLOCAL_FLAGS
+automake --foreign --add-missing --copy
+touch depcomp
+autoconf
+export CFLAGS='-O2 -Wall -pipe -g'
+echo "CFLAGS=$CFLAGS"
+echo "./configure $@"
+./configure $@
+unset CFLAGS
+make
diff --git a/hdspconf/pixmaps/Makefile.am b/hdspconf/pixmaps/Makefile.am
new file mode 100644 (file)
index 0000000..7278f3b
--- /dev/null
@@ -0,0 +1 @@
+EXTRA_DIST = $(wildcard *.xpm)
diff --git a/hdspconf/pixmaps/alsalogo.xpm b/hdspconf/pixmaps/alsalogo.xpm
new file mode 100644 (file)
index 0000000..39c4023
--- /dev/null
@@ -0,0 +1,451 @@
+/* XPM */
+static char * alsalogo_xpm[] = {
+"50 50 398 2",
+"      c None",
+".     c #C0C0C0",
+"+     c #BEC1BE",
+"@     c #9EAD9D",
+"#     c #889687",
+"$     c #7D8A7C",
+"%     c #788477",
+"&     c #9AA799",
+"*     c #484D47",
+"=     c #3A3F3A",
+"-     c #515551",
+";     c #6C706B",
+">     c #8F958F",
+",     c #ADAFAD",
+"'     c #BCBCBB",
+")     c #BEC0BE",
+"!     c #606A60",
+"~     c #515651",
+"{     c #646664",
+"]     c #828282",
+"^     c #A2A4A1",
+"/     c #EEEEED",
+"(     c #FEFEFC",
+"_     c #A7B7A5",
+":     c #7E8B7D",
+"<     c #414542",
+"[     c #5C5E5C",
+"}     c #BCBDBB",
+"|     c #F6F6F4",
+"1     c #8B978A",
+"2     c #4A4F4A",
+"3     c #939493",
+"4     c #C7C9C6",
+"5     c #5C655C",
+"6     c #4C4D4C",
+"7     c #C3C4C2",
+"8     c #768176",
+"9     c #626262",
+"0     c #E9E9E7",
+"a     c #93A291",
+"b     c #5E625E",
+"c     c #7B7B7A",
+"d     c #838482",
+"e     c #FCFCFB",
+"f     c #F3F4F1",
+"g     c #EBECE9",
+"h     c #E6E6E4",
+"i     c #E7E7E5",
+"j     c #EEEEEC",
+"k     c #FDFDFB",
+"l     c #FAFAF9",
+"m     c #CBCFCA",
+"n     c #969796",
+"o     c #737A73",
+"p     c #787D77",
+"q     c #7C817C",
+"r     c #798079",
+"s     c #727871",
+"t     c #9D9F9D",
+"u     c #EDEEEB",
+"v     c #F8F8F6",
+"w     c #D3D4D2",
+"x     c #9DA09D",
+"y     c #727672",
+"z     c #CBCBCB",
+"A     c #E5E6E4",
+"B     c #F6F7F4",
+"C     c #F4F5F2",
+"D     c #DFE0DE",
+"E     c #707370",
+"F     c #C0C2C0",
+"G     c #FCFCFA",
+"H     c #ADB3AD",
+"I     c #515452",
+"J     c #939793",
+"K     c #F1F1EF",
+"L     c #BFC4BE",
+"M     c #F4F5F4",
+"N     c #FBFBFA",
+"O     c #B7BAB7",
+"P     c #A2A5A0",
+"Q     c #F9FAF8",
+"R     c #F5F5F3",
+"S     c #BABDBA",
+"T     c #727472",
+"U     c #CBCECC",
+"V     c #F5F5F4",
+"W     c #E2E3E1",
+"X     c #CFD4CE",
+"Y     c #B5B7B4",
+"Z     c #777777",
+"`     c #303231",
+" .    c #8F918F",
+"..    c #A5A7A4",
+"+.    c #B9BCB8",
+"@.    c #CACDC9",
+"#.    c #F7F7F5",
+"$.    c #EFF0ED",
+"%.    c #D0D0CE",
+"&.    c #C1C2C1",
+"*.    c #909690",
+"=.    c #6D746D",
+"-.    c #727972",
+";.    c #98A398",
+">.    c #BFC9BE",
+",.    c #BDD0BC",
+"'.    c #BCD1BE",
+").    c #C0D5C1",
+"!.    c #C4D9C5",
+"~.    c #C4D8C3",
+"{.    c #C3D8C4",
+"].    c #C3D5C2",
+"^.    c #C0D0C0",
+"/.    c #B1BDB2",
+"(.    c #878F87",
+"_.    c #9CA59C",
+":.    c #E0E7DF",
+"<.    c #E6E9E5",
+"[.    c #F0F0EE",
+"}.    c #FBFBF9",
+"|.    c #3A403A",
+"1.    c #747673",
+"2.    c #363936",
+"3.    c #7F8B7F",
+"4.    c #CCE0CC",
+"5.    c #DAF2DB",
+"6.    c #D8EFD7",
+"7.    c #D7EED6",
+"8.    c #D6ECD4",
+"9.    c #D4EBD4",
+"0.    c #D2E9D4",
+"a.    c #D1E8D3",
+"b.    c #CEE5CF",
+"c.    c #CDE4CE",
+"d.    c #CFE6D0",
+"e.    c #CCE2CD",
+"f.    c #BCCEBC",
+"g.    c #BCC5BC",
+"h.    c #DBDEDB",
+"i.    c #F9F9F8",
+"j.    c #8B8D8A",
+"k.    c #606961",
+"l.    c #B3C4B4",
+"m.    c #D7EED8",
+"n.    c #D3E9D4",
+"o.    c #D4EAD4",
+"p.    c #859185",
+"q.    c #666F65",
+"r.    c #C2D6C0",
+"s.    c #1C1E1D",
+"t.    c #B8CCBA",
+"u.    c #535853",
+"v.    c #454C46",
+"w.    c #99A999",
+"x.    c #CCE3CD",
+"y.    c #5E675F",
+"z.    c #8A958B",
+"A.    c #C8DEC9",
+"B.    c #C9DFCA",
+"C.    c #CBE2CC",
+"D.    c #CDDECE",
+"E.    c #E5EEE5",
+"F.    c #F6FBF4",
+"G.    c #F9F9F7",
+"H.    c #B7BAB6",
+"I.    c #656E65",
+"J.    c #D3EAD5",
+"K.    c #D3E9D2",
+"L.    c #6D776D",
+"M.    c #525A52",
+"N.    c #1C1E1C",
+"O.    c #161717",
+"P.    c #A0B1A1",
+"Q.    c #4F5750",
+"R.    c #6E776E",
+"S.    c #C7DAC6",
+"T.    c #C8DDC8",
+"U.    c #D4E1D4",
+"V.    c #F5F7F3",
+"W.    c #CCCDCA",
+"X.    c #3B3D3B",
+"Y.    c #D5ECD5",
+"Z.    c #CEE5D0",
+"`.    c #CCDFCA",
+" +    c #565B57",
+".+    c #191A1A",
+"++    c #9CAE9D",
+"@+    c #535854",
+"#+    c #C2D6C3",
+"$+    c #C7D9C5",
+"%+    c #C3DAC4",
+"&+    c #C2DAC4",
+"*+    c #CCDFCC",
+"=+    c #EFF3EE",
+"-+    c #C9CAC8",
+";+    c #9EAC9D",
+">+    c #D0E7D1",
+",+    c #D3EAD4",
+"'+    c #C1D3C0",
+")+    c #353735",
+"!+    c #505850",
+"~+    c #C0D4BF",
+"{+    c #727A73",
+"]+    c #676E68",
+"^+    c #535B54",
+"/+    c #303230",
+"(+    c #B6C9B7",
+"_+    c #C5D8C4",
+":+    c #CED8CC",
+"<+    c #D9DBD9",
+"[+    c #C1D3C1",
+"}+    c #D0E7D2",
+"|+    c #B5C6B3",
+"1+    c #202221",
+"2+    c #494F49",
+"3+    c #B8CAB7",
+"4+    c #C3D6C3",
+"5+    c #454B45",
+"6+    c #CAE1CB",
+"7+    c #C5DAC6",
+"8+    c #585F59",
+"9+    c #1F2020",
+"0+    c #ACBEAD",
+"a+    c #C4DAC4",
+"b+    c #C1D5BF",
+"c+    c #F2F2F0",
+"d+    c #D3E1D2",
+"e+    c #D0E6D1",
+"f+    c #ADBEAB",
+"g+    c #141515",
+"h+    c #484C48",
+"i+    c #A3B3A3",
+"j+    c #616962",
+"k+    c #858F85",
+"l+    c #B4C6B5",
+"m+    c #535754",
+"n+    c #0E0E0F",
+"o+    c #A1B3A2",
+"p+    c #C6D9C5",
+"q+    c #959995",
+"r+    c #CEE5CE",
+"s+    c #0A0B0B",
+"t+    c #545954",
+"u+    c #909D90",
+"v+    c #A0AF9F",
+"w+    c #454946",
+"x+    c #9EAD9F",
+"y+    c #565B56",
+"z+    c #070808",
+"A+    c #98A999",
+"B+    c #BACAB9",
+"C+    c #636763",
+"D+    c #EEF0ED",
+"E+    c #D8E8D8",
+"F+    c #9EB0A0",
+"G+    c #222423",
+"H+    c #646864",
+"I+    c #6E746E",
+"J+    c #B4C8B5",
+"K+    c #222424",
+"L+    c #828B83",
+"M+    c #676B67",
+"N+    c #1F201F",
+"O+    c #97A798",
+"P+    c #C7DBC6",
+"Q+    c #BFD3BD",
+"R+    c #99A698",
+"S+    c #8C8E8C",
+"T+    c #F8F8F7",
+"U+    c #F2F4F1",
+"V+    c #9EAFA0",
+"W+    c #0B0B0C",
+"X+    c #171817",
+"Y+    c #4B504B",
+"Z+    c #B6CAB8",
+"`+    c #AABAAA",
+" @    c #3E413F",
+".@    c #707670",
+"+@    c #1B1C1B",
+"@@    c #0D0D0E",
+"#@    c #95A596",
+"$@    c #C1D6C1",
+"%@    c #9CA79C",
+"&@    c #4D514E",
+"*@    c #EDEEEC",
+"=@    c #F6F7F5",
+"-@    c #E4ECE3",
+";@    c #CCDECB",
+">@    c #CADFCA",
+",@    c #CFE6D1",
+"'@    c #3C3E3C",
+")@    c #5E675E",
+"!@    c #383A38",
+"~@    c #6E786F",
+"{@    c #B3C6B4",
+"]@    c #555D55",
+"^@    c #484D49",
+"/@    c #869187",
+"(@    c #616861",
+"_@    c #4F534F",
+":@    c #828C81",
+"<@    c #C4D7C3",
+"[@    c #BBCDBB",
+"}@    c #919E91",
+"|@    c #575C58",
+"1@    c #A7AAA6",
+"2@    c #A2A3A1",
+"3@    c #E4E5E5",
+"4@    c #C3C8C1",
+"5@    c #CBE0CB",
+"6@    c #B2C2B2",
+"7@    c #AFC2AF",
+"8@    c #B5C9B6",
+"9@    c #9CA89C",
+"0@    c #97A498",
+"a@    c #93A093",
+"b@    c #BCCFBD",
+"c@    c #A8B8A9",
+"d@    c #A5B3A5",
+"e@    c #B2C4B2",
+"f@    c #B1C2B0",
+"g@    c #AAB7AA",
+"h@    c #C5D8C3",
+"i@    c #C5D1C3",
+"j@    c #BBC2B9",
+"k@    c #757B75",
+"l@    c #7B7F7B",
+"m@    c #EEEFEC",
+"n@    c #E7EBE6",
+"o@    c #BFC5BE",
+"p@    c #A2ABA2",
+"q@    c #B2BDB2",
+"r@    c #B9C8B9",
+"s@    c #BCCEBB",
+"t@    c #B9CAB8",
+"u@    c #B6C8B5",
+"v@    c #AEC0AD",
+"w@    c #AABCA9",
+"x@    c #A4B1A4",
+"y@    c #A2ADA2",
+"z@    c #889087",
+"A@    c #616260",
+"B@    c #7A7F7A",
+"C@    c #BEBEBD",
+"D@    c #CECFCD",
+"E@    c #E0E2DF",
+"F@    c #C1C5C0",
+"G@    c #979997",
+"H@    c #7E817F",
+"I@    c #6C736C",
+"J@    c #515451",
+"K@    c #333533",
+"L@    c #595D59",
+"M@    c #656B65",
+"N@    c #6E716F",
+"O@    c #959795",
+"P@    c #BCBFBC",
+"Q@    c #E3E7E3",
+"R@    c #F7F8F6",
+"S@    c #BCBDBA",
+"T@    c #EBECEA",
+"U@    c #A4ACA4",
+"V@    c #535653",
+"W@    c #B7B8B6",
+"X@    c #616B60",
+"Y@    c #F7F7F6",
+"Z@    c #E2E6E1",
+"`@    c #7D817E",
+" #    c #838582",
+".#    c #D1D2D0",
+"+#    c #CACECA",
+"@#    c #868A86",
+"##    c #F3F4F2",
+"$#    c #FAFBF9",
+"%#    c #B1B4AF",
+"&#    c #505450",
+"*#    c #626562",
+"=#    c #E0E0DF",
+"-#    c #F5F6F3",
+";#    c #B3B5B3",
+">#    c #606260",
+",#    c #818480",
+"'#    c #959894",
+")#    c #878B86",
+"!#    c #696B69",
+"~#    c #565756",
+"{#    c #919491",
+"]#    c #BDBDBC",
+"^#    c #EAEAE8",
+"/#    c #A7B7A6",
+"(#    c #BFC3BE",
+"_#    c #7F807F",
+":#    c #7D7E7E",
+"<#    c #808181",
+"[#    c #929391",
+"}#    c #B8BBB7",
+"|#    c #7A7A7A",
+"1#    c #93A292",
+". . . . . . . . . . . . . . . . . . . . + @ # $ % % $ # @ + . . . . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . & * = - ; > , ' ' , > ; - = * & . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . ) ! ~ { ] ^ / ( ( ( ( ( ( ( ( / ^ ] { ~ ! ) . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . _ : < [ } | ( ( ( ( ( ( ( ( ( ( ( ( ( ( | } [ < : _ . . . . . . . . . . . . ",
+". . . . . . . . . . . 1 2 3 4 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 4 3 2 1 . . . . . . . . . . . ",
+". . . . . . . . . . 5 6 7 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 7 6 5 . . . . . . . . . . ",
+". . . . . . . . . 8 9 0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 9 8 . . . . . . . . . ",
+". . . . . . . a b c ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( c b a . . . . . . . ",
+". . . . . . . b d e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e d b . . . . . . . ",
+". . . . . . 8 c e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e c 8 . . . . . . ",
+". . . . . 5 9 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 9 5 . . . . . ",
+". . . . 1 6 0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( f g h i j k ( ( ( ( ( ( ( 0 6 1 . . . . ",
+". . . _ 2 7 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( l m n o p q r s t u ( ( ( ( ( ( ( 7 2 _ . . . ",
+". . . : 3 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( v w x { y z A B C D E F G ( ( ( ( ( ( ( 3 : . . . ",
+". . ) < 4 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( H I J K ( ( ( ( ( ( G L M ( ( ( ( ( ( ( 4 < ) . . ",
+". . ! [ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( N O o P u ( ( ( ( ( ( ( ( ( k Q ( ( ( ( ( ( ( ( [ ! . . ",
+". . ~ } ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( R S T U ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( } ~ . . ",
+". & { | ( ( ( ( ( ( ( ( ( ( ( ( k V W X Y Z `  ...+.@.h #.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( | { & . ",
+". * ] ( ( ( ( ( ( ( ( ( $.%.&.*.=.-.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.( ( ( ( ( ( ( ( ( ( ( ( ] * . ",
+". |.^ ( ( ( ( ( ( ( ( R 1.2.3.4.5.6.7.8.9.0.0.0.0.a.b.c.c.c.d.e.f.g.h.( ( ( ( ( ( ( ( ( ( ( ( ^ |.. ",
+"+ - / ( ( ( ( ( ( i.j.k.l.m.9.n.o.8.8.p.q.r.s.t.0.u.v.w.x.y.z.x.A.B.C.D.E.F.( ( ( ( ( ( ( ( ( / - + ",
+"@ ; ( ( ( ( ( ( G.H.I.d.J.0.0.o.8.8.K.L.M.r.N.t.0.O.P.c.c.Q.R.C.A.A.A.S.T.U.V.e ( ( ( ( ( ( ( ( ; @ ",
+"# > ( ( ( ( ( ( W.X.Y.Z.0.0.0.o.8.8.`. +M.r.N.t.0..+++c.c.Q.@+#+A.A.A.$+%+&+*+=+( ( ( ( ( ( ( ( > # ",
+"$ , ( ( ( ( ( ( -+;+>+b.0.0.0.,+8.8.'+)+!+~+N.t.0.{+]+c.c.^+/+(+A.A.A.$+%+&+_+:+G ( ( ( ( ( ( ( , $ ",
+"% ' ( ( ( ( ( ( <+[+c.c.}+0.0.o.8.8.|+1+2+3+N.t.0.4+5+6+7+8+9+0+A.A.A.$+%+&+a+b+/ ( ( ( ( ( ( ( ' % ",
+"% ' ( ( ( ( ( ( c+d+c.c.e+0.0.0.n.8.f+g+h+i+N.t.0.0.j+k+l+m+n+o+A.A.A.$+%+&+p+b+q+#.( ( ( ( ( ( ' % ",
+"$ , ( ( ( ( ( ( G =+r+c.b.a.0.0.0.,+o+s+t+u+N.t.0.b.v+w+x+y+z+A+A.A.A.$+%+&+_+B+C+D+( ( ( ( ( ( , $ ",
+"# > ( ( ( ( ( ( ( ( E+c.c.b.a.0.0.0.F+G+H+I+s.t.}+c.J+K+L+M+N+O+A.A.P+$+%+&+Q+R+S+T+( ( ( ( ( ( > # ",
+"@ ; ( ( ( ( ( ( ( ( U+U.x.c.c.a.0.0.V+W+X+Y+N.Z+c.c.`+ @.@+@@@#@A.A.P+$+%+$@%@&@*@( ( ( ( ( ( ( ; @ ",
+"+ - / ( ( ( ( ( ( ( ( =@-@;@>@b.,@0.F+'@)@!@s.~@{@]@^@/@(@@+_@:@A.T.S.<@[@}@|@1@( ( ( ( ( ( ( / - + ",
+". = 2@( ( ( ( ( ( ( ( ( ( }.3@4@[+5@6@7@8@9@0@a@b@c@l.c.d@e@f@g@h@i@j@k@/+l@=@( ( ( ( ( ( ( ( 2@= . ",
+". * ] ( ( ( ( ( ( ( ( ( ( ( G m@n@o@p@q@r@s@t@u@J+u@u@u@v@w@x@y@z@A@B@C@D@$.( ( ( ( ( ( ( ( ( ] * . ",
+". & { | ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( Q E@F@G@H@I@J@K@L@M@N@O@P@Q@R@( ( ( ( ( ( ( ( ( ( ( ( | { & . ",
+". . ~ S@( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( }.T@U@V@W@m@f G.G ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( S@~ . . ",
+". . X@[ ( ( ( ( ( ( ( ( Y@e ( ( ( ( ( ( ( k Z@`@ #.#G.( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( [ X@. . ",
+". . . < 4 ( ( ( ( ( ( ( +#@###( ( ( ( $#%#&#*#=#( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 4 < . . . ",
+". . . : 3 ( ( ( ( ( ( ( -#;#>#,#'#)#!#~#{#]#^#G ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 3 : . . . ",
+". . . /#2 7 ( ( ( ( ( ( ( f (#_#:#<#[#}#Y@( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 7 2 /#. . . ",
+". . . . 1 6 0 ( ( ( ( ( ( ( ( G }.G ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 6 1 . . . . ",
+". . . . . 5 9 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 9 5 . . . . . ",
+". . . . . . 8 |#e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e |#8 . . . . . . ",
+". . . . . . . b d e ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( e d b . . . . . . . ",
+". . . . . . . 1#b |#( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( |#b 1#. . . . . . . ",
+". . . . . . . . . 8 9 0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 0 9 8 . . . . . . . . . ",
+". . . . . . . . . . 5 6 7 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 7 6 5 . . . . . . . . . . ",
+". . . . . . . . . . . 1 2 3 4 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 4 3 2 1 . . . . . . . . . . . ",
+". . . . . . . . . . . . /#: < [ S@| ( ( ( ( ( ( ( ( ( ( ( ( ( ( | S@[ < : /#. . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . X@~ { ] 2@/ ( ( ( ( ( ( ( ( / 2@] { ~ X@. . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . & * |.- ; > , ' ' , > ; - |.* & . . . . . . . . . . . . . . . . . ",
+". . . . . . . . . . . . . . . . . . . . + @ # $ % % $ # @ + . . . . . . . . . . . . . . . . . . . . "};
diff --git a/hdspconf/pixmaps/lad_banner.xpm b/hdspconf/pixmaps/lad_banner.xpm
new file mode 100644 (file)
index 0000000..bdd9f8a
--- /dev/null
@@ -0,0 +1,1875 @@
+/* XPM */
+static char * lad_banner_xpm[] = {
+"113 39 1833 2",
+"      c None",
+".     c #C0C0C0",
+"+     c #97968A",
+"@     c #646356",
+"#     c #3B3A30",
+"$     c #1D1D17",
+"%     c #0B0B09",
+"&     c #080706",
+"*     c #070706",
+"=     c #070707",
+"-     c #0A0A0B",
+";     c #1A1A1B",
+">     c #353638",
+",     c #5B5C60",
+"'     c #8E8F92",
+")     c #A4A499",
+"!     c #4A493D",
+"~     c #060604",
+"{     c #0A0A08",
+"]     c #413F31",
+"^     c #6F6D55",
+"/     c #918F70",
+"(     c #A4A27F",
+"_     c #A9A783",
+":     c #A9A784",
+"<     c #A9A785",
+"[     c #A8A785",
+"}     c #A8A686",
+"|     c #A7A687",
+"1     c #A7A587",
+"2     c #A7A588",
+"3     c #A7A488",
+"4     c #A6A489",
+"5     c #A5A48A",
+"6     c #A4A48A",
+"7     c #A4A38B",
+"8     c #A4A38C",
+"9     c #A4A28C",
+"0     c #A3A28C",
+"a     c #A3A28D",
+"b     c #A2A28D",
+"c     c #A2A28E",
+"d     c #A2A18F",
+"e     c #A1A190",
+"f     c #A1A090",
+"g     c #A1A091",
+"h     c #A0A091",
+"i     c #A0A092",
+"j     c #9F9F93",
+"k     c #9E9F94",
+"l     c #9E9E94",
+"m     c #9D9E94",
+"n     c #9D9D95",
+"o     c #9D9D96",
+"p     c #9C9D96",
+"q     c #9C9D97",
+"r     c #9C9C97",
+"s     c #9B9C98",
+"t     c #9B9B98",
+"u     c #9B9B99",
+"v     c #9A9B99",
+"w     c #9A9B9A",
+"x     c #999B9A",
+"y     c #999B9B",
+"z     c #999A9B",
+"A     c #989A9C",
+"B     c #98999C",
+"C     c #98999D",
+"D     c #97999D",
+"E     c #97989E",
+"F     c #96989E",
+"G     c #96989F",
+"H     c #9698A0",
+"I     c #91939A",
+"J     c #7F8189",
+"K     c #62636A",
+"L     c #393A3E",
+"M     c #09090A",
+"N     c #050505",
+"O     c #424346",
+"P     c #9C9DA0",
+"Q     c #ACACA1",
+"R     c #34342A",
+"S     c #030302",
+"T     c #4B4A39",
+"U     c #A9A67F",
+"V     c #EAE8B2",
+"W     c #F2EEB8",
+"X     c #F2EEB9",
+"Y     c #F1EEB9",
+"Z     c #F1EEBA",
+"`     c #F0EDBA",
+" .    c #F0EDBB",
+"..    c #F0EDBC",
+"+.    c #EFECBC",
+"@.    c #EEECBD",
+"#.    c #EEECBE",
+"$.    c #EEEBBE",
+"%.    c #EDEBBF",
+"&.    c #EDEABF",
+"*.    c #EDEAC0",
+"=.    c #ECEAC0",
+"-.    c #ECEAC1",
+";.    c #ECE9C1",
+">.    c #EBE9C2",
+",.    c #EAE8C3",
+"'.    c #EAE8C4",
+").    c #E9E8C4",
+"!.    c #E9E7C5",
+"~.    c #E8E7C6",
+"{.    c #E8E6C6",
+"].    c #E7E6C7",
+"^.    c #E7E6C8",
+"/.    c #E6E5C9",
+"(.    c #E6E4CA",
+"_.    c #E5E4CA",
+":.    c #E5E4CB",
+"<.    c #E4E4CB",
+"[.    c #E4E4CC",
+"}.    c #E4E3CD",
+"|.    c #E3E3CD",
+"1.    c #E3E2CE",
+"2.    c #E2E2CE",
+"3.    c #E2E2CF",
+"4.    c #E1E1D0",
+"5.    c #E1E1D1",
+"6.    c #E0E0D1",
+"7.    c #E0E0D2",
+"8.    c #DFE0D2",
+"9.    c #DFDFD3",
+"0.    c #DEDFD4",
+"a.    c #DEDFD5",
+"b.    c #DDDED5",
+"c.    c #DDDDD6",
+"d.    c #DCDDD7",
+"e.    c #DBDDD8",
+"f.    c #DBDCD8",
+"g.    c #DBDCD9",
+"h.    c #DADBDA",
+"i.    c #D9DBDB",
+"j.    c #D9DADC",
+"k.    c #D8DADC",
+"l.    c #D8DADD",
+"m.    c #D7D9DD",
+"n.    c #D7D9DE",
+"o.    c #D7D9DF",
+"p.    c #D6D9DF",
+"q.    c #D6D8DF",
+"r.    c #D5D8E0",
+"s.    c #D5D8E1",
+"t.    c #D5D7E1",
+"u.    c #D5D7E2",
+"v.    c #D4D7E2",
+"w.    c #D4D7E3",
+"x.    c #D3D6E4",
+"y.    c #CDCFDE",
+"z.    c #9396A1",
+"A.    c #434449",
+"B.    c #020303",
+"C.    c #2D2D30",
+"D.    c #A5A5A8",
+"E.    c #626152",
+"F.    c #020201",
+"G.    c #504F3C",
+"H.    c #CECA99",
+"I.    c #F3EFB7",
+"J.    c #F2EFB8",
+"K.    c #EFECBA",
+"L.    c #E8E6C7",
+"M.    c #E6E5C8",
+"N.    c #E6E5CA",
+"O.    c #E3E2CD",
+"P.    c #E2E1D0",
+"Q.    c #DDDED6",
+"R.    c #D6D8E0",
+"S.    c #D3D6E3",
+"T.    c #D2D5E5",
+"U.    c #D2D5E6",
+"V.    c #B4B6C5",
+"W.    c #47484E",
+"X.    c #020202",
+"Y.    c #57585C",
+"Z.    c #C3C3BD",
+"`.    c #2D2D23",
+" +    c #181812",
+".+    c #AFAB81",
+"++    c #F4F0B5",
+"@+    c #F4F0B6",
+"#+    c #F3EFB6",
+"$+    c #EBE8B3",
+"%+    c #ADAA84",
+"&+    c #716F56",
+"*+    c #454435",
+"=+    c #2C2B22",
+"-+    c #25241C",
+";+    c #28271F",
+">+    c #3A392D",
+",+    c #5D5C49",
+"'+    c #989678",
+")+    c #DDDAAE",
+"!+    c #EBE9BC",
+"~+    c #060505",
+"{+    c #000000",
+"]+    c #888773",
+"^+    c #494940",
+"/+    c #3D3C35",
+"(+    c #E4E3CC",
+"_+    c #DADBD9",
+":+    c #D9DBDC",
+"<+    c #989AA6",
+"[+    c #151617",
+"}+    c #262729",
+"|+    c #BFBFC0",
+"1+    c #BCBBB4",
+"2+    c #1B1A14",
+"3+    c #373628",
+"4+    c #DEDAA3",
+"5+    c #F5F0B5",
+"6+    c #D3D09E",
+"7+    c #63614A",
+"8+    c #0C0C09",
+"9+    c #020203",
+"0+    c #1B1C1D",
+"a+    c #2F3034",
+"b+    c #3C3E43",
+"c+    c #414448",
+"d+    c #3E4045",
+"e+    c #303136",
+"f+    c #191A1B",
+"g+    c #3F3F32",
+"h+    c #ADAB8A",
+"i+    c #E7E5B9",
+"j+    c #EAE9C2",
+"k+    c #96947D",
+"l+    c #2B2B25",
+"m+    c #747363",
+"n+    c #BEBDA2",
+"o+    c #989783",
+"p+    c #6A695C",
+"q+    c #A1A08C",
+"r+    c #E3E2C7",
+"s+    c #E1E0C6",
+"t+    c #DFDFC6",
+"u+    c #DEDED5",
+"v+    c #DADCD9",
+"w+    c #D8D9DD",
+"x+    c #C0C3D2",
+"y+    c #313135",
+"z+    c #161617",
+"A+    c #B5B6B8",
+"B+    c #444332",
+"C+    c #ECE8AD",
+"D+    c #F5F1B4",
+"E+    c #EAE7AE",
+"F+    c #6D6B51",
+"G+    c #040403",
+"H+    c #1A1B1B",
+"I+    c #494C51",
+"J+    c #787B85",
+"K+    c #9397A0",
+"L+    c #A1A5AE",
+"M+    c #A9ADB6",
+"N+    c #ACB0B9",
+"O+    c #ADB1BA",
+"P+    c #A9ACB7",
+"Q+    c #9699A3",
+"R+    c #595B62",
+"S+    c #17171A",
+"T+    c #3D3D31",
+"U+    c #C2C09C",
+"V+    c #EAE7BD",
+"W+    c #DAD9B7",
+"X+    c #434238",
+"Y+    c #D9D8B9",
+"Z+    c #828170",
+"`+    c #131310",
+" @    c #3D3D35",
+".@    c #BABAA2",
+"+@    c #121210",
+"@@    c #5B5B50",
+"#@    c #090908",
+"$@    c #060605",
+"%@    c #616157",
+"&@    c #E0DFC9",
+"*@    c #636359",
+"=@    c #121211",
+"-@    c #626159",
+";@    c #DEDECA",
+">@    c #68685F",
+",@    c #5C5C55",
+"'@    c #D2D2C1",
+")@    c #383835",
+"!@    c #96968D",
+"~@    c #757671",
+"{@    c #DBDBD2",
+"]@    c #D9DBDA",
+"^@    c #D3D5E5",
+"/@    c #CBCEDF",
+"(@    c #3B3C41",
+"_@    c #2E2E24",
+":@    c #EDE8AD",
+"<@    c #F5F1B3",
+"[@    c #D0CB99",
+"}@    c #26261C",
+"|@    c #0F0F10",
+"1@    c #505257",
+"2@    c #838790",
+"3@    c #9FA2AB",
+"4@    c #AEB2BA",
+"5@    c #B1B5BD",
+"6@    c #B2B6BE",
+"7@    c #B1B5BE",
+"8@    c #B1B5BF",
+"9@    c #B0B4BE",
+"0@    c #ACB0BA",
+"a@    c #666870",
+"b@    c #0C0C0D",
+"c@    c #11110E",
+"d@    c #8D8B72",
+"e@    c #E3E1B8",
+"f@    c #444439",
+"g@    c #B5B399",
+"h@    c #E7E6C5",
+"i@    c #BBBAA1",
+"j@    c #24241F",
+"k@    c #272722",
+"l@    c #AAAA94",
+"m@    c #646457",
+"n@    c #201F1C",
+"o@    c #6B6B5F",
+"p@    c #2E2E29",
+"q@    c #858477",
+"r@    c #A7A696",
+"s@    c #141412",
+"t@    c #3A3934",
+"u@    c #B2B2A2",
+"v@    c #AAAA9C",
+"w@    c #161615",
+"x@    c #363632",
+"y@    c #ACAC9F",
+"z@    c #707068",
+"A@    c #2D2D2B",
+"B@    c #7F7F78",
+"C@    c #040404",
+"D@    c #2A2A27",
+"E@    c #73736D",
+"F@    c #B8B9B0",
+"G@    c #D3D5E4",
+"H@    c #636252",
+"I@    c #171711",
+"J@    c #DFDBA1",
+"K@    c #F6F1B3",
+"L@    c #C4C190",
+"M@    c #10100C",
+"N@    c #282828",
+"O@    c #70737B",
+"P@    c #9599A1",
+"Q@    c #AEB1B9",
+"R@    c #6A6C64",
+"S@    c #595B57",
+"T@    c #94979A",
+"U@    c #AFB3BB",
+"V@    c #9C9FA4",
+"W@    c #5D5E5C",
+"X@    c #666761",
+"Y@    c #A6ABB4",
+"Z@    c #B0B4BF",
+"`@    c #9EA1AC",
+" #    c #27282B",
+".#    c #080806",
+"+#    c #73725D",
+"@#    c #DFDDB5",
+"##    c #DAD9B6",
+"$#    c #424239",
+"%#    c #282822",
+"&#    c #A0A08B",
+"*#    c #ACAB96",
+"=#    c #646458",
+"-#    c #9C9C8A",
+";#    c #AAAA97",
+">#    c #58584F",
+",#    c #C8C7B4",
+"'#    c #252521",
+")#    c #383833",
+"!#    c #A8A899",
+"~#    c #E0E0CD",
+"{#    c #2A2A26",
+"]#    c #353531",
+"^#    c #A5A599",
+"/#    c #D9D9CA",
+"(#    c #75756D",
+"_#    c #010101",
+":#    c #2D2D2A",
+"<#    c #81817B",
+"[#    c #CACBC2",
+"}#    c #DBDDD7",
+"|#    c #58595D",
+"1#    c #AEADA2",
+"2#    c #AEAB7E",
+"3#    c #F6F2B2",
+"4#    c #F6F2B3",
+"5#    c #D0CC98",
+"6#    c #333434",
+"7#    c #797C84",
+"8#    c #9FA2AA",
+"9#    c #B1B5BC",
+"0#    c #AFB2B7",
+"a#    c #76701E",
+"b#    c #CBC02A",
+"c#    c #4C4E4F",
+"d#    c #9B9EA6",
+"e#    c #B1B6BE",
+"f#    c #6C6E6E",
+"g#    c #CEC32B",
+"h#    c #726D1C",
+"i#    c #7E8289",
+"j#    c #ACB1BB",
+"k#    c #B1B5C0",
+"l#    c #ACB0BB",
+"m#    c #333539",
+"n#    c #080807",
+"o#    c #797862",
+"p#    c #E2E0B9",
+"q#    c #CBCAAC",
+"r#    c #B1B097",
+"s#    c #E3E1C2",
+"t#    c #49483F",
+"u#    c #2B2B26",
+"v#    c #B0AF9A",
+"w#    c #6F6E61",
+"x#    c #C6C6AF",
+"y#    c #D7D6BE",
+"z#    c #5A5A50",
+"A#    c #C0BFAD",
+"B#    c #292925",
+"C#    c #3C3C36",
+"D#    c #E1E1CE",
+"E#    c #2D2D29",
+"F#    c #393934",
+"G#    c #DFDFCF",
+"H#    c #BBBBAF",
+"I#    c #0C0C0B",
+"J#    c #3B3B38",
+"K#    c #9B9B92",
+"L#    c #D4D5CA",
+"M#    c #A5A6A8",
+"N#    c #37362A",
+"O#    c #4F4E39",
+"P#    c #F7F2B1",
+"Q#    c #EDE9AD",
+"R#    c #29281E",
+"S#    c #29292A",
+"T#    c #787B83",
+"U#    c #A0A4AB",
+"V#    c #B2B6BC",
+"W#    c #B3B6BD",
+"X#    c #7A7D7B",
+"Y#    c #B9AF27",
+"Z#    c #948C1F",
+"`#    c #636669",
+" $    c #9EA1A9",
+".$    c #979A9D",
+"+$    c #968E1F",
+"@$    c #B6AD26",
+"#$    c #535557",
+"$$    c #A3A7B0",
+"%$    c #ACB0BC",
+"&$    c #282A2D",
+"*$    c #11110F",
+"=$    c #99987D",
+"-$    c #E8E6BE",
+";$    c #CDCBAB",
+">$    c #3A3A31",
+",$    c #9A9982",
+"'$    c #636254",
+")$    c #B7B69C",
+"!$    c #43433A",
+"~$    c #292923",
+"{$    c #9A9A86",
+"]$    c #A6A590",
+"^$    c #69685C",
+"/$    c #CDCCB5",
+"($    c #CBCAB3",
+"_$    c #55554C",
+":$    c #BDBDA9",
+"<$    c #363631",
+"[$    c #1B1B19",
+"}$    c #A1A193",
+"|$    c #C8C8B7",
+"1$    c #0D0D0C",
+"2$    c #9F9F94",
+"3$    c #BFBFB1",
+"4$    c #292927",
+"5$    c #53544E",
+"6$    c #010100",
+"7$    c #575752",
+"8$    c #D2D3C9",
+"9$    c #2E2E31",
+"0$    c #A7A699",
+"a$    c #D0CC95",
+"b$    c #F7F2B2",
+"c$    c #717052",
+"d$    c #10100F",
+"e$    c #707379",
+"f$    c #999CA3",
+"g$    c #B2B5BC",
+"h$    c #B3B6BC",
+"i$    c #ACAFB3",
+"j$    c #5E5C28",
+"k$    c #F3E633",
+"l$    c #4E4C25",
+"m$    c #7A7D86",
+"n$    c #AAAEB5",
+"o$    c #B2B5BE",
+"p$    c #5A582F",
+"q$    c #555120",
+"r$    c #868A91",
+"s$    c #AEB2BD",
+"t$    c #B0B5C0",
+"u$    c #A0A4AE",
+"v$    c #0D0E0F",
+"w$    c #2F2E26",
+"x$    c #C1BF9D",
+"y$    c #EAE8C1",
+"z$    c #3C3C34",
+"A$    c #C1C0AB",
+"B$    c #1F1F1B",
+"C$    c #989888",
+"D$    c #919082",
+"E$    c #080808",
+"F$    c #474742",
+"G$    c #232320",
+"H$    c #696962",
+"I$    c #464642",
+"J$    c #D4D5CB",
+"K$    c #B3B5C4",
+"L$    c #4D4C3E",
+"M$    c #4B4935",
+"N$    c #D8D49C",
+"O$    c #050504",
+"P$    c #57595B",
+"Q$    c #898D94",
+"R$    c #B0B4B9",
+"S$    c #ABAEB2",
+"T$    c #545339",
+"U$    c #DCD02E",
+"V$    c #958D20",
+"W$    c #5A5C5D",
+"X$    c #58584C",
+"Y$    c #65665E",
+"Z$    c #A7ABB2",
+"`$    c #6C6D66",
+" %    c #63645B",
+".%    c #7E8182",
+"+%    c #989020",
+"@%    c #DACE2E",
+"#%    c #43422A",
+"$%    c #92969E",
+"%%    c #AFB3BE",
+"&%    c #B0B4C0",
+"*%    c #6E7178",
+"=%    c #030303",
+"-%    c #6C6B58",
+";%    c #E1DEB8",
+">%    c #AEAD91",
+",%    c #71705F",
+"'%    c #666555",
+")%    c #666656",
+"!%    c #696858",
+"~%    c #666657",
+"{%    c #7A7968",
+"]%    c #7F7E6D",
+"^%    c #666658",
+"/%    c #757464",
+"(%    c #7F7F6E",
+"_%    c #636357",
+":%    c #989685",
+"<%    c #A5A592",
+"[%    c #757468",
+"}%    c #636358",
+"|%    c #89887A",
+"1%    c #D0CFBB",
+"2%    c #9A9A8B",
+"3%    c #52524B",
+"4%    c #76766B",
+"5%    c #77776E",
+"6%    c #67675E",
+"7%    c #73736B",
+"8%    c #7F7F75",
+"9%    c #696A63",
+"0%    c #676760",
+"a%    c #8F8F86",
+"b%    c #8D8D85",
+"c%    c #63635D",
+"d%    c #70706A",
+"e%    c #ACADA5",
+"f%    c #D4D6E3",
+"g%    c #424348",
+"h%    c #424246",
+"i%    c #070705",
+"j%    c #A9A678",
+"k%    c #6A684C",
+"l%    c #1D1D1D",
+"m%    c #797C85",
+"n%    c #A5A9AF",
+"o%    c #ADB0B3",
+"p%    c #767877",
+"q%    c #5F5D26",
+"r%    c #DDD12E",
+"s%    c #B7AD26",
+"t%    c #46473E",
+"u%    c #4A4B3F",
+"v%    c #BCB227",
+"w%    c #958D1F",
+"x%    c #5E6162",
+"y%    c #A6AAB2",
+"z%    c #858888",
+"A%    c #494A40",
+"B%    c #595A50",
+"C%    c #BAB027",
+"D%    c #DBD02E",
+"E%    c #585420",
+"F%    c #646667",
+"G%    c #A5A9B1",
+"H%    c #AFB3BF",
+"I%    c #1A1B1E",
+"J%    c #2C2B25",
+"K%    c #B7B596",
+"L%    c #CFCEAD",
+"M%    c #CCCBAB",
+"N%    c #CCCAAC",
+"O%    c #CBCAAD",
+"P%    c #CDCCAF",
+"Q%    c #D5D3B6",
+"R%    c #CAC9AE",
+"S%    c #CAC9AF",
+"T%    c #D4D3B8",
+"U%    c #CCCBB2",
+"V%    c #C9C8B0",
+"W%    c #CDCCB4",
+"X%    c #E0DFC5",
+"Y%    c #CECDB6",
+"Z%    c #C7C7B2",
+"`%    c #C9C9B4",
+" &    c #DEDDC7",
+".&    c #E0E0CB",
+"+&    c #CBCAB7",
+"@&    c #BBBBAA",
+"#&    c #CBCBBA",
+"$&    c #CDCDBC",
+"%&    c #C5C5B6",
+"&&    c #CFCFC0",
+"*&    c #C7C7B8",
+"=&    c #C4C4B7",
+"-&    c #CBCBBE",
+";&    c #D4D5C7",
+">&    c #C4C4B9",
+",&    c #C3C3B9",
+"'&    c #CDCEC4",
+")&    c #9294A0",
+"!&    c #9B9A8B",
+"~&    c #090906",
+"{&    c #EFEAAA",
+"]&    c #F7F3B1",
+"^&    c #F2EDAE",
+"/&    c #11110C",
+"(&    c #525455",
+"_&    c #8A8D95",
+":&    c #6B6C66",
+"<&    c #7A741D",
+"[&    c #BFB528",
+"}&    c #F2E533",
+"|&    c #938B1F",
+"1&    c #49493D",
+"2&    c #D6CB2D",
+"3&    c #434228",
+"4&    c #757880",
+"5&    c #A3A8AF",
+"6&    c #ADB1B8",
+"7&    c #525137",
+"8&    c #D5CA2D",
+"9&    c #49493F",
+"0&    c #57584F",
+"a&    c #F2E633",
+"b&    c #BEB428",
+"c&    c #78721C",
+"d&    c #575855",
+"e&    c #A4A8B3",
+"f&    c #65686F",
+"g&    c #7F7D68",
+"h&    c #E5E3BD",
+"i&    c #E8E7C5",
+"j&    c #8F9093",
+"k&    c #696857",
+"l&    c #3E3D2C",
+"m&    c #F8F3B0",
+"n&    c #B7B383",
+"o&    c #71737A",
+"p&    c #9FA2A8",
+"q&    c #636562",
+"r&    c #8E861E",
+"s&    c #4C4A27",
+"t&    c #5D5F60",
+"u&    c #4D4E41",
+"v&    c #434229",
+"w&    c #74777F",
+"x&    c #9DA0A8",
+"y&    c #B0B5BD",
+"z&    c #ABB0B7",
+"A&    c #504F35",
+"B&    c #B7AE26",
+"C&    c #77797B",
+"D&    c #514F2B",
+"E&    c #8F871E",
+"F&    c #414344",
+"G&    c #9295A0",
+"H&    c #A0A4AF",
+"I&    c #4B4B3E",
+"J&    c #D2D0AD",
+"K&    c #555547",
+"L&    c #A09F87",
+"M&    c #979789",
+"N&    c #1C1C1A",
+"O&    c #B4B4A5",
+"P&    c #B6B6A9",
+"Q&    c #37383C",
+"R&    c #5C5D61",
+"S&    c #403F32",
+"T&    c #6E6C4E",
+"U&    c #7E7B5A",
+"V&    c #1F201E",
+"W&    c #7B7E86",
+"X&    c #ABAFB4",
+"Y&    c #A4A7A9",
+"Z&    c #6C6E6C",
+"`&    c #747678",
+" *    c #8C8F96",
+".*    c #5F6055",
+"+*    c #D6CA2D",
+"@*    c #9DA0A7",
+"#*    c #4E4F47",
+"$*    c #9FA4AD",
+"%*    c #8C8F93",
+"&*    c #777981",
+"**    c #9FA3AE",
+"=*    c #1D1E20",
+"-*    c #34342C",
+";*    c #B6B496",
+">*    c #B8B69A",
+",*    c #0E0E0C",
+"'*    c #22221D",
+")*    c #C2C1A5",
+"!*    c #E1E0CB",
+"~*    c #CBCBB7",
+"{*    c #3D3D37",
+"]*    c #0F0F0E",
+"^*    c #8A8A7F",
+"/*    c #C6C6B5",
+"(*    c #66665F",
+"_*    c #74746C",
+":*    c #C7C7B9",
+"<*    c #DDDED0",
+"[*    c #CBCBC0",
+"}*    c #DCDCD0",
+"|*    c #60626A",
+"1*    c #36373A",
+"2*    c #22221A",
+"3*    c #908D66",
+"4*    c #F7F3B0",
+"5*    c #56543D",
+"6*    c #383938",
+"7*    c #82868D",
+"8*    c #B4B7BC",
+"9*    c #B2B6BB",
+"0*    c #B0B3B9",
+"a*    c #B2B5BB",
+"b*    c #747672",
+"c*    c #877F1C",
+"d*    c #44432A",
+"e*    c #74777E",
+"f*    c #9CA0A7",
+"g*    c #B0B4BC",
+"h*    c #6B6D72",
+"i*    c #3B3D3F",
+"j*    c #63656B",
+"k*    c #ABAEB7",
+"l*    c #4F4E35",
+"m*    c #87801D",
+"n*    c #4C4E4D",
+"o*    c #8E929B",
+"p*    c #AFB4BE",
+"q*    c #ADB1BC",
+"r*    c #3D3E43",
+"s*    c #292924",
+"t*    c #9C9A81",
+"u*    c #B5B397",
+"v*    c #44443A",
+"w*    c #858573",
+"x*    c #E3E2C2",
+"y*    c #191916",
+"z*    c #B2B29A",
+"A*    c #E2E1C5",
+"B*    c #B9B8A3",
+"C*    c #E3E2C9",
+"D*    c #A2A291",
+"E*    c #22221E",
+"F*    c #31312C",
+"G*    c #484741",
+"H*    c #131311",
+"I*    c #8B8B7F",
+"J*    c #8B8B80",
+"K*    c #D1D2C3",
+"L*    c #99998F",
+"M*    c #181817",
+"N*    c #0E0E0D",
+"O*    c #7B7B74",
+"P*    c #DDDED3",
+"Q*    c #7C7E88",
+"R*    c #1B1C1E",
+"S*    c #12120D",
+"T*    c #A4A173",
+"U*    c #3F3E2D",
+"V*    c #444445",
+"W*    c #B2B6BA",
+"X*    c #B3B7BC",
+"Y*    c #888B8A",
+"Z*    c #878A8F",
+"`*    c #6E7075",
+" =    c #4F5258",
+".=    c #A5A9B2",
+"+=    c #ACAFB8",
+"@=    c #7D8082",
+"#=    c #898D96",
+"$=    c #A8ACB6",
+"%=    c #B0B5BF",
+"&=    c #505258",
+"*=    c #8B8972",
+"==    c #E8E6C0",
+"-=    c #515044",
+";=    c #302F28",
+">=    c #81816D",
+",=    c #090807",
+"'=    c #3B3B33",
+")=    c #CFCFB1",
+"!=    c #6E6E5F",
+"~=    c #717162",
+"{=    c #CECDB4",
+"]=    c #66665A",
+"^=    c #767568",
+"/=    c #AAAA98",
+"(=    c #33332E",
+"_=    c #3F3F38",
+":=    c #64645B",
+"<=    c #A3A499",
+"[=    c #3D3D39",
+"}=    c #5F605A",
+"|=    c #363633",
+"1=    c #787973",
+"2=    c #DBDCD2",
+"3=    c #8D8F9A",
+"4=    c #A8A576",
+"5=    c #353426",
+"6=    c #444646",
+"7=    c #8E9198",
+"8=    c #B1B5BB",
+"9=    c #B2B6BD",
+"0=    c #444648",
+"a=    c #2D2D32",
+"b=    c #8E929C",
+"c=    c #AFB3BD",
+"d=    c #57595F",
+"e=    c #21211D",
+"f=    c #83826B",
+"g=    c #E7E5BF",
+"h=    c #D2D0AF",
+"i=    c #050404",
+"j=    c #3A3930",
+"k=    c #656555",
+"l=    c #A5A48D",
+"m=    c #E6E4C4",
+"n=    c #B9B89F",
+"o=    c #656457",
+"p=    c #CAC9B0",
+"q=    c #B0AF99",
+"r=    c #69695C",
+"s=    c #5A5950",
+"t=    c #0F0F0D",
+"u=    c #7E7E72",
+"v=    c #989789",
+"w=    c #BBBBA9",
+"x=    c #10100E",
+"y=    c #65655E",
+"z=    c #575751",
+"A=    c #1A1A19",
+"B=    c #9A9B91",
+"C=    c #B9B9AF",
+"D=    c #252524",
+"E=    c #B9BAB1",
+"F=    c #9496A2",
+"G=    c #A3A073",
+"H=    c #F8F3AF",
+"I=    c #403F2E",
+"J=    c #414242",
+"K=    c #8D9198",
+"L=    c #808280",
+"M=    c #A8ACAF",
+"N=    c #77797E",
+"O=    c #4C4E55",
+"P=    c #90939E",
+"Q=    c #A8ACB3",
+"R=    c #7D7F80",
+"S=    c #AEB2BB",
+"T=    c #4F5157",
+"U=    c #242420",
+"V=    c #747360",
+"W=    c #030202",
+"X=    c #141411",
+"Y=    c #151512",
+"Z=    c #56564A",
+"`=    c #DAD8BA",
+" -    c #BDBCA2",
+".-    c #656558",
+"+-    c #B3B29C",
+"@-    c #6A6A5E",
+"#-    c #4E4E45",
+"$-    c #878779",
+"%-    c #D5D4BE",
+"&-    c #65655C",
+"*-    c #AEAEA0",
+"=-    c #67675F",
+"--    c #4E4E48",
+";-    c #8A8A81",
+">-    c #4D4D48",
+",-    c #242523",
+"'-    c #979891",
+")-    c #8B8D98",
+"!-    c #24241B",
+"~-    c #8E8B64",
+"{-    c #58573F",
+"]-    c #323334",
+"^-    c #8A8D94",
+"/-    c #6E6F66",
+"(-    c #9B9320",
+"_-    c #4C4A2A",
+":-    c #94979B",
+"<-    c #73767C",
+"[-    c #393A3F",
+"}-    c #52545C",
+"|-    c #81858F",
+"1-    c #A7ABB4",
+"2-    c #A8ACB2",
+"3-    c #555430",
+"4-    c #9E9521",
+"5-    c #55564F",
+"6-    c #A6AAB3",
+"7-    c #3B3D41",
+"8-    c #2F2F29",
+"9-    c #8D8B73",
+"0-    c #D9D7B3",
+"a-    c #161612",
+"b-    c #35352D",
+"c-    c #807E6B",
+"d-    c #908F79",
+"e-    c #8E8E78",
+"f-    c #0C0C0A",
+"g-    c #1A1A16",
+"h-    c #B1B198",
+"i-    c #CAC8AD",
+"j-    c #46463D",
+"k-    c #C9C8AF",
+"l-    c #79786A",
+"m-    c #878777",
+"n-    c #53534B",
+"o-    c #DAD9C3",
+"p-    c #B9B8A6",
+"q-    c #85857A",
+"r-    c #A4A497",
+"s-    c #606059",
+"t-    c #83837A",
+"u-    c #5B5B55",
+"v-    c #D7D8CA",
+"w-    c #A4A49C",
+"x-    c #50504C",
+"y-    c #93948D",
+"z-    c #7A7C85",
+"A-    c #1D1D1F",
+"B-    c #444335",
+"C-    c #6A684B",
+"D-    c #82805D",
+"E-    c #191A1A",
+"F-    c #82858C",
+"G-    c #9EA1A1",
+"H-    c #656764",
+"I-    c #8B8D8C",
+"J-    c #B0B4B8",
+"K-    c #6F7169",
+"L-    c #ABA224",
+"M-    c #DDD22E",
+"N-    c #484626",
+"O-    c #B2B5BD",
+"P-    c #ADB1B9",
+"Q-    c #A7ABB3",
+"R-    c #A8ACB1",
+"S-    c #E0D42F",
+"T-    c #ACA324",
+"U-    c #4A4B46",
+"V-    c #8C9099",
+"W-    c #8C8F91",
+"X-    c #636666",
+"Y-    c #989CA1",
+"Z-    c #3D3C34",
+"`-    c #9F9E82",
+" ;    c #DDDBB9",
+".;    c #676657",
+"+;    c #171714",
+"@;    c #D7D5B8",
+"#;    c #C0BFA9",
+"$;    c #4E4D45",
+"%;    c #2C2C28",
+"&;    c #BCBCAE",
+"*;    c #454641",
+"=;    c #333330",
+"-;    c #7D7D76",
+";;    c #5D5E66",
+">;    c #39393C",
+",;    c #6D6C5B",
+"';    c #393828",
+");    c #BFBB87",
+"!;    c #6E7278",
+"~;    c #ABAEB3",
+"{;    c #61635F",
+"];    c #A49B22",
+"^;    c #5A5723",
+"/;    c #6F706F",
+"(;    c #61625A",
+"_;    c #A9ACB2",
+":;    c #5E5B27",
+"<;    c #A49C22",
+"[;    c #D3C82C",
+"};    c #464848",
+"|;    c #9DA1AC",
+"1;    c #9DA0AB",
+"2;    c #4E4D41",
+"3;    c #B9B897",
+"4;    c #AEAD90",
+"5;    c #676655",
+"6;    c #5E5D4F",
+"7;    c #7C7B68",
+"8;    c #C9C7A8",
+"9;    c #C4C3A4",
+"0;    c #858471",
+"a;    c #606052",
+"b;    c #626254",
+"c;    c #9B9985",
+"d;    c #D6D5B9",
+"e;    c #6B6B5D",
+"f;    c #525247",
+"g;    c #807F70",
+"h;    c #68675A",
+"i;    c #5E5D53",
+"j;    c #908F7F",
+"k;    c #D5D4BD",
+"l;    c #8A8A7B",
+"m;    c #57564E",
+"n;    c #737368",
+"o;    c #747469",
+"p;    c #66665D",
+"q;    c #717168",
+"r;    c #66665E",
+"s;    c #5A5A54",
+"t;    c #8C8C82",
+"u;    c #CFD0C1",
+"v;    c #7F7F76",
+"w;    c #4B4B46",
+"x;    c #5F5F59",
+"y;    c #7E7E77",
+"z;    c #999991",
+"A;    c #333438",
+"B;    c #616165",
+"C;    c #A09F90",
+"D;    c #ECE8A6",
+"E;    c #F5F0AE",
+"F;    c #15140F",
+"G;    c #45474A",
+"H;    c #9DA1A6",
+"I;    c #74756F",
+"J;    c #6D6821",
+"K;    c #A89F23",
+"L;    c #4B4B3C",
+"M;    c #5B5C53",
+"N;    c #DED22E",
+"O;    c #94989C",
+"P;    c #B1B4BC",
+"Q;    c #A9ADB2",
+"R;    c #ACA224",
+"S;    c #464740",
+"T;    c #494839",
+"U;    c #A9A023",
+"V;    c #F1E532",
+"W;    c #A79E23",
+"X;    c #69641F",
+"Y;    c #4C4E4C",
+"Z;    c #606269",
+"`;    c #656453",
+" >    c #D5D3AE",
+".>    c #CCCAA8",
+"+>    c #C9C7A7",
+"@>    c #CAC8A8",
+"#>    c #DEDCBA",
+"$>    c #D6D4B5",
+"%>    c #C7C6AA",
+"&>    c #CFCDB0",
+"*>    c #E5E4C5",
+"=>    c #DEDDC0",
+"->    c #C2C1A8",
+";>    c #BEBDA6",
+">>    c #D4D3B9",
+",>    c #C8C7B0",
+"'>    c #C9C8B1",
+")>    c #E1E0C8",
+"!>    c #E0E0C8",
+"~>    c #CCCCB6",
+"{>    c #BEBEAB",
+"]>    c #CDCDB9",
+"^>    c #D0CFBC",
+"/>    c #C3C3B2",
+"(>    c #CACAB9",
+"_>    c #C1C1B3",
+":>    c #C6C6B7",
+"<>    c #DDDDCE",
+"[>    c #DCDCCD",
+"}>    c #C4C4B8",
+"|>    c #B4B5AA",
+"1>    c #C0C0B5",
+"2>    c #D8D8CC",
+"3>    c #C9CCDC",
+"4>    c #959699",
+"5>    c #0B0A08",
+"6>    c #A19E71",
+"7>    c #717051",
+"8>    c #141414",
+"9>    c #868A90",
+"0>    c #B1B5B9",
+"a>    c #727473",
+"b>    c #4F4D26",
+"c>    c #D0C52C",
+"d>    c #C7BC2A",
+"e>    c #48483A",
+"f>    c #5A5C54",
+"g>    c #AAA124",
+"h>    c #8B841E",
+"i>    c #5E6062",
+"j>    c #A3A7AE",
+"k>    c #898C8D",
+"l>    c #8C851E",
+"m>    c #474842",
+"n>    c #49483A",
+"o>    c #C9BE2A",
+"p>    c #CFC42B",
+"q>    c #4B4823",
+"r>    c #595B5E",
+"s>    c #80838C",
+"t>    c #A4A8B2",
+"u>    c #171719",
+"v>    c #3B3B34",
+"w>    c #86856D",
+"x>    c #E7E5BD",
+"y>    c #070808",
+"z>    c #565445",
+"A>    c #41402E",
+"B>    c #DFDB9F",
+"C>    c #080705",
+"D>    c #484A4E",
+"E>    c #A4A7AD",
+"F>    c #B3B7BB",
+"G>    c #ABAFB2",
+"H>    c #4E4D3B",
+"I>    c #D2C62C",
+"J>    c #5D5E5E",
+"K>    c #656660",
+"L>    c #575856",
+"M>    c #7F838C",
+"N>    c #A9ACB3",
+"O>    c #717371",
+"P>    c #555651",
+"Q>    c #5B5D5E",
+"R>    c #D0C52B",
+"S>    c #414130",
+"T>    c #757982",
+"U>    c #979BA5",
+"V>    c #ACB1BA",
+"W>    c #66686F",
+"X>    c #5A594B",
+"Y>    c #BCBA99",
+"Z>    c #BBBA9E",
+"`>    c #C3C3B5",
+" ,    c #CECEC2",
+".,    c #3A3B40",
+"+,    c #494A4E",
+"@,    c #B0AEA2",
+"#,    c #C6C28C",
+"$,    c #7B7958",
+"%,    c #080909",
+"&,    c #777A80",
+"*,    c #AFB3B8",
+"=,    c #AEB2B5",
+"-,    c #565329",
+";,    c #535023",
+">,    c #8E9298",
+",,    c #A9ADB5",
+"',    c #5E5B2A",
+"),    c #4D4B22",
+"!,    c #73767F",
+"~,    c #9CA0A9",
+"{,    c #9C9FA8",
+"],    c #0A0A0C",
+"^,    c #404038",
+"/,    c #807F67",
+"(,    c #8B8A73",
+"_,    c #21211B",
+":,    c #414137",
+"<,    c #3A3931",
+"[,    c #ABA991",
+"},    c #E2E1C2",
+"|,    c #E1E1CD",
+"1,    c #DEDECB",
+"2,    c #D6D6C7",
+"3,    c #565650",
+"4,    c #707069",
+"5,    c #D9DACF",
+"6,    c #D5D7D7",
+"7,    c #D7D9DB",
+"8,    c #AAADBB",
+"9,    c #A6A7A9",
+"0,    c #424133",
+"a,    c #43422F",
+"b,    c #F1ECAD",
+"c,    c #2C2B20",
+"d,    c #1A1A1C",
+"e,    c #90949A",
+"f,    c #B2B5BA",
+"g,    c #818382",
+"h,    c #B0A725",
+"i,    c #9B9220",
+"j,    c #67696B",
+"k,    c #AAADB4",
+"l,    c #939598",
+"m,    c #9D9521",
+"n,    c #ADA424",
+"o,    c #555759",
+"p,    c #8E919A",
+"q,    c #A9ADB7",
+"r,    c #232427",
+"s,    c #636251",
+"t,    c #C7C4A0",
+"u,    c #D9D7B2",
+"v,    c #3F3F34",
+"w,    c #97967E",
+"x,    c #B8B79A",
+"y,    c #9D9C83",
+"z,    c #2E2E27",
+"A,    c #BAB99E",
+"B,    c #161613",
+"C,    c #848473",
+"D,    c #E4E3C7",
+"E,    c #35352F",
+"F,    c #23231F",
+"G,    c #2A2A25",
+"H,    c #DEDDC5",
+"I,    c #3A3A35",
+"J,    c #DDDDC7",
+"K,    c #7B7A6F",
+"L,    c #33332F",
+"M,    c #B8B8AA",
+"N,    c #919287",
+"O,    c #71726B",
+"P,    c #1E1E1C",
+"Q,    c #212120",
+"R,    c #9B9B96",
+"S,    c #D6D7CF",
+"T,    c #232321",
+"U,    c #212221",
+"V,    c #7E7F7B",
+"W,    c #292928",
+"X,    c #181818",
+"Y,    c #555554",
+"Z,    c #CACCC9",
+"`,    c #B6B8B7",
+" '    c #111111",
+".'    c #717273",
+"+'    c #D6D8DB",
+"@'    c #535456",
+"#'    c #212122",
+"$'    c #707174",
+"%'    c #343536",
+"&'    c #A7A9AF",
+"*'    c #616366",
+"='    c #0D0D0E",
+"-'    c #1C1D1E",
+";'    c #2D2E30",
+">'    c #A2A4AD",
+",'    c #D1D4E1",
+"''    c #38383B",
+")'    c #B8B7AD",
+"!'    c #050503",
+"~'    c #A09D72",
+"{'    c #D9D59C",
+"]'    c #14130E",
+"^'    c #212224",
+"/'    c #979BA0",
+"('    c #B1B4B8",
+"_'    c #726D1E",
+":'    c #484A4A",
+"<'    c #6B6C6C",
+"['    c #6E681C",
+"}'    c #757780",
+"|'    c #2E2F32",
+"1'    c #595849",
+"2'    c #414136",
+"3'    c #B0AF93",
+"4'    c #E9E7C3",
+"5'    c #434339",
+"6'    c #91917C",
+"7'    c #3C3C33",
+"8'    c #676659",
+"9'    c #414138",
+"0'    c #777768",
+"a'    c #969585",
+"b'    c #46463F",
+"c'    c #5E5E54",
+"d'    c #5B5B53",
+"e'    c #21211E",
+"f'    c #BBBBAD",
+"g'    c #96968B",
+"h'    c #73736C",
+"i'    c #4D4D49",
+"j'    c #94958F",
+"k'    c #4A4A47",
+"l'    c #4C4D4B",
+"m'    c #424241",
+"n'    c #272827",
+"o'    c #C0C1C0",
+"p'    c #191919",
+"q'    c #313131",
+"r'    c #616262",
+"s'    c #424243",
+"t'    c #616263",
+"u'    c #808183",
+"v'    c #252526",
+"w'    c #5E5F62",
+"x'    c #4C4D50",
+"y'    c #525357",
+"z'    c #67686E",
+"A'    c #BCBFC9",
+"B'    c #8A8C98",
+"C'    c #030304",
+"D'    c #AFB0B3",
+"E'    c #727160",
+"F'    c #100F0B",
+"G'    c #D7D399",
+"H'    c #CBC793",
+"I'    c #12110D",
+"J'    c #18191B",
+"K'    c #878B90",
+"L'    c #B1B5BA",
+"M'    c #707270",
+"N'    c #515352",
+"O'    c #707378",
+"P'    c #9DA0A6",
+"Q'    c #A3A7AC",
+"R'    c #5F6160",
+"S'    c #515253",
+"T'    c #82868F",
+"U'    c #ADB2BB",
+"V'    c #999CA5",
+"W'    c #222325",
+"X'    c #555546",
+"Y'    c #989679",
+"Z'    c #E7E4B8",
+"`'    c #59594B",
+" )    c #4E4E43",
+".)    c #676558",
+"+)    c #9B9A86",
+"@)    c #33332C",
+"#)    c #B5B59E",
+"$)    c #252420",
+"%)    c #282823",
+"&)    c #9C9C8B",
+"*)    c #46463E",
+"=)    c #7B7B6F",
+"-)    c #22221F",
+";)    c #3B3A35",
+">)    c #8C8C80",
+",)    c #8E8E83",
+"')    c #585851",
+"))    c #444540",
+"!)    c #242423",
+"~)    c #7A7A74",
+"{)    c #9B9C94",
+"])    c #AEAFA7",
+"^)    c #101010",
+"/)    c #353533",
+"()    c #8B8B87",
+"_)    c #464744",
+":)    c #81817E",
+"<)    c #A7A9A5",
+"[)    c #6E6F6D",
+"})    c #404040",
+"|)    c #5F6060",
+"1)    c #747474",
+"2)    c #919294",
+"3)    c #3B3C3C",
+"4)    c #A5A7AA",
+"5)    c #0C0C0C",
+"6)    c #232324",
+"7)    c #747579",
+"8)    c #797A7E",
+"9)    c #1E1E20",
+"0)    c #6D6E73",
+"a)    c #AAACB5",
+"b)    c #8A8C93",
+"c)    c #BEC0CB",
+"d)    c #B8BAC9",
+"e)    c #65666A",
+"f)    c #3B3B2E",
+"g)    c #2A291E",
+"h)    c #E8E4A6",
+"i)    c #D3D099",
+"j)    c #25241B",
+"k)    c #525458",
+"l)    c #ABAEB4",
+"m)    c #AAAEB4",
+"n)    c #B0B4BB",
+"o)    c #AFB4BC",
+"p)    c #626569",
+"q)    c #595748",
+"r)    c #9B9A7C",
+"s)    c #E5E2B7",
+"t)    c #D9D8B2",
+"u)    c #2A2923",
+"v)    c #1D1D19",
+"w)    c #403F36",
+"x)    c #12120F",
+"y)    c #969583",
+"z)    c #808071",
+"A)    c #848374",
+"B)    c #979687",
+"C)    c #131312",
+"D)    c #111110",
+"E)    c #4B4B45",
+"F)    c #7B7B72",
+"G)    c #30302D",
+"H)    c #373734",
+"I)    c #8F8F87",
+"J)    c #D7D8CD",
+"K)    c #393937",
+"L)    c #2C2D2B",
+"M)    c #777773",
+"N)    c #60615E",
+"O)    c #B3B3AF",
+"P)    c #DADCD7",
+"Q)    c #BABBB9",
+"R)    c #1C1C1C",
+"S)    c #0B0B0B",
+"T)    c #101111",
+"U)    c #86878A",
+"V)    c #414243",
+"W)    c #939498",
+"X)    c #D1D3DA",
+"Y)    c #75777B",
+"Z)    c #121213",
+"`)    c #9799A1",
+" !    c #D2D4E0",
+".!    c #C5C8D8",
+"+!    c #252629",
+"@!    c #323235",
+"#!    c #C6C6C3",
+"$!    c #26251D",
+"%!    c #333325",
+"&!    c #E7E2A5",
+"*!    c #EBE7AB",
+"=!    c #636248",
+"-!    c #0E0F10",
+";!    c #4F5155",
+">!    c #94979C",
+",!    c #979BA2",
+"'!    c #5A5C61",
+")!    c #3D3D33",
+"!!    c #696853",
+"~!    c #B1AF8C",
+"{!    c #E7E6B8",
+"]!    c #B0AF92",
+"^!    c #E5E3BF",
+"/!    c #797865",
+"(!    c #504F43",
+"_!    c #626253",
+":!    c #6D6D5E",
+"<!    c #94937F",
+"[!    c #959581",
+"}!    c #676759",
+"|!    c #7B7A6A",
+"1!    c #A7A692",
+"2!    c #D1D1B8",
+"3!    c #1C1C19",
+"4!    c #7B7B6E",
+"5!    c #BCBBA8",
+"6!    c #828177",
+"7!    c #939386",
+"8!    c #818177",
+"9!    c #63635B",
+"0!    c #8B8B81",
+"a!    c #888881",
+"b!    c #BCBDB4",
+"c!    c #090909",
+"d!    c #4B4C49",
+"e!    c #73736F",
+"f!    c #363634",
+"g!    c #C0C0BB",
+"h!    c #696967",
+"i!    c #474847",
+"j!    c #606161",
+"k!    c #8A8B8B",
+"l!    c #8D8F8F",
+"m!    c #636464",
+"n!    c #707172",
+"o!    c #434345",
+"p!    c #A4A5AA",
+"q!    c #C5C7CE",
+"r!    c #93959A",
+"s!    c #A8ABB1",
+"t!    c #74747A",
+"u!    c #313235",
+"v!    c #B4B6C0",
+"w!    c #C5C8D7",
+"x!    c #2E2F33",
+"y!    c #1F2022",
+"z!    c #C2C2C3",
+"A!    c #C5C4BE",
+"B!    c #27261D",
+"C!    c #28271C",
+"D!    c #D3CF97",
+"E!    c #F4EFB2",
+"F!    c #C7C491",
+"G!    c #4C4B38",
+"H!    c #0D0D0A",
+"I!    c #2E2F31",
+"J!    c #434447",
+"K!    c #494B4E",
+"L!    c #444549",
+"M!    c #323335",
+"N!    c #121214",
+"O!    c #38372E",
+"P!    c #5F5E4B",
+"Q!    c #939073",
+"R!    c #D3D0A6",
+"S!    c #EDEABC",
+"T!    c #2C2C24",
+"U!    c #0E0E0B",
+"V!    c #35342C",
+"W!    c #7D7D69",
+"X!    c #BBB99E",
+"Y!    c #2D2D26",
+"Z!    c #0D0D0B",
+"`!    c #4F4E44",
+" ~    c #32322B",
+".~    c #0C0B0A",
+"+~    c #92927F",
+"@~    c #CAC9B1",
+"#~    c #48473F",
+"$~    c #33332D",
+"%~    c #88887A",
+"&~    c #D8D7C2",
+"*~    c #B1B1A0",
+"=~    c #54544D",
+"-~    c #919186",
+";~    c #1A1A18",
+">~    c #222220",
+",~    c #AFB0A5",
+"'~    c #31312F",
+")~    c #1C1C1B",
+"!~    c #747570",
+"~~    c #858580",
+"{~    c #060606",
+"]~    c #1D1D1C",
+"^~    c #444443",
+"/~    c #7C7D7B",
+"(~    c #323232",
+"_~    c #464747",
+":~    c #363636",
+"<~    c #818385",
+"[~    c #4C4C4D",
+"}~    c #7B7B7F",
+"|~    c #9DA0A4",
+"1~    c #37383A",
+"2~    c #66676C",
+"3~    c #414245",
+"4~    c #989AA2",
+"5~    c #B6B8C6",
+"6~    c #C1C1C3",
+"7~    c #C3C3C2",
+"8~    c #3E3D31",
+"9~    c #0E0D0A",
+"0~    c #99966E",
+"a~    c #F5F1B1",
+"b~    c #F0ECB0",
+"c~    c #D4D09D",
+"d~    c #888564",
+"e~    c #484736",
+"f~    c #2C2C21",
+"g~    c #212019",
+"h~    c #1F1F18",
+"i~    c #22221B",
+"j~    c #2B2B22",
+"k~    c #3B3A2E",
+"l~    c #555443",
+"m~    c #7B795F",
+"n~    c #A3A17E",
+"o~    c #D2CFA4",
+"p~    c #EBE7B8",
+"q~    c #6C6B59",
+"r~    c #403F34",
+"s~    c #37362D",
+"t~    c #3E3E34",
+"u~    c #5B5A4C",
+"v~    c #83826F",
+"w~    c #B2B196",
+"x~    c #E4E2C1",
+"y~    c #DAD9B9",
+"z~    c #57574B",
+"A~    c #282722",
+"B~    c #D5D4BA",
+"C~    c #B5B39E",
+"D~    c #494941",
+"E~    c #626258",
+"F~    c #A9A996",
+"G~    c #E3E2CB",
+"H~    c #ABAB9B",
+"I~    c #383733",
+"J~    c #282825",
+"K~    c #4E4E47",
+"L~    c #7D7D74",
+"M~    c #96968A",
+"N~    c #595952",
+"O~    c #3A3A36",
+"P~    c #929289",
+"Q~    c #B7B8AD",
+"R~    c #40403D",
+"S~    c #242422",
+"T~    c #3E3E3B",
+"U~    c #71716D",
+"V~    c #979791",
+"W~    c #9FA09A",
+"X~    c #555654",
+"Y~    c #3D3E3C",
+"Z~    c #30312F",
+"`~    c #525351",
+" {    c #7B7B7A",
+".{    c #AEAFAD",
+"+{    c #D0D1D0",
+"@{    c #5B5B5B",
+"#{    c #262626",
+"${    c #343535",
+"%{    c #696A6B",
+"&{    c #868789",
+"*{    c #747677",
+"={    c #434445",
+"-{    c #333334",
+";{    c #666669",
+">{    c #A0A2A7",
+",{    c #606164",
+"'{    c #393A3C",
+"){    c #29292B",
+"!{    c #4D4E52",
+"~{    c #74767C",
+"{{    c #AFB2BB",
+"]{    c #D2D5E3",
+"^{    c #858790",
+"/{    c #0C0D0D",
+"({    c #353639",
+"_{    c #C2C2C2",
+":{    c #777666",
+"<{    c #3A392A",
+"[{    c #BCB889",
+"}{    c #F5F0B4",
+"|{    c #F3EFB4",
+"1{    c #EBE8AF",
+"2{    c #DBD8A4",
+"3{    c #CAC798",
+"4{    c #BFBB90",
+"5{    c #BAB88D",
+"6{    c #BEBB90",
+"7{    c #CAC79B",
+"8{    c #D9D7A7",
+"9{    c #E8E6B3",
+"0{    c #EFECB9",
+"a{    c #C7C4A3",
+"b{    c #C2C0A0",
+"c{    c #C2C0A1",
+"d{    c #C5C4A4",
+"e{    c #D7D5B4",
+"f{    c #E7E6C2",
+"g{    c #E3E2C1",
+"h{    c #B2B199",
+"i{    c #BCBBA2",
+"j{    c #DAD9BD",
+"k{    c #D6D5BD",
+"l{    c #BFBEAA",
+"m{    c #D7D7BF",
+"n{    c #D6D5C1",
+"o{    c #B7B7A7",
+"p{    c #AEAE9F",
+"q{    c #C3C3B3",
+"r{    c #DDDDCC",
+"s{    c #D8D8C8",
+"t{    c #BCBCAF",
+"u{    c #B9B9AD",
+"v{    c #C1C1B5",
+"w{    c #DCDDD0",
+"x{    c #D5D5CA",
+"y{    c #ABABA3",
+"z{    c #BBBCB4",
+"A{    c #D3D4CB",
+"B{    c #565653",
+"C{    c #363635",
+"D{    c #B9BAB5",
+"E{    c #B8B9B4",
+"F{    c #B0B2AE",
+"G{    c #C5C6C3",
+"H{    c #D9DAD7",
+"I{    c #D6D7D6",
+"J{    c #BCBEBE",
+"K{    c #A8A9A9",
+"L{    c #AEAFB1",
+"M{    c #CACCCE",
+"N{    c #BDBFC2",
+"O{    c #B2B4B8",
+"P{    c #B3B4B9",
+"Q{    c #CBCED4",
+"R{    c #CCCED5",
+"S{    c #B6B9C0",
+"T{    c #B3B5BD",
+"U{    c #A5A6AE",
+"V{    c #B8B9C3",
+"W{    c #D1D4DE",
+"X{    c #A3A5AE",
+"Y{    c #343538",
+"Z{    c #6C6D71",
+"`{    c #49483B",
+" ]    c #353427",
+".]    c #93916C",
+"+]    c #DFDAA4",
+"@]    c #D7D8CF",
+"#]    c #171716",
+"$]    c #949490",
+"%]    c #D4D5CF",
+"&]    c #C3C4CE",
+"*]    c #818288",
+"=]    c #2F3033",
+"-]    c #404144",
+";]    c #B6B6B8",
+">]    c #B7B7AE",
+",]    c #5F5E50",
+"']    c #11110D",
+")]    c #2A291F",
+"!]    c #595842",
+"~]    c #7B795C",
+"{]    c #8F8D6B",
+"]]    c #989572",
+"^]    c #9B9976",
+"/]    c #9B9876",
+"(]    c #9A9876",
+"_]    c #9A9877",
+":]    c #999777",
+"<]    c #999778",
+"[]    c #999779",
+"}]    c #989779",
+"|]    c #97967A",
+"1]    c #97967B",
+"2]    c #96957C",
+"3]    c #95947E",
+"4]    c #94947F",
+"5]    c #949380",
+"6]    c #939280",
+"7]    c #939281",
+"8]    c #929281",
+"9]    c #929282",
+"0]    c #929182",
+"a]    c #929183",
+"b]    c #919183",
+"c]    c #919084",
+"d]    c #909084",
+"e]    c #909085",
+"f]    c #909086",
+"g]    c #8E8F88",
+"h]    c #8D8E88",
+"i]    c #888883",
+"j]    c #686864",
+"k]    c #636360",
+"l]    c #696966",
+"m]    c #888985",
+"n]    c #8C8D8A",
+"o]    c #8C8D8B",
+"p]    c #8B8D8B",
+"q]    c #8B8C8B",
+"r]    c #8B8C8C",
+"s]    c #8A8B8D",
+"t]    c #898B8D",
+"u]    c #898B8E",
+"v]    c #7E8083",
+"w]    c #4F5053",
+"x]    c #262628",
+"y]    c #57575A",
+"z]    c #B1B1B3",
+"A]    c #AAAA9F",
+"B]    c #797869",
+"C]    c #515043",
+"D]    c #333329",
+"E]    c #23221B",
+"F]    c #1B1B15",
+"G]    c #181712",
+"H]    c #171712",
+"I]    c #171713",
+"J]    c #171614",
+"K]    c #161614",
+"L]    c #151615",
+"M]    c #151515",
+"N]    c #151516",
+"O]    c #181919",
+"P]    c #1E1F1F",
+"Q]    c #2E2F30",
+"R]    c #494A4B",
+"S]    c #717173",
+"T]    c #A4A5A7",
+". . . . . . . . . . . . . . + @ # $ % & & & * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = - ; > , ' . . . . . . . . . . . . . . ",
+". . . . . . . . . . . ) ! ~ { ] ^ / ( _ : < < < [ } } | 1 2 2 2 3 4 4 5 5 5 6 7 8 8 9 0 a b c c d d d e f g h h h i i j j k l m n n n o o p q r s s s t u v w x y y z A A B C C D E F G H H I J K L M N O P . . . . . . . . . . . ",
+". . . . . . . . . Q R S T U V W X Y Z `  ...+.+.@.#.$.%.&.*.=.-.;.>.>.,.'.'.).!.~.~.{.].^.^././.(._.:.<.[.}.|.1.2.3.3.4.4.5.6.7.8.9.9.0.a.b.b.c.d.d.e.f.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.x.y.z.A.B.C.D.. . . . . . . . . ",
+". . . . . . . . E.F.G.H.I.I.J.W X Y Z ` K...+.+.@.#.$.$.&.*.=.-.;.>.>.,.,.'.).!.~.~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.P.4.5.6.7.8.9.9.0.0.b.b.Q.d.d.d.e.g.g.h.h.i.i.j.k.l.m.n.n.p.q.R.s.t.u.v.w.S.x.x.T.U.V.W.X.Y.. . . . . . . . ",
+". . . . . . Z.`. +.+++@+#+I.$+%+&+*+=+-+;+>+,+'+)+!+$.$.%.*.=.=.-.>.>.,.,.~+{+{+]+~.{.L.^+/+M./.N._._.<.[.(+|.|.1.3.3.3.4.5.6.7.8.9.9.0.0.b.b.Q.c.d.d.e.g.g._+h.i.i.:+k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.<+[+}+|+. . . . . . ",
+". . . . . 1+2+3+4+5+++@+6+7+8+9+0+a+b+c+d+e+f+X.* g+h+i+%.*.=.=.-.>.>.j+,.k+{+l+m+n+{.L.o+p+q+r+N._.s+t+[.(+}.|.1.2.3.3.4.5.6.6.8.9.9.0.0.u+b.Q.c.d.d.e.f.g.v+h.i.i.i.k.l.w+n.n.o.q.R.r.t.u.v.v.S.x.x.T.T.U.U.U.x+y+z+A+. . . . . ",
+". . . . Z.2+B+C+D+5+E+F+G+H+I+J+K+L+M+N+O+N+P+Q+R+S+X.T+U+V+=.=.-.>.>.>.,.W+{+X+7 Y+{.Z+`+ @.@`++@@@#@$@%@&@*@=@-@;@>@=@,@'@=@=@)@!@=@=@~@{@b.Q.c.d.d.e.f.g.v+h.]@i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U./@(@z+|+. . . . ",
+". . . . _@3+:@<@D+[@}@|@1@2@3@4@5@6@6@6@7@8@8@8@9@0@a@b@c@d@e@=.-.;.>.>.,.W+{+f@g@h@~.i@j@k@l@m@{+n@o@p@{+q@r@s@t@u@v@w@x@y@z@G+A@B@C@D@E@F@b.b.c.d.d.e.f.g.v+h.h.i.i.j.l.l.m.n.o.p.q.r.s.t.v.v.w.x.x.G@T.U.U.U.U.U./@y+}+. . . . ",
+". . . H@I@J@K@<@L@M@N@O@P@Q@R@S@T@U@6@6@7@8@V@W@X@Y@Z@`@ #.#+#@#-.;.>.>.,.##{+f@g@h@~.{.$#%#&#*#{+=#-#;#{+>#,#'#)#!#~#{#]#^#/#(#_##@:#<#o [#b.b.c.d.d.}#e.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.S.x.G@T.U.U.U.U.U.U.x+[+|#. . . ",
+". . 1#F.2#3#4#5#M@6#7#8#9#0#a#b#c#d#e#6@7@8@f#g#h#i#j#k#l#m#n#o#p#-.>.>.,.##{+f@g@q#r#s#t#u#&#v#{+w#x#y#{+z#A#B#C#!#D#E#F#^#G#H#I#{+J#K#L#0.b.b.Q.d.d.d.e.g.g._+h.i.i.j.k.l.m.n.n.o.q.R.s.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.<+X.M#. . ",
+". . N#O#P#3#Q#R#S#T#U#V#W#X#Y#Z#`# $e#6@7@8@.$+$@$#$$$8@k#%$&$*$=$-$>.>.,.;${+>$,$'${+)$!$~${$]${+^$/$(${+_$:$<$[$}$|$1$]#2$3$[$4$5$6$7$8$0.b.b.Q.c.d.d.e.g.g.v+h.i.i.i.k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.W.9$. . ",
+". 0$F.a$P#b$c$d$e$f$g$h$i$j$k$l$m$n$e#6@o$8@7@p$k$q$r$s$k#t$u$v$w$x$y$>.>.~+{+{+{+{+{+z${+{+!${+{+{+A$B${+{+C$D$_#E$#@s@{+F${+{+G$H$X.{+I$J$u+b.Q.c.d.d.e.f.g.v+h.i.i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U.U.U.U.K$B.P . ",
+". L$M$P#P#N$O$P$Q$R$h$S$T$U$V$W$X$Y$Z$7@6@`$ %.%+%@%#%$%%%t$&%*%=%-%;%>.>.>%,%'%)%!%~%{%]%^%/%(%w#_%:%<%[%}%|%1%2%3%4%5%6%7%8%9%0%a%b%c%d%e%a.b.b.c.d.d.e.f.g.v+h.h.i.i.j.l.l.m.n.o.p.R.r.t.t.v.v.f%x.x.G@T.U.U.U.U.U.U.U.U.g%h%. ",
+". i%j%P#P#k%l%m%n%o%p%q%r%s%t%u%v%w%x%y%z%Z#s%A%B%C%D%E%F%G%H%H%I%J%K%y$>.,.L%;$M%N%O%P%Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&>&,&'&a.b.b.c.d.d.e.f.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.x.G@T.U.U.U.U.U.U.U.U.)&N . ",
+"!&~&{&]&^&/&(&_&:&<&[&}&|&t%1&v%2&3&4&5&6&7&8&s%9&0&V$a&b&c&d&e&f&#@g&h&>.,.,.'.).!.i&~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.P.4.5.6.7.8.9.9.0.0.b.b.Q.d.d.d.e.g.g.h.h.i.i.j.k.l.m.n.n.p.q.R.s.t.u.v.w.S.x.x.T.U.U.U.U.U.U.U.U./@M j&",
+"k&l&m&]&n&X.o&p&q&b&r&s&t&u&v%2&v&w&x&y&6@z&A&8&B&A%C&D&E&v%F&G&H&X.I&J&>.,.,.K&{+{+L&~.{.L.^.^.M./.N._._.<.[.(+|.M&{+N&3.O&{+P&6.7.8.9.9.0.0.b.b.Q.c.d.d.e.g.g.v+h.i.i.:+k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.U.Q&R&",
+"S&T&m&]&U&V&W&X&Y&Z&`& *.*v%+*v&w&@*9#6@e#7@z&A&8&B&#*$*%*t&&***&%=*-*;*>.j+,.>*,*X.'*)*{.L.].^.M./.N._._.<.[.(+!*~*{*]*^*/*(*_*:*6.<*[*}*0.0.u+b.Q.c.d.d.e.f.g.v+h.i.i.i.k.l.w+n.n.o.q.R.r.t.u.v.v.S.x.x.T.T.U.U.U.U.U.U.U.U.|*1*",
+"2*3*m&4*5*6*7*R$8*9*0*a*b*c*d*e*f*g*h*i*j*k*7@z&l*m*n*o*p*%%q*H%&%r*s*t*y$>.,.u*_#v*_#w*x*L.y*+@z*A*`++@B*C*D*E*X.F*G*H*I*s@*$J*K*L*M*{+N*O*P*u+b.Q.c.d.d.e.f.g.v+h.]@i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.G@T.U.U.U.U.U.U.U.U.Q*R*",
+"S*T*m&m&U*V*_&W*8*X*X*h$V#Y*Z*@*9#`*{+{+{+ =.=7@+=@=#=$=%=k#t$&%&%&=E**===>.,.-=;=>=,='=)={.!={+~={=]={+^=/=N (=%@_=_#H*I*:={+z@<==%[=}=|={+1=2=b.b.c.d.d.e.f.g.v+h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.x.G@T.U.U.U.U.U.U.U.U.3=- ",
+"~&4=m&m&5=6=7=9*8*X*X*h$h$V#8=g$9=0={+{+{+a=b=7@8@9@c=%=k#k#k#&%&%d=e=f=g=>.h=i=j=k=l+{ l=m=n={+o=p=q={+r=s=t=u=v=w={*x=^*v@{+y=z=A=B@B=C=D@D=E=b.b.Q.d.d.}#e.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.S.x.G@T.U.U.U.U.U.U.U.U.F== ",
+"S*G=H=m&I=J=K=9*8*X*X*h$h$L=M=9#9=N={+{+{+O=P=7@Q=R=S=8@k#k#k#t$&%T=U=f=g=>.V=W=c@X=Y={+Z=`= -{+.-p=+-{+@-#-y*$-%-|.&-s@I**-{+=---G$;-;&9.>-,-'-b.b.Q.c.d.d.e.g.g._+h.i.i.j.k.l.m.n.n.o.q.R.s.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.)-b@",
+"!-~-H=m&{-]-^-W*8*8*X*X*/-(-_-:-9#9=<-[-}-|-1-2-3-4-5-6-%=k#k#t$&%7-8-9-==0-a-b-c-d-e-f-g-h-i-{+j-k-l-{+=#m-{+n-o-p-H*s@q-r-{+s-t-_#u-v-w-#@x-y-u+b.Q.c.d.d.e.g.g.v+h.i.i.i.k.l.w+n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U.U.U.z-A-",
+"B-C-H=m&D-E-F-R$G-H-I-J-K-L-M-N-:-9#O-P-Q-O+R-3-S-T-U-V-W-X-Y-%%&%R*Z-`-y$S {+.#!% ;.;$@{++;@;z${+N*+;{+=%#;$;{+$@=%G${+%;F.{+_#&;*;{+=%{+=;-;e%u+b.Q.c.d.d.e.f.g.v+h.i.i.i.j.l.l.m.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U.U.U.U.;;>;",
+",;';H=m&);_#!;~;{;8&];^;/;(;L-M-N-:-9#6@6@_;3-S-T-F$W$:;<;[;};|;1;{+2;3;;.4;5;6;7;8;9;0;a;b;c;d;e;f;g;h;i;j;k;l;m;n;o;p;&-q;r;s;t;u;v;w;x;y;z;L#a.b.b.c.d.d.e.f.g.v+h.h.i.i.j.l.l.m.n.o.p.q.r.t.t.v.v.w.x.x.G@T.U.U.U.U.U.U.U.A;B;",
+"C;~ D;m&E;F;G;H;I;J;K;}&K;L;M;L-N;N-O;P;Q;3-S-R;S;T;U;V;W;X;Y;G&Z;*$`; >;.>..>+>@>#>).$>%>%>&>*>=>->;>>>,>'>)>!>~>{>]>^>/>(>/*_>:><>[>}>|>1>2>0.a.b.b.c.d.d.}#f.g.g.h.h.i.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.S.x.G@T.U.U.U.U.U.U.3>= 4>",
+". 5>6>H=m&7>8>9>0>M=a>b>c>d>e>f>g>h>i>j>k>l>L-m>n>o>p>q>r>s>z.t>u>v>w>x>-.>.>.,.,.'.).!.i&~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.3.4.5.6.7.8.9.9.0.0.b.b.Q.d.d.d.e.g.g.h.h.i.i.j.k.l.m.n.n.p.q.R.s.t.u.v.w.S.x.x.T.T.U.U.U.U.U.)-y>. ",
+". z>A>H=m&B>C>D>E>F>9*G>H>I>];J>K>L>M>N>6@O>P>Q>W;R>S>T>U>V>Z@W>E$X>Y>=.-.~+{+{+{+* >$Z>!.~.{.L.].^.M./.N._._.<.[.(+|.|.1.3.3.3.4.`>{+{+ ,9.9.0.0.b.b.Q.c.d.d.e.g.g.v+h.i.i.:+k.l.m.n.n.o.q.R.r.t.u.v.w.S.x.x.T.T.U.U.U.U.U..,+,. ",
+". @,_##,m&]&$,%,&,*,8*X*=,-,k$;,>,2-n$O-6@5@,,',k$),!,~,9@8@{,],^,/,e@=.-.(,{+_,:,<,,*n#[,h@{.L.},^.M././._._.<.[.(+}.|.1.|,1,3.4.2,3,{+4, ,9.0.5,u+b.Q.c.d.d.e.f.g.v+h.i.i.6,7,l.w+n.n.o.p.R.r.t.u.v.v.S.x.x.^@T.U.U.U.U.8,_#9,. ",
+". . 0,a,m&m&b,c,d,e,f,X*X*g,h,i,j,k,9=6@6@6@l,m,n,o,p,c=8@q,r,E*s,t,=.=.-.u,{+v,w,x,y,$@z,P%A,8-_#B,C,D,E,F,G,H,G,F,I,J,K,+@X.L,M,4.N,{+O, ,!@P,{+Q,R,S,T,U,V,W,X,Y,Z,h.`,6#X. '.'+'@'#'$'%'&'*'='-';'>','x.x.G@T.U.U.U.U.(@''. . ",
+". . )'!'~'m&P#{']'^'/'a*X*('_'v%:'@*9=6@6@6@<'[&['}'.=8@M+|'H*1'| V+*.=.-.u,{+2'3'4'4'5'f-6'c@7'8'9'F.0'p+{+s*a'_=_#b'c'$@d',@e']*f'g'{+h'K#X.=;i'P,C@j'k'{+= l'm'= n'o'p'q'r's'C@t'u'N X.v'w'{+x'y'='z'A'x.x.G@T.U.U.U.B'C'D'. . ",
+". . . E'F'G'P#P#H'I'J'K'L'h$M'N'O'P'9=6@6@6@Q'R'S'T'U'V'W's@X'Y'Z'&.*.=.-.u,{+2'3',.'.`'$@ )f-.)]%+)@)F,#)$)%)&)*)'#=)-);)&->),)O$')t;{+h'))!)~){)])^)/)(){+_):)<)[){+})N |)1)2)3)X,4)5)6)7)8){+9)0)a)b)c)S.x.x.T.U.U.d)|@e). . . ",
+". . . . f)g)h)P#b$i)j)= k)_;V#l)m)n)9=6@6@6@6@o),,G%p)M E*q)r)s)$.%.*.=.=.t){+2'3',.'.u)v)w)S f-*$x)x)U=y)z)O$A)N c'B)C)= ,*D)D)d$E)F){+h'G)H)I)J)0.K)L)M){+N)O)P)Q){+R)_#S)^) 'T); U)='V)W)X)Y)Z){+='`) !S.x.x.T.T..!+!@!. . . . ",
+". . . . #!$!%!&!P#3#*!=!~ -!;!>!g$9=9=6@6@6@e#,!'!Z){ )!!!~!{!$.$.%.*.=.=.t){+2']!^!/!{+(!_!* :!<![!}!|!1!2!N 3!#@4!5!C#{#6!7!8!9!0!v;{+7%7$1$a!2=b!c!d!e!{+f!g!e.h!X.i!X.j!k!l!m!n!B ='o!p!q!r!s!t!_#u!v!S.x.x.T.w!x!y!z!. . . . ",
+". . . . . A!B!C!D!b$4#E!F!G!H!{+T)I!J!K!L!M!N!{+`+O!P!Q!R!S!@.$.$.%.&.=.=.T!{+N U!* {+V!W!X!Y!Z!`! ~.~+~@~/.#~{+$~%~&~*~$@F,=~+@<$-~;~{+>~,~^)#@'~c!)~!~~~{+{~]~W,{+^~/~(~c!_~:~= <~[~X.5)}~|~{+1~2~{+3~4~S.x.x.5~r,y!6~. . . . . ",
+". . . . . . 7~8~9~0~a~K@<@b~c~d~e~f~g~h~i~j~k~l~m~n~o~p~+.+.@.$.$.%.&.=.=.q~r~s~O!t~u~v~w~x~y~z~A~'=/%+~B~/.C~D~E~F~G~}.H~I~J~K~L~M~N~O~[=P~Q~R~S~T~U~V~W~{+X~Y~Z~`~ {.{+{@{#{${%{&{*{={-{;{>{,{'{){!{~{{{w.]{^{/{({_{. . . . . . ",
+". . . . . . . . :{i%<{[{<@D+}{|{1{2{3{4{5{6{7{8{9{0{ ...+.+.@.#.$.%.&.*.=.-.a{b{b{c{d{e{f{!.~.g{%>h{i{j{/./.N.k{l{m{[.}.|.n{o{p{q{r{s{t{u{v{w{x{C=y{z{A{B{{+C{D{E{F{G{H{h.I{J{K{L{M{+'N{O{P{Q{R{S{T{U{V{W{X{Y{N Z{. . . . . . . . ",
+". . . . . . . . . 1+`{_# ].]+]5+++@+I.I.J.W X Y Z `  . .+.+.@.#.$.$.%.*.=.-.-.>.>.,.,.'.).!.i&~.{.L.^.^.M./.N._.:.<.[.}.|.O.2.3.3.3.4.5.6.7.8.9.9.0.0.@]#]d$d$$]%]e.g.g._+h.i.i.j.k.l.m.n.n.p.q.R.s.&]*]=]_#-];]. . . . . . . . . ",
+". . . . . . . . . . . >],]']F.)]!]~]{]]]^]/]/](]_]:]<]<]<]<][]}]Y'Y'|]1]1]1]1]2]2]k+k+k+k+3]3]4]<!<!<!5]6]6]7]8]8]9]9]0]a]b]c]d]d]d]e]f]a%a%a%I)I)g]g]h]i]j]k]l]m]n]o]o]p]q]r]r]r]s]s]t]u]U)v]Z{w]x]X.|@y]z]. . . . . . . . . . . ",
+". . . . . . . . . . . . . . A]B]C]D]E]F]G]G]G]H]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]I]+;+;+;+;J]J]J]J]K]K]K]K]K]K]K]K]K]K]K]K]K]K]K]K]w@w@w@w@w@w@w@w@w@w@L]L]w@w@L]L]L]L]M]M]N]N]N]N]N]O]P]Q]R]S]T]. . . . . . . . . . . . . . "};
diff --git a/hdspconf/pixmaps/rme.xpm b/hdspconf/pixmaps/rme.xpm
new file mode 100644 (file)
index 0000000..345f4f8
--- /dev/null
@@ -0,0 +1,2338 @@
+/* XPM */
+static char * rme_xpm[] = {
+"113 35 2300 2",
+"      c None",
+".     c #030505",
+"+     c #050706",
+"@     c #0C0C0B",
+"#     c #0B0C0B",
+"$     c #0B0B0B",
+"%     c #0A0B0B",
+"&     c #0B0B0C",
+"*     c #0B0C0C",
+"=     c #0C0B0B",
+"-     c #0C0A0C",
+";     c #0D0A0C",
+">     c #0D0B0D",
+",     c #0A0B0A",
+"'     c #0A0A0B",
+")     c #0B0A0B",
+"!     c #0B0A0A",
+"~     c #0B0B0A",
+"{     c #0A0A0C",
+"]     c #0A0A0A",
+"^     c #090A0A",
+"/     c #0A090C",
+"(     c #0B0A0C",
+"_     c #09090B",
+":     c #090A0C",
+"<     c #0B0A0D",
+"[     c #0A0A0D",
+"}     c #0B090C",
+"|     c #0A0B0D",
+"1     c #0B0C0E",
+"2     c #050505",
+"3     c #020202",
+"4     c #040604",
+"5     c #1E201F",
+"6     c #646768",
+"7     c #6E7374",
+"8     c #717676",
+"9     c #737979",
+"0     c #767B7B",
+"a     c #797D7E",
+"b     c #7D7E80",
+"c     c #7D7E81",
+"d     c #7D7F81",
+"e     c #7D8083",
+"f     c #7D8284",
+"g     c #7F8183",
+"h     c #808182",
+"i     c #808183",
+"j     c #7E8183",
+"k     c #7D8183",
+"l     c #7C8082",
+"m     c #7B7F82",
+"n     c #7A7E82",
+"o     c #797D81",
+"p     c #777D7F",
+"q     c #767B7E",
+"r     c #767B7D",
+"s     c #757A7D",
+"t     c #747A7C",
+"u     c #74797C",
+"v     c #73797B",
+"w     c #727879",
+"x     c #717677",
+"y     c #707676",
+"z     c #707575",
+"A     c #6F7575",
+"B     c #6E7474",
+"C     c #6D7373",
+"D     c #6E7174",
+"E     c #6E7175",
+"F     c #6D7073",
+"G     c #6C6F72",
+"H     c #6B6E6F",
+"I     c #6A6E6E",
+"J     c #6A6D6F",
+"K     c #6A6D6E",
+"L     c #696D6D",
+"M     c #686C6E",
+"N     c #686B6D",
+"O     c #686B6C",
+"P     c #666A6B",
+"Q     c #65696A",
+"R     c #646869",
+"S     c #636769",
+"T     c #636668",
+"U     c #626668",
+"V     c #626667",
+"W     c #626567",
+"X     c #626566",
+"Y     c #616466",
+"Z     c #5F6264",
+"`     c #5D6062",
+" .    c #5C5F62",
+"..    c #5B5E60",
+"+.    c #5B5F61",
+"@.    c #5C6062",
+"#.    c #5D6163",
+"$.    c #5B6062",
+"%.    c #5C6063",
+"&.    c #5B6064",
+"*.    c #5A5F62",
+"=.    c #595D62",
+"-.    c #595D60",
+";.    c #595D5F",
+">.    c #5A5E60",
+",.    c #5A5D60",
+"'.    c #595C5F",
+").    c #595B5F",
+"!.    c #595C5E",
+"~.    c #5A5C5F",
+"{.    c #595B5E",
+"].    c #585C5E",
+"^.    c #585D5F",
+"/.    c #575D5E",
+"(.    c #575D5F",
+"_.    c #585E5F",
+":.    c #575B5D",
+"<.    c #545759",
+"[.    c #232424",
+"}.    c #040404",
+"|.    c #050604",
+"1.    c #36393A",
+"2.    c #9EA5A9",
+"3.    c #A3AEB2",
+"4.    c #ADB9BC",
+"5.    c #B6C2C6",
+"6.    c #C0CDCF",
+"7.    c #C8D6D9",
+"8.    c #CDDDE2",
+"9.    c #D0E1E5",
+"0.    c #D3E3E7",
+"a.    c #DAE8ED",
+"b.    c #E1ECF2",
+"c.    c #E1EDF2",
+"d.    c #E0ECF1",
+"e.    c #DDEDEF",
+"f.    c #DEEEF0",
+"g.    c #DFEFF1",
+"h.    c #DBEDEE",
+"i.    c #D8EBEE",
+"j.    c #D7EAEE",
+"k.    c #D7E9ED",
+"l.    c #D5E7EB",
+"m.    c #D6E5E9",
+"n.    c #D4E2E6",
+"o.    c #D2DFE4",
+"p.    c #CDDAE0",
+"q.    c #CCD8DD",
+"r.    c #CAD6DB",
+"s.    c #C7D3D8",
+"t.    c #C5D0D6",
+"u.    c #C1CCD2",
+"v.    c #BECACF",
+"w.    c #BCC7CD",
+"x.    c #B6C3C6",
+"y.    c #B3C0C3",
+"z.    c #B2BEC1",
+"A.    c #AFBBBE",
+"B.    c #AEB9BD",
+"C.    c #ABB7BA",
+"D.    c #A8B5B8",
+"E.    c #A6B1B5",
+"F.    c #A4AEB4",
+"G.    c #A4AEB5",
+"H.    c #A2ABB1",
+"I.    c #9DA7AC",
+"J.    c #9AA3A7",
+"K.    c #98A2A6",
+"L.    c #99A2A7",
+"M.    c #969FA3",
+"N.    c #949EA2",
+"O.    c #939CA0",
+"P.    c #929C9F",
+"Q.    c #8F9A9C",
+"R.    c #8E989B",
+"S.    c #8C9699",
+"T.    c #899296",
+"U.    c #879094",
+"V.    c #838C90",
+"W.    c #80888C",
+"X.    c #7D858A",
+"Y.    c #7C8589",
+"Z.    c #7B8388",
+"`.    c #788185",
+" +    c #768084",
+".+    c #757F82",
+"++    c #747D81",
+"@+    c #727C7E",
+"#+    c #717B7D",
+"$+    c #707A7C",
+"%+    c #6D777A",
+"&+    c #6A7477",
+"*+    c #697376",
+"=+    c #687375",
+"-+    c #687274",
+";+    c #697275",
+">+    c #6B7476",
+",+    c #6B7477",
+"'+    c #6B7478",
+")+    c #697177",
+"!+    c #677075",
+"~+    c #676F74",
+"{+    c #656E72",
+"]+    c #646D70",
+"^+    c #636C6F",
+"/+    c #626C6E",
+"(+    c #616A6D",
+"_+    c #60696C",
+":+    c #5F676B",
+"<+    c #5F6569",
+"[+    c #5E6267",
+"}+    c #5C6166",
+"|+    c #5D6267",
+"1+    c #5C6266",
+"2+    c #5B6366",
+"3+    c #5A6266",
+"4+    c #5A6165",
+"5+    c #586164",
+"6+    c #586265",
+"7+    c #576264",
+"8+    c #5A6265",
+"9+    c #3A3B3C",
+"0+    c #070707",
+"a+    c #040403",
+"b+    c #2D3133",
+"c+    c #919BA0",
+"d+    c #9CA9AF",
+"e+    c #A8B7BB",
+"f+    c #B2C3C7",
+"g+    c #BDCDD1",
+"h+    c #C5D5DA",
+"i+    c #CADAE2",
+"j+    c #CEDEE6",
+"k+    c #D1E2E9",
+"l+    c #D6E5EC",
+"m+    c #D9E8EF",
+"n+    c #DCEAF2",
+"o+    c #DCEBF2",
+"p+    c #DBEBF0",
+"q+    c #D9EAEF",
+"r+    c #DAEBEF",
+"s+    c #D7E8ED",
+"t+    c #D4E6EC",
+"u+    c #D1E4EB",
+"v+    c #CFE2E9",
+"w+    c #CDE0E7",
+"x+    c #CEE0E6",
+"y+    c #CCDDE3",
+"z+    c #C9DAE0",
+"A+    c #C6D7DD",
+"B+    c #C5D3DB",
+"C+    c #C3D2D9",
+"D+    c #C0CFD6",
+"E+    c #BBCAD1",
+"F+    c #B8C7CE",
+"G+    c #B7C5CD",
+"H+    c #B6C4CB",
+"I+    c #B2C2C7",
+"J+    c #B0C1C5",
+"K+    c #AFC0C3",
+"L+    c #ACBCBF",
+"M+    c #AAB9BD",
+"N+    c #A5B4B8",
+"O+    c #A1AFB4",
+"P+    c #9FACB2",
+"Q+    c #9DAAB1",
+"R+    c #9AA7AE",
+"S+    c #96A3AA",
+"T+    c #94A2A7",
+"U+    c #93A0A5",
+"V+    c #919FA4",
+"W+    c #919EA3",
+"X+    c #8E9CA0",
+"Y+    c #8E9BA0",
+"Z+    c #8D9A9F",
+"`+    c #89979B",
+" @    c #869396",
+".@    c #849295",
+"+@    c #849195",
+"@@    c #828E92",
+"#@    c #7F8A90",
+"$@    c #7C878D",
+"%@    c #7A858A",
+"&@    c #768288",
+"*@    c #768186",
+"=@    c #747F85",
+"-@    c #737E84",
+";@    c #717E83",
+">@    c #707D82",
+",@    c #6E7B80",
+"'@    c #6C7A7E",
+")@    c #69767A",
+"!@    c #677477",
+"~@    c #667376",
+"{@    c #647276",
+"]@    c #637074",
+"^@    c #616E72",
+"/@    c #606C70",
+"(@    c #5E6A6E",
+"_@    c #606A6F",
+":@    c #606B70",
+"<@    c #606A6E",
+"[@    c #5E696D",
+"}@    c #5F6A6C",
+"|@    c #606B6E",
+"1@    c #616B6E",
+"2@    c #5F6A6D",
+"3@    c #5C676B",
+"4@    c #5B6669",
+"5@    c #5C676A",
+"6@    c #5A6669",
+"7@    c #596569",
+"8@    c #586468",
+"9@    c #586267",
+"0@    c #576065",
+"a@    c #575E64",
+"b@    c #555D63",
+"c@    c #565D62",
+"d@    c #555C61",
+"e@    c #555D61",
+"f@    c #565B62",
+"g@    c #565A61",
+"h@    c #535A5F",
+"i@    c #525A5E",
+"j@    c #51595D",
+"k@    c #50585C",
+"l@    c #4D565B",
+"m@    c #4D565A",
+"n@    c #4D575A",
+"o@    c #4E575A",
+"p@    c #2C2E2F",
+"q@    c #060607",
+"r@    c #040303",
+"s@    c #2D3032",
+"t@    c #919B9F",
+"u@    c #9DAAAE",
+"v@    c #ABB9BC",
+"w@    c #B4C5CA",
+"x@    c #BDCDD2",
+"y@    c #ACB8BB",
+"z@    c #878F95",
+"A@    c #848D92",
+"B@    c #848D93",
+"C@    c #879095",
+"D@    c #889196",
+"E@    c #889197",
+"F@    c #889297",
+"G@    c #899297",
+"H@    c #868F94",
+"I@    c #858F94",
+"J@    c #848F94",
+"K@    c #838E93",
+"L@    c #828D92",
+"M@    c #828C91",
+"N@    c #818B90",
+"O@    c #808B90",
+"P@    c #80898E",
+"Q@    c #7E878D",
+"R@    c #7C868B",
+"S@    c #7A8489",
+"T@    c #788186",
+"U@    c #778085",
+"V@    c #777F85",
+"W@    c #768085",
+"X@    c #7D8A8D",
+"Y@    c #A6B5B7",
+"Z@    c #B2C3C4",
+"`@    c #B0BFC1",
+" #    c #AEBBBF",
+".#    c #AAB4BA",
+"+#    c #868F95",
+"@#    c #6E777A",
+"##    c #6A7377",
+"$#    c #677073",
+"%#    c #626B6E",
+"&#    c #616A6C",
+"*#    c #606A6C",
+"=#    c #60696B",
+"-#    c #5F696B",
+";#    c #5E686B",
+">#    c #5E6769",
+",#    c #5C6568",
+"'#    c #596265",
+")#    c #565F62",
+"!#    c #555E60",
+"~#    c #535C5F",
+"{#    c #525B5D",
+"]#    c #525A5D",
+"^#    c #525B5E",
+"/#    c #515B5D",
+"(#    c #535C5E",
+"_#    c #5F696D",
+":#    c #6B757A",
+"<#    c #646F74",
+"[#    c #636E73",
+"}#    c #677175",
+"|#    c #565E62",
+"1#    c #4E5659",
+"2#    c #4E5558",
+"3#    c #4D5457",
+"4#    c #4D5557",
+"5#    c #4E5557",
+"6#    c #4C5456",
+"7#    c #4A5254",
+"8#    c #495153",
+"9#    c #4A5354",
+"0#    c #4A5355",
+"a#    c #4A5356",
+"b#    c #495154",
+"c#    c #484F52",
+"d#    c #474E51",
+"e#    c #474E50",
+"f#    c #484D50",
+"g#    c #494E51",
+"h#    c #4A4E52",
+"i#    c #494D52",
+"j#    c #4A4D52",
+"k#    c #4B4F53",
+"l#    c #4D5155",
+"m#    c #555A5D",
+"n#    c #5D6266",
+"o#    c #51575B",
+"p#    c #50565A",
+"q#    c #505559",
+"r#    c #2B2D2F",
+"s#    c #040406",
+"t#    c #2C2F31",
+"u#    c #8F989C",
+"v#    c #99A6AB",
+"w#    c #A5B3B8",
+"x#    c #ADBDC4",
+"y#    c #ADBABF",
+"z#    c #4D5454",
+"A#    c #1C1F1F",
+"B#    c #171A1B",
+"C#    c #181B1C",
+"D#    c #17191B",
+"E#    c #181A1B",
+"F#    c #18191B",
+"G#    c #171A1A",
+"H#    c #181A1C",
+"I#    c #181B1B",
+"J#    c #17191A",
+"K#    c #1D2123",
+"L#    c #5D6467",
+"M#    c #B5C0C2",
+"N#    c #ADBBBE",
+"O#    c #A9B4B8",
+"P#    c #787F83",
+"Q#    c #313538",
+"R#    c #161919",
+"S#    c #171A19",
+"T#    c #161918",
+"U#    c #151817",
+"V#    c #151818",
+"W#    c #161818",
+"X#    c #141717",
+"Y#    c #141716",
+"Z#    c #141817",
+"`#    c #2D3132",
+" $    c #61686D",
+".$    c #6D787C",
+"+$    c #677074",
+"@$    c #424649",
+"#$    c #202222",
+"$$    c #171819",
+"%$    c #171818",
+"&$    c #161819",
+"*$    c #16181A",
+"=$    c #151819",
+"-$    c #171919",
+";$    c #18181B",
+">$    c #18191A",
+",$    c #191A1C",
+"'$    c #191B1D",
+")$    c #1B1C1E",
+"!$    c #313335",
+"~$    c #606467",
+"{$    c #565B5F",
+"]$    c #53585C",
+"^$    c #54595C",
+"/$    c #2C2F32",
+"($    c #040506",
+"_$    c #95A2A8",
+":$    c #A1AEB6",
+"<$    c #A6B4BC",
+"[$    c #798286",
+"}$    c #141616",
+"|$    c #000100",
+"1$    c #000000",
+"2$    c #010000",
+"3$    c #020001",
+"4$    c #2D3234",
+"5$    c #B2BDC0",
+"6$    c #ACBABE",
+"7$    c #9AA5A9",
+"8$    c #3E4345",
+"9$    c #070808",
+"0$    c #010101",
+"a$    c #000001",
+"b$    c #525659",
+"c$    c #798586",
+"d$    c #596163",
+"e$    c #17181B",
+"f$    c #020102",
+"g$    c #010001",
+"h$    c #010102",
+"i$    c #1A1B1C",
+"j$    c #595E62",
+"k$    c #555A5E",
+"l$    c #565B5E",
+"m$    c #2F3134",
+"n$    c #040405",
+"o$    c #040203",
+"p$    c #2A2F30",
+"q$    c #869195",
+"r$    c #8F9DA2",
+"s$    c #9BA9B0",
+"t$    c #A0ADB5",
+"u$    c #61686B",
+"v$    c #0E0F0E",
+"w$    c #010100",
+"x$    c #010202",
+"y$    c #000101",
+"z$    c #000202",
+"A$    c #000201",
+"B$    c #000002",
+"C$    c #010203",
+"D$    c #020101",
+"E$    c #292D2E",
+"F$    c #AFBABE",
+"G$    c #A9B7BD",
+"H$    c #929CA1",
+"I$    c #333738",
+"J$    c #050403",
+"K$    c #020204",
+"L$    c #010104",
+"M$    c #000102",
+"N$    c #010103",
+"O$    c #000103",
+"P$    c #000104",
+"Q$    c #010105",
+"R$    c #000003",
+"S$    c #000204",
+"T$    c #060608",
+"U$    c #515658",
+"V$    c #808C8D",
+"W$    c #555C5F",
+"X$    c #121215",
+"Y$    c #010205",
+"Z$    c #010201",
+"`$    c #000203",
+" %    c #040304",
+".%    c #313132",
+"+%    c #838588",
+"@%    c #5B5F64",
+"#%    c #575B60",
+"$%    c #585C60",
+"%%    c #2E3034",
+"&%    c #040302",
+"*%    c #28302F",
+"=%    c #808E91",
+"-%    c #8A989E",
+";%    c #97A5AB",
+">%    c #9CAAB0",
+",%    c #676F71",
+"'%    c #0E1110",
+")%    c #161615",
+"!%    c #979A9A",
+"~%    c #B9C0C2",
+"{%    c #BAC2C3",
+"]%    c #BBC3C4",
+"^%    c #BCC3C4",
+"/%    c #BCC2C4",
+"(%    c #BDC2C4",
+"_%    c #BBC2C3",
+":%    c #B9C1C2",
+"<%    c #B8C0C1",
+"[%    c #B9C0C1",
+"}%    c #B8BFC1",
+"|%    c #B7BEC1",
+"1%    c #B7BEC0",
+"2%    c #B5BDBF",
+"3%    c #B2B9BC",
+"4%    c #B3B7BB",
+"5%    c #B2B6BA",
+"6%    c #AEB3B6",
+"7%    c #4D4E50",
+"8%    c #050507",
+"9%    c #292B2C",
+"0%    c #AEB6BD",
+"a%    c #AAB7BE",
+"b%    c #383C3D",
+"c%    c #040603",
+"d%    c #2F3130",
+"e%    c #A9ADB0",
+"f%    c #A5A9AE",
+"g%    c #A2A8AA",
+"h%    c #A1A7A8",
+"i%    c #A0A5A7",
+"j%    c #9FA5A7",
+"k%    c #9EA6A8",
+"l%    c #9EA6A9",
+"m%    c #9DA4A7",
+"n%    c #9CA4A7",
+"o%    c #83878A",
+"p%    c #2A2A2C",
+"q%    c #030302",
+"r%    c #454747",
+"s%    c #899090",
+"t%    c #959A9C",
+"u%    c #93999B",
+"v%    c #92999A",
+"w%    c #92989A",
+"x%    c #929799",
+"y%    c #889092",
+"z%    c #121416",
+"A%    c #060606",
+"B%    c #525658",
+"C%    c #828D90",
+"D%    c #545B5E",
+"E%    c #121213",
+"F%    c #080709",
+"G%    c #525558",
+"H%    c #8F9798",
+"I%    c #8A9292",
+"J%    c #889090",
+"K%    c #868C8E",
+"L%    c #84898B",
+"M%    c #84898A",
+"N%    c #85898B",
+"O%    c #858A8C",
+"P%    c #858B8C",
+"Q%    c #838A8C",
+"R%    c #83898B",
+"S%    c #828889",
+"T%    c #83888A",
+"U%    c #828789",
+"V%    c #818688",
+"W%    c #808586",
+"X%    c #7E8484",
+"Y%    c #7F8484",
+"Z%    c #7F8585",
+"`%    c #7F8384",
+" &    c #818586",
+".&    c #86898B",
+"+&    c #737679",
+"@&    c #56595E",
+"#&    c #55595D",
+"$&    c #2C2E31",
+"%&    c #030406",
+"&&    c #262E2D",
+"*&    c #7A888A",
+"=&    c #859298",
+"-&    c #909EA4",
+";&    c #94A2A8",
+">&    c #666F70",
+",&    c #101211",
+"'&    c #1D1E1D",
+")&    c #B6BEC0",
+"!&    c #C5D2D9",
+"~&    c #CAD9E0",
+"{&    c #CEDDE4",
+"]&    c #CFDFE6",
+"^&    c #D0DFE6",
+"/&    c #D2E2E8",
+"(&    c #D1E0E7",
+"_&    c #CFDEE5",
+":&    c #CCDBE2",
+"<&    c #C8D7DE",
+"[&    c #C4D3DA",
+"}&    c #C0D0D6",
+"|&    c #C1D0D7",
+"1&    c #C0CFD5",
+"2&    c #BFCED4",
+"3&    c #BDCCD3",
+"4&    c #BCCBD2",
+"5&    c #BCCAD0",
+"6&    c #BAC9CD",
+"7&    c #B3C2C4",
+"8&    c #5B6264",
+"9&    c #07080A",
+"0&    c #AFB8BE",
+"a&    c #AAB7BD",
+"b&    c #96A1A5",
+"c&    c #363A3C",
+"d&    c #030503",
+"e&    c #505656",
+"f&    c #A6B1B4",
+"g&    c #9AA8AD",
+"h&    c #98A5AA",
+"i&    c #96A3A8",
+"j&    c #95A2A7",
+"k&    c #94A1A7",
+"l&    c #94A1A9",
+"m&    c #929FA7",
+"n&    c #7D8687",
+"o&    c #020203",
+"p&    c #636969",
+"q&    c #849191",
+"r&    c #808C8E",
+"s&    c #7A878B",
+"t&    c #78858B",
+"u&    c #768489",
+"v&    c #758288",
+"w&    c #737F85",
+"x&    c #758086",
+"y&    c #6C7578",
+"z&    c #141617",
+"A&    c #060506",
+"B&    c #515556",
+"C&    c #818C8E",
+"D&    c #545C5E",
+"E&    c #111313",
+"F&    c #707577",
+"G&    c #647272",
+"H&    c #637271",
+"I&    c #647072",
+"J&    c #636E71",
+"K&    c #606C6F",
+"L&    c #5F6B6E",
+"M&    c #5F6A6F",
+"N&    c #5D686E",
+"O&    c #5C676D",
+"P&    c #5C666D",
+"Q&    c #5D666D",
+"R&    c #5E656D",
+"S&    c #5D656D",
+"T&    c #5B646B",
+"U&    c #5B666C",
+"V&    c #5B666A",
+"W&    c #5C6869",
+"X&    c #5C6868",
+"Y&    c #5B6767",
+"Z&    c #596565",
+"`&    c #576464",
+" *    c #566162",
+".*    c #575F61",
+"+*    c #575C60",
+"@*    c #565C60",
+"#*    c #242C2B",
+"$*    c #778587",
+"%*    c #849196",
+"&*    c #8F9CA2",
+"**    c #6B7475",
+"=*    c #111312",
+"-*    c #1B1D1E",
+";*    c #B1BDC3",
+">*    c #C2D3DB",
+",*    c #C6D7DE",
+"'*    c #C8D8E0",
+")*    c #CBDBE2",
+"!*    c #CCDEE5",
+"~*    c #CADCE3",
+"{*    c #C7D9DF",
+"]*    c #C7D8DF",
+"^*    c #C4D5DC",
+"/*    c #C3D3DA",
+"(*    c #C2D2D9",
+"_*    c #C1D2D8",
+":*    c #BFD1D6",
+"<*    c #BCCDD3",
+"[*    c #B8C9D0",
+"}*    c #B7C8CE",
+"|*    c #B5C6CC",
+"1*    c #B4C6CB",
+"2*    c #B2C4C8",
+"3*    c #ACBBBF",
+"4*    c #585E62",
+"5*    c #07070B",
+"6*    c #292B2D",
+"7*    c #AFB7BE",
+"8*    c #95A0A4",
+"9*    c #35393B",
+"0*    c #505457",
+"a*    c #AAB6BB",
+"b*    c #9FAFB5",
+"c*    c #9EACB2",
+"d*    c #9DAAAF",
+"e*    c #98A6AA",
+"f*    c #95A3A8",
+"g*    c #94A1A8",
+"h*    c #929EA6",
+"i*    c #909DA3",
+"j*    c #758282",
+"k*    c #272A2B",
+"l*    c #010002",
+"m*    c #636669",
+"n*    c #869394",
+"o*    c #829295",
+"p*    c #818D93",
+"q*    c #7E8A8F",
+"r*    c #7C888D",
+"s*    c #79858A",
+"t*    c #717C81",
+"u*    c #707A7F",
+"v*    c #687174",
+"w*    c #111214",
+"x*    c #828E90",
+"y*    c #565D5F",
+"z*    c #121313",
+"A*    c #707477",
+"B*    c #647173",
+"C*    c #657274",
+"D*    c #667375",
+"E*    c #677374",
+"F*    c #657071",
+"G*    c #636E6F",
+"H*    c #606C6D",
+"I*    c #5D676D",
+"J*    c #5D676C",
+"K*    c #5E676D",
+"L*    c #5E686E",
+"M*    c #5E686D",
+"N*    c #5B666B",
+"O*    c #5A646A",
+"P*    c #596367",
+"Q*    c #596467",
+"R*    c #5A6568",
+"S*    c #5A6567",
+"T*    c #596567",
+"U*    c #586466",
+"V*    c #576365",
+"W*    c #576163",
+"X*    c #576062",
+"Y*    c #565F61",
+"Z*    c #575F62",
+"`*    c #303335",
+" =    c #050506",
+".=    c #020302",
+"+=    c #1A1E1E",
+"@=    c #676F72",
+"#=    c #6F787B",
+"$=    c #778082",
+"%=    c #585E5E",
+"&=    c #0E100F",
+"*=    c #1A1D1F",
+"==    c #AEBAC0",
+"-=    c #BDCED5",
+";=    c #AFBCC2",
+">=    c #98A2A7",
+",=    c #95A1A6",
+"'=    c #94A0A4",
+")=    c #93A0A3",
+"!=    c #95A1A5",
+"~=    c #A7B6B9",
+"{=    c #BBCBCE",
+"]=    c #BACCD0",
+"^=    c #B6C8CD",
+"/=    c #B3C3C7",
+"(=    c #B2C2C5",
+"_=    c #AFBEC1",
+":=    c #96A2A6",
+"<=    c #848C90",
+"[=    c #45474A",
+"}=    c #060609",
+"|=    c #A8B5BC",
+"1=    c #959FA4",
+"2=    c #030002",
+"3=    c #4F5356",
+"4=    c #A3AFB4",
+"5=    c #99A8AE",
+"6=    c #96A4A7",
+"7=    c #95A2A6",
+"8=    c #94A1A6",
+"9=    c #94A0A5",
+"0=    c #929DA2",
+"a=    c #8E9B9E",
+"b=    c #748081",
+"c=    c #25292A",
+"d=    c #859094",
+"e=    c #849094",
+"f=    c #838F92",
+"g=    c #7C888A",
+"h=    c #798486",
+"i=    c #747D82",
+"j=    c #727B80",
+"k=    c #707A7E",
+"l=    c #838E91",
+"m=    c #575E60",
+"n=    c #121314",
+"o=    c #727679",
+"p=    c #6B7678",
+"q=    c #687377",
+"r=    c #565E5F",
+"s=    c #555E5E",
+"t=    c #565E5E",
+"u=    c #575F5F",
+"v=    c #555D5E",
+"w=    c #565D5E",
+"x=    c #535C5D",
+"y=    c #535C5C",
+"z=    c #525C5C",
+"A=    c #525B5B",
+"B=    c #535A5C",
+"C=    c #535A5B",
+"D=    c #52595A",
+"E=    c #51585A",
+"F=    c #515859",
+"G=    c #505859",
+"H=    c #4E5758",
+"I=    c #4E5658",
+"J=    c #4F5758",
+"K=    c #505858",
+"L=    c #525859",
+"M=    c #2B2D2E",
+"N=    c #181818",
+"O=    c #1F1F1F",
+"P=    c #1F2020",
+"Q=    c #202221",
+"R=    c #1A1C1F",
+"S=    c #ABB6BB",
+"T=    c #AEBEC3",
+"U=    c #282B2B",
+"V=    c #212325",
+"W=    c #212426",
+"X=    c #212425",
+"Y=    c #202324",
+"Z=    c #202323",
+"`=    c #1F2324",
+" -    c #222527",
+".-    c #42474A",
+"+-    c #A3B2B7",
+"@-    c #B4C6CD",
+"#-    c #B4C5CB",
+"$-    c #B2C4C7",
+"%-    c #9BA9AB",
+"&-    c #4B5053",
+"*-    c #201F22",
+"=-    c #282A2C",
+"--    c #AAB3B9",
+";-    c #A6B3BA",
+">-    c #35393A",
+",-    c #4D5355",
+"'-    c #A1AFB3",
+")-    c #99A8AF",
+"!-    c #9AA7AD",
+"~-    c #98A5AB",
+"{-    c #93A0A6",
+"]-    c #929FA5",
+"^-    c #919EA4",
+"/-    c #8E9BA1",
+"(-    c #8C989D",
+"_-    c #757D81",
+":-    c #626768",
+"<-    c #849095",
+"[-    c #849092",
+"}-    c #818E8F",
+"|-    c #7E8C8D",
+"1-    c #7C8A8B",
+"2-    c #7A8789",
+"3-    c #7A868A",
+"4-    c #788389",
+"5-    c #747F84",
+"6-    c #6B7577",
+"7-    c #111315",
+"8-    c #535758",
+"9-    c #848F92",
+"0-    c #585F62",
+"a-    c #121414",
+"b-    c #72777A",
+"c-    c #6B787A",
+"d-    c #687476",
+"e-    c #2B2E2F",
+"f-    c #1F2124",
+"g-    c #202225",
+"h-    c #212326",
+"i-    c #212423",
+"j-    c #212422",
+"k-    c #212322",
+"l-    c #202322",
+"m-    c #202121",
+"n-    c #212221",
+"o-    c #202120",
+"p-    c #030303",
+"q-    c #191A1F",
+"r-    c #A5B0B5",
+"s-    c #98A7AB",
+"t-    c #3B4243",
+"u-    c #040204",
+"v-    c #151619",
+"w-    c #43484B",
+"x-    c #798488",
+"y-    c #A8B7BD",
+"z-    c #B3C4CA",
+"A-    c #AEC1C6",
+"B-    c #849397",
+"C-    c #272B2F",
+"D-    c #040305",
+"E-    c #333537",
+"F-    c #B0B8BF",
+"G-    c #939EA2",
+"H-    c #35383A",
+"I-    c #99A7AE",
+"J-    c #99A6AC",
+"K-    c #96A3A9",
+"L-    c #8D999E",
+"M-    c #777F83",
+"N-    c #020201",
+"O-    c #030301",
+"P-    c #828F91",
+"Q-    c #808D8E",
+"R-    c #7D8B8C",
+"S-    c #7B898A",
+"T-    c #7B898B",
+"U-    c #7D898D",
+"V-    c #585F61",
+"W-    c #717779",
+"X-    c #6A7779",
+"Y-    c #637072",
+"Z-    c #343B3C",
+"`-    c #050809",
+" ;    c #020003",
+".;    c #020103",
+"+;    c #020000",
+"@;    c #040101",
+"#;    c #030101",
+"$;    c #030000",
+"%;    c #030001",
+"&;    c #040001",
+"*;    c #040102",
+"=;    c #191A1E",
+"-;    c #A5B0B4",
+";;    c #5E6364",
+">;    c #090908",
+",;    c #010200",
+"';    c #1D1E21",
+");    c #454C4D",
+"!;    c #7F8A8C",
+"~;    c #A5B5B8",
+"{;    c #A5B2B5",
+"];    c #5A5E61",
+"^;    c #28272A",
+"/;    c #242425",
+"(;    c #242526",
+"_;    c #393A3A",
+":;    c #818385",
+"<;    c #ABB4BB",
+"[;    c #A1AEB5",
+"};    c #34383A",
+"|;    c #4D5456",
+"1;    c #A4B1B6",
+"2;    c #8C999F",
+"3;    c #8A979D",
+"4;    c #89959A",
+"5;    c #838B8F",
+"6;    c #45494B",
+"7;    c #060705",
+"8;    c #0B0B09",
+"9;    c #717778",
+"0;    c #889498",
+"a;    c #7A8889",
+"b;    c #798789",
+"c;    c #7A868B",
+"d;    c #79848A",
+"e;    c #121315",
+"f;    c #586062",
+"g;    c #717679",
+"h;    c #697678",
+"i;    c #677476",
+"j;    c #454C4E",
+"k;    c #0F1213",
+"l;    c #030405",
+"m;    c #020304",
+"n;    c #030304",
+"o;    c #020303",
+"p;    c #050404",
+"q;    c #050304",
+"r;    c #050303",
+"s;    c #030305",
+"t;    c #212324",
+"u;    c #707677",
+"v;    c #777E80",
+"w;    c #7B8384",
+"x;    c #55595A",
+"y;    c #0E0E0E",
+"z;    c #18191D",
+"A;    c #9BA6AB",
+"B;    c #B1BEC2",
+"C;    c #B0B6B8",
+"D;    c #9A9FA0",
+"E;    c #979B9C",
+"F;    c #969C9C",
+"G;    c #979D9C",
+"H;    c #989E9D",
+"I;    c #979D9D",
+"J;    c #969D9C",
+"K;    c #959C9B",
+"L;    c #949A9A",
+"M;    c #797E7E",
+"N;    c #303232",
+"O;    c #070807",
+"P;    c #020301",
+"Q;    c #030202",
+"R;    c #1C201F",
+"S;    c #485250",
+"T;    c #8B9797",
+"U;    c #A5AFB2",
+"V;    c #9FA6AB",
+"W;    c #9BA2A8",
+"X;    c #98A2A4",
+"Y;    c #98A3A5",
+"Z;    c #A6AFB3",
+"`;    c #A2ABB3",
+" >    c #9DA9B0",
+".>    c #8C969A",
+"+>    c #333638",
+"@>    c #4D5153",
+"#>    c #A4B0B3",
+"$>    c #9AA9AE",
+"%>    c #8E9B9F",
+"&>    c #909C9E",
+"*>    c #8E9899",
+"=>    c #80898A",
+"->    c #818A8A",
+";>    c #8E999A",
+">>    c #879496",
+",>    c #808D90",
+"'>    c #7C8A8E",
+")>    c #7B898D",
+"!>    c #7B888D",
+"~>    c #7A868C",
+"{>    c #6C7779",
+"]>    c #050606",
+"^>    c #525959",
+"/>    c #869294",
+"(>    c #586163",
+"_>    c #687677",
+":>    c #707C7D",
+"<>    c #747E7F",
+"[>    c #75797B",
+"}>    c #75787A",
+"|>    c #757879",
+"1>    c #73787A",
+"2>    c #73797A",
+"3>    c #747A7B",
+"4>    c #74797B",
+"5>    c #74797A",
+"6>    c #75777A",
+"7>    c #737678",
+"8>    c #737778",
+"9>    c #737677",
+"0>    c #747679",
+"a>    c #6E7476",
+"b>    c #6D7575",
+"c>    c #6C7474",
+"d>    c #6A7071",
+"e>    c #2E3030",
+"f>    c #040507",
+"g>    c #232729",
+"h>    c #6D7679",
+"i>    c #747E81",
+"j>    c #7A8688",
+"k>    c #686F70",
+"l>    c #131313",
+"m>    c #17191D",
+"n>    c #97A3A7",
+"o>    c #ABBBBD",
+"p>    c #B4C0C2",
+"q>    c #B6C2C5",
+"r>    c #B6C4C7",
+"s>    c #B9C7CA",
+"t>    c #BAC9CB",
+"u>    c #BBCACC",
+"v>    c #BBC9CD",
+"w>    c #BAC9CC",
+"x>    c #B9C6C9",
+"y>    c #B5BEBF",
+"z>    c #777C7C",
+"A>    c #1A1B1B",
+"B>    c #090B0B",
+"C>    c #1D2021",
+"D>    c #545A5E",
+"E>    c #97A1A5",
+"F>    c #AAB6BC",
+"G>    c #A7B8BA",
+"H>    c #A3B5B6",
+"I>    c #9FAEB3",
+"J>    c #9FACB3",
+"K>    c #8F999E",
+"L>    c #343739",
+"M>    c #4C5050",
+"N>    c #A0ABAF",
+"O>    c #94A3A8",
+"P>    c #919FA5",
+"Q>    c #8C999E",
+"R>    c #8B9899",
+"S>    c #8C999A",
+"T>    c #8A9798",
+"U>    c #869495",
+"V>    c #839192",
+"W>    c #818F90",
+"X>    c #7E8B90",
+"Y>    c #7A878D",
+"Z>    c #79858B",
+"`>    c #768187",
+" ,    c #6E797A",
+".,    c #111415",
+"+,    c #535A5A",
+"@,    c #869395",
+"#,    c #596364",
+"$,    c #121415",
+"%,    c #727779",
+"&,    c #6C787A",
+"*,    c #677576",
+"=,    c #6A7879",
+"-,    c #6E7B7C",
+";,    c #6E7A7B",
+">,    c #6C7678",
+",,    c #6A7476",
+"',    c #6D7678",
+"),    c #6E7879",
+"!,    c #6E7678",
+"~,    c #6C7477",
+"{,    c #6B7375",
+"],    c #6A7174",
+"^,    c #6B7275",
+"/,    c #6B7376",
+"(,    c #697073",
+"_,    c #666F72",
+":,    c #657072",
+"<,    c #636E70",
+"[,    c #626D6E",
+"},    c #333637",
+"|,    c #020406",
+"1,    c #212527",
+"2,    c #6D787B",
+"3,    c #727E81",
+"4,    c #788488",
+"5,    c #656B6D",
+"6,    c #111211",
+"7,    c #17181C",
+"8,    c #939FA4",
+"9,    c #A6B7BB",
+"0,    c #ACBCC0",
+"a,    c #AFBFC3",
+"b,    c #B2C4CA",
+"c,    c #B3C6CC",
+"d,    c #B4C6CC",
+"e,    c #B2C5CB",
+"f,    c #B3C5CB",
+"g,    c #B3C4C7",
+"h,    c #BBC8CA",
+"i,    c #C3CACB",
+"j,    c #67696A",
+"k,    c #141414",
+"l,    c #080707",
+"m,    c #16191B",
+"n,    c #596264",
+"o,    c #9AA7A8",
+"p,    c #A1AFB1",
+"q,    c #A1B1B5",
+"r,    c #A0B1B6",
+"s,    c #A1B0B6",
+"t,    c #939DA1",
+"u,    c #36393B",
+"v,    c #4C5151",
+"w,    c #A2ACB0",
+"x,    c #95A4A9",
+"y,    c #8D9AA0",
+"z,    c #8B989E",
+"A,    c #8A989C",
+"B,    c #889698",
+"C,    c #879596",
+"D,    c #859394",
+"E,    c #808E8F",
+"F,    c #79868C",
+"G,    c #778389",
+"H,    c #78848A",
+"I,    c #778288",
+"J,    c #6A7677",
+"K,    c #515858",
+"L,    c #849193",
+"M,    c #131515",
+"N,    c #6D797B",
+"O,    c #667475",
+"P,    c #657374",
+"Q,    c #647373",
+"R,    c #657474",
+"S,    c #647374",
+"T,    c #637272",
+"U,    c #657172",
+"V,    c #657171",
+"W,    c #636F6F",
+"X,    c #626D6F",
+"Y,    c #616C6E",
+"Z,    c #5C6769",
+"`,    c #5E676A",
+" '    c #5F676C",
+".'    c #5F686C",
+"+'    c #616A6E",
+"@'    c #626C6F",
+"#'    c #626B6D",
+"$'    c #616B6D",
+"%'    c #5E696C",
+"&'    c #586366",
+"*'    c #576164",
+"='    c #2D3232",
+"-'    c #040606",
+";'    c #010304",
+">'    c #1F2325",
+",'    c #677274",
+"''    c #6C797B",
+")'    c #717D81",
+"!'    c #62686A",
+"~'    c #111111",
+"{'    c #16171B",
+"]'    c #8E999E",
+"^'    c #9FAEB4",
+"/'    c #A5B2B9",
+"('    c #A7B4BB",
+"_'    c #ABBAC0",
+":'    c #ACBCC1",
+"<'    c #ADBDC1",
+"['    c #AFBFC4",
+"}'    c #B1C1C5",
+"|'    c #B3C3C8",
+"1'    c #B5C5CB",
+"2'    c #B5C6CB",
+"3'    c #B6C6CB",
+"4'    c #B7C6C9",
+"5'    c #C3D0D1",
+"6'    c #B4BDBB",
+"7'    c #595E5C",
+"8'    c #1D1F1F",
+"9'    c #090909",
+"0'    c #020404",
+"a'    c #191C1F",
+"b'    c #656A6F",
+"c'    c #8E979D",
+"d'    c #9AA6AD",
+"e'    c #A1ACAF",
+"f'    c #93A2A7",
+"g'    c #8F9DA3",
+"h'    c #89969C",
+"i'    c #889699",
+"j'    c #889597",
+"k'    c #869496",
+"l'    c #849294",
+"m'    c #849293",
+"n'    c #829091",
+"o'    c #7D8B90",
+"p'    c #7C898F",
+"q'    c #7B888E",
+"r'    c #7B868C",
+"s'    c #778388",
+"t'    c #6C7879",
+"u'    c #576162",
+"v'    c #676C6E",
+"w'    c #6B7778",
+"x'    c #657273",
+"y'    c #647172",
+"z'    c #667172",
+"A'    c #667072",
+"B'    c #646F71",
+"C'    c #647070",
+"D'    c #667171",
+"E'    c #657173",
+"F'    c #636F70",
+"G'    c #606B6D",
+"H'    c #5F686A",
+"I'    c #5D6769",
+"J'    c #5D676A",
+"K'    c #5E676C",
+"L'    c #5D666C",
+"M'    c #5C6669",
+"N'    c #5C6668",
+"O'    c #5E686A",
+"P'    c #5C676C",
+"Q'    c #5C666B",
+"R'    c #303434",
+"S'    c #040505",
+"T'    c #010303",
+"U'    c #1E2224",
+"V'    c #5E676B",
+"W'    c #626D71",
+"X'    c #687577",
+"Y'    c #6E797D",
+"Z'    c #5F6668",
+"`'    c #101111",
+" )    c #8C979C",
+".)    c #9DACB3",
+"+)    c #A4B1B7",
+"@)    c #A9B5BC",
+"#)    c #AAB6BD",
+"$)    c #ABB8BE",
+"%)    c #ABBABE",
+"&)    c #AEBEC2",
+"*)    c #B2C3C8",
+"=)    c #B1C2C7",
+"-)    c #AFC2C5",
+";)    c #AEC0C2",
+">)    c #B2C2C2",
+",)    c #BCC6C7",
+"')    c #9BA0A3",
+"))    c #515456",
+"!)    c #1F2121",
+"~)    c #2D2E32",
+"{)    c #6E7579",
+"])    c #97A2A7",
+"^)    c #8D979C",
+"/)    c #333739",
+"()    c #020403",
+"_)    c #A1ABAE",
+":)    c #92A0A6",
+"<)    c #8B999E",
+"[)    c #8A979C",
+"})    c #88959A",
+"|)    c #869498",
+"1)    c #839195",
+"2)    c #829094",
+"3)    c #828F94",
+"4)    c #818E92",
+"5)    c #7B878D",
+"6)    c #6C777A",
+"7)    c #586263",
+"8)    c #252727",
+"9)    c #474B4B",
+"0)    c #444849",
+"a)    c #424647",
+"b)    c #414445",
+"c)    c #404344",
+"d)    c #404243",
+"e)    c #3E4141",
+"f)    c #3E4142",
+"g)    c #3E4242",
+"h)    c #3D4242",
+"i)    c #3D4241",
+"j)    c #3B4040",
+"k)    c #3C4040",
+"l)    c #3D4040",
+"m)    c #3D4041",
+"n)    c #3C3F41",
+"o)    c #3D4042",
+"p)    c #3D4243",
+"q)    c #3C4243",
+"r)    c #4E5556",
+"s)    c #6C7577",
+"t)    c #5F696C",
+"u)    c #323537",
+"v)    c #1D2122",
+"w)    c #5B6469",
+"x)    c #5F6A6E",
+"y)    c #6A7679",
+"z)    c #5E6566",
+"A)    c #879297",
+"B)    c #9AAAB1",
+"C)    c #A1AEB4",
+"D)    c #A6B3B9",
+"E)    c #ACBAC0",
+"F)    c #ADBCC1",
+"G)    c #ACBBC0",
+"H)    c #AEBFC3",
+"I)    c #AEBFC4",
+"J)    c #ADBEC2",
+"K)    c #ABBCC1",
+"L)    c #A8B8BC",
+"M)    c #A9B5B9",
+"N)    c #AAB5B9",
+"O)    c #B0BBBF",
+"P)    c #B5BFC1",
+"Q)    c #8B9193",
+"R)    c #4E5253",
+"S)    c #1D1F1E",
+"T)    c #030102",
+"U)    c #060306",
+"V)    c #2D2F33",
+"W)    c #8B9499",
+"X)    c #030504",
+"Y)    c #000200",
+"Z)    c #4A4E4E",
+"`)    c #9DA7AA",
+" !    c #88959B",
+".!    c #87949A",
+"+!    c #839096",
+"@!    c #849197",
+"#!    c #828F95",
+"$!    c #7E8B91",
+"%!    c #111414",
+"&!    c #060507",
+"*!    c #535658",
+"=!    c #859093",
+"-!    c #010302",
+";!    c #030204",
+">!    c #232427",
+",!    c #707779",
+"'!    c #5A6368",
+")!    c #687477",
+"!!    c #656C6D",
+"~!    c #131414",
+"{!    c #92A2A8",
+"]!    c #9BA8AE",
+"^!    c #A0ADB3",
+"/!    c #A2AFB5",
+"(!    c #A5B3B9",
+"_!    c #A8B7BC",
+":!    c #AAB9BE",
+"<!    c #ADBBC1",
+"[!    c #ABB9BE",
+"}!    c #A9B6BC",
+"|!    c #A8B5BA",
+"1!    c #A5B5BA",
+"2!    c #A6B5B9",
+"3!    c #B2BDC1",
+"4!    c #ADB5B9",
+"5!    c #82888A",
+"6!    c #4C4F4F",
+"7!    c #151415",
+"8!    c #0C0A0D",
+"9!    c #4D5054",
+"0!    c #A0A9AD",
+"a!    c #373C3D",
+"b!    c #060707",
+"c!    c #020402",
+"d!    c #4D5252",
+"e!    c #9AA5A8",
+"f!    c #869399",
+"g!    c #818E94",
+"h!    c #7F8C92",
+"i!    c #7D8A90",
+"j!    c #6A7578",
+"k!    c #08080A",
+"l!    c #57595B",
+"m!    c #869194",
+"n!    c #677172",
+"o!    c #242727",
+"p!    c #28292B",
+"q!    c #787E80",
+"r!    c #050607",
+"s!    c #5A6367",
+"t!    c #5F6B6D",
+"u!    c #657174",
+"v!    c #909799",
+"w!    c #646667",
+"x!    c #505353",
+"y!    c #606566",
+"z!    c #8C989C",
+"A!    c #909FA5",
+"B!    c #97A4AA",
+"C!    c #A1AFB5",
+"D!    c #A4B3B8",
+"E!    c #A6B5BA",
+"F!    c #A8B4BA",
+"G!    c #A8B5BB",
+"H!    c #A9B6BD",
+"I!    c #A7B5BB",
+"J!    c #A4B3B9",
+"K!    c #A2B1B7",
+"L!    c #A3AFB6",
+"M!    c #A3AEB4",
+"N!    c #AEB7BC",
+"O!    c #A4ACAE",
+"P!    c #5F6366",
+"Q!    c #8D9599",
+"R!    c #A1ADB1",
+"S!    c #9BA4A9",
+"T!    c #585B5B",
+"U!    c #535656",
+"V!    c #848C8C",
+"W!    c #98A3A7",
+"X!    c #8B989D",
+"Y!    c #89969B",
+"Z!    c #879499",
+"`!    c #859296",
+" ~    c #818E93",
+".~    c #7F8C91",
+"+~    c #7A878C",
+"@~    c #77848A",
+"#~    c #737F82",
+"$~    c #616666",
+"%~    c #4D4F50",
+"&~    c #595B5D",
+"*~    c #7F8386",
+"=~    c #808B8F",
+"-~    c #768082",
+";~    c #6D7272",
+">~    c #535555",
+",~    c #4D5050",
+"'~    c #4C4E4F",
+")~    c #505252",
+"!~    c #515253",
+"~~    c #515252",
+"{~    c #505152",
+"]~    c #505151",
+"^~    c #4E5151",
+"/~    c #4E5252",
+"(~    c #4F5252",
+"_~    c #4F5151",
+":~    c #4F5355",
+"<~    c #6A6F71",
+"[~    c #8C9597",
+"}~    c #303336",
+"|~    c #1B2021",
+"1~    c #576165",
+"2~    c #7B8587",
+"3~    c #7F8889",
+"4~    c #7B8687",
+"5~    c #859091",
+"6~    c #8B999D",
+"7~    c #9DAAB0",
+"8~    c #A5B2B8",
+"9~    c #A7B4BA",
+"0~    c #A6B2B8",
+"a~    c #A4B1B8",
+"b~    c #A3B1B7",
+"c~    c #A2AFB6",
+"d~    c #A2AEB4",
+"e~    c #9FAAB0",
+"f~    c #9DA8AE",
+"g~    c #A0ACB1",
+"h~    c #A5B1B7",
+"i~    c #98A3A9",
+"j~    c #97A3AA",
+"k~    c #98A4AA",
+"l~    c #99A4A9",
+"m~    c #929DA1",
+"n~    c #8E999D",
+"o~    c #919DA2",
+"p~    c #909DA2",
+"q~    c #8C9A9C",
+"r~    c #8A9799",
+"s~    c #879597",
+"t~    c #818F91",
+"u~    c #828F92",
+"v~    c #818E91",
+"w~    c #768389",
+"x~    c #727D83",
+"y~    c #737F84",
+"z~    c #7E878C",
+"A~    c #7D868B",
+"B~    c #7F888D",
+"C~    c #727D82",
+"D~    c #7D8689",
+"E~    c #798283",
+"F~    c #768080",
+"G~    c #778080",
+"H~    c #7A8283",
+"I~    c #798083",
+"J~    c #798082",
+"K~    c #787F81",
+"L~    c #767D7F",
+"M~    c #757C7E",
+"N~    c #757B7D",
+"O~    c #747B7C",
+"P~    c #73797C",
+"Q~    c #72797B",
+"R~    c #737A7C",
+"S~    c #727B7C",
+"T~    c #737C7D",
+"U~    c #747B7D",
+"V~    c #71787A",
+"W~    c #6F7778",
+"X~    c #6F7779",
+"Y~    c #6F7678",
+"Z~    c #6C7677",
+"`~    c #717A7F",
+" {    c #5F676E",
+".{    c #60686E",
+"+{    c #1B1F21",
+"@{    c #5B6668",
+"#{    c #667173",
+"${    c #6D797A",
+"%{    c #728081",
+"&{    c #778586",
+"*{    c #7F8D8E",
+"={    c #A3B0B6",
+"-{    c #9FABB1",
+";{    c #9EA9AF",
+">{    c #9BA7AE",
+",{    c #99A6AE",
+"'{    c #98A5AD",
+"){    c #97A4AB",
+"!{    c #8C999D",
+"~{    c #899798",
+"{{    c #6E797E",
+"]{    c #6D7879",
+"^{    c #6D787A",
+"/{    c #6C7B7C",
+"({    c #6E7C7D",
+"_{    c #6D7C7C",
+":{    c #6E797B",
+"<{    c #6D7779",
+"[{    c #697274",
+"}{    c #697375",
+"|{    c #677173",
+"1{    c #646E70",
+"2{    c #616D6E",
+"3{    c #5F6D6E",
+"4{    c #5F6D6D",
+"5{    c #5E6C6D",
+"6{    c #5E6A6C",
+"7{    c #5F666E",
+"8{    c #60676F",
+"9{    c #303538",
+"0{    c #1C2123",
+"a{    c #576063",
+"b{    c #586367",
+"c{    c #677375",
+"d{    c #6D7A7B",
+"e{    c #707E7F",
+"f{    c #758384",
+"g{    c #7E8B8F",
+"h{    c #9CA8AE",
+"i{    c #9CA7AD",
+"j{    c #9BA6AC",
+"k{    c #99A5AC",
+"l{    c #9AA7AF",
+"m{    c #9BA8B0",
+"n{    c #808D93",
+"o{    c #717C82",
+"p{    c #6F7A80",
+"q{    c #6D787D",
+"r{    c #6D797C",
+"s{    c #6B797B",
+"t{    c #6A7B7B",
+"u{    c #6B7B7B",
+"v{    c #6A7A7A",
+"w{    c #687576",
+"x{    c #616D6F",
+"y{    c #606C6E",
+"z{    c #5F6C6D",
+"A{    c #5F686E",
+"B{    c #616870",
+"C{    c #33373A",
+"D{    c #010305",
+"E{    c #596165",
+"F{    c #697679",
+"G{    c #6F7C80",
+"H{    c #738083",
+"I{    c #7B868A",
+"J{    c #838F94",
+"K{    c #8B979B",
+"L{    c #909BA0",
+"M{    c #929EA3",
+"N{    c #96A2A7",
+"O{    c #9BA7AD",
+"P{    c #97A3A9",
+"Q{    c #9AA6AC",
+"R{    c #99A6AA",
+"S{    c #98A4A9",
+"T{    c #99A5AA",
+"U{    c #96A1A6",
+"V{    c #97A1A6",
+"W{    c #9AA3A8",
+"X{    c #9CA6AA",
+"Y{    c #94A0A6",
+"Z{    c #939EA5",
+"`{    c #919DA4",
+" ]    c #8E9AA0",
+".]    c #8D989D",
+"+]    c #8E989E",
+"@]    c #8C979D",
+"#]    c #8B979D",
+"$]    c #8A989B",
+"%]    c #879395",
+"&]    c #839090",
+"*]    c #818E8E",
+"=]    c #828F90",
+"-]    c #7F8B8C",
+";]    c #7B8788",
+">]    c #798687",
+",]    c #798489",
+"']    c #788388",
+")]    c #757F85",
+"!]    c #727C82",
+"~]    c #6F797E",
+"{]    c #737D83",
+"]]    c #717A80",
+"^]    c #6E787D",
+"/]    c #6F787E",
+"(]    c #6F787D",
+"_]    c #6C757B",
+":]    c #6C767A",
+"<]    c #6D767C",
+"[]    c #6E787B",
+"}]    c #6C797A",
+"|]    c #667476",
+"1]    c #677577",
+"2]    c #677273",
+"3]    c #667374",
+"4]    c #697476",
+"5]    c #6A7376",
+"6]    c #6A7577",
+"7]    c #616C6D",
+"8]    c #5C6768",
+"9]    c #596465",
+"0]    c #586465",
+"a]    c #586264",
+"b]    c #5A6267",
+"c]    c #5D646B",
+"d]    c #60676D",
+"e]    c #020305",
+"f]    c #1C2023",
+"g]    c #586063",
+"h]    c #596468",
+"i]    c #5C666A",
+"j]    c #5E6669",
+"k]    c #45484A",
+"l]    c #494A4D",
+"m]    c #51575D",
+"n]    c #6C767E",
+"o]    c #6B7379",
+"p]    c #484B4F",
+"q]    c #4D5353",
+"r]    c #414446",
+"s]    c #464E4D",
+"t]    c #525657",
+"u]    c #424346",
+"v]    c #424546",
+"w]    c #46494C",
+"x]    c #92A1A5",
+"y]    c #97A4A9",
+"z]    c #5E666C",
+"A]    c #959EA5",
+"B]    c #98A5A9",
+"C]    c #7A8384",
+"D]    c #676E70",
+"E]    c #676C6F",
+"F]    c #484C4E",
+"G]    c #434949",
+"H]    c #464D4C",
+"I]    c #6A7171",
+"J]    c #444A4A",
+"K]    c #444648",
+"L]    c #44464A",
+"M]    c #4F5559",
+"N]    c #5A6164",
+"O]    c #656D71",
+"P]    c #4A4E4F",
+"Q]    c #444749",
+"R]    c #52565A",
+"S]    c #727F81",
+"T]    c #869897",
+"U]    c #7F8D8D",
+"V]    c #565D5D",
+"W]    c #484D4D",
+"X]    c #5B6363",
+"Y]    c #636C6E",
+"Z]    c #848F93",
+"`]    c #56595B",
+" ^    c #3F4042",
+".^    c #414647",
+"+^    c #424747",
+"@^    c #4C5051",
+"#^    c #5D6162",
+"$^    c #55595B",
+"%^    c #404747",
+"&^    c #414847",
+"*^    c #737F86",
+"=^    c #6F777B",
+"-^    c #3D3E40",
+";^    c #3B3D3F",
+">^    c #4A4B4D",
+",^    c #545557",
+"'^    c #3E4444",
+")^    c #444748",
+"!^    c #4E5054",
+"~^    c #4C5358",
+"{^    c #6C787C",
+"]^    c #6A7378",
+"^^    c #4B5255",
+"/^    c #626F73",
+"(^    c #6A777D",
+"_^    c #44484A",
+":^    c #3D4142",
+"<^    c #393D3E",
+"[^    c #3A3D3F",
+"}^    c #484B4E",
+"|^    c #424548",
+"1^    c #565A5D",
+"2^    c #3F4446",
+"3^    c #484C4D",
+"4^    c #4C5252",
+"5^    c #515C5A",
+"6^    c #606E6C",
+"7^    c #495352",
+"8^    c #4E5454",
+"9^    c #363B3C",
+"0^    c #44494B",
+"a^    c #62696C",
+"b^    c #646D72",
+"c^    c #626B70",
+"d^    c #5A6467",
+"e^    c #535B5E",
+"f^    c #25282A",
+"g^    c #232324",
+"h^    c #42484C",
+"i^    c #54585A",
+"j^    c #27292A",
+"k^    c #535B5C",
+"l^    c #363B3D",
+"m^    c #586161",
+"n^    c #343839",
+"o^    c #202123",
+"p^    c #2A2C2E",
+"q^    c #44484B",
+"r^    c #4B5356",
+"s^    c #899396",
+"t^    c #8F999D",
+"u^    c #34383D",
+"v^    c #8D9398",
+"w^    c #97A2A5",
+"x^    c #61676A",
+"y^    c #373A3D",
+"z^    c #36393C",
+"A^    c #343638",
+"B^    c #2C2F30",
+"C^    c #252829",
+"D^    c #464B4B",
+"E^    c #191C1D",
+"F^    c #2E2D30",
+"G^    c #312F35",
+"H^    c #4A4C51",
+"I^    c #3B3E40",
+"J^    c #232829",
+"K^    c #5A5F61",
+"L^    c #595B5A",
+"M^    c #646A6C",
+"N^    c #434749",
+"O^    c #2D3235",
+"P^    c #656D6F",
+"Q^    c #778686",
+"R^    c #839494",
+"S^    c #3E4041",
+"T^    c #3B3F41",
+"U^    c #2D3031",
+"V^    c #1D1E20",
+"W^    c #545959",
+"X^    c #202223",
+"Y^    c #2F3435",
+"Z^    c #414A49",
+"`^    c #4F5857",
+" /    c #242929",
+"./    c #535B5F",
+"+/    c #748087",
+"@/    c #646B6F",
+"#/    c #232425",
+"$/    c #242527",
+"%/    c #353537",
+"&/    c #1A1A1C",
+"*/    c #424547",
+"=/    c #16171A",
+"-/    c #313639",
+";/    c #707A7B",
+">/    c #636C6D",
+",/    c #2F3335",
+"'/    c #5D6669",
+")/    c #6D777B",
+"!/    c #2E3234",
+"~/    c #454A4C",
+"{/    c #292D30",
+"]/    c #323739",
+"^/    c #4A4F52",
+"//    c #26292C",
+"(/    c #24262A",
+"_/    c #2E3134",
+":/    c #414B4A",
+"</    c #383D3D",
+"[/    c #1D1D1F",
+"}/    c #232224",
+"|/    c #212526",
+"1/    c #454C4C",
+"2/    c #292A2C",
+"3/    c #191A1B",
+"4/    c #60696E",
+"5/    c #333737",
+"6/    c #586165",
+"7/    c #586266",
+"8/    c #252729",
+"9/    c #212222",
+"0/    c #3C4141",
+"a/    c #31393B",
+"b/    c #292E2F",
+"c/    c #4B5256",
+"d/    c #4A5054",
+"e/    c #7D8788",
+"f/    c #3E4344",
+"g/    c #2E2F31",
+"h/    c #3F4243",
+"i/    c #494E4D",
+"j/    c #4F5353",
+"k/    c #43474A",
+"l/    c #6E7477",
+"m/    c #2B2E32",
+"n/    c #6E7276",
+"o/    c #777F81",
+"p/    c #585C5F",
+"q/    c #383A3D",
+"r/    c #3D3D41",
+"s/    c #464649",
+"t/    c #454648",
+"u/    c #1B1D1F",
+"v/    c #202525",
+"w/    c #414546",
+"x/    c #43474B",
+"y/    c #545C5F",
+"z/    c #474D4F",
+"A/    c #454B4D",
+"B/    c #444A4E",
+"C/    c #2F3233",
+"D/    c #3D4447",
+"E/    c #8B9397",
+"F/    c #5D6468",
+"G/    c #42494C",
+"H/    c #889496",
+"I/    c #859595",
+"J/    c #859495",
+"K/    c #2D2F31",
+"L/    c #3C4342",
+"M/    c #1B1B1C",
+"N/    c #353838",
+"O/    c #444A4B",
+"P/    c #677071",
+"Q/    c #444C4D",
+"R/    c #232426",
+"S/    c #5F6364",
+"T/    c #606565",
+"U/    c #3A3D3E",
+"V/    c #505556",
+"W/    c #616767",
+"X/    c #737E85",
+"Y/    c #6D7579",
+"Z/    c #4A4D4E",
+"`/    c #373839",
+" (    c #313234",
+".(    c #1E1F21",
+"+(    c #4F5254",
+"@(    c #5F6766",
+"#(    c #4C4F50",
+"$(    c #17171A",
+"%(    c #282B2D",
+"&(    c #586060",
+"*(    c #515758",
+"=(    c #292B2B",
+"-(    c #4E5355",
+";(    c #5A6064",
+">(    c #393B3C",
+",(    c #3D4446",
+"'(    c #636B6F",
+")(    c #3C4246",
+"!(    c #2A2F31",
+"~(    c #26272B",
+"{(    c #3B3C3F",
+"](    c #525A59",
+"^(    c #454949",
+"/(    c #1E1F20",
+"((    c #303032",
+"_(    c #2B3131",
+":(    c #1A1D1E",
+"<(    c #343939",
+"[(    c #313838",
+"}(    c #2B3232",
+"|(    c #232929",
+"1(    c #24292B",
+"2(    c #60696D",
+"3(    c #1E2124",
+"4(    c #556064",
+"5(    c #333839",
+"6(    c #4F595A",
+"7(    c #3E4849",
+"8(    c #3E4548",
+"9(    c #565F64",
+"0(    c #7D888A",
+"a(    c #414649",
+"b(    c #4B5153",
+"c(    c #4B5352",
+"d(    c #4A5151",
+"e(    c #4A5053",
+"f(    c #4F5658",
+"g(    c #3A4043",
+"h(    c #494F52",
+"i(    c #575B5F",
+"j(    c #4C5053",
+"k(    c #505557",
+"l(    c #3A3F42",
+"m(    c #53595B",
+"n(    c #4A4F51",
+"o(    c #494E52",
+"p(    c #4E5559",
+"q(    c #7B858B",
+"r(    c #4C5458",
+"s(    c #8B959A",
+"t(    c #6C757A",
+"u(    c #5B6368",
+"v(    c #8C989B",
+"w(    c #89989A",
+"x(    c #899799",
+"y(    c #717E7E",
+"z(    c #717B7C",
+"A(    c #51595A",
+"B(    c #41484A",
+"C(    c #464D51",
+"D(    c #464C4F",
+"E(    c #373B3E",
+"F(    c #414749",
+"G(    c #414849",
+"H(    c #3E4446",
+"I(    c #4B5254",
+"J(    c #3F4546",
+"K(    c #45494C",
+"L(    c #3D4144",
+"M(    c #404547",
+"N(    c #363A3D",
+"O(    c #494F50",
+"P(    c #3D4244",
+"Q(    c #383D3F",
+"R(    c #3D4646",
+"S(    c #3A4041",
+"T(    c #303536",
+"U(    c #3D4444",
+"V(    c #434A4A",
+"W(    c #393E3E",
+"X(    c #3B4143",
+"Y(    c #3B4144",
+"Z(    c #626C70",
+"`(    c #485055",
+" _    c #525C60",
+"._    c #636D6F",
+"+_    c #3C4346",
+"@_    c #404549",
+"#_    c #35393D",
+"$_    c #383E40",
+"%_    c #353B3D",
+"&_    c #33393B",
+"*_    c #42484A",
+"=_    c #555D5F",
+"-_    c #505A5B",
+";_    c #2E3537",
+">_    c #373C3E",
+",_    c #33383A",
+"'_    c #393F42",
+")_    c #323636",
+"!_    c #040605",
+"~_    c #1D2023",
+"{_    c #566163",
+"]_    c #546264",
+"^_    c #556264",
+"/_    c #556063",
+"(_    c #505C5F",
+"__    c #525E60",
+":_    c #5C686A",
+"<_    c #647074",
+"[_    c #707C81",
+"}_    c #6C787D",
+"|_    c #6F7B7F",
+"1_    c #7B878A",
+"2_    c #768184",
+"3_    c #6F7B7D",
+"4_    c #747F82",
+"5_    c #768285",
+"6_    c #7B878B",
+"7_    c #7E898D",
+"8_    c #7C888C",
+"9_    c #7B868B",
+"0_    c #8A959A",
+"a_    c #899599",
+"b_    c #7E898E",
+"c_    c #7F8A8F",
+"d_    c #778186",
+"e_    c #768185",
+"f_    c #798389",
+"g_    c #869298",
+"h_    c #8C989F",
+"i_    c #849097",
+"j_    c #828F93",
+"k_    c #8A969B",
+"l_    c #869497",
+"m_    c #7B888A",
+"n_    c #778385",
+"o_    c #7D888C",
+"p_    c #737E82",
+"q_    c #6D797D",
+"r_    c #6E7A7D",
+"s_    c #758183",
+"t_    c #667174",
+"u_    c #667175",
+"v_    c #707B7F",
+"w_    c #6A7579",
+"x_    c #6F7B80",
+"y_    c #6E7A7E",
+"z_    c #616C71",
+"A_    c #657074",
+"B_    c #677275",
+"C_    c #5D696B",
+"D_    c #636F71",
+"E_    c #5A6668",
+"F_    c #626D70",
+"G_    c #566264",
+"H_    c #647073",
+"I_    c #626E71",
+"J_    c #626E70",
+"K_    c #5D696C",
+"L_    c #5B6568",
+"M_    c #545D60",
+"N_    c #343838",
+"O_    c #1C2122",
+"P_    c #596464",
+"Q_    c #586567",
+"R_    c #5E6A6D",
+"S_    c #616E71",
+"T_    c #768284",
+"U_    c #778386",
+"V_    c #808D8D",
+"W_    c #849192",
+"X_    c #879394",
+"Y_    c #879498",
+"Z_    c #8F9BA1",
+"`_    c #909CA2",
+" :    c #919CA2",
+".:    c #929DA3",
+"+:    c #929DA4",
+"@:    c #929EA4",
+"#:    c #8E99A0",
+"$:    c #8D989E",
+"%:    c #8C989E",
+"&:    c #8A959C",
+"*:    c #8A969C",
+"=:    c #89959B",
+"-:    c #88949A",
+";:    c #889598",
+">:    c #889497",
+",:    c #869295",
+"':    c #879396",
+"):    c #869595",
+"!:    c #869494",
+"~:    c #849292",
+"{:    c #838F90",
+"]:    c #828E8F",
+"^:    c #808D8F",
+"/:    c #7F8B8E",
+"(:    c #7D898C",
+"_:    c #7C8989",
+"::    c #7A8788",
+"<:    c #7A858B",
+"[:    c #748086",
+"}:    c #727D84",
+"|:    c #707C82",
+"1:    c #707C80",
+"2:    c #707B80",
+"3:    c #6B777B",
+"4:    c #6A767A",
+"5:    c #6B767A",
+"6:    c #6A7678",
+"7:    c #6D7A7A",
+"8:    c #6C7979",
+"9:    c #6A7778",
+"0:    c #697677",
+"a:    c #687575",
+"b:    c #657073",
+"c:    c #646F73",
+"d:    c #626E6F",
+"e:    c #646F70",
+"f:    c #383C3C",
+"g:    c #0D0F0E",
+"h:    c #34393B",
+"i:    c #353A3B",
+"j:    c #393E41",
+"k:    c #3A3F43",
+"l:    c #3B4043",
+"m:    c #3B4042",
+"n:    c #3F4545",
+"o:    c #404548",
+"p:    c #42474B",
+"q:    c #44484C",
+"r:    c #43484C",
+"s:    c #424648",
+"t:    c #42464A",
+"u:    c #424749",
+"v:    c #404748",
+"w:    c #404848",
+"x:    c #424848",
+"y:    c #414747",
+"z:    c #424748",
+"A:    c #404448",
+"B:    c #3E4246",
+"C:    c #3F4445",
+"D:    c #3E4346",
+"E:    c #3C4144",
+"F:    c #3B3F43",
+"G:    c #3D4245",
+"H:    c #3E4347",
+"I:    c #3D4246",
+"J:    c #3C4043",
+"K:    c #3B4041",
+"L:    c #3A3F40",
+"M:    c #393E3F",
+"N:    c #3A4040",
+"O:    c #3B4142",
+"P:    c #3C4142",
+"Q:    c #3C4242",
+"R:    c #3C4344",
+"S:    c #3D4344",
+"T:    c #3B4141",
+"U:    c #1B1E1D",
+"V:    c #020100",
+"W:    c #050605",
+"X:    c #050508",
+"Y:    c #060505",
+"Z:    c #060605",
+"`:    c #060508",
+". + @ # # $ % $ @ @ @ # & & & * @ $ $ # # # # = - ; > & & & & & & & $ % $ # $ , , , ' ) ) ) ! ! ! ! ~ ~ ~ $ { { { ] ^ ^ ^ ^ ^ ^ ^ ] ] ] ] { / ( ( ( ( ( / _ { { { , , , ' { { { _ _ _ _ _ _ _ _ : : : { < [ / ( ( } ( { | 1 | 2 3 ",
+"4 5 6 7 8 9 0 a b c d e f f f g h i g j j j k l m n o p q r s t u v w x y z A B 7 C D E F G H I I J K K L L M N O P Q R S T U V W X X X X Y Z `  .......+.@.#.$.%.&.*.=.-.;.-.>.>.>.>.,.'.).!.!.~.'.{.].^.;.^././.(._.].].:.<.[.}.",
+"|.1.2.3.4.5.6.7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.K.M.N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. + +.+++@+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+^+/+(+_+:+<+[+}+}+|+|+1+1+2+3+4+5+6+7+7+5+5+5+8+9+0+",
+"a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+e+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@6@7@8@9@0@a@b@c@d@d@e@c@f@g@g@h@i@j@k@l@m@n@o@p@q@",
+"r@s@t@u@v@w@x@y@z@A@B@C@D@E@F@G@D@D@H@I@J@K@L@M@N@O@P@Q@R@S@T@U@V@T@W@X@Y@Z@`@ #.#+#@###&+$#]+%#(+&#*#*#(+(+=#-#;#>#,#'#)#!#~#{#]#{#^#/#/#!#^#(#_#:#<#[#}#|#1#2#3#3#4#5#6#7#8#9#0#a#a#0#b#c#d#e#f#f#g#h#i#j#h#k#k#l#m#n#o#p#q#r#s#",
+"r@t#u#v#w#x#y#z#A#B#B#C#C#B#D#E#F#D#G#E#C#E#E#H#C#I#E#B#B#B#B#B#J#B#F#K#L#M#N#O#P#Q#I#R#S#T#U#U#V#W#T#T#R#R#R#R#T#T#R#U#X#X#X#Y#Y#X#X#Z#U#G#R#I#`# $.$+$@$#$$$$$%$%$%$$$&$*$&$=$V#T#T#R#-$-$-$-$;$;$;$>$-$-$>$,$'$)$!$~${$]$^$/$($",
+"r@t#S._$:$<$[$}$|$1$1$1$1$1$1$1$1$1$1$2$2$2$2$1$1$1$1$1$1$1$1$1$1$1$3$3 4$5$6$7$8$9$0$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a$a${ b$c$d$e$f$g$g$g$g$g$g$a$a$a$a$a$a$a$g$3$3$3$3$a$a$a$a$a$a$a$a$a$h$i$,.j$k$l$m$n$",
+"o$p$q$r$s$t$u$v$|$w$x$0$|$|$|$|$|$w$|$|$|$|$|$y$y$y$z$A$y$y$B$B$C$3 D$w$E$F$G$H$I$J$3 K$L$L$B$M$N$O$O$O$O$P$Q$L$B$B$N$O$R$O$M$M$M$O$O$M$O$S$L$B$T$U$V$W$X$B$L$Y$Y$O$O$O$y$|$Z$y$M$O$N$N$C$C$`$`$Z$A$A$M$O$O$O$h$g$ %.%+%@%#%$%%%n$",
+"&%*%=%-%;%>%,%'%A$)%!%~%{%]%^%/%(%(%(%_%:%<%[%~%~%}%|%1%2%3%4%5%6%7%8%1$9%0%a%7$b%}.c%d%e%f%g%h%i%j%k%l%m%n%o%p%a$q%r%s%t%u%v%v%w%x%x%x%x%y%z%g$A%B%C%D%E%2$F%G%H%I%I%J%K%L%M%N%O%O%P%P%Q%R%S%T%U%V%V%W%X%Y%Z%`%`% &.&+&@&@&#&$&%&",
+"r@&&*&=&-&;&>&,&|$'&)&!&~&{&]&^&/&(&_&{&:&~&<&[&}&|&1&2&3&4&5&6&7&8&9&1$9%0&a&b&c&}.d&e&f&g&h&i&j&k&l&l&m&W+n&p@1$o&p&q&r&s&t&u&v&w&=@x&x&y&z&g$A&B&C&D&E&2$( F&=+G&H&H&I&J&K&L&M&N&O&P&Q&R&S&T&U&U&U&V&W&W&X&Y&Z&`& *.*+*@*{$s@($",
+"q%#*$*%*&*_$**=*1$-*;*>*,*'*)*!*~*{*{*]*^*/*(*_*:*<*[*}*|*1*1*2*3*4*5*1$6*7*a%8*9* %D$0*a*b*c*d*e*f*g*h*i*X+j*k*1$l*m*n*o*p*q*r*s**@-@t*u*v*w*g$A%B%x*y*z*2$( A*-+B*C*D*E*F*G*H*[@I*I*J*J*I*K*L*M*N*O*P*Q*R*S*T*U*U*V*W*X*Y*Z*`* =",
+".=+=8&@=#=$=%=&=y$*===-=;=>=8*,='=)=)='=8*'=!=~={=]=^=w@/=(=_=:=<=[=}=1$6*0%|=1=9*r@2=3=4=5=e*6=7=8=,=9=0=a=b=c=1$3$m*d=e=f=V$g=h= +i=j=k=-+w*g$A%B%l=m=n=2$( o=p=q=$#L#r=s=t=u=t=v=w=v=x=y=z=A=B=C=D=E=E=E=F=G=H=I=J=J=K=K=L=M=2 ",
+"0$0+N=O=P=Q=z*}.0$R=S=T=,+U=V=W=X=Y=Z=Z=Y=`= -.- ++-|*@-#-$-%-&-*-$ C$1$=---;-N.>-r@f$,-'-)-!-~-_${-]-^-/-(-_-c=|$w$:-<-[-}-|-1-2-3-4-x&5-6-7-g$A%8-9-0-a-2${ b-c-d-G=e-f-f-g-h-i-j-k-l-l-l-Q=Q=m-m-m-Q=n-n-n-m-o-Q=n-n-n-m-P=* p-",
+"0$0$0$0$0$0$3 3 0$q-r-s-t-3 a$f$D$D$D$D$D$D$D$u-v-w-x-y-z-A-B-C-D-3 x$}.E-F-;-G-H-r@f$,-'-I-J-K-{-{-]-^-&*L-M-k*N-O-:-J@P-Q-R-S-T-U-$@4-=@6-7-g$A&B%f=V-z*2${ W-X-Y-Z-`-o&l* ;.;D$D$D$D$D$g$g$+;@;@;@;#;$;$;%;%;$;%;&;@;@;@;*;f$0$",
+"1$1$1$1$2$2$2$2$0$=;-;v@;;>;2$w$,;,;,;,;,;,;w$w$y$n$';);!;~;{;];^;/;(;_;:;<;[;t@}; %f$|;1;s$J-_$^-i*&*2;3;4;5;6;7;8;9;0;[-}-1-a;b;c;d;x&-@>+e;g$A&B%[-f;n=2${ g;h;i;j;k;l;m;n;p-p-p-p-p-p-o;o;p-p;p;p;q;r@r@r;r@r@q;q;q;p;q;o$2$1$",
+"s;t;u;v;w;Q%x;y;0$z;A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;+ R;S;T;U;V;W;X;Y;Z;`; >.>+> %0$@>#>$>!-~-K-_$k&{-^-%>&>*>=>->;>>>[-,>'>)>!>~>4-x&*@{>7-a$]>^>/>(>a-2${ g;X-_>:><>r [>}>|>1>2>2>2>3>3>4>5>6>7>7>7>7>8>9>0>7>7>A*a>b>c>d>e>2 ",
+"f>g>h>i>j>f=k>l>1$m>n>o>p>q>q>x.r>s>t>u>v>w>x>y>z>A>r@2$x$B>C>D>E>F>G>H>I>J>P+K>L>p;0$M>N>O>P>^-]-^-&*i*&*Q>R>S>S>T>U>V>W>X>Y>Y>Y>Z>d;`>*@ ,.,a$]>+,@,#,$,2${ %,&,*,=,-,;,>,,,,,>+',),),),!,~,{,],],^,/,],],],(,(,(,@=_,:,<,[,},O;",
+"|,1,$#2,3,4,5,6,1$7,8,9,0,a,J+b,c,c,d,e,f,c,e,g,h,i,j,k,l,p;r@n$m,n,o,p,q,r,s,t,u,}.w$v,w,x,P>^-^-y,z,z,z,A,B,C,C,D,V>W>E,X>F,t&G,H,I,x&=@J,z%a$]>K,L,#,M,2$& v N,O,P,Q,R,S,T,Q,U,F*V,W,X,Y,}@Z,>#`,`,:+ '.'+'@'#'/+$'%'V&&'*'='-'",
+";'>'%#,''')'!'~'1${']'^'/'('a%_':'<'T=['}'|'1'2'3'4'5'6'7'8'9'Z$3 0'a'b'c'd'P+c+9*p-Z$v,e'f'g'y,y,2;3;3;h'i'j'k'l'm'm'V>n'o'p'q'Y>r'd;4-s't'.,a$]>L=L,u'a-2$_ v'w'x'y'y'z'A'G*B'C'C'D'V,U,E'F'G'*#H'I'J'K'K'L'M'N'I'O'2@P'P'Q'R'S'",
+"T'U'V'W'X'Y'Z'`'1$=$ ).)+)@)#)$)%)%)3*0,&)J+I+*)=)-);)>),)')))!)O;q%3 T$~){)])^)/)()A$M>_)T+:)]-i*/-y,y,y,<)[)})|)1)2)3)4)p'q'Y>5)~>4-I,`>6)a-1$8%B%9-7)M,1$}.8)9)0)a)b)c)d)e)f)f)e)g)g)g)h)i)j)k)l)l)m)n)o)o)p)q)q)r)s)%'%'t)u)2 ",
+"T'v)w)x)E'y)z)`'a$X#A)B)C)D)a&E)F)G)F)<'H)I)H)T=J)K)L)M)N)O)P)Q)R)S)a+T)U)V)G@W)I$X)Y)Z)`)8=k&{-]-&*&*y,z, !.!=&+!+!@!=&#!$!p'p'Y>H,x&=@-@q=%!a$&!*!=!#,M,|$0$p-p-3 3 3 0$0$3 3 3 0$0$0$Z$Z$-!x$3 3 0$0$0$0$0$x$L$;!>!,!X,}@$'/)8%",
+"-!v)'![@J&)!!!~!0$J#J@{!]!^!/!(!_!_!:!:!E)<!E)[![!G$}!.#|!1!2!3!4!5!6!7!8!9!0!u#a!b!c!d!e!]-]-&*/-z,z,h'.!f!=&#!g!g!#!#!h!i!q'Y>Z>G,x&=@-@j!T#a$k!l!m!n!o!}.3 0$0$0$0$0$0$1$0$0$0$0$0$0$A$A$A$y$0$1$1$1$0$0$0$h$.;s;p!q!B'}@G'+>r!",
+"-!v)s!V&t!u!v!w!x!y!z!A!B!d+P+C!D!D!E!F!G!F>a&F>F>$)$)H!I!J!K!L!M!N!O!X%P!Q!R!S!p T!U!V!W!]-i*/-y,z,X![)[)Y!Z!`!3)3) ~.~+~Y>t&@~H,G,`>x&x&#~$~%~&~*~=~-~;~>~,~'~)~!~~~~~~~~~{~{~{~]~]~{~^~/~(~)~{~{~]~_~]~_~_~/~R):~<~[~|@5@`,}~ =",
+"C$|~)#1~T*t!2~3~4~5~k'6~^-B!!-7~^!/!+)8~8~8~9~8~8~D)0~(!a~b~c~d~e~f~g~h~i~d+j~k~l~m~n~n>o~i*&*i*^-p~a=q~r~s~@,L,t~P-u~v~T-s&t&@~w~&@x&-@x~y~z~T@A~B~5-C~D~E~F~G~H~I~J~K~L~M~N~O~t P~Q~R~S~S~S~T~U~P~V~,!W~X~Y~s)>,Z~@+`~ { {.{Q#S'",
+"C$+{Z*&'@{}@#{${%{&{*{`!h'y,^-_$!-7~P+/!={+)+)={={/!C)^!P+P+-{;{f~f~>{,{'{'{){K-]-^-/-2;y,/-y,y,/-!{~{C,U>V>n'n'n'V>V>n'R-!>F,F,t&&@=@x~x~-@-@=@=@x&=@x~{{N,]{^{N,/{({_{:{<{,,[{}{-+|{A':,<,X,X,1{/+X,2{3{4{5{6{}@}@t).{7{8{8{9{-'",
+";'0{a{b{4@}@B'c{d{e{f{g{=&3;&*k&J-]!]!d+7~7~P+^!C)/!/!C)^!7~h{i{j{j{k{,{l{m{R+~-K-k&]-i*&*/-2;z,z,Y!C,m'm'V>E,W>V>D,D,V>E, ~n{i!q'Z>4-`>x&x&=@-@x~-@o{p{q{.$.$r{s{t{u{v{w{=+,'=+c{E*,'#{#{:,B'B'<,x{X,x{y{z{z{t!G'G'}@A{8{B{B{C{-'",
+"D{K#E{&'R*-#*#1{F{G{H{I{J{K{L{M{N{])]),=,=k~!-O{P{Q{]!R{S{T{U{V{W{X{U{Y{Z{`{/- ]&*Y+L-.]+]]'@]#]<)$]%]&]*]=]n'W>n'}--];]>]4,,]'])]!]u*~]~]{]x~{]]]~]^]/](]_]:]<][]t'''}]E*|]1]O,E'2]3]E*4]5]6]-+U,F'F'X,/+7]O'8]9]0]a]b]c]R&d]/)-'",
+"e]f]g]h]i]j]k]l]m]n]o]p]q]b)r]s]t]u]v]w]q#:]x]y]z]A]B]C]D]E]F]G]H]I]J]K]L]M]N]O]B@N~@.P]Q]r]R]S]T]U]V]W]W]X]Y]*+Z]s)`] ^.^+^@^#^))$^%^&^0)'+*^=^B&-^;^>^,^v]'^)^!^~^{^]^^^/^(^(>_^:^<^[^}^|^1^2^j):^3^4^5^6^7^8^9^>-};0^a^b^c^I$S'",
+"s;K#5+&'d^e^f^g^'$h^i^j^k^l^9*m^n^o^p^>-q^r^s^t^u^v^w^x^y^z^A^B^C^D^E^F^G^H^I^J^K^L^p)M^N^O^P^Q^R^u'p^b)S^)$T^D&,>u'U^V^t]W^>-U^X^Y^Z^`^ /./+/@/M=#/$/%/&/v]K=*/=/-/;/>/,/'/)/0^!/~/{/]/^///(/_/:/</[/}/|/1/`#2/3/X^t;9*2++'4/5/S'",
+"%&U'6/7/Q*]#8/9/0/a/b/E$%+c/d/e/f/g/h/i/j/k/l/U~m/n/o/p/q/r/s/t/u/n)v/w/x/y/z/A/B/C/D/E/F/G/H/I/J/y*K/L/j)M/N/O/P/Q/r#R/S/T/U/U^Y=1.V/W/p@h@X/Y/Z/`/ (.(e;+(@(#($(%(&(*(=(-(;(>(,('()(7##'!(~({(](^(/(((I$_(:(<([(}(|(1(D%2(M*},2 ",
+"D-3(a{4(7+(#Z-5(6(2@7(8({{9(0@0(B=a(b(c(d(A/e(f(g(h(I=8&j$i(j(k(l(m(q)n(o(p(e^)/q(r(9(s(t(u(v(w(x(_,V-y(z(~/A(B(C(D/D(E(F(G(H(I(J(K(L(M(N(2(t*&+O(2^P(l(Q(q)R(S(Q(T(U(V(W(X(Y(>-j@Z(`( _._+_@_#_$_%_&_*_=_-_;_2^Q(>_,_'_g]K'K')_!_",
+"u-~_{_]_^_/_(___:_C*C*<_[_}_|_1_2_3_4_5_6_7_6_8_6_9_U-q$0_a_b_9_x-c_d_e_W@f_#@g_h_i_j_k_@@U-l_J/l'm_j>x*x*n_o_p_q_r_s_j!t_u_.$v_w_w_/@[@<#x_[_y_z_[@x)A_B_%'6@C_D_E_T*|@F_R*G_E_H_H_L&I_C*C_J_Q*/_U*6{y{E'D*K_L_M_~#M_4@K&K&X,N_]>",
+"()O_P_Q_8@8@N*R_S_u!q=.$3,T_U_j>V_W_X_Y_@] ]Z_`_ :.:+:.:.:@:@:`_#:$:%:#]&:*:&:&:=:-:;:>:,:':U>):!:~:q&{:]:x*^:/:(:g=_:;]::c;~><:&@[:-@}:}:-@o{x~x~|:o{o{[_1:2:1:1:|_r_y_{{3:4:5:6:w'}]7:;,${t'8:8:t'9:J,0:a:E*b:c:A_A_E'C'd:e:f:O;",
+"O-g:`#5(5(};h:i:l^a!>_Q(j:k:l:m:p)n:.^o:a(k/x/k/k/p:.-.-.-k/q:q:r:w-w-p:p:x/N^s:s:s:.-.-t:u:v:w:x:x:y:x:z:u:@$A:B:8$'^f/C:o:a(@$o:D:E:l:F:E:G:H:H:D:H:I:J:S(S(K:K:K:K:K:K:L:L:L:M:M:L:N:O:P:P:Q:Q::^P:K:O:p)p)p)q)R:S:q)O:K:T:U:]>",
+"V:N-n$ =2 2 2 W:2 2 2 2 8%X:X: =8%A&A&A&A%A%A&A&A%Y:Y:Y:A&A&Y:A&A&A&A%A&A& =Z:Z:Z:Z:T$T$T$&! = = = =A&A&A&&!`:8%&!q@q@A& =A& =A%A&A&A&2 2 A&A&&!A&A&A&A&Y:W:W:2 W:Z:Y:Z:Z:A%Y:Y: = = = =&!&!q@q@A&A&A& = =A&A&]>]>]>]> =&!8%q@S'o;"};
diff --git a/hdspconf/src/HC_AboutText.cxx b/hdspconf/src/HC_AboutText.cxx
new file mode 100644 (file)
index 0000000..1d0140a
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_AboutText.h"
+
+HC_AboutText::HC_AboutText(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "About Text")
+{
+       text = "HDSPConf (C) 2003 Thomas Charbonnel <thomas@@undata.org>\n\n"
+              "This Program is free software; you can redistribute it and/or modify\n"
+              "it under the terms of the GNU General Public License as published by\n"
+              "the Free Software Foundation; either version 2 of the License, or\n"
+              "(at your option) any later version.\n\n"
+              "This program is distributed in the hope that it will be useful,\n"
+              "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+              "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
+              "See the GNU General Public License for more details.\n\n"
+              "You should have received a copy of the GNU General Public License\n"
+              "along with this program; if not, write to the Free Software\n"
+              "Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n";
+}
+
+void HC_AboutText::draw()
+{
+       fl_color(FL_BLACK);
+       fl_font(FL_HELVETICA, 10);
+       fl_draw(text, x(), y(), w(), h(), FL_ALIGN_LEFT);
+}
+
diff --git a/hdspconf/src/HC_AboutText.h b/hdspconf/src/HC_AboutText.h
new file mode 100644 (file)
index 0000000..2a76c40
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_ABOUTTEXT_H
+#define HC_ABOUTTEXT_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+
+class HC_AboutText:public Fl_Widget
+{
+public:
+    HC_AboutText(int x, int y, int w, int h);
+    void draw();
+private:
+    char *text;
+};
+
+#endif
+
diff --git a/hdspconf/src/HC_AutoSyncRef.cxx b/hdspconf/src/HC_AutoSyncRef.cxx
new file mode 100644 (file)
index 0000000..8cc5484
--- /dev/null
@@ -0,0 +1,88 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_AutoSyncRef.h"
+
+extern char *freqs[7];
+extern char *ref[6];
+
+HC_AutoSyncRef::HC_AutoSyncRef(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "AutoSync Ref.")
+{
+       external_freq = 2;
+       external_ref = 3;
+       draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME);
+       label("AutoSync Ref.");
+       labelsize(10);
+       align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+}
+
+void HC_AutoSyncRef::draw()
+{
+       fl_color(FL_BACKGROUND_COLOR);
+       fl_rectf(x(), y(), w(), h());
+       draw_box(x(), y(), w(), h(), FL_WHITE);
+       fl_color(FL_BLACK);
+       fl_font(FL_HELVETICA, 10);
+       fl_draw("Input", x()+4, y(), w()/2, h()/2, FL_ALIGN_LEFT);
+       fl_draw(ref[external_ref], x()+w()/2-4, y(), w()/2, h()/2, FL_ALIGN_CENTER);
+       fl_draw("Freq.", x()+4, y()+h()/2, w()/2, h()/2, FL_ALIGN_LEFT);
+       fl_draw(freqs[external_freq], x()+w()/2-4, y()+h()/2, w()/2, h()/2, FL_ALIGN_CENTER);
+}
+
+void HC_AutoSyncRef::setFreq(int f)
+{
+       int freq;
+       switch (f) {
+       case 32000:
+           freq = 0;
+           break;
+       case 44100:
+           freq = 1;
+           break;
+       case 48000:
+           freq = 2;
+           break;
+       case 64000:
+           freq = 3;
+           break;
+       case 88200:
+           freq = 4;
+           break;
+       case 96000:
+           freq = 5;
+           break;
+       default:
+           freq = 6;
+       }           
+       if (freq != external_freq) {
+           external_freq = freq;
+           redraw();
+       }
+}
+
+void HC_AutoSyncRef::setRef(unsigned char r)
+{
+       if (r == external_ref) return;
+       if (r > 6) external_ref = 6;
+       else external_ref = r;
+       redraw();
+}
+
diff --git a/hdspconf/src/HC_AutoSyncRef.h b/hdspconf/src/HC_AutoSyncRef.h
new file mode 100644 (file)
index 0000000..2ce0921
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_AUTOSYNCREF_H
+#define HC_AUTOSYNCREF_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_AutoSyncRef:public Fl_Widget
+{
+public:
+    HC_AutoSyncRef(int x, int y, int w, int h);
+    void draw();
+    int external_freq, external_ref;
+    void setFreq(int f);
+    void setRef(unsigned char r);
+private:
+    Fl_Box_Draw_F *draw_box;
+};
+
+#endif
+
diff --git a/hdspconf/src/HC_CardPane.cxx b/hdspconf/src/HC_CardPane.cxx
new file mode 100644 (file)
index 0000000..ddd5796
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_CardPane.h"
+
+HC_CardPane::HC_CardPane(int alsa_idx, int idx, int t):Fl_Group(PANE_X, PANE_Y, PANE_W, PANE_H)
+{
+    alsa_index = alsa_idx;
+    index = idx;
+    type = t;
+    snprintf(name, 7, "Card %d", index+1);
+    label(name);
+    labelsize(10);
+
+    sync_ref = new HC_PrefSyncRef(x()+6, y()+20, 112, 120);
+    sync_check = new HC_SyncCheck(x()+6, y()+156, 112, 100);
+
+    spdif_in = new HC_SpdifIn(x()+124, y()+20, 112, 60);
+    spdif_out = new HC_SpdifOut(x()+124, y()+96, 112, 80);
+    spdif_freq = new HC_SpdifFreq(x()+124, y()+192, 112, 20);
+
+    clock_source = new HC_ClockSource(x()+242, y()+20, 112, 140);
+    autosync_ref = new HC_AutoSyncRef(x()+242, y()+176, 112, 40);
+    system_clock = new HC_SystemClock(x()+242, y()+232, 112, 40);
+
+    end();
+}
+
diff --git a/hdspconf/src/HC_CardPane.h b/hdspconf/src/HC_CardPane.h
new file mode 100644 (file)
index 0000000..3b5eb92
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_CardPane_H
+#define HC_CardPane_H
+
+#include <stdio.h>
+#include <FL/Fl_Group.H>
+#include "HC_SyncCheck.h"
+#include "HC_SpdifFreq.h"
+#include "HC_AutoSyncRef.h"
+#include "HC_SystemClock.h"
+#include "HC_ClockSource.h"
+#include "HC_SpdifIn.h"
+#include "HC_SpdifOut.h"
+#include "HC_PrefSyncRef.h"
+#include "defines.h"
+
+class HC_SyncCheck;
+class HC_SpdifFreq;
+class HC_AutoSyncRef;
+class HC_SystemClock;
+class HC_ClockSource;
+class HC_SpdifIn;
+class HC_SpdifOut;
+class HC_PrefSyncRef;
+
+class HC_CardPane:public Fl_Group
+{
+public:
+    HC_CardPane(int alsa_idx, int idx, int t);    
+    HC_SyncCheck *sync_check;
+    HC_SpdifFreq *spdif_freq;
+    HC_AutoSyncRef *autosync_ref;
+    HC_SystemClock *system_clock;
+    HC_ClockSource *clock_source;
+    HC_SpdifIn *spdif_in;
+    HC_SpdifOut *spdif_out;
+    HC_PrefSyncRef *sync_ref;
+    int index;
+    int alsa_index;
+    int type;
+private:
+    char name[7];
+};
+
+#endif
+
diff --git a/hdspconf/src/HC_ClockSource.cxx b/hdspconf/src/HC_ClockSource.cxx
new file mode 100644 (file)
index 0000000..564160a
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_ClockSource.h"
+
+extern char *freqs[7];
+
+void clock_source_cb(Fl_Widget *w, void *arg)
+{
+       int src, err;
+       char card_name[6];
+       snd_ctl_elem_value_t *ctl;
+       snd_ctl_elem_id_t *id;
+       snd_ctl_t *handle;
+       HC_ClockSource *cs = (HC_ClockSource *)arg;
+       HC_CardPane *pane = (HC_CardPane *)(cs->parent());
+       Fl_Round_Button *source = (Fl_Round_Button *)w;
+       if (source == cs->autosync) {
+               src = 0;
+       } else if (source == cs->khz32) {
+               src = 1;
+       } else if (source == cs->khz44_1) {
+               src = 2;
+       } else if (source == cs->khz48) {
+               src = 3;
+       } else if (source == cs->khz64) {
+               src = 4;
+       } else if (source == cs->khz88_2) {
+               src = 5;
+       } else if (source == cs->khz96) {
+               src = 6;
+       }
+       snprintf(card_name, 6, "hw:%i", pane->alsa_index);
+       snd_ctl_elem_value_alloca(&ctl);
+       snd_ctl_elem_id_alloca(&id);
+       snd_ctl_elem_id_set_name(id, "Sample Clock Source");
+       snd_ctl_elem_id_set_numid(id, 0);
+       snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_PCM);
+       snd_ctl_elem_id_set_device(id, 0);
+       snd_ctl_elem_id_set_subdevice(id, 0);
+       snd_ctl_elem_id_set_index(id, 0);
+       snd_ctl_elem_value_set_id(ctl, id);
+       snd_ctl_elem_value_set_enumerated(ctl, 0, src);
+       if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) {
+               fprintf(stderr, "Error opening ctl interface on card %s\n", card_name);
+               return;
+       } 
+       if ((err = snd_ctl_elem_write(handle, ctl)) < 0) {
+               fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name);
+               return;
+       } 
+       snd_ctl_close(handle);
+}
+
+HC_ClockSource::HC_ClockSource(int x, int y, int w, int h):Fl_Group(x, y, w, h, "Sample Clock Source")
+{
+       int i = 0;
+       int v_step = (int)(h/7.0f);
+       box(FL_ENGRAVED_FRAME);
+       label("Sample Clock Source");
+       labelsize(10);
+       align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+       autosync = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "AutoSync");
+       autosync->callback(clock_source_cb, (void *)this);
+       khz32 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[0]);
+       khz32->callback(clock_source_cb, (void *)this);
+       khz44_1 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[1]);
+       khz44_1->callback(clock_source_cb, (void *)this);
+       khz48 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[2]);
+       khz48->callback(clock_source_cb, (void *)this);
+       khz64 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[3]);
+       khz64->callback(clock_source_cb, (void *)this);
+       khz88_2 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, freqs[4]);
+       khz88_2->callback(clock_source_cb, (void *)this);
+       khz96 = new Fl_Round_Button(x+15, y+v_step*i, w-30, v_step, freqs[5]);
+       khz96->callback(clock_source_cb, (void *)this);
+       autosync->labelsize(10);
+       autosync->type(FL_RADIO_BUTTON);
+       khz32->labelsize(10);
+       khz32->type(FL_RADIO_BUTTON);
+       khz44_1->labelsize(10);
+       khz44_1->type(FL_RADIO_BUTTON);
+       khz48->labelsize(10);
+       khz48->type(FL_RADIO_BUTTON);
+       khz64->labelsize(10);
+       khz64->type(FL_RADIO_BUTTON);
+       khz88_2->labelsize(10);
+       khz88_2->type(FL_RADIO_BUTTON);
+       khz96->labelsize(10);
+       khz96->type(FL_RADIO_BUTTON);
+       end();  
+}
+
+void HC_ClockSource::setSource(unsigned char s)
+{
+    if (s < children()) {
+       if (((Fl_Round_Button *)child(s))->value() != 1)
+           ((Fl_Round_Button *)child(s))->setonly();
+    }
+}
+
diff --git a/hdspconf/src/HC_ClockSource.h b/hdspconf/src/HC_ClockSource.h
new file mode 100644 (file)
index 0000000..ae44dc6
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_CLOCKSOURCE_H
+#define HC_CLOCKSOURCE_H
+
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Round_Button.H>
+#include <alsa/asoundlib.h>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_ClockSource:public Fl_Group
+{
+public:
+    HC_ClockSource(int x, int y, int w, int h);
+    int source;
+    Fl_Round_Button *autosync;
+    Fl_Round_Button *khz32;
+    Fl_Round_Button *khz44_1;
+    Fl_Round_Button *khz48;
+    Fl_Round_Button *khz64;
+    Fl_Round_Button *khz88_2;
+    Fl_Round_Button *khz96;
+    void setSource(unsigned char s);
+};
+
+#endif
+
diff --git a/hdspconf/src/HC_PrefSyncRef.cxx b/hdspconf/src/HC_PrefSyncRef.cxx
new file mode 100644 (file)
index 0000000..c1bdd01
--- /dev/null
@@ -0,0 +1,120 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_PrefSyncRef.h"
+
+void pref_sync_ref_cb(Fl_Widget *w, void *arg)
+{
+    int ref, err;
+    char card_name[6];
+    snd_ctl_elem_value_t *ctl;
+    snd_ctl_elem_id_t *id;
+    snd_ctl_t *handle;
+    HC_PrefSyncRef *psr = (HC_PrefSyncRef *)arg;
+    HC_CardPane *pane = (HC_CardPane *)(psr->parent());
+    Fl_Round_Button *source = (Fl_Round_Button *)w;
+    if (source == psr->word_clock) {
+       ref = 0;
+    } else if (source == psr->adat_sync) {
+       ref = 1;
+    } else if (source == psr->spdif) {
+       ref = 2;
+    } else if (source == psr->adat1) {
+       ref = 3;
+    } else if (source == psr->adat2) {
+       ref = 4;
+    } else if (source == psr->adat3) {
+       ref = 5;
+    }
+    snprintf(card_name, 6, "hw:%i", pane->alsa_index);
+    snd_ctl_elem_value_alloca(&ctl);
+    snd_ctl_elem_id_alloca(&id);
+    snd_ctl_elem_id_set_name(id, "Preferred Sync Reference");
+    snd_ctl_elem_id_set_numid(id, 0);
+    snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_HWDEP);
+    snd_ctl_elem_id_set_device(id, 0);
+    snd_ctl_elem_id_set_subdevice(id, 0);
+    snd_ctl_elem_id_set_index(id, 0);
+    snd_ctl_elem_value_set_id(ctl, id);
+    snd_ctl_elem_value_set_enumerated(ctl, 0, ref);
+    if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) {
+       fprintf(stderr, "Error opening ctl interface on card %s\n", card_name); 
+       return;
+    }
+    if ((err = snd_ctl_elem_write(handle, ctl)) < 0) {
+       fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name); 
+       return;
+    }
+    snd_ctl_close(handle);
+}
+
+
+HC_PrefSyncRef::HC_PrefSyncRef(int x, int y, int w, int h):Fl_Group(x, y, w, h, "Pref. Sync Ref")
+{
+       int i = 0;
+       int v_step;
+       if (((HC_CardPane *)parent())->type == MULTIFACE) {
+           v_step = (int)(h/4.0f);
+       } else {
+           v_step = (int)(h/6.0f);
+       }
+       source = 0;
+       box(FL_ENGRAVED_FRAME);;
+       label("Pref. Sync Ref");
+       labelsize(10);
+       align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+       word_clock = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "Word Clock");
+       word_clock->callback(pref_sync_ref_cb, (void *)this);
+       adat_sync = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT Sync");
+       adat_sync->callback(pref_sync_ref_cb, (void *)this);
+       spdif = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "SPDIF In");
+       spdif->callback(pref_sync_ref_cb, (void *)this);
+       adat1 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT1 In");
+       adat1->callback(pref_sync_ref_cb, (void *)this);
+       if (((HC_CardPane *)parent())->type != MULTIFACE) {
+           adat2 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT2 In");
+           adat2->labelsize(10);
+           adat2->type(FL_RADIO_BUTTON);
+           adat2->callback(pref_sync_ref_cb, (void *)this);
+           adat3 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT3 In");
+           adat3->labelsize(10);
+           adat3->type(FL_RADIO_BUTTON);
+           adat3->callback(pref_sync_ref_cb, (void *)this);
+       }       
+       adat1->labelsize(10);
+       adat1->type(FL_RADIO_BUTTON);
+       spdif->labelsize(10);
+       spdif->type(FL_RADIO_BUTTON);
+       word_clock->labelsize(10);
+       word_clock->type(FL_RADIO_BUTTON);
+       adat_sync->labelsize(10);
+       adat_sync->type(FL_RADIO_BUTTON);
+       end();  
+}
+
+void HC_PrefSyncRef::setRef(int r)
+{
+       if (r >= 0 && r < children()) {
+           if (((Fl_Round_Button *)child(r))->value() != 1)
+               ((Fl_Round_Button *)child(r))->setonly();
+       }
+}
+
diff --git a/hdspconf/src/HC_PrefSyncRef.h b/hdspconf/src/HC_PrefSyncRef.h
new file mode 100644 (file)
index 0000000..e9cfc88
--- /dev/null
@@ -0,0 +1,47 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_PREFSYNCREF_H
+#define HC_PREFSYNCREF_H
+
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Round_Button.H>
+#include <alsa/asoundlib.h>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_PrefSyncRef:public Fl_Group
+{
+public:
+    HC_PrefSyncRef(int x, int y, int w, int h);
+    int source;
+    Fl_Round_Button *adat1;
+    Fl_Round_Button *adat2;
+    Fl_Round_Button *adat3;
+    Fl_Round_Button *spdif;
+    Fl_Round_Button *word_clock;
+    Fl_Round_Button *adat_sync;
+    void setRef(int r);
+};
+
+#endif
+
diff --git a/hdspconf/src/HC_SpdifFreq.cxx b/hdspconf/src/HC_SpdifFreq.cxx
new file mode 100644 (file)
index 0000000..c38630d
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_SpdifFreq.h"
+
+extern char *freqs[7];
+
+HC_SpdifFreq::HC_SpdifFreq(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "SPDIF Freq.")
+{
+       spdif_freq = 0;
+       draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME);
+       label("SPDIF Freq.");
+       labelsize(10);
+       align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+}
+
+void HC_SpdifFreq::draw()
+{
+       fl_color(FL_BACKGROUND_COLOR);
+       fl_rectf(x(), y(), w(), h());
+       draw_box(x(), y(), w(), h(), FL_WHITE);
+       fl_color(FL_BLACK);
+       fl_font(FL_HELVETICA, 10);
+       fl_draw(freqs[spdif_freq], x(), y(), w(), h(), FL_ALIGN_CENTER);
+}
+
+void HC_SpdifFreq::setFreq(int f)
+{
+       int freq;
+       switch (f) {
+       case 32000:
+           freq = 0;
+           break;
+       case 44100:
+           freq = 1;
+           break;
+       case 48000:
+           freq = 2;
+           break;
+       case 64000:
+           freq = 3;
+           break;
+       case 88200:
+           freq = 4;
+           break;
+       case 96000:
+           freq = 5;
+           break;
+       default:
+           freq = 6;
+       }
+       if (freq != spdif_freq) {
+           spdif_freq = freq;
+           redraw();
+       }
+}
diff --git a/hdspconf/src/HC_SpdifFreq.h b/hdspconf/src/HC_SpdifFreq.h
new file mode 100644 (file)
index 0000000..ca9c81e
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_SPDIFFREQ_H
+#define HC_SPDIFFREQ_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_SpdifFreq:public Fl_Widget
+{
+public:
+    HC_SpdifFreq(int x, int y, int w, int h);
+    void draw();
+    int spdif_freq;
+    void setFreq(int f);
+private:
+    Fl_Box_Draw_F *draw_box;
+};
+
+#endif
+
diff --git a/hdspconf/src/HC_SpdifIn.cxx b/hdspconf/src/HC_SpdifIn.cxx
new file mode 100644 (file)
index 0000000..6a8c148
--- /dev/null
@@ -0,0 +1,94 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_SpdifIn.h"
+
+void spdif_in_cb(Fl_Widget *w, void *arg)
+{
+    int in, err;
+    char card_name[6];
+    snd_ctl_elem_value_t *ctl;
+    snd_ctl_elem_id_t *id;
+    snd_ctl_t *handle;
+    Fl_Round_Button *source = (Fl_Round_Button *)w;
+    HC_SpdifIn *si = (HC_SpdifIn *)arg;
+    HC_CardPane *pane = (HC_CardPane *)si->parent();
+    if (source == si->adat1) {
+       in = 0;
+    } else if (source == si->coaxial) {
+       in = 1;
+    } else if (source == si->internal) {
+       in = 2;
+    }
+    snprintf(card_name, 6, "hw:%i", pane->alsa_index);
+    snd_ctl_elem_value_alloca(&ctl);
+    snd_ctl_elem_id_alloca(&id);
+    snd_ctl_elem_id_set_name(id, "IEC958 Input Connector");
+    snd_ctl_elem_id_set_numid(id, 0);
+    snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_PCM);
+    snd_ctl_elem_id_set_device(id, 0);
+    snd_ctl_elem_id_set_subdevice(id, 0);
+    snd_ctl_elem_id_set_index(id, 0);
+    snd_ctl_elem_value_set_id(ctl, id);
+    snd_ctl_elem_value_set_enumerated(ctl, 0, in);
+    if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) {
+       fprintf(stderr, "Error opening ctl interface on card %s\n", card_name);
+       return;
+    }
+    if ((err = snd_ctl_elem_write(handle, ctl)) < 0) {
+       fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name);
+       return;
+    }
+    snd_ctl_close(handle);
+}
+
+HC_SpdifIn::HC_SpdifIn(int x, int y, int w, int h):Fl_Group(x, y, w, h, "SPDIF In")
+{
+       int i = 0;
+       int v_step = (int)(h/3.0f);
+       source = 0;
+       box(FL_ENGRAVED_FRAME);;
+       label("SPDIF In");
+       labelsize(10);
+       align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+       adat1 = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT1");
+       coaxial = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "Coaxial");
+       internal = new Fl_Round_Button(x+15, y+v_step*i++, w-30, v_step, "Internal");
+       adat1->labelsize(10);
+       adat1->type(FL_RADIO_BUTTON);
+       adat1->callback(spdif_in_cb, (void *)this);
+       coaxial->labelsize(10);
+       coaxial->type(FL_RADIO_BUTTON);
+       coaxial->callback(spdif_in_cb, (void *)this);
+       internal->labelsize(10);
+       internal->type(FL_RADIO_BUTTON);
+       internal->callback(spdif_in_cb, (void *)this);
+       end();  
+}
+
+void HC_SpdifIn::setInput(unsigned char i)
+{
+       if (i < children()) {
+           if (((Fl_Round_Button *)child(i))->value() != 1)
+               ((Fl_Round_Button *)child(i))->setonly();
+       }
+}
+
diff --git a/hdspconf/src/HC_SpdifIn.h b/hdspconf/src/HC_SpdifIn.h
new file mode 100644 (file)
index 0000000..e84088c
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_SPDIFIN_H
+#define HC_SPDIFIN_H
+
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Round_Button.H>
+#include <alsa/asoundlib.h>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_SpdifIn:public Fl_Group
+{
+public:
+    HC_SpdifIn(int x, int y, int w, int h);
+    int source;
+    Fl_Round_Button *adat1;
+    Fl_Round_Button *coaxial;
+    Fl_Round_Button *internal;
+    void setInput(unsigned char i);
+};
+
+#endif
+
diff --git a/hdspconf/src/HC_SpdifOut.cxx b/hdspconf/src/HC_SpdifOut.cxx
new file mode 100644 (file)
index 0000000..8ba484a
--- /dev/null
@@ -0,0 +1,140 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_SpdifOut.h"
+
+static void setSpdifBit(char *ctl_name, int val, int card_index)
+{
+    int err;
+    char card_name[6];
+    snd_ctl_elem_value_t *ctl;
+    snd_ctl_elem_id_t *id;
+    snd_ctl_t *handle;
+    snprintf(card_name, 6, "hw:%i", card_index);
+    snd_ctl_elem_value_alloca(&ctl);
+    snd_ctl_elem_id_alloca(&id);
+    snd_ctl_elem_id_set_name(id, ctl_name);
+    snd_ctl_elem_id_set_numid(id, 0);
+    snd_ctl_elem_id_set_interface(id, SND_CTL_ELEM_IFACE_HWDEP);
+    snd_ctl_elem_id_set_device(id, 0);
+    snd_ctl_elem_id_set_subdevice(id, 0);
+    snd_ctl_elem_id_set_index(id, 0);
+    snd_ctl_elem_value_set_id(ctl, id);
+    snd_ctl_elem_value_set_integer(ctl, 0, val);
+    if ((err = snd_ctl_open(&handle, card_name, SND_CTL_NONBLOCK)) < 0) {
+       fprintf(stderr, "Error opening ctl interface on card %s\n", card_name);
+       return;
+    }
+    if ((err = snd_ctl_elem_write(handle, ctl)) < 0) {
+       fprintf(stderr, "Error accessing ctl interface on card %s\n", card_name);
+       return;
+    }
+    snd_ctl_close(handle);
+}
+
+void spdif_on_adat_cb(Fl_Widget *w, void *arg)
+{
+    setSpdifBit("IEC958 Output also on ADAT1", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index);
+}
+
+void spdif_professional_cb(Fl_Widget *w, void *arg)
+{
+    setSpdifBit("IEC958 Professional Bit", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index);
+}
+
+void spdif_emphasis_cb(Fl_Widget *w, void *arg)
+{
+    setSpdifBit("IEC958 Emphasis Bit", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index);
+}
+
+void spdif_nonaudio_cb(Fl_Widget *w, void *arg)
+{
+    setSpdifBit("IEC958 Non-audio Bit", ((Fl_Check_Button *)w)->value(), ((HC_CardPane *)arg)->alsa_index);
+}
+
+HC_SpdifOut::HC_SpdifOut(int x, int y, int w, int h):Fl_Group(x, y, w, h, "SPDIF Out")
+{
+       int i = 0;
+       lock = 0;
+       int v_step = (int)(h/4.0f);
+       box(FL_ENGRAVED_FRAME);
+       label("SPDIF Out");
+       labelsize(10);
+       align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+       adat1 = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "ADAT1");
+       professional = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "Professional");
+       emphasis = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "Emphasis");
+       non_audio = new Fl_Check_Button(x+15, y+v_step*i++, w-30, v_step, "Non-Audio");
+       adat1->labelsize(10);
+       adat1->callback(spdif_on_adat_cb, (void *)parent());
+       professional->labelsize(10);
+       professional->callback(spdif_professional_cb, (void *)parent());
+       emphasis->labelsize(10);
+       emphasis->callback(spdif_emphasis_cb, (void *)parent());
+       non_audio->labelsize(10);
+       non_audio->callback(spdif_nonaudio_cb, (void *)parent());
+       end();  
+}
+
+void HC_SpdifOut::setOut(unsigned char val)
+{
+    if (val != adat1->value()) {
+       adat1->value(val);
+    }
+}
+
+void HC_SpdifOut::setProfessional(unsigned char val)
+{
+    
+    if (val != professional->value()) {
+       professional->value(val);
+    }
+}
+
+void HC_SpdifOut::setEmphasis(unsigned char val)
+{
+    if (val != emphasis->value()) {
+       emphasis->value(val);
+    }
+}
+
+void HC_SpdifOut::setNonaudio(unsigned char val)
+{
+    if (val != non_audio->value()) {
+       non_audio->value(val);
+    }
+}
+
+int HC_SpdifOut::handle(int e)
+{
+    switch (e) {
+       case FL_PUSH:
+           lock = 1;
+           break;
+       case FL_RELEASE:
+           lock = 0;
+           break;
+       default:
+           return Fl_Group::handle(e);
+    }
+    return Fl_Group::handle(e);
+}
+
diff --git a/hdspconf/src/HC_SpdifOut.h b/hdspconf/src/HC_SpdifOut.h
new file mode 100644 (file)
index 0000000..ef5c303
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_SPDIFOUT_H
+#define HC_SPDIFOUT_H
+
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Check_Button.H>
+#include <alsa/asoundlib.h>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_SpdifOut:public Fl_Group
+{
+public:
+    HC_SpdifOut(int x, int y, int w, int h);
+    int source;
+    Fl_Check_Button *adat1;
+    Fl_Check_Button *professional;
+    Fl_Check_Button *emphasis;
+    Fl_Check_Button *non_audio;
+    void setOut(unsigned char val);
+    void setProfessional(unsigned char val);
+    void setEmphasis(unsigned char val);
+    void setNonaudio(unsigned char val);
+    int handle(int e);
+    int lock;
+};
+
+#endif
+
diff --git a/hdspconf/src/HC_SyncCheck.cxx b/hdspconf/src/HC_SyncCheck.cxx
new file mode 100644 (file)
index 0000000..0ac426d
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_SyncCheck.h"
+
+extern char *lock_status[3];
+
+HC_SyncCheck::HC_SyncCheck(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "SyncCheck")
+{
+       adat1_lock_status = -1;
+       adat2_lock_status = -1;
+       adat3_lock_status = -1;
+       wordclock_lock_status = -1;
+       adatsync_lock_status = -1;
+       spdif_lock_status = -1;
+       if (((HC_CardPane *)parent())->type == MULTIFACE) {
+               v_step = (int)(h/4.0f);    
+       } else {
+               v_step = (int)(h/6.0f);
+       } 
+       h_step = (int)(w/2.0f);
+       draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME);
+       label("SyncCheck");
+       labelsize(10);
+       align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+}
+
+void HC_SyncCheck::draw()
+{
+       int v_pos = v_step;
+       int h_pos = 4;
+       int i = 0;
+       fl_color(FL_BACKGROUND_COLOR);
+       fl_rectf(x(), y(), w(), h());
+       draw_box(x(), y(), w(), h(), FL_WHITE);
+       fl_color(FL_BLACK);
+       fl_font(FL_HELVETICA, 10);
+       fl_draw("ADAT1 In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+       fl_draw(lock_status[adat1_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+       if (((HC_CardPane *)parent())->type != MULTIFACE) {
+               fl_draw("ADAT2 In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+               fl_draw(lock_status[adat2_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+               fl_draw("ADAT3 In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+               fl_draw(lock_status[adat3_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+       }
+       fl_draw("SPDIF In", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+       fl_draw(lock_status[spdif_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+       fl_draw("WordClock", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+       fl_draw(lock_status[wordclock_lock_status], x()+h_pos+h_step, y()+v_pos*i++, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+       fl_draw("ADAT Sync", x()+h_pos, y()+v_pos*i, h_step, v_step, FL_ALIGN_LEFT);
+       fl_draw(lock_status[adatsync_lock_status], x()+h_pos+h_step, y()+v_pos*i, h_step-h_pos, v_step, FL_ALIGN_CENTER);
+}
+
+void HC_SyncCheck::setSpdifStatus(unsigned char s)
+{
+       if (s == spdif_lock_status) return;
+       if (s > 2) spdif_lock_status = 2;
+       else spdif_lock_status = s;
+       redraw();
+       return;
+}
+
+void HC_SyncCheck::setWCStatus(unsigned char s)
+{
+       if (s == wordclock_lock_status) return;
+       if (s > 2) wordclock_lock_status = 2;
+       else wordclock_lock_status = s;
+       redraw();
+       return;
+}
+
+void HC_SyncCheck::setAdat1Status(unsigned char s)
+{
+       if (s == adat1_lock_status) return;
+       if (s > 2) adat1_lock_status = 2;
+       else adat1_lock_status = s;
+       redraw();
+       return;
+}
+
+void HC_SyncCheck::setAdat2Status(unsigned char s)
+{
+       if (s == adat2_lock_status) return;
+       if (s > 2) adat2_lock_status = 2;
+       else adat2_lock_status = s;
+       redraw();
+       return;
+}
+
+void HC_SyncCheck::setAdat3Status(unsigned char s)
+{
+       if (s == adat3_lock_status) return;
+       if (s > 2) adat3_lock_status = 2;
+       else adat3_lock_status = s;
+       redraw();
+       return;
+}
+
+void HC_SyncCheck::setAdatSyncStatus(unsigned char s)
+{
+       if (s == adatsync_lock_status) return;
+       if (s > 2) adatsync_lock_status = 2;
+       else adatsync_lock_status = s;
+       redraw();
+       return;
+}
+
diff --git a/hdspconf/src/HC_SyncCheck.h b/hdspconf/src/HC_SyncCheck.h
new file mode 100644 (file)
index 0000000..64e8b00
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_SYNCCHECK_H
+#define HC_SYNCCHECK_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+#include "HC_CardPane.h"
+
+#define NO_LOCK 0
+#define LOCK    1
+#define SYNC    2
+
+class HC_CardPane;
+
+class HC_SyncCheck:public Fl_Widget
+{
+public:
+    HC_SyncCheck(int x, int y, int w, int h);
+    void draw();
+    int adat1_lock_status;
+    int adat2_lock_status;
+    int adat3_lock_status;
+    int wordclock_lock_status;
+    int adatsync_lock_status;
+    int spdif_lock_status;    
+    void setSpdifStatus(unsigned char s);
+    void setAdat1Status(unsigned char s);
+    void setAdat2Status(unsigned char s);
+    void setAdat3Status(unsigned char s);
+    void setAdatSyncStatus(unsigned char s);
+    void setWCStatus(unsigned char s);
+private:
+    int v_step, h_step;
+    Fl_Box_Draw_F *draw_box;
+};
+
+#endif
+
diff --git a/hdspconf/src/HC_SystemClock.cxx b/hdspconf/src/HC_SystemClock.cxx
new file mode 100644 (file)
index 0000000..947dc50
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_SystemClock.h"
+
+extern char *freqs[7];
+
+HC_SystemClock::HC_SystemClock(int x, int y, int w, int h):Fl_Widget(x, y, w, h, "System Clock")
+{
+       system_freq = 6;
+       system_mode = 0;
+       draw_box = Fl::get_boxtype(FL_ENGRAVED_FRAME);
+       label("System Clock");
+       labelsize(10);
+       align(FL_ALIGN_TOP|FL_ALIGN_LEFT);
+}
+
+void HC_SystemClock::draw()
+{
+       fl_color(FL_BACKGROUND_COLOR);
+       fl_rectf(x(), y(), w(), h());
+       draw_box(x(), y(), w(), h(), FL_WHITE);
+       fl_color(FL_BLACK);
+       fl_font(FL_HELVETICA, 10);
+       fl_draw("Mode", x()+4, y(), w()/2, h()/2, FL_ALIGN_LEFT);
+       fl_draw(system_mode ? "Slave" : "Master", x()+w()/2-4, y(), w()/2, h()/2, FL_ALIGN_CENTER);
+       fl_draw("Freq.", x()+4, y()+h()/2, w()/2, h()/2, FL_ALIGN_LEFT);
+       fl_draw(freqs[system_freq], x()+w()/2-4, y()+h()/2, w()/2, h()/2, FL_ALIGN_CENTER);
+}
+
+void HC_SystemClock::setMode(unsigned char m)
+{
+    if (m != system_mode) {
+       if (m) system_mode = 1;
+       else system_mode = 0;
+       redraw();
+    }
+}
+
+void HC_SystemClock::setFreq(int f)
+{
+    int freq;
+    switch(f) {
+    case 32000:
+       freq = 0;
+       break;
+    case 44100:
+       freq = 1;
+       break;
+    case 48000:
+       freq = 2;
+       break;
+    case 64000:
+       freq = 3;
+       break;
+    case 88200:
+       freq = 4;
+       break;
+    case 96000:
+       freq = 5;
+       break;
+    default:
+       freq = 6;
+    }
+    if (freq != system_freq) {
+       system_freq = freq;
+       redraw();
+    }
+}
diff --git a/hdspconf/src/HC_SystemClock.h b/hdspconf/src/HC_SystemClock.h
new file mode 100644 (file)
index 0000000..8102e86
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_SYSTEMCLOCK_H
+#define HC_SYSTEMCLOCK_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+#include "HC_CardPane.h"
+
+class HC_CardPane;
+
+class HC_SystemClock:public Fl_Widget
+{
+public:
+    HC_SystemClock(int x, int y, int w, int h);
+    void draw();
+    int system_freq;
+    int system_mode;
+    void setMode(unsigned char m);
+    void setFreq(int f);
+private:
+    Fl_Box_Draw_F *draw_box;
+};
+
+#endif
+
diff --git a/hdspconf/src/HC_XpmRenderer.cxx b/hdspconf/src/HC_XpmRenderer.cxx
new file mode 100644 (file)
index 0000000..72742f8
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma implementation
+#include "HC_XpmRenderer.h"
+
+HC_XpmRenderer::HC_XpmRenderer(int x, int y, int w, int h, char * const *xpm):Fl_Widget(x, y, w, h)
+{
+    pixmap = xpm;
+}
+
+void HC_XpmRenderer::draw()
+{
+       fl_draw_pixmap(pixmap, x(), y());
+}
+
diff --git a/hdspconf/src/HC_XpmRenderer.h b/hdspconf/src/HC_XpmRenderer.h
new file mode 100644 (file)
index 0000000..c3d1268
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#pragma interface
+#ifndef HC_XPMRENDERER_H
+#define HC_XPMRENDERER_H
+
+#include <FL/Fl_Widget.H>
+#include <FL/fl_draw.H>
+#include <FL/Fl.H>
+
+class HC_XpmRenderer:public Fl_Widget
+{
+public:
+    HC_XpmRenderer(int x, int y, int w, int h, char * const *xpm);
+    void draw();
+private:
+    char * const *pixmap;
+};
+
+#endif
+
diff --git a/hdspconf/src/Makefile.am b/hdspconf/src/Makefile.am
new file mode 100644 (file)
index 0000000..2d82236
--- /dev/null
@@ -0,0 +1,26 @@
+bin_PROGRAMS = hdspconf
+hdspconf_SOURCES = \
+       hdspconf.cxx \
+       defines.h \
+       HC_CardPane.cxx \
+       HC_CardPane.h \
+       HC_SyncCheck.cxx \
+       HC_SyncCheck.h \
+       HC_SpdifFreq.cxx \
+       HC_SpdifFreq.h \
+       HC_AutoSyncRef.cxx \
+       HC_AutoSyncRef.h \
+       HC_SystemClock.cxx \
+       HC_SystemClock.h \
+       HC_ClockSource.cxx \
+       HC_ClockSource.h \
+       HC_SpdifIn.cxx \
+       HC_SpdifIn.h \
+       HC_SpdifOut.cxx \
+       HC_SpdifOut.h \
+       HC_PrefSyncRef.cxx \
+       HC_PrefSyncRef.h \
+       HC_XpmRenderer.cxx \
+       HC_XpmRenderer.h \
+       HC_AboutText.cxx \
+       HC_AboutText.h
diff --git a/hdspconf/src/defines.h b/hdspconf/src/defines.h
new file mode 100644 (file)
index 0000000..6433928
--- /dev/null
@@ -0,0 +1,42 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef DEFINES_H
+#define DEFINES_H
+
+#define MULTIFACE 0
+#define DIGIFACE  1
+#define HDSP9652  2
+
+#define WINDOW_WIDTH  380
+#define WINDOW_HEIGHT 330
+
+#define TABS_X 10
+#define TABS_Y 10
+#define TABS_W 360
+#define TABS_H 310
+
+#define PANE_X 10
+#define PANE_Y 30
+#define PANE_H 290
+#define PANE_W 360
+
+#endif
+
diff --git a/hdspconf/src/hdspconf.cxx b/hdspconf/src/hdspconf.cxx
new file mode 100644 (file)
index 0000000..fb43d0d
--- /dev/null
@@ -0,0 +1,200 @@
+/*
+ *   HDSPConf
+ *    
+ *   Copyright (C) 2003 Thomas Charbonnel (thomas@undata.org)
+ *    
+ *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <errno.h>
+#include <sys/ioctl.h>
+#include <alsa/asoundlib.h>
+#include <sound/hdsp.h>
+#include <FL/Fl.H>
+#include <FL/Fl_Window.H>
+#include <FL/Fl_Group.H>
+#include <FL/Fl_Tabs.H>
+#include "HC_CardPane.h"
+#include "HC_XpmRenderer.h"
+#include "HC_AboutText.h"
+#include "defines.h"
+
+#include "../pixmaps/rme.xpm"
+#include "../pixmaps/alsalogo.xpm"
+#include "../pixmaps/lad_banner.xpm"
+
+class HC_CardPane;
+class HC_XpmRenderer;
+class HC_AboutText;
+
+char *freqs[7] = {
+    "32.0 kHz",
+    "44.1 kHz",
+    "48.0 kHz",
+    "64.0 kHz",
+    "88.2 kHz",
+    "96.0 kHz",
+    "-----"
+};
+
+char *ref[7] = {
+    "Word Clock",
+    "ADAT Sync",
+    "SPDIF",
+    "-----",
+    "ADAT1",
+    "ADAT2",
+    "ADAT3"
+};
+
+char *lock_status[3] = {
+    "No Lock",
+    "Lock",
+    "Sync"
+};
+
+static void refresh_cb(void *arg)
+{
+    Fl_Tabs *tabs = (Fl_Tabs *)arg;
+    int err;
+    snd_hwdep_t *hw;
+    char card_name[6];
+    hdsp_config_info_t config_info;
+    
+    for (int i = 0; i < tabs->children()-1 ; ++i) {
+       HC_CardPane *pane = (HC_CardPane *)tabs->child(i);
+       if (!pane->visible()) {
+           break;
+       }
+       snprintf(card_name, 6, "hw:%i", pane->alsa_index);
+
+       if ((err = snd_hwdep_open(&hw, card_name, SND_HWDEP_OPEN_READ)) != 0) {
+           fprintf(stderr, "Error opening hwdep device on card %s.\n", card_name);
+           break;
+       }
+    
+       if ((err = snd_hwdep_ioctl(hw, SNDRV_HDSP_IOCTL_GET_CONFIG_INFO, (void *)&config_info)) < 0) {
+           fprintf(stderr, "Hwdep ioctl error on card %s.\n", card_name);
+           snd_hwdep_close(hw);
+           break;
+       }
+
+       snd_hwdep_close(hw);
+
+       pane->sync_ref->setRef(config_info.pref_sync_ref);
+       pane->spdif_freq->setFreq(config_info.spdif_sample_rate);
+       pane->sync_check->setAdat1Status(config_info.adat_sync_check[0]);
+       pane->sync_check->setSpdifStatus(config_info.spdif_sync_check);
+       pane->sync_check->setWCStatus(config_info.wordclock_sync_check);
+       pane->sync_check->setAdatSyncStatus(config_info.adatsync_sync_check);
+       if (pane->type != MULTIFACE) {
+           pane->sync_check->setAdat2Status(config_info.adat_sync_check[1]);
+           pane->sync_check->setAdat3Status(config_info.adat_sync_check[2]);
+       }
+       pane->spdif_in->setInput(config_info.spdif_in);
+       if (pane->spdif_out->lock == 0) {
+           pane->spdif_out->setOut(config_info.spdif_out);
+           pane->spdif_out->setProfessional(config_info.spdif_professional);
+           pane->spdif_out->setEmphasis(config_info.spdif_emphasis);
+           pane->spdif_out->setNonaudio(config_info.spdif_nonaudio);
+       }
+       pane->clock_source->setSource(config_info.clock_source);        
+       pane->autosync_ref->setRef(config_info.autosync_ref);
+       pane->autosync_ref->setFreq(config_info.autosync_sample_rate);
+       pane->system_clock->setMode(config_info.system_clock_mode);
+       pane->system_clock->setFreq(config_info.system_sample_rate);
+    }
+
+    Fl::add_timeout(0.3, refresh_cb, arg);
+    return;
+}
+
+int main(int argc, char **argv)
+{
+    Fl_Window *window;
+    Fl_Tabs   *tabs;
+    HC_CardPane  *card_panes[4];
+    HC_XpmRenderer *lad_banner;
+    HC_XpmRenderer *alsa_logo;
+    HC_XpmRenderer *rme_logo;
+    HC_AboutText *about_text;
+    Fl_Group  *about_pane;
+    char **name;
+    int card;
+    int hdsp_cards[4];
+    int alsa_index[4];
+    snd_ctl_t *handle;
+    snd_ctl_card_info_t *info;
+    snd_pcm_info_t *pcminfo;
+    int cards = 0;
+    
+    snd_ctl_card_info_alloca(&info);
+    snd_pcm_info_alloca(&pcminfo);    
+    card = -1;
+    printf("HDSPConf %s\n", VERSION);
+    printf("Looking for HDSP cards :\n");
+    while (snd_card_next(&card) >= 0 && cards < 4) {
+       if (card < 0) {
+           break;
+       } else {
+           snd_card_get_longname(card, name);
+           printf("Card %d : %s\n", card, *name);
+           if (!strncmp(*name, "RME Hammerfall DSP + Multiface", 30)) {
+               printf("Multiface found !\n");
+               hdsp_cards[cards] = MULTIFACE;
+               alsa_index[cards] = card;
+               cards++;
+           } else if (!strncmp(*name, "RME Hammerfall DSP + Digiface", 29)) {
+               printf("Digiface found !\n");
+               hdsp_cards[cards] = DIGIFACE;
+               alsa_index[cards] = card;
+               cards++;
+           } else if (!strncmp(*name, "RME HDSP 9652", 13)) {
+               printf("HDSP 9652 found !\n");
+               hdsp_cards[cards] = HDSP9652;
+               alsa_index[cards] = card;
+               cards++;
+           } 
+       }
+    }
+    if (!cards) {
+       printf("No Hammerfall DSP card found.\n");
+       exit(1);
+    }
+    printf("%d Hammerfall DSP %s found.\n", cards, (cards > 1) ? "cards" : "card");
+    
+    window = new Fl_Window(WINDOW_WIDTH, WINDOW_HEIGHT, "Hammerfall DSP Alsa Settings");
+    tabs = new Fl_Tabs(TABS_X, TABS_Y, TABS_W, TABS_H);
+    window->end();
+    for (int i = 0; i < cards; ++i) {
+           card_panes[i] = new HC_CardPane(alsa_index[i], i, hdsp_cards[i]);
+           tabs->add((Fl_Group *)card_panes[i]);
+    }
+    about_pane = new Fl_Group(10, 30, 360, 360, "About");
+    about_pane->labelsize(10);
+    about_text = new HC_AboutText(20, 40, 340, 210); 
+    rme_logo = new HC_XpmRenderer(20, 263, 113, 35, rme_xpm);
+    alsa_logo = new HC_XpmRenderer(170, 255, 50, 50, alsalogo_xpm);
+    lad_banner = new HC_XpmRenderer(245, 260, 113, 39, lad_banner_xpm);
+    about_pane->end();
+    tabs->add(about_pane);
+    refresh_cb((void *)tabs);
+    window->show(argc, argv);
+    return Fl::run();    
+}
+