From 574199c94d11ba7e5f0b420a7c41904cc5df5a5d Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 30 Jul 2013 21:33:50 +0000 Subject: [PATCH] Remove pandaapp completely --- pandaapp/Package.pp | 59 - pandaapp/Sources.pp | 4 - pandaapp/src/Sources.pp | 4 - pandaapp/src/configfiles/Sources.pp | 1 - pandaapp/src/configfiles/pandaapp.init | 1 - pandaapp/src/httpbackup/Sources.pp | 19 - pandaapp/src/httpbackup/backupCatalog.I | 59 - pandaapp/src/httpbackup/backupCatalog.cxx | 195 - pandaapp/src/httpbackup/backupCatalog.h | 74 - pandaapp/src/httpbackup/httpBackup.cxx | 519 --- pandaapp/src/httpbackup/httpBackup.h | 84 - pandaapp/src/indexify/Sources.pp | 38 - pandaapp/src/indexify/default_font.cxx | 3357 ----------------- pandaapp/src/indexify/default_font.h | 22 - pandaapp/src/indexify/default_index_icons.cxx | 297 -- pandaapp/src/indexify/default_index_icons.h | 36 - pandaapp/src/indexify/fontSamples.cxx | 264 -- pandaapp/src/indexify/fontSamples.h | 59 - pandaapp/src/indexify/indexImage.cxx | 918 ----- pandaapp/src/indexify/indexImage.h | 96 - pandaapp/src/indexify/indexParameters.cxx | 296 -- pandaapp/src/indexify/indexParameters.h | 154 - pandaapp/src/indexify/indexify.cxx | 738 ---- pandaapp/src/indexify/indexify.h | 66 - pandaapp/src/indexify/left.png | Bin 536 -> 0 bytes pandaapp/src/indexify/movie.png | Bin 258 -> 0 bytes pandaapp/src/indexify/music_big.jpg | Bin 2053 -> 0 bytes pandaapp/src/indexify/photo.cxx | 182 - pandaapp/src/indexify/photo.h | 67 - pandaapp/src/indexify/right.png | Bin 526 -> 0 bytes pandaapp/src/indexify/rollDirectory.cxx | 878 ----- pandaapp/src/indexify/rollDirectory.h | 112 - pandaapp/src/indexify/sound.png | Bin 310 -> 0 bytes pandaapp/src/indexify/up.png | Bin 549 -> 0 bytes pandaapp/src/pandaappbase/Sources.pp | 10 - pandaapp/src/pandaappbase/pandaappbase.cxx | 15 - pandaapp/src/pandaappbase/pandaappbase.h | 25 - pandaapp/src/pandaappbase/pandaappsymbols.h | 26 - 38 files changed, 8675 deletions(-) delete mode 100644 pandaapp/Package.pp delete mode 100644 pandaapp/Sources.pp delete mode 100644 pandaapp/src/Sources.pp delete mode 100644 pandaapp/src/configfiles/Sources.pp delete mode 100644 pandaapp/src/configfiles/pandaapp.init delete mode 100644 pandaapp/src/httpbackup/Sources.pp delete mode 100644 pandaapp/src/httpbackup/backupCatalog.I delete mode 100644 pandaapp/src/httpbackup/backupCatalog.cxx delete mode 100644 pandaapp/src/httpbackup/backupCatalog.h delete mode 100644 pandaapp/src/httpbackup/httpBackup.cxx delete mode 100644 pandaapp/src/httpbackup/httpBackup.h delete mode 100644 pandaapp/src/indexify/Sources.pp delete mode 100644 pandaapp/src/indexify/default_font.cxx delete mode 100644 pandaapp/src/indexify/default_font.h delete mode 100644 pandaapp/src/indexify/default_index_icons.cxx delete mode 100644 pandaapp/src/indexify/default_index_icons.h delete mode 100644 pandaapp/src/indexify/fontSamples.cxx delete mode 100644 pandaapp/src/indexify/fontSamples.h delete mode 100644 pandaapp/src/indexify/indexImage.cxx delete mode 100644 pandaapp/src/indexify/indexImage.h delete mode 100644 pandaapp/src/indexify/indexParameters.cxx delete mode 100644 pandaapp/src/indexify/indexParameters.h delete mode 100644 pandaapp/src/indexify/indexify.cxx delete mode 100644 pandaapp/src/indexify/indexify.h delete mode 100755 pandaapp/src/indexify/left.png delete mode 100644 pandaapp/src/indexify/movie.png delete mode 100644 pandaapp/src/indexify/music_big.jpg delete mode 100644 pandaapp/src/indexify/photo.cxx delete mode 100644 pandaapp/src/indexify/photo.h delete mode 100755 pandaapp/src/indexify/right.png delete mode 100644 pandaapp/src/indexify/rollDirectory.cxx delete mode 100644 pandaapp/src/indexify/rollDirectory.h delete mode 100644 pandaapp/src/indexify/sound.png delete mode 100755 pandaapp/src/indexify/up.png delete mode 100644 pandaapp/src/pandaappbase/Sources.pp delete mode 100644 pandaapp/src/pandaappbase/pandaappbase.cxx delete mode 100644 pandaapp/src/pandaappbase/pandaappbase.h delete mode 100644 pandaapp/src/pandaappbase/pandaappsymbols.h diff --git a/pandaapp/Package.pp b/pandaapp/Package.pp deleted file mode 100644 index 5aee397978..0000000000 --- a/pandaapp/Package.pp +++ /dev/null @@ -1,59 +0,0 @@ -// -// Package.pp -// -// This file defines certain configuration variables that are to be -// written into the various make scripts. It is processed by ppremake -// (along with the Sources.pp files in each of the various -// directories) to generate build scripts appropriate to each -// environment. -// -// This is the package-specific file, which should be at the top of -// every source hierarchy. It generally gets the ball rolling, and is -// responsible for explicitly including all of the relevent Config.pp -// files. - - - -// What is the name and version of this source tree? -#if $[eq $[PACKAGE],] - #define PACKAGE pandaapp - #define VERSION 0.80 -#endif - - -// Where should we find the PANDATOOL source directory? -#if $[or $[CTPROJS],$[PANDATOOL]] - // If we are presently attached, use the environment variable. - #define PANDATOOL_SOURCE $[PANDATOOL] - #if $[eq $[PANDATOOL],] - #error You seem to be attached to some trees, but not PANDATOOL! - #endif -#else - // Otherwise, if we are not attached, we guess that the source is a - // sibling directory to this source root. - #define PANDATOOL_SOURCE $[standardize $[TOPDIR]/../pandatool] -#endif - -// Where should we install PANDAAPP? -#if $[PANDAAPP_INSTALL] - #define PANDAAPP_INSTALL $[unixfilename $[PANDAAPP_INSTALL]] -#elif $[CTPROJS] - #define PANDAAPP_INSTALL $[PANDAAPP]/built - #if $[eq $[PANDAAPP],] - #error You seem to be attached to some trees, but not PANDAAPP! - #endif -#else - #defer PANDAAPP_INSTALL $[unixfilename $[INSTALL_DIR]] -#endif - -// Also get the PANDATOOL Package file and everything that includes. -#if $[not $[isfile $[PANDATOOL_SOURCE]/Package.pp]] - #printvar PANDATOOL - #error PANDATOOL source directory not found from pandaapp! Are you attached properly? -#endif - -#include $[PANDATOOL_SOURCE]/Package.pp - -// Define the inter-tree dependencies. -#define NEEDS_TREES pandatool $[NEEDS_TREES] -#define DEPENDABLE_HEADER_DIRS $[DEPENDABLE_HEADER_DIRS] $[PANDATOOL_INSTALL]/include diff --git a/pandaapp/Sources.pp b/pandaapp/Sources.pp deleted file mode 100644 index fba9e6b34a..0000000000 --- a/pandaapp/Sources.pp +++ /dev/null @@ -1,4 +0,0 @@ -// This is the toplevel directory. It contains configure.in and other -// stuff. - -#define DIR_TYPE toplevel diff --git a/pandaapp/src/Sources.pp b/pandaapp/src/Sources.pp deleted file mode 100644 index fb8681dab2..0000000000 --- a/pandaapp/src/Sources.pp +++ /dev/null @@ -1,4 +0,0 @@ -// This is a group directory: a directory level above a number of -// source subdirectories. - -#define DIR_TYPE group diff --git a/pandaapp/src/configfiles/Sources.pp b/pandaapp/src/configfiles/Sources.pp deleted file mode 100644 index 28acd50576..0000000000 --- a/pandaapp/src/configfiles/Sources.pp +++ /dev/null @@ -1 +0,0 @@ -#define INSTALL_CONFIG pandaapp.init diff --git a/pandaapp/src/configfiles/pandaapp.init b/pandaapp/src/configfiles/pandaapp.init deleted file mode 100644 index 68cfd0940e..0000000000 --- a/pandaapp/src/configfiles/pandaapp.init +++ /dev/null @@ -1 +0,0 @@ -ATTACH pandatool diff --git a/pandaapp/src/httpbackup/Sources.pp b/pandaapp/src/httpbackup/Sources.pp deleted file mode 100644 index b3ca9d6d62..0000000000 --- a/pandaapp/src/httpbackup/Sources.pp +++ /dev/null @@ -1,19 +0,0 @@ -#define BUILD_DIRECTORY $[HAVE_OPENSSL] - -#begin bin_target - #define TARGET httpbackup - #define LOCAL_LIBS pandaappbase - #define USE_PACKAGES ssl - - #define OTHER_LIBS \ - progbase pandatoolbase \ - express:c downloader:c pandaexpress:m \ - panda:m dtool:m dtoolconfig:m \ - pystub - - #define SOURCES \ - backupCatalog.I backupCatalog.cxx backupCatalog.h \ - httpBackup.cxx httpBackup.h - -#end bin_target - diff --git a/pandaapp/src/httpbackup/backupCatalog.I b/pandaapp/src/httpbackup/backupCatalog.I deleted file mode 100644 index 7dc6c2fcf6..0000000000 --- a/pandaapp/src/httpbackup/backupCatalog.I +++ /dev/null @@ -1,59 +0,0 @@ -// Filename: backupCatalog.I -// Created by: drose (29Jan03) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::Entry::Constructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -INLINE BackupCatalog::Entry:: -Entry() { -} - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::Entry::operator < -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -INLINE bool BackupCatalog::Entry:: -operator < (const BackupCatalog::Entry &other) const { - return get_date() < other.get_date(); -} - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::Entry::get_date -// Access: Public -// Description: Returns the date associated with the entry. This is -// the last-modified date provided by the server, if we -// have such a thing; or the downloaded date if that's -// all we have. -//////////////////////////////////////////////////////////////////// -INLINE const HTTPDate &BackupCatalog::Entry:: -get_date() const { - return _document_spec.has_date() ? _document_spec.get_date() : _download_date; -} - - -INLINE istream & -operator >> (istream &in, BackupCatalog::Entry &entry) { - entry.input(in); - return in; -} - -INLINE ostream & -operator << (ostream &out, const BackupCatalog::Entry &entry) { - entry.output(out); - return out; -} diff --git a/pandaapp/src/httpbackup/backupCatalog.cxx b/pandaapp/src/httpbackup/backupCatalog.cxx deleted file mode 100644 index 2aa144164a..0000000000 --- a/pandaapp/src/httpbackup/backupCatalog.cxx +++ /dev/null @@ -1,195 +0,0 @@ -// Filename: backupCatalog.cxx -// Created by: drose (29Jan03) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "backupCatalog.h" -#include "indirectLess.h" -#include - -// These are the characters that are not escaped when we write a -// filename out to the catalog. Really, the only reason we use -// URLSpec::quote() to protect the filenames is to escape spaces. -static const char * const acceptable_chars = "~/:"; - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::Constructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -BackupCatalog:: -BackupCatalog() { - _dirty = false; -} - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::Destructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -BackupCatalog:: -~BackupCatalog() { - clear(); -} - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::read -// Access: Public -// Description: Reads the catalog from the named file. Returns true -// on success, false on failure. On a false return, the -// catalog may have been partially read in. -//////////////////////////////////////////////////////////////////// -bool BackupCatalog:: -read(const Filename &filename) { - clear(); - - ifstream file; - if (!filename.open_read(file)) { - nout << "Unable to read: " << filename << "\n"; - return false; - } - - Entry *entry = new Entry; - file >> (*entry); - while (!file.fail() && !file.eof()) { - _table[entry->_document_name].push_back(entry); - _filenames.insert(entry->_filename); - entry = new Entry; - file >> (*entry); - } - - // Delete the last Entry that we didn't use. - delete entry; - - if (!file.eof()) { - // Oops, we had an error on one of the entries. - return false; - } - - // Now sort all of the entries by date. - Table::iterator ti; - for (ti = _table.begin(); ti != _table.end(); ++ti) { - Entries &entries = (*ti).second; - sort(entries.begin(), entries.end(), IndirectLess()); - } - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::write -// Access: Public -// Description: Rewrites the catalog to the named file. Returns true -// on success, false on failure. -//////////////////////////////////////////////////////////////////// -bool BackupCatalog:: -write(const Filename &filename) { - ofstream file; - if (!filename.open_write(file)) { - nout << "Unable to write: " << filename << "\n"; - return false; - } - - Table::const_iterator ti; - for (ti = _table.begin(); ti != _table.end(); ++ti) { - const Entries &entries = (*ti).second; - Entries::const_iterator ei; - for (ei = entries.begin(); ei != entries.end(); ++ei) { - (*ei)->write(file); - file << "\n"; - } - } - - if (file) { - _dirty = false; - return true; - } - - return false; -} - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::clear -// Access: Public -// Description: Completely empties the contents of the catalog. -//////////////////////////////////////////////////////////////////// -void BackupCatalog:: -clear() { - Table::iterator ti; - for (ti = _table.begin(); ti != _table.end(); ++ti) { - Entries &entries = (*ti).second; - Entries::iterator ei; - for (ei = entries.begin(); ei != entries.end(); ++ei) { - delete (*ei); - } - } - _dirty = false; -} - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::Entry::delete_file -// Access: Public -// Description: Deletes the file named by the entry, echoing the -// indicated reason to nout. -//////////////////////////////////////////////////////////////////// -void BackupCatalog::Entry:: -delete_file(const Filename &dirname, const string &reason) { - Filename pathname(dirname, _filename); - if (pathname.exists()) { - nout << "Deleting " << _filename << " (" << reason << ").\n"; - if (!pathname.unlink()) { - nout << "unable to delete.\n"; - } - - } else { - nout << "Tried to delete " << _filename << " but it's already gone!\n"; - } -} - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::Entry::input -// Access: Public -// Description: Can be used to read in the catalog entry from a -// stream generated by either output() or write(). -//////////////////////////////////////////////////////////////////// -void BackupCatalog::Entry:: -input(istream &in) { - in >> _document_name >> _filename >> _document_spec >> _download_date; - _document_name = URLSpec::unquote(_document_name); - _filename = URLSpec::unquote(_filename); -} - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::Entry::output -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -void BackupCatalog::Entry:: -output(ostream &out) const { - out << URLSpec::quote(_document_name, acceptable_chars) << " " - << URLSpec::quote(_filename, acceptable_chars) << " " - << _document_spec << " " - << _download_date; -} - -//////////////////////////////////////////////////////////////////// -// Function: BackupCatalog::Entry::write -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -void BackupCatalog::Entry:: -write(ostream &out) const { - out << URLSpec::quote(_document_name, acceptable_chars) << " " - << URLSpec::quote(_filename, acceptable_chars) << "\n"; - _document_spec.write(out, 2); - out << " " << _download_date << "\n"; -} diff --git a/pandaapp/src/httpbackup/backupCatalog.h b/pandaapp/src/httpbackup/backupCatalog.h deleted file mode 100644 index 1dcf87ead5..0000000000 --- a/pandaapp/src/httpbackup/backupCatalog.h +++ /dev/null @@ -1,74 +0,0 @@ -// Filename: backupCatalog.h -// Created by: drose (29Jan03) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#ifndef BACKUPCATALOG_H -#define BACKUPCATALOG_H - -#include "pandaappbase.h" - -#include "documentSpec.h" -#include "filename.h" -#include "pvector.h" -#include "pmap.h" -#include "pset.h" - -//////////////////////////////////////////////////////////////////// -// Class : BackupCatalog -// Description : This is the list of previous versions of this file -// (and possibly other files) stored in the "catalog", a -// text file within the download directory. -//////////////////////////////////////////////////////////////////// -class BackupCatalog { -public: - BackupCatalog(); - ~BackupCatalog(); - - bool read(const Filename &filename); - bool write(const Filename &filename); - void clear(); - - class Entry { - public: - INLINE Entry(); - INLINE bool operator < (const Entry &other) const; - INLINE const HTTPDate &get_date() const; - - void delete_file(const Filename &dirname, const string &reason); - void input(istream &in); - void output(ostream &out) const; - void write(ostream &out) const; - - string _document_name; - string _filename; - DocumentSpec _document_spec; - HTTPDate _download_date; - }; - - typedef pvector Entries; - typedef pmap Table; - Table _table; - - typedef pset Filenames; - Filenames _filenames; - - bool _dirty; -}; - -INLINE istream &operator >> (istream &in, BackupCatalog::Entry &entry); -INLINE ostream &operator << (ostream &out, const BackupCatalog::Entry &entry); - -#include "backupCatalog.I" - -#endif - diff --git a/pandaapp/src/httpbackup/httpBackup.cxx b/pandaapp/src/httpbackup/httpBackup.cxx deleted file mode 100644 index 443ac80b49..0000000000 --- a/pandaapp/src/httpbackup/httpBackup.cxx +++ /dev/null @@ -1,519 +0,0 @@ -// Filename: httpBackup.cxx -// Created by: drose (29Jan03) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "httpBackup.h" -#include "httpChannel.h" - - -static const int seconds_per_day = 60 * 60 * 24; - -//////////////////////////////////////////////////////////////////// -// Function: HTTPBackup::Constructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -HTTPBackup:: -HTTPBackup() { - clear_runlines(); - add_runline("[opts] url"); - add_runline("-check url"); - - set_program_description - ("This program is designed to run periodically as a " - "background task, e.g. via a cron job. It fetches the " - "latest copy of a document from an HTTP server and " - "stores it, along with an optional number of previous " - "versions, in a local directory so that it may be " - "backed up to tape.\n\n" - - "If the copy on disk is already the same as the latest " - "copy available on the HTTP server, this program generally " - "does nothing (although it may delete old versions if they " - "have expired past the maximum age specified on the command " - "line)."); - - add_option - ("p", "url", 0, - "Specifies the URL of the HTTP proxy server(s), if one is required. " - "Multiple servers may be specified by separating them with semicolons; " - "they will be tried in the order listed.", - &HTTPBackup::dispatch_string, &_got_proxy, &_proxy); - - add_option - ("a", "", 0, - "If this option is specified, the document is always downloaded every " - "time httpbackup runs, even if the document does not appear to have " - "been changed since last time.", - &HTTPBackup::dispatch_none, &_always_download, NULL); - - add_option - ("d", "dirname", 0, - "Specifies the name of the directory in which to store the backup " - "versions of the document. The default is '.', the current " - "directory.", - &HTTPBackup::dispatch_filename, NULL, &_dirname); - - add_option - ("c", "filename", 0, - "Specifies the name of the catalog file that httpbackup uses to " - "record the HTTP entity tags, etc., downloaded from previous " - "versions. If a relative filename is given, it is relative to " - "the directory specified by -d. The default is 'Catalog'.", - &HTTPBackup::dispatch_filename, NULL, &_catalog_name); - - add_option - ("n", "filename", 0, - "Specifies the name of the document that is being retrieved. This " - "name is written to the catalog file to identify entries for this " - "document, and is used to generate the filename to store the " - "backup versions. The default if this is omitted or empty is to use " - "the basename of the URL.", - &HTTPBackup::dispatch_string, NULL, &_document_name); - - add_option - ("s", "string", 0, - "Specifies how the date is appended onto the filename (see -n) for " - "each version of the file. This string should contain the sequence " - "of characters from strftime() that correspond to the desired date " - "format to append to the filename. The default is '.%Y-%m-%d.%H-%M', " - "or the year, month, day, hour, and minute. (The date is always " - "represented in GMT, according to HTTP convention.)", - &HTTPBackup::dispatch_string, NULL, &_version_append); - - add_option - ("maxage", "days", 0, - "Specifies the maximum age, in days, to keep an old version of the " - "file around. If unspecified, the default is no limit. This may " - "be a floating-point number.", - &HTTPBackup::dispatch_double, &_got_max_keep_days, &_max_keep_days); - - add_option - ("minage", "days", 0, - "Specifies the minimum age, in days, an old version of the file must " - "have before it is automatically deleted due to exceeding -maxver. " - "The default is 0. This may be a floating-point number.", - &HTTPBackup::dispatch_double, NULL, &_min_keep_days); - - add_option - ("maxver", "count", 0, - "Specifies the maximum number of old versions of the file to keep " - "around. If unspecified, the default is no limit.", - &HTTPBackup::dispatch_int, &_got_max_keep_versions, &_max_keep_versions); - - add_option - ("minver", "count", 0, - "Specifies the minimum number of old versions to keep after " - "deleting versions older than -maxage. The default is 1.", - &HTTPBackup::dispatch_int, NULL, &_min_keep_versions); - - add_option - ("check", "days", 0, - "Instead of downloading any document, check the date of the most recent " - "document downloaded. Returns success if that date is no more than the " - "indicated number of days old (which may be a floating-point number), " - "or failure otherwise.", - &HTTPBackup::dispatch_double, &_got_check_days, &_check_days); - - _dirname = "."; - _catalog_name = "Catalog"; - _version_append = ".%Y-%m-%d.%H-%M"; - _max_keep_days = 0.0; - _min_keep_days = 0.0; - _max_keep_versions = 0; - _min_keep_versions = 1; -} - - -//////////////////////////////////////////////////////////////////// -// Function: HTTPBackup::handle_args -// Access: Protected, Virtual -// Description: Does something with the additional arguments on the -// command line (after all the -options have been -// parsed). Returns true if the arguments are good, -// false otherwise. -//////////////////////////////////////////////////////////////////// -bool HTTPBackup:: -handle_args(ProgramBase::Args &args) { - if (_got_check_days && !_document_name.empty() && args.empty()) { - // If -check and -n are both specified, we don't really need to - // specify an URL. Accept it if we don't. - return true; - } - - if (args.size() != 1) { - nout << - "You must specify the URL of the document to download " - "on the command line.\n\n"; - return false; - } - - _url = URLSpec(args[0]); - if (!(_url.has_server() && _url.has_path())) { - nout - << "Invalid URL specification: " << args[0] << "\n"; - return false; - } - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: HTTPBackup::post_command_line -// Access: Protected, Virtual -// Description: This is called after the command line has been -// completely processed, and it gives the program a -// chance to do some last-minute processing and -// validation of the options and arguments. It should -// return true if everything is fine, false if there is -// an error. -//////////////////////////////////////////////////////////////////// -bool HTTPBackup:: -post_command_line() { - if (_got_proxy) { - _http.set_proxy_spec(_proxy); - } - - if (!_catalog_name.is_fully_qualified()) { - _catalog_name = Filename(_dirname, _catalog_name); - } - - if (_document_name.empty()) { - Filename pathname = _url.get_path(); - _document_name = pathname.get_basename(); - } - - if (_min_keep_days < 0.0) { - nout << "Invalid -minage " << _min_keep_days << "\n"; - return false; - } - - if (_min_keep_versions < 0) { - nout << "Invalid -minver " << _min_keep_versions << "\n"; - return false; - } - - if (_got_max_keep_days) { - if (_max_keep_days < _min_keep_days) { - nout - << "-maxage " << _max_keep_days << " is less than -minage " - << _min_keep_days << "\n"; - return false; - } - } - - if (_got_max_keep_versions) { - if (_max_keep_versions < _min_keep_versions) { - nout - << "-maxver " << _max_keep_versions << " is less than -minver " - << _min_keep_versions << "\n"; - return false; - } - } - - _now = HTTPDate::now(); - if (_got_max_keep_days) { - _max_keep_date = _now - (time_t)(_max_keep_days * seconds_per_day); - } - _min_keep_date = _now - (time_t)(_min_keep_days * seconds_per_day); - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: HTTPBackup::dispatch_url -// Access: Protected, Static -// Description: Dispatch function for a URL parameter. -//////////////////////////////////////////////////////////////////// -bool HTTPBackup:: -dispatch_url(const string &opt, const string &arg, void *var) { - URLSpec *up = (URLSpec *)var; - URLSpec new_url(arg); - (*up) = new_url; - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: HTTPBackup::run -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -void HTTPBackup:: -run() { - // Output the current date and time in GMT, for logging. - nout << _now.get_string() << "\n"; - - // First, read in the catalog. - _catalog_name.set_text(); - if (!_catalog_name.exists()) { - nout << _catalog_name << " does not yet exist.\n"; - } else { - if (!_catalog.read(_catalog_name)) { - nout << "Unable to read " << _catalog_name << ".\n"; - exit(1); - } - } - - if (_got_check_days) { - // We're only checking the date of the latest download. - BackupCatalog::Entries &entries = _catalog._table[_document_name]; - if (entries.empty()) { - nout << "No previous downloads for " << _document_name << ".\n"; - exit(1); - } - BackupCatalog::Entry *latest = entries[entries.size() - 1]; - int diff_secs = _now - latest->get_date(); - double diff_days = (double)diff_secs / (double)seconds_per_day; - nout << "Most recent at " << latest->get_date().get_string() - << ", " << diff_days << " days old.\n"; - if (diff_days <= _check_days) { - nout << "OK.\n"; - } else { - nout << "Too old!\n"; - exit(1); - } - - } else { - // Try to do the download. - - // Now try to fetch the document. - if (!fetch_latest()) { - nout << "Errors while processing latest.\n"; - exit(1); - } - - if (!cleanup_old()) { - nout << "Errors while cleaning up old versions.\n"; - // We don't bother to exit the program in this case. - } - - if (_catalog._dirty) { - // Now write out the modified catalog. - nout << "Writing " << _catalog_name << "\n"; - _catalog_name.make_dir(); - if (!_catalog.write(_catalog_name)) { - nout << "Unable to rewrite " << _catalog_name << ".\n"; - exit(1); - } - } - } -} - -//////////////////////////////////////////////////////////////////// -// Function: HTTPBackup::fetch_latest -// Access: Private -// Description: Tries to get the latest version of the document from -// the server, if there is one available. Returns true -// on success (even if the most recent document hasn't -// changed), or false if there was some error. -//////////////////////////////////////////////////////////////////// -bool HTTPBackup:: -fetch_latest() { - // Check the most recent version of this document. - BackupCatalog::Entries &entries = _catalog._table[_document_name]; - - DocumentSpec document_spec(_url); - if (!entries.empty()) { - BackupCatalog::Entry *latest = entries[entries.size() - 1]; - document_spec = latest->_document_spec; - document_spec.set_url(_url); - if (!document_spec.has_date()) { - // If we didn't get a last-modified date, use the download date - // instead. - document_spec.set_date(latest->get_date()); - } - if (!_always_download) { - document_spec.set_request_mode(DocumentSpec::RM_newer); - } - } - - // Since the purpose of this program is to check to see if a more - // recent document is available, we probably always want any proxies - // in the way to revalidate their cache. - document_spec.set_cache_control(DocumentSpec::CC_revalidate); - - if (document_spec.get_request_mode() == DocumentSpec::RM_newer && - document_spec.has_date()) { - nout << "Checking for newer than "<< document_spec.get_date().get_string() - << ".\n"; - } - nout << "Fetching " << document_spec.get_url() << "\n"; - - PT(HTTPChannel) channel = _http.make_channel(true); - if (_always_download) { - channel->get_document(document_spec); - } else { - // Start out by asking for the header first, so we can verify the - // document has changed before we try to download it again. - channel->get_header(document_spec); - } - - if (!channel->is_valid()) { - if (channel->get_status_code() == 304) { - nout << "Document has not been modified.\n"; - // This is considered a success condition. - return true; - } - nout << "Error fetching document: " << channel->get_status_code() - << " " << channel->get_status_string() << "\n"; - return false; - } - - // The document is available. - if (!_always_download) { - if (!entries.empty()) { - // Has it been modified? We need to check again because the - // If-None-Match fields, etc. might have been ignored (e.g. by a - // proxy). - if (document_spec == channel->get_document_spec()) { - nout - << "Document has not been modified (server ignored conditional request).\n"; - return true; - } - } - - // Ok, the document really is ready. Go ahead and download it. - if (!channel->get_document(document_spec)) { - nout << "Unable to request document.\n"; - return false; - } - } - - // We've started to download the document. Create an entry for it. - BackupCatalog::Entry *entry = new BackupCatalog::Entry; - entry->_document_name = _document_name; - entry->_document_spec = channel->get_document_spec(); - entry->_download_date = _now; - - // Generate a filename based on the last-modified date or the - // download date. - time_t time = entry->get_date().get_time(); - struct tm *tp = gmtime(&time); - - static const int buffer_size = 512; - char buffer[buffer_size]; - if (strftime(buffer, buffer_size, _version_append.c_str(), tp) == 0) { - buffer[0] = '\0'; - } - - string filename = _document_name + string(buffer); - - // Check the filename for uniqueness, just for good measure. - check_unique(filename); - - entry->_filename = filename; - - // Download to the indicated filename. - Filename pathname(_dirname, filename); - nout << "Downloading to " << pathname << "\n"; - pathname.make_dir(); - if (!channel->download_to_file(pathname)) { - nout << "Error while downloading.\n"; - delete entry; - return false; - } - - // The file is successfully downloaded; save the entry. - entries.push_back(entry); - _catalog._dirty = true; - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: HTTPBackup::cleanup_old -// Access: Private -// Description: Removes old versions that are no longer needed. -//////////////////////////////////////////////////////////////////// -bool HTTPBackup:: -cleanup_old() { - BackupCatalog::Entries &entries = _catalog._table[_document_name]; - - if (_got_max_keep_versions && - (int)entries.size() > _max_keep_versions) { - // Too many versions; delete the oldest ones, except those newer - // than min_keep_date. - int num_delete = entries.size() - _max_keep_versions; - while (num_delete > 0 && entries[num_delete - 1]->get_date() > _min_keep_date) { - num_delete--; - } - - for (int i = 0; i < num_delete; i++) { - entries[i]->delete_file(_dirname, "too many old versions"); - delete entries[i]; - } - entries.erase(entries.begin(), entries.begin() + num_delete); - _catalog._dirty = true; - } - - if (_got_max_keep_days && - (int)entries.size() > _min_keep_versions && - entries[0]->get_date() < _max_keep_date) { - // The oldest version is too old; delete all the oldest ones, - // but keep at least min_keep_versions of them around. - int num_delete = 1; - while (num_delete < (int)entries.size() - _min_keep_versions && - entries[num_delete]->get_date() < _max_keep_date) { - num_delete++; - } - - for (int i = 0; i < num_delete; i++) { - entries[i]->delete_file(_dirname, "too old"); - delete entries[i]; - } - entries.erase(entries.begin(), entries.begin() + num_delete); - _catalog._dirty = true; - } - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: HTTPBackup::check_unique -// Access: Private -// Description: Ensures that the given filename is unique among all -// files in the catalog. -//////////////////////////////////////////////////////////////////// -void HTTPBackup:: -check_unique(string &filename) { - bool inserted = _catalog._filenames.insert(filename).second; - - if (!inserted) { - // Conflict; append one or more letters to the filename until it - // is unique. - unsigned int uniquifier = 1; - string orig_filename = filename; - orig_filename += '.'; - - while (!inserted) { - filename = orig_filename; - - unsigned int count = uniquifier; - while (count > 0) { - char ch = (char)((count % 26) + 'a'); - filename += ch; - count /= 26; - } - - uniquifier++; - inserted = _catalog._filenames.insert(filename).second; - } - } -} - -int -main(int argc, char *argv[]) { - HTTPBackup prog; - prog.parse_command_line(argc, argv); - prog.run(); - return 0; -} diff --git a/pandaapp/src/httpbackup/httpBackup.h b/pandaapp/src/httpbackup/httpBackup.h deleted file mode 100644 index 46c4ade1ff..0000000000 --- a/pandaapp/src/httpbackup/httpBackup.h +++ /dev/null @@ -1,84 +0,0 @@ -// Filename: httpBackup.h -// Created by: drose (29Jan03) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#ifndef HTTPBACKUP_H -#define HTTPBACKUP_H - -#include "pandaappbase.h" -#include "programBase.h" -#include "backupCatalog.h" - -#include "httpClient.h" -#include "urlSpec.h" - -//////////////////////////////////////////////////////////////////// -// Class : HTTPBackup -// Description : This program is designed to run periodically as a -// background task, e.g. via a cron job. It fetches the -// latest copy of a document from an HTTP server and -// stores it, along with an optional number of previous -// versions, in a local directory so that it may be -// backed up to tape. -// -// If the copy on disk is already the same as the latest -// copy available on the HTTP server, this program does -// nothing. -//////////////////////////////////////////////////////////////////// -class HTTPBackup : public ProgramBase { -public: - HTTPBackup(); - -protected: - virtual bool handle_args(Args &args); - virtual bool post_command_line(); - - static bool dispatch_url(const string &opt, const string &arg, void *var); - -public: - void run(); - -private: - bool fetch_latest(); - bool cleanup_old(); - void check_unique(string &filename); - -private: - string _proxy; - bool _got_proxy; - - URLSpec _url; - Filename _dirname; - Filename _catalog_name; - string _document_name; - string _version_append; - bool _always_download; - - double _max_keep_days; - bool _got_max_keep_days; - double _min_keep_days; - int _max_keep_versions; - bool _got_max_keep_versions; - int _min_keep_versions; - double _check_days; - bool _got_check_days; - - HTTPDate _max_keep_date; - HTTPDate _min_keep_date; - HTTPDate _now; - - HTTPClient _http; - BackupCatalog _catalog; -}; - -#endif diff --git a/pandaapp/src/indexify/Sources.pp b/pandaapp/src/indexify/Sources.pp deleted file mode 100644 index f2d60085ee..0000000000 --- a/pandaapp/src/indexify/Sources.pp +++ /dev/null @@ -1,38 +0,0 @@ -#define BUILD_DIRECTORY $[HAVE_FREETYPE] - -#define OTHER_LIBS \ - progbase pandatoolbase \ - dtoolutil:c dtool:m prc:c dtoolbase:c dtoolconfig:m \ - express:c pandaexpress:m \ - putil:c pipeline:c linmath:c pnmimage:c mathutil:c pnmtext:c \ - pnmimagetypes:c event:c panda:m \ - pystub - -#define UNIX_SYS_LIBS dl - -#begin bin_target - #define USE_PACKAGES freetype - - #define TARGET indexify - - #define SOURCES \ - default_index_icons.cxx default_index_icons.h \ - default_font.cxx default_font.h \ - indexImage.cxx indexImage.h \ - indexParameters.cxx indexParameters.h \ - indexify.cxx indexify.h \ - photo.cxx photo.h \ - rollDirectory.cxx rollDirectory.h - -#end bin_target - -#begin bin_target - #define USE_PACKAGES freetype - - #define TARGET font-samples - - #define SOURCES \ - default_font.cxx default_font.h \ - fontSamples.cxx fontSamples.h - -#end bin_target diff --git a/pandaapp/src/indexify/default_font.cxx b/pandaapp/src/indexify/default_font.cxx deleted file mode 100644 index f796906a42..0000000000 --- a/pandaapp/src/indexify/default_font.cxx +++ /dev/null @@ -1,3357 +0,0 @@ -// Filename: default_font.cxx -// Created by: drose (04Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "default_font.h" - -// This file was generated from uhvr8ac.pfb, a PostScript Type1 font -// installed along with TeX (and it was probably converted there from -// some other format). It defines the font "Nimbus Sans L Regular -// Condensed", a nice simple sans-serif font. - -// This is used as a standard fallback font when no font file is -// specified by the user. - -const unsigned char default_font[] = { - 0x80, 0x01, 0x6e, 0x06, 0x00, 0x00, 0x25, 0x21, 0x50, 0x53, 0x2d, - 0x41, 0x64, 0x6f, 0x62, 0x65, 0x46, 0x6f, 0x6e, 0x74, 0x2d, 0x31, - 0x2e, 0x30, 0x3a, 0x20, 0x4e, 0x69, 0x6d, 0x62, 0x75, 0x73, 0x53, - 0x61, 0x6e, 0x4c, 0x2d, 0x52, 0x65, 0x67, 0x75, 0x43, 0x6f, 0x6e, - 0x64, 0x20, 0x31, 0x2e, 0x30, 0x35, 0x0a, 0x25, 0x25, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x3a, - 0x20, 0x57, 0x65, 0x64, 0x20, 0x44, 0x65, 0x63, 0x20, 0x32, 0x32, - 0x20, 0x31, 0x39, 0x39, 0x39, 0x0a, 0x25, 0x20, 0x43, 0x6f, 0x70, - 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x28, 0x55, 0x52, 0x57, - 0x29, 0x2b, 0x2b, 0x2c, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, - 0x68, 0x74, 0x20, 0x31, 0x39, 0x39, 0x39, 0x20, 0x62, 0x79, 0x20, - 0x28, 0x55, 0x52, 0x57, 0x29, 0x2b, 0x2b, 0x20, 0x44, 0x65, 0x73, - 0x69, 0x67, 0x6e, 0x20, 0x26, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, - 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x25, 0x20, 0x28, 0x55, - 0x52, 0x57, 0x29, 0x2b, 0x2b, 0x2c, 0x43, 0x6f, 0x70, 0x79, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x20, 0x31, 0x39, 0x39, 0x39, 0x20, 0x62, - 0x79, 0x20, 0x28, 0x55, 0x52, 0x57, 0x29, 0x2b, 0x2b, 0x20, 0x44, - 0x65, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x26, 0x20, 0x44, 0x65, 0x76, - 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x0a, 0x25, 0x20, - 0x53, 0x65, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x28, 0x41, - 0x6c, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x20, 0x46, 0x72, 0x65, 0x65, - 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x4c, 0x69, 0x63, - 0x65, 0x6e, 0x73, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x6c, - 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x0a, 0x25, 0x20, 0x41, - 0x73, 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, - 0x20, 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2c, - 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x20, 0x69, 0x73, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, - 0x20, 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x0a, - 0x25, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x20, 0x69, - 0x6e, 0x20, 0x61, 0x20, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x20, 0x6f, 0x72, 0x20, 0x50, 0x44, 0x46, 0x20, - 0x66, 0x69, 0x6c, 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, - 0x6f, 0x6e, 0x73, 0x69, 0x73, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, - 0x61, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x74, 0x68, 0x61, 0x74, 0x0a, 0x25, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x73, 0x20, 0x74, 0x65, 0x78, 0x74, 0x20, 0x74, - 0x6f, 0x20, 0x62, 0x65, 0x20, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x65, 0x64, 0x20, 0x6f, 0x72, 0x20, 0x70, 0x72, 0x69, 0x6e, - 0x74, 0x65, 0x64, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x68, 0x69, 0x73, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x2c, 0x20, 0x72, - 0x65, 0x67, 0x61, 0x72, 0x64, 0x6c, 0x65, 0x73, 0x73, 0x0a, 0x25, - 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x72, 0x20, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x61, 0x70, 0x70, - 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x6f, 0x20, 0x74, 0x68, - 0x65, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x20, - 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x2e, 0x0a, 0x31, 0x32, 0x20, - 0x64, 0x69, 0x63, 0x74, 0x20, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x0a, - 0x2f, 0x46, 0x6f, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x20, 0x31, - 0x30, 0x20, 0x64, 0x69, 0x63, 0x74, 0x20, 0x64, 0x75, 0x70, 0x20, - 0x62, 0x65, 0x67, 0x69, 0x6e, 0x0a, 0x2f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x20, 0x28, 0x31, 0x2e, 0x30, 0x35, 0x29, 0x20, - 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x64, 0x65, - 0x66, 0x0a, 0x2f, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x20, 0x28, - 0x28, 0x55, 0x52, 0x57, 0x29, 0x2b, 0x2b, 0x2c, 0x43, 0x6f, 0x70, - 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, 0x31, 0x39, 0x39, 0x39, - 0x20, 0x62, 0x79, 0x20, 0x28, 0x55, 0x52, 0x57, 0x29, 0x2b, 0x2b, - 0x20, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x20, 0x26, 0x20, 0x44, - 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x2e, - 0x20, 0x53, 0x65, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, - 0x6c, 0x65, 0x20, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x20, 0x28, - 0x41, 0x6c, 0x61, 0x64, 0x64, 0x69, 0x6e, 0x20, 0x46, 0x72, 0x65, - 0x65, 0x20, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, 0x4c, 0x69, - 0x63, 0x65, 0x6e, 0x73, 0x65, 0x29, 0x20, 0x66, 0x6f, 0x72, 0x20, - 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x20, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x20, 0x41, 0x73, - 0x20, 0x61, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x20, - 0x65, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x20, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x20, - 0x69, 0x73, 0x20, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x64, 0x20, - 0x74, 0x6f, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, - 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x70, - 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x20, 0x69, 0x6e, 0x20, 0x61, - 0x20, 0x50, 0x6f, 0x73, 0x74, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x20, 0x6f, 0x72, 0x20, 0x50, 0x44, 0x46, 0x20, 0x66, 0x69, 0x6c, - 0x65, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x73, - 0x69, 0x73, 0x74, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x61, 0x20, 0x64, - 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x20, 0x74, 0x68, 0x61, - 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x20, - 0x74, 0x65, 0x78, 0x74, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x20, 0x6f, - 0x72, 0x20, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x20, 0x75, - 0x73, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x66, - 0x6f, 0x6e, 0x74, 0x2c, 0x20, 0x72, 0x65, 0x67, 0x61, 0x72, 0x64, - 0x6c, 0x65, 0x73, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, - 0x20, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x20, 0x6f, 0x72, 0x20, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, - 0x20, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x20, 0x74, - 0x6f, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x6f, 0x63, 0x75, 0x6d, - 0x65, 0x6e, 0x74, 0x20, 0x69, 0x74, 0x73, 0x65, 0x6c, 0x66, 0x2e, - 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x64, 0x65, 0x66, 0x0a, 0x2f, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x20, 0x28, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, - 0x67, 0x68, 0x74, 0x20, 0x28, 0x55, 0x52, 0x57, 0x29, 0x2b, 0x2b, - 0x2c, 0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x20, - 0x31, 0x39, 0x39, 0x39, 0x20, 0x62, 0x79, 0x20, 0x28, 0x55, 0x52, - 0x57, 0x29, 0x2b, 0x2b, 0x20, 0x44, 0x65, 0x73, 0x69, 0x67, 0x6e, - 0x20, 0x26, 0x20, 0x44, 0x65, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x6d, - 0x65, 0x6e, 0x74, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, - 0x6c, 0x79, 0x20, 0x64, 0x65, 0x66, 0x0a, 0x2f, 0x46, 0x75, 0x6c, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x28, 0x4e, 0x69, 0x6d, 0x62, - 0x75, 0x73, 0x20, 0x53, 0x61, 0x6e, 0x73, 0x20, 0x4c, 0x20, 0x52, - 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x20, 0x43, 0x6f, 0x6e, 0x64, - 0x65, 0x6e, 0x73, 0x65, 0x64, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x64, 0x65, 0x66, 0x0a, 0x2f, 0x46, - 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x28, - 0x4e, 0x69, 0x6d, 0x62, 0x75, 0x73, 0x20, 0x53, 0x61, 0x6e, 0x73, - 0x20, 0x4c, 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, - 0x79, 0x20, 0x64, 0x65, 0x66, 0x0a, 0x2f, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x20, 0x28, 0x52, 0x65, 0x67, 0x75, 0x6c, 0x61, 0x72, - 0x29, 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x20, - 0x64, 0x65, 0x66, 0x0a, 0x2f, 0x49, 0x74, 0x61, 0x6c, 0x69, 0x63, - 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x20, 0x30, 0x2e, 0x30, 0x20, 0x64, - 0x65, 0x66, 0x0a, 0x2f, 0x69, 0x73, 0x46, 0x69, 0x78, 0x65, 0x64, - 0x50, 0x69, 0x74, 0x63, 0x68, 0x20, 0x66, 0x61, 0x6c, 0x73, 0x65, - 0x20, 0x64, 0x65, 0x66, 0x0a, 0x2f, 0x55, 0x6e, 0x64, 0x65, 0x72, - 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x20, 0x2d, 0x31, 0x30, 0x30, 0x20, 0x64, 0x65, 0x66, 0x0a, - 0x2f, 0x55, 0x6e, 0x64, 0x65, 0x72, 0x6c, 0x69, 0x6e, 0x65, 0x54, - 0x68, 0x69, 0x63, 0x6b, 0x6e, 0x65, 0x73, 0x73, 0x20, 0x35, 0x30, - 0x20, 0x64, 0x65, 0x66, 0x0a, 0x65, 0x6e, 0x64, 0x20, 0x72, 0x65, - 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x64, 0x65, 0x66, 0x0a, - 0x2f, 0x46, 0x6f, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x20, 0x2f, - 0x4e, 0x69, 0x6d, 0x62, 0x75, 0x73, 0x53, 0x61, 0x6e, 0x4c, 0x2d, - 0x52, 0x65, 0x67, 0x75, 0x43, 0x6f, 0x6e, 0x64, 0x20, 0x64, 0x65, - 0x66, 0x0a, 0x2f, 0x50, 0x61, 0x69, 0x6e, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x20, 0x30, 0x20, 0x64, 0x65, 0x66, 0x0a, 0x2f, 0x57, 0x4d, - 0x6f, 0x64, 0x65, 0x20, 0x30, 0x20, 0x64, 0x65, 0x66, 0x0a, 0x2f, - 0x46, 0x6f, 0x6e, 0x74, 0x42, 0x42, 0x6f, 0x78, 0x20, 0x7b, 0x2d, - 0x31, 0x33, 0x36, 0x20, 0x2d, 0x32, 0x38, 0x32, 0x20, 0x38, 0x32, - 0x30, 0x20, 0x39, 0x35, 0x31, 0x7d, 0x20, 0x72, 0x65, 0x61, 0x64, - 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x64, 0x65, 0x66, 0x0a, 0x2f, 0x46, - 0x6f, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x20, 0x31, 0x20, 0x64, - 0x65, 0x66, 0x0a, 0x2f, 0x46, 0x6f, 0x6e, 0x74, 0x4d, 0x61, 0x74, - 0x72, 0x69, 0x78, 0x20, 0x5b, 0x30, 0x2e, 0x30, 0x30, 0x31, 0x20, - 0x30, 0x2e, 0x30, 0x20, 0x30, 0x2e, 0x30, 0x20, 0x30, 0x2e, 0x30, - 0x30, 0x31, 0x20, 0x30, 0x2e, 0x30, 0x20, 0x30, 0x2e, 0x30, 0x5d, - 0x20, 0x72, 0x65, 0x61, 0x64, 0x6f, 0x6e, 0x6c, 0x79, 0x20, 0x64, - 0x65, 0x66, 0x0a, 0x2f, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, - 0x67, 0x20, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x45, - 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x64, 0x65, 0x66, - 0x0a, 0x2f, 0x55, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x44, 0x20, - 0x35, 0x30, 0x32, 0x30, 0x39, 0x31, 0x33, 0x20, 0x64, 0x65, 0x66, - 0x0a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x64, 0x69, 0x63, - 0x74, 0x20, 0x65, 0x6e, 0x64, 0x0a, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x66, 0x69, 0x6c, 0x65, 0x20, 0x65, 0x65, 0x78, 0x65, - 0x63, 0x0d, 0x80, 0x02, 0x71, 0x86, 0x00, 0x00, 0xe9, 0x8d, 0x09, - 0xd7, 0x60, 0xa3, 0xc2, 0x2c, 0xf1, 0x19, 0xf9, 0xdc, 0x69, 0x9a, - 0x22, 0xc3, 0x5b, 0x5b, 0x35, 0xed, 0x6a, 0xa2, 0x35, 0x93, 0xc7, - 0x6d, 0x54, 0xca, 0xbb, 0x5e, 0x94, 0x2b, 0xf7, 0xd6, 0xdd, 0x84, - 0xf1, 0x66, 0x4b, 0x89, 0x69, 0x9c, 0x74, 0xb4, 0x72, 0xde, 0x9f, - 0x8e, 0x6d, 0xf9, 0x25, 0xf6, 0xc4, 0xf2, 0x04, 0xe9, 0xf1, 0xc6, - 0x39, 0xb4, 0xdb, 0xa9, 0x88, 0xed, 0x2a, 0xc4, 0x19, 0xff, 0x2b, - 0x2b, 0xde, 0x60, 0x5b, 0x8e, 0xe3, 0x26, 0x4e, 0xdd, 0x66, 0x41, - 0x2d, 0x4f, 0x21, 0xc6, 0x4a, 0xc5, 0x22, 0xbd, 0xfc, 0x7c, 0x55, - 0x02, 0xf9, 0xc3, 0xf3, 0xe5, 0x59, 0x2b, 0x3b, 0x20, 0x93, 0xd3, - 0x3c, 0x9b, 0xfa, 0xed, 0xd2, 0xd4, 0x9e, 0x89, 0xaa, 0xba, 0xa8, - 0x32, 0xe2, 0x3f, 0x06, 0x2e, 0x91, 0xa2, 0x50, 0x32, 0x51, 0x9d, - 0x18, 0x68, 0x81, 0x6e, 0x44, 0xb4, 0xe0, 0x74, 0x77, 0x95, 0x00, - 0x3d, 0x79, 0x30, 0x29, 0x9d, 0x6e, 0x1e, 0x2a, 0x5b, 0xfe, 0x0d, - 0x59, 0x5d, 0xc9, 0x7e, 0x14, 0x09, 0x89, 0xce, 0x81, 0xd8, 0xd7, - 0xf8, 0x52, 0xff, 0x9c, 0xdc, 0x7a, 0x1b, 0x1b, 0x59, 0x8c, 0x69, - 0x13, 0x1d, 0xee, 0x00, 0x5b, 0x41, 0x58, 0x05, 0xa1, 0x6d, 0x8a, - 0x12, 0x3e, 0x6f, 0x2c, 0x76, 0xad, 0xd0, 0x4b, 0x32, 0x5a, 0xf1, - 0x71, 0xa3, 0xdf, 0x24, 0x79, 0x62, 0x05, 0x93, 0xda, 0x38, 0x3f, - 0xcf, 0xe4, 0x56, 0xc9, 0x84, 0x6e, 0xb7, 0xe9, 0x29, 0x63, 0xe2, - 0xb2, 0xe8, 0xdc, 0x46, 0x91, 0x2c, 0xa8, 0x16, 0xd0, 0xbe, 0x13, - 0x2d, 0x78, 0xa5, 0x48, 0x29, 0xcc, 0xc2, 0x9b, 0xfa, 0xfb, 0x6a, - 0x63, 0xf8, 0xe5, 0x4b, 0x92, 0xb5, 0x07, 0x0f, 0xf3, 0xd8, 0x08, - 0x01, 0xdb, 0xec, 0x65, 0x8c, 0xd4, 0x56, 0xa3, 0x52, 0xef, 0xcf, - 0x47, 0xb4, 0x29, 0x38, 0xb8, 0x28, 0x9b, 0xa0, 0xd1, 0xe9, 0x68, - 0x67, 0x5a, 0x94, 0x55, 0x9c, 0x00, 0xc4, 0x42, 0x46, 0x5c, 0x93, - 0x07, 0xd6, 0x5a, 0xa1, 0xa6, 0xbe, 0x3d, 0x3b, 0x6a, 0xbc, 0xe4, - 0x37, 0x8f, 0x9d, 0xb4, 0xb1, 0xc5, 0xb1, 0xf6, 0xda, 0xfa, 0x20, - 0x63, 0x39, 0x0f, 0x53, 0xcf, 0xbf, 0x87, 0x4f, 0x0f, 0x1d, 0x8a, - 0x3b, 0xf8, 0x04, 0x46, 0x05, 0x80, 0x73, 0x83, 0x4d, 0x7c, 0x65, - 0x15, 0x15, 0xe6, 0x7d, 0xc6, 0x8d, 0x86, 0xe9, 0xfe, 0xb8, 0x5e, - 0xcf, 0x97, 0xca, 0x99, 0xc0, 0xac, 0x62, 0x2c, 0x27, 0x73, 0xcd, - 0x3d, 0x1f, 0xfd, 0x4f, 0x30, 0x02, 0x98, 0x77, 0x80, 0xaf, 0xc8, - 0x85, 0xcd, 0xbb, 0xb2, 0xb1, 0x5d, 0x2f, 0x97, 0x4d, 0x08, 0xb1, - 0x51, 0x11, 0x6f, 0x00, 0x9f, 0xab, 0xfa, 0x99, 0x40, 0x4a, 0x5e, - 0x06, 0xa7, 0x68, 0xf0, 0x32, 0x5e, 0x6b, 0x4c, 0x3b, 0xd3, 0x6c, - 0xdc, 0x48, 0x90, 0x00, 0xfd, 0x9d, 0xa3, 0x0e, 0x21, 0xb8, 0xe7, - 0x07, 0xa0, 0x9a, 0x5f, 0x6c, 0x4a, 0xa7, 0x0e, 0x01, 0x91, 0x63, - 0xda, 0xcc, 0x09, 0xfb, 0x4e, 0x15, 0x32, 0x04, 0xe0, 0xb7, 0xb4, - 0x56, 0x98, 0xbc, 0xbc, 0x6f, 0x90, 0xb0, 0xf7, 0x6a, 0x30, 0xd5, - 0xab, 0x7a, 0x96, 0xaf, 0x34, 0x70, 0xf5, 0x41, 0x0f, 0x70, 0x93, - 0x52, 0x9c, 0xef, 0x4b, 0xb8, 0x53, 0x5a, 0xdf, 0xc7, 0x88, 0x89, - 0xa1, 0xe6, 0x34, 0x8f, 0x0f, 0x4e, 0xde, 0xc3, 0xce, 0x72, 0x9c, - 0x0b, 0xb2, 0x06, 0x59, 0xaf, 0x1c, 0x65, 0x0d, 0x32, 0x0b, 0xca, - 0xa4, 0xe9, 0x06, 0x56, 0x52, 0x81, 0x10, 0x22, 0x58, 0xe8, 0xc0, - 0x96, 0x46, 0x21, 0x3d, 0xca, 0xef, 0x7a, 0x79, 0x5b, 0xb5, 0xad, - 0x52, 0xee, 0xfa, 0x4a, 0xcf, 0xa7, 0xd9, 0xce, 0xc0, 0x8e, 0x76, - 0x9a, 0x2f, 0x1f, 0x0c, 0xc6, 0xec, 0x25, 0xd4, 0x22, 0xdb, 0x7e, - 0xfb, 0xa7, 0xaf, 0xd7, 0x17, 0x61, 0x44, 0xca, 0xb3, 0x23, 0x8a, - 0xfb, 0x98, 0xa6, 0xf7, 0x38, 0x9d, 0xf3, 0xe7, 0x35, 0x87, 0x73, - 0x27, 0xa3, 0x0e, 0x0e, 0x4a, 0x53, 0xed, 0xc6, 0x4c, 0xe5, 0x4f, - 0x00, 0x56, 0xe8, 0x61, 0xd2, 0x9d, 0x93, 0x37, 0x1b, 0x57, 0x10, - 0xa8, 0x19, 0x68, 0x7b, 0x0d, 0xe2, 0xe0, 0x5e, 0xcf, 0x30, 0x77, - 0xbf, 0x4e, 0x73, 0xb1, 0x7f, 0x8e, 0xc0, 0x15, 0x53, 0xf5, 0x17, - 0x85, 0xdb, 0x07, 0x36, 0x79, 0xea, 0x4b, 0x9f, 0xdd, 0x29, 0xd8, - 0x43, 0x32, 0x92, 0xaa, 0x30, 0xcc, 0xc5, 0xa6, 0x65, 0x9e, 0x2c, - 0xbd, 0x6d, 0x77, 0x92, 0xde, 0x21, 0x2c, 0x8e, 0xea, 0x0f, 0xa6, - 0xb4, 0xfe, 0x74, 0x9a, 0xb0, 0x9d, 0x5f, 0xfa, 0x49, 0x75, 0x24, - 0x19, 0x58, 0xc4, 0x3e, 0xd6, 0x79, 0xe4, 0x9b, 0x64, 0xcf, 0xeb, - 0x26, 0x50, 0x05, 0xbb, 0xa5, 0xc6, 0xb3, 0x96, 0xca, 0xb8, 0xe5, - 0x6c, 0x31, 0xc1, 0xa7, 0xe1, 0xb5, 0x1a, 0xeb, 0xa7, 0xae, 0x9b, - 0x6d, 0xbf, 0x00, 0x2c, 0x6e, 0x0b, 0x7c, 0xdc, 0x48, 0x5f, 0xee, - 0xf1, 0x32, 0x7e, 0x56, 0xab, 0xa5, 0x10, 0xbb, 0x29, 0x3d, 0x09, - 0x70, 0x5a, 0x04, 0x69, 0xbc, 0xd7, 0x3a, 0xa5, 0xb3, 0x08, 0x4d, - 0x80, 0x52, 0x25, 0x10, 0x31, 0x3d, 0xec, 0xaf, 0x57, 0x90, 0xc9, - 0xe7, 0x30, 0xb0, 0x3e, 0xdf, 0xde, 0x97, 0x54, 0x0c, 0x3e, 0x20, - 0x78, 0x23, 0x86, 0xf1, 0x51, 0x86, 0xd0, 0xa3, 0xbb, 0x6f, 0x66, - 0x28, 0x35, 0x84, 0xe2, 0xc0, 0xb2, 0x06, 0x54, 0x89, 0x78, 0x50, - 0x9d, 0xb2, 0x36, 0xc3, 0x2e, 0x66, 0x4e, 0xb3, 0x76, 0x6c, 0xe1, - 0xcf, 0xff, 0xb2, 0x73, 0xd8, 0xb6, 0xdb, 0xa5, 0xfc, 0xf2, 0x69, - 0x9e, 0x8a, 0xc7, 0xcc, 0x6c, 0x72, 0x77, 0x4c, 0x05, 0x60, 0x43, - 0xb8, 0x5d, 0x3b, 0xb2, 0x49, 0x82, 0xa8, 0xf7, 0x08, 0xad, 0x89, - 0x17, 0xbe, 0x02, 0x9a, 0x1e, 0x84, 0xab, 0xd1, 0x13, 0x20, 0x28, - 0x12, 0xf5, 0x68, 0x51, 0x80, 0xaf, 0xe3, 0x83, 0xc5, 0x19, 0x40, - 0xce, 0xac, 0xc3, 0xff, 0x8b, 0x0e, 0x51, 0x87, 0xd3, 0xdc, 0x3d, - 0x1b, 0xad, 0x50, 0xcd, 0xf3, 0x58, 0x71, 0xee, 0x14, 0x0e, 0xf9, - 0x76, 0x36, 0xc3, 0xf7, 0x27, 0x90, 0x4a, 0xf4, 0xca, 0x52, 0xca, - 0x26, 0xd1, 0x6b, 0xe5, 0x2f, 0xe6, 0x88, 0x8f, 0x46, 0x77, 0x90, - 0x4e, 0x38, 0xd3, 0x26, 0x8f, 0x84, 0xae, 0xed, 0x6a, 0xfb, 0x7b, - 0x01, 0x5b, 0xce, 0x4c, 0x34, 0xae, 0xf8, 0xee, 0x9b, 0x0c, 0x01, - 0x37, 0x4c, 0x52, 0xb3, 0xba, 0x49, 0x38, 0xc6, 0xe8, 0x5a, 0x88, - 0xa5, 0xa6, 0x11, 0xcb, 0xf4, 0x7c, 0xae, 0x9d, 0xf1, 0xdc, 0x35, - 0xfc, 0x64, 0x9d, 0x76, 0xc6, 0xc9, 0x9b, 0x12, 0xb4, 0xcd, 0x0e, - 0xfc, 0x69, 0xbc, 0x36, 0xef, 0xbd, 0xaf, 0x4e, 0x62, 0x12, 0x06, - 0x12, 0xba, 0xe8, 0x43, 0x38, 0xa3, 0x38, 0x52, 0x76, 0x5f, 0x26, - 0xec, 0xdf, 0xbe, 0x33, 0x2e, 0x0b, 0xae, 0xd3, 0x76, 0x32, 0xac, - 0x5b, 0x57, 0x94, 0x1e, 0xec, 0xab, 0x3b, 0x75, 0x5f, 0xc5, 0x82, - 0x20, 0xc3, 0x9d, 0xcd, 0x82, 0x84, 0xc4, 0x5b, 0x65, 0x6c, 0xf9, - 0x81, 0xef, 0x14, 0x84, 0x10, 0xd8, 0xe5, 0x0c, 0x0f, 0x97, 0x18, - 0x06, 0x25, 0xc3, 0x0a, 0x5f, 0xb8, 0x3f, 0xcb, 0xd1, 0x3a, 0x37, - 0x3d, 0x96, 0xc0, 0xcf, 0x7a, 0x57, 0x06, 0x6e, 0x5f, 0x85, 0x01, - 0x4e, 0xd7, 0x97, 0x5f, 0xd6, 0x9a, 0xfc, 0xaf, 0x65, 0x86, 0xa7, - 0x0f, 0x10, 0x61, 0x7c, 0xce, 0xc3, 0xfe, 0xa7, 0x3e, 0x34, 0x4c, - 0x26, 0x4f, 0x7f, 0x73, 0xc7, 0xc2, 0x09, 0xa5, 0x56, 0xa3, 0xfe, - 0xe9, 0xe0, 0xdd, 0xc4, 0x93, 0x17, 0x6d, 0x84, 0xf9, 0x8e, 0x6c, - 0xcc, 0x20, 0x03, 0xe4, 0x75, 0x29, 0x44, 0x06, 0x11, 0x88, 0x8d, - 0xcb, 0xd4, 0x55, 0x65, 0x56, 0x33, 0xf0, 0x29, 0x6b, 0x33, 0x26, - 0xf3, 0xfa, 0xd2, 0xbe, 0x38, 0x7f, 0x0b, 0xbf, 0xe1, 0x95, 0x7a, - 0xf0, 0xb9, 0x68, 0xda, 0x0e, 0x4a, 0x3e, 0x56, 0x29, 0x1d, 0x11, - 0xd0, 0x2f, 0x4c, 0x22, 0x84, 0x84, 0x0e, 0x6d, 0x6d, 0x6c, 0xab, - 0x0a, 0x90, 0xa6, 0x89, 0x9c, 0xa0, 0x89, 0x2b, 0xfc, 0x5c, 0xca, - 0x77, 0x5e, 0xea, 0x0d, 0x9e, 0x24, 0x94, 0x70, 0x70, 0x6a, 0x15, - 0xea, 0x93, 0xf5, 0xfa, 0x78, 0x80, 0xd3, 0xe4, 0xc2, 0x13, 0xbb, - 0xac, 0xce, 0x69, 0x77, 0x5d, 0xa6, 0xc1, 0x68, 0x7f, 0x15, 0xc4, - 0xc8, 0x69, 0x57, 0x01, 0x8d, 0x42, 0x8d, 0x98, 0xce, 0x71, 0xa3, - 0x05, 0xac, 0xfe, 0x87, 0x53, 0xac, 0x95, 0xb6, 0x5c, 0x30, 0x05, - 0x47, 0x93, 0xb8, 0x2e, 0xf4, 0x30, 0x38, 0x0d, 0x8b, 0x96, 0xe8, - 0x26, 0xba, 0x74, 0x1f, 0x3c, 0x57, 0x58, 0xff, 0x30, 0x2c, 0x10, - 0x13, 0x5c, 0x3a, 0x48, 0x1c, 0xc1, 0x2c, 0x32, 0x08, 0xb9, 0xff, - 0x93, 0x4a, 0xd3, 0x97, 0x7b, 0x3c, 0x4d, 0x61, 0xdb, 0x5e, 0xf5, - 0x1a, 0x50, 0x35, 0x09, 0x6b, 0xcd, 0x45, 0x9e, 0x57, 0x23, 0xc1, - 0x52, 0x54, 0xd4, 0x9b, 0x01, 0xca, 0x7b, 0xb5, 0xe4, 0x9b, 0x70, - 0xa7, 0x92, 0x18, 0xe8, 0xc4, 0xaa, 0xdd, 0x40, 0x77, 0x06, 0xd0, - 0x3e, 0x96, 0x79, 0x9c, 0xa8, 0x60, 0x6f, 0x48, 0x0d, 0xcd, 0x7d, - 0xe4, 0x06, 0xd3, 0xa4, 0x3b, 0xf3, 0x37, 0x8e, 0x79, 0x46, 0xd7, - 0xd7, 0xac, 0xdb, 0x28, 0xd4, 0xeb, 0x74, 0x44, 0x14, 0xbc, 0xa5, - 0x64, 0xbe, 0xaa, 0x12, 0x3e, 0x5c, 0xf7, 0xc5, 0x6d, 0xb4, 0xa4, - 0x83, 0xd8, 0x76, 0x72, 0x53, 0x30, 0xbc, 0x45, 0xfe, 0x74, 0x95, - 0x2b, 0x53, 0xa0, 0x63, 0x8f, 0x22, 0xe3, 0xfb, 0x38, 0x84, 0x6b, - 0xc6, 0xc7, 0xff, 0x68, 0xfb, 0xd0, 0x4e, 0x18, 0xa9, 0x6a, 0xb8, - 0x7b, 0x21, 0x86, 0xb6, 0xab, 0xdd, 0x86, 0xc9, 0x8f, 0x9c, 0xd0, - 0x10, 0x14, 0x42, 0xc9, 0xa9, 0x00, 0xf2, 0x21, 0x1a, 0xda, 0xdf, - 0x11, 0x35, 0xce, 0x36, 0xc7, 0xe2, 0x02, 0x8a, 0x6d, 0xa8, 0x69, - 0xdd, 0xe0, 0x46, 0xb8, 0xe8, 0x74, 0x8a, 0x42, 0xaf, 0xc2, 0x1a, - 0x4c, 0xcf, 0x87, 0x49, 0x60, 0x82, 0x48, 0xe9, 0x64, 0xfc, 0xa1, - 0x92, 0x09, 0x10, 0xb0, 0xa7, 0xa1, 0x54, 0xd9, 0x57, 0x7e, 0xb6, - 0x27, 0xa2, 0xe3, 0x7e, 0x21, 0x2d, 0x4a, 0x16, 0x11, 0xca, 0xa7, - 0x87, 0xec, 0x82, 0xd8, 0xd2, 0xce, 0xb7, 0x7c, 0xea, 0x11, 0x5c, - 0xe3, 0xa6, 0xcf, 0x8a, 0xe7, 0x23, 0x99, 0x56, 0xa2, 0xf3, 0x85, - 0xa8, 0x4b, 0xb6, 0x4b, 0x27, 0x28, 0x27, 0xb0, 0xcf, 0xa3, 0x84, - 0x78, 0xb7, 0x48, 0x5b, 0xe9, 0xc8, 0x6a, 0x19, 0xac, 0xd4, 0x28, - 0xa2, 0x62, 0xae, 0x0e, 0x74, 0x4a, 0xe5, 0xd6, 0x7b, 0x3b, 0xff, - 0xa3, 0xb9, 0xb6, 0x43, 0xf2, 0x50, 0x96, 0x5c, 0x97, 0xb7, 0x28, - 0x84, 0xb5, 0x19, 0xa4, 0x5a, 0x6a, 0xe6, 0xa2, 0x10, 0xd1, 0x41, - 0xf1, 0x4c, 0x95, 0xe9, 0x4e, 0x62, 0xe8, 0x27, 0x4d, 0x0b, 0x1c, - 0x69, 0x88, 0xf9, 0x63, 0xbb, 0x0d, 0x75, 0x31, 0x5b, 0xe4, 0x6c, - 0xfc, 0x8d, 0x7d, 0x71, 0xd7, 0x3f, 0x8f, 0x59, 0xef, 0xc0, 0xdc, - 0x03, 0xcd, 0x92, 0x93, 0xa5, 0xdd, 0x58, 0x1a, 0x34, 0x88, 0x65, - 0xa4, 0xf0, 0xdf, 0x69, 0x98, 0x1e, 0x94, 0x92, 0xde, 0x50, 0xea, - 0xcb, 0x42, 0xa5, 0x46, 0x9d, 0x30, 0x2b, 0x99, 0xae, 0xab, 0x30, - 0x4f, 0xc4, 0xd0, 0x14, 0x0a, 0xe1, 0x7d, 0xe9, 0x62, 0x63, 0xa6, - 0x38, 0x79, 0x68, 0x0b, 0xd9, 0x2b, 0x43, 0x5d, 0xeb, 0x3c, 0x8c, - 0x4f, 0xca, 0xe5, 0x28, 0xe0, 0x4c, 0x35, 0xe0, 0xb3, 0x0f, 0xcd, - 0xe4, 0x1c, 0xe1, 0x06, 0xce, 0x7a, 0x22, 0xff, 0x0b, 0xf5, 0xd3, - 0xd1, 0x2d, 0x9b, 0x8b, 0xba, 0xd5, 0x04, 0xad, 0x15, 0x5d, 0x3b, - 0x19, 0xed, 0x31, 0x0a, 0xd8, 0xa0, 0x3e, 0x74, 0xdc, 0xc4, 0xff, - 0x29, 0xff, 0x94, 0x7f, 0xe9, 0xbb, 0x99, 0x8e, 0x65, 0x28, 0xaa, - 0xc0, 0x2f, 0x1d, 0x70, 0x26, 0x51, 0xaf, 0x32, 0x5f, 0x21, 0x95, - 0x4f, 0xd0, 0x6c, 0x6c, 0x2e, 0x8f, 0x53, 0xbf, 0xd7, 0xef, 0x3a, - 0x5d, 0x9d, 0x7f, 0x43, 0xcc, 0x5f, 0xd8, 0x6d, 0x1f, 0xaf, 0x8b, - 0x78, 0xc8, 0xdf, 0x66, 0x25, 0xfc, 0x2e, 0x3a, 0xf3, 0x4f, 0xf5, - 0x8f, 0xcc, 0xad, 0x40, 0x8f, 0xcf, 0x4e, 0x1d, 0x90, 0xfa, 0x68, - 0x90, 0xa6, 0x20, 0xdd, 0x86, 0x3b, 0x27, 0x26, 0x6b, 0x4f, 0x63, - 0xc4, 0x03, 0x5b, 0x98, 0x55, 0x2c, 0xa0, 0x73, 0xad, 0xdd, 0x3e, - 0x64, 0x33, 0x4b, 0xcb, 0x40, 0x12, 0x96, 0xd4, 0xe1, 0xc0, 0xaa, - 0xea, 0xcb, 0xeb, 0x98, 0x04, 0x1b, 0x19, 0x7f, 0xac, 0x84, 0x67, - 0x74, 0xfd, 0xe2, 0x0a, 0x1e, 0x41, 0xc8, 0xc9, 0x40, 0x23, 0x96, - 0x32, 0x19, 0x15, 0x39, 0xa3, 0x30, 0x54, 0x4b, 0x8d, 0x1a, 0x63, - 0x28, 0x6b, 0x2f, 0x15, 0xf0, 0x23, 0x5a, 0xf8, 0x94, 0x88, 0x32, - 0x41, 0x7d, 0x74, 0xe4, 0xd4, 0x18, 0x31, 0x27, 0x92, 0xc4, 0xc0, - 0x11, 0x46, 0x4f, 0xce, 0xbf, 0x55, 0xeb, 0x34, 0x6f, 0x51, 0xc5, - 0x15, 0x3d, 0x72, 0xb4, 0x19, 0x53, 0x60, 0x5c, 0x0a, 0x0b, 0x7b, - 0x6b, 0x52, 0x63, 0xcc, 0xcb, 0x83, 0xab, 0x64, 0x11, 0x1b, 0xe3, - 0xc1, 0xb6, 0xd3, 0xda, 0x1c, 0x8c, 0xc2, 0x24, 0xe7, 0xe0, 0xff, - 0x26, 0x6f, 0x35, 0xe7, 0x4c, 0x00, 0xcc, 0x48, 0x31, 0x2d, 0xae, - 0x25, 0x9b, 0x08, 0x4f, 0xc4, 0xcb, 0xf4, 0x40, 0x2a, 0xc6, 0x04, - 0xd0, 0xe1, 0x87, 0x44, 0xe9, 0xe5, 0x6f, 0x2d, 0x7e, 0xed, 0x55, - 0x3e, 0x8b, 0xc4, 0x24, 0x98, 0xeb, 0x45, 0x02, 0xa6, 0x14, 0x35, - 0x7b, 0x84, 0x3f, 0x05, 0x8a, 0xae, 0x3e, 0xe0, 0x89, 0x90, 0x06, - 0xd1, 0x83, 0x84, 0x3c, 0x73, 0x3c, 0x74, 0x28, 0x23, 0x31, 0xee, - 0x30, 0x2f, 0x0c, 0xbc, 0x39, 0x16, 0xfd, 0x27, 0x94, 0x19, 0x73, - 0x46, 0xb0, 0xee, 0xfb, 0x9a, 0x19, 0x69, 0x70, 0x3b, 0x37, 0xb1, - 0x6f, 0x27, 0xa4, 0x00, 0xa2, 0x9b, 0xef, 0x5b, 0x2c, 0xa0, 0xeb, - 0x1b, 0x0e, 0xbc, 0xb7, 0x43, 0xac, 0xa6, 0x07, 0xdf, 0xb7, 0xca, - 0x62, 0xea, 0xc1, 0x82, 0xb1, 0xff, 0xc5, 0x71, 0xb9, 0x96, 0x4b, - 0x73, 0xbf, 0xf3, 0x5c, 0x32, 0x00, 0x17, 0xd0, 0x8b, 0x47, 0x92, - 0x0d, 0x86, 0x41, 0x96, 0xe8, 0x9f, 0x6f, 0x91, 0x50, 0x85, 0x49, - 0xb2, 0xb1, 0x89, 0xce, 0x32, 0x19, 0xfd, 0x53, 0x82, 0x7c, 0x84, - 0x05, 0x0f, 0xac, 0x62, 0x68, 0xd0, 0xc4, 0x89, 0x5e, 0x03, 0x33, - 0xef, 0x93, 0x9e, 0xf2, 0xed, 0x50, 0x55, 0x77, 0xb8, 0x5b, 0x10, - 0xb7, 0x64, 0x45, 0x67, 0xff, 0x29, 0xa7, 0xab, 0x80, 0x94, 0xfa, - 0x7e, 0x0d, 0x03, 0x3e, 0x33, 0x72, 0x87, 0x69, 0x56, 0x24, 0x2c, - 0x3c, 0x8d, 0xa0, 0xdc, 0x9f, 0xa9, 0xba, 0xd3, 0x0b, 0x23, 0xc5, - 0x44, 0xe5, 0xc0, 0xd4, 0xbd, 0xde, 0x22, 0xcd, 0xa4, 0x91, 0x71, - 0xa4, 0xec, 0x1f, 0x2b, 0x57, 0x4b, 0x88, 0x62, 0xb8, 0x75, 0x9d, - 0x5a, 0x35, 0x5e, 0x21, 0x33, 0x1c, 0xdb, 0xdf, 0xae, 0x62, 0xf7, - 0x6c, 0x02, 0xb7, 0xf8, 0x4d, 0x5b, 0x81, 0x52, 0xb9, 0x91, 0x7a, - 0x24, 0xd5, 0x68, 0xc1, 0xca, 0x87, 0x17, 0xe9, 0x5b, 0x75, 0x97, - 0xad, 0x7c, 0x2c, 0x16, 0x92, 0x9c, 0x4a, 0x1f, 0xad, 0x61, 0x83, - 0xad, 0x1d, 0xd3, 0xab, 0x90, 0x06, 0x84, 0x7a, 0xfe, 0x8a, 0x99, - 0xcc, 0x31, 0x9d, 0x8b, 0xf4, 0xcc, 0xf3, 0xb4, 0xde, 0x10, 0x9c, - 0x3e, 0x06, 0x91, 0x5e, 0xc4, 0x49, 0x9d, 0x90, 0x75, 0x11, 0x21, - 0x26, 0xa0, 0x4f, 0x00, 0x9e, 0x95, 0xfb, 0x0e, 0x25, 0x66, 0xce, - 0xfc, 0x28, 0xe7, 0x7e, 0x72, 0x68, 0x8a, 0x81, 0xa2, 0x73, 0x1b, - 0xa0, 0x88, 0x3b, 0xe7, 0x90, 0x05, 0xfb, 0xd4, 0xdb, 0x3d, 0x23, - 0x4a, 0x76, 0x39, 0x81, 0x41, 0x3b, 0x16, 0x49, 0x2e, 0xc6, 0x28, - 0xdb, 0xe6, 0x21, 0xa0, 0x8b, 0xbf, 0x3f, 0x70, 0x99, 0x2a, 0x55, - 0x7d, 0x56, 0xa5, 0x4f, 0xd3, 0x54, 0x6f, 0xa8, 0xda, 0x01, 0xec, - 0xd4, 0xa5, 0x14, 0x62, 0x6c, 0x26, 0xf0, 0x52, 0xe2, 0x53, 0xc8, - 0xa4, 0x06, 0x8b, 0x33, 0xbf, 0x19, 0x28, 0x47, 0x30, 0xba, 0xec, - 0x36, 0xe2, 0x56, 0x1f, 0xca, 0xb8, 0xf1, 0x1c, 0x2d, 0x1b, 0x9d, - 0x7b, 0x65, 0x76, 0x71, 0x04, 0x81, 0xce, 0xca, 0x3a, 0x8f, 0x82, - 0xc6, 0x43, 0xa6, 0x1a, 0xe3, 0x82, 0x29, 0xfb, 0xe2, 0x65, 0x2a, - 0xac, 0xa4, 0xe9, 0x4a, 0x33, 0x67, 0x17, 0x06, 0x27, 0xc9, 0x77, - 0xe3, 0xa0, 0xa4, 0x69, 0xa7, 0x8f, 0xdc, 0x06, 0x81, 0x0d, 0x5e, - 0xa8, 0xe4, 0xbb, 0xcf, 0xc2, 0x6a, 0x6d, 0xc4, 0x0a, 0xac, 0x28, - 0x58, 0x38, 0x84, 0xbd, 0x61, 0xa7, 0x04, 0xa1, 0x2c, 0x0c, 0x1a, - 0x72, 0xfa, 0x37, 0x11, 0xb3, 0xc4, 0xe1, 0x99, 0xad, 0xb3, 0x8d, - 0x44, 0xd0, 0x5b, 0x53, 0xec, 0xa4, 0xc7, 0xc8, 0x4a, 0x54, 0x81, - 0xfc, 0xd0, 0xd5, 0xe6, 0x10, 0x78, 0x5f, 0xe4, 0x0b, 0x59, 0xa1, - 0xd7, 0x3b, 0x29, 0x4f, 0xa0, 0x12, 0xc1, 0xb3, 0xed, 0xbf, 0x9b, - 0x51, 0x43, 0x36, 0xc5, 0x7e, 0xff, 0xf3, 0x5a, 0x1c, 0xd9, 0x19, - 0xd6, 0x23, 0x9d, 0x58, 0x5d, 0xa8, 0x32, 0x25, 0xa1, 0xe3, 0x3a, - 0xb1, 0xe2, 0xb7, 0x27, 0xf9, 0x02, 0x42, 0xa6, 0xee, 0xf2, 0x96, - 0x1e, 0x67, 0x9d, 0x7f, 0x6e, 0x06, 0x48, 0x84, 0x4c, 0xa2, 0xd4, - 0x40, 0xe3, 0xc3, 0xb9, 0xad, 0x9b, 0x8a, 0xb9, 0x09, 0x43, 0x0d, - 0x4c, 0xef, 0x8e, 0x68, 0x0c, 0xf9, 0x36, 0x60, 0xbd, 0xbb, 0x48, - 0x9f, 0x35, 0x00, 0x9c, 0x9c, 0x48, 0x7f, 0x3a, 0x86, 0xc5, 0xab, - 0x84, 0xdb, 0xa1, 0x49, 0xe2, 0x82, 0x1c, 0x07, 0x71, 0xcc, 0xc1, - 0x6d, 0xc2, 0x73, 0xd4, 0xa0, 0x18, 0x41, 0x7e, 0x36, 0x92, 0x5c, - 0x80, 0x2b, 0xfe, 0xf5, 0x66, 0x83, 0x4d, 0x99, 0x51, 0x8c, 0xd2, - 0x6e, 0xa7, 0x1d, 0x80, 0xb9, 0x0f, 0x95, 0xb7, 0x1c, 0xef, 0xb4, - 0x33, 0x81, 0xd4, 0x30, 0x4d, 0x34, 0xa2, 0xb0, 0xcc, 0x5e, 0x7e, - 0x81, 0xaa, 0x4b, 0xfa, 0xe2, 0xa4, 0x5a, 0x3e, 0x75, 0x2d, 0xf7, - 0x6d, 0xa9, 0x9b, 0xa1, 0xe1, 0xcc, 0x97, 0x50, 0xdb, 0xb3, 0x5a, - 0x93, 0x96, 0x62, 0x96, 0x6c, 0xa2, 0xb5, 0x3d, 0xb3, 0x1f, 0x06, - 0x59, 0xa0, 0x33, 0x8f, 0xbe, 0x5a, 0xee, 0x01, 0x29, 0x0e, 0xa0, - 0x38, 0x04, 0x2d, 0xc2, 0xd8, 0x7e, 0x2c, 0x0e, 0xd2, 0x07, 0xc1, - 0x1c, 0x8d, 0x8d, 0x99, 0xb6, 0xf3, 0xe2, 0x11, 0xe7, 0x60, 0xc8, - 0x9a, 0x6b, 0xc6, 0x50, 0x82, 0xa7, 0xdf, 0xde, 0xa5, 0x32, 0x62, - 0x9a, 0xc9, 0x78, 0xb7, 0x5b, 0xd5, 0x66, 0x10, 0x4e, 0x12, 0xab, - 0x79, 0x2e, 0x72, 0x77, 0xd5, 0x60, 0x27, 0x62, 0x98, 0x24, 0x2d, - 0xdc, 0x09, 0x24, 0x66, 0x3c, 0x65, 0xec, 0x66, 0x7c, 0x23, 0xf2, - 0x3f, 0x52, 0x7d, 0xa1, 0xd5, 0x85, 0x57, 0x12, 0x7e, 0xc1, 0x7a, - 0x72, 0x20, 0xfd, 0x0e, 0x0e, 0x33, 0x95, 0xfc, 0x7f, 0x5e, 0xb8, - 0xcb, 0x76, 0x05, 0x57, 0xea, 0x42, 0xba, 0x2d, 0x56, 0xe3, 0x35, - 0x2b, 0xd2, 0xc4, 0x7b, 0xf4, 0xff, 0xff, 0xbd, 0x11, 0x66, 0xd8, - 0xed, 0x27, 0xfa, 0x12, 0x15, 0x63, 0xb4, 0xc0, 0xc4, 0x42, 0x69, - 0xfd, 0x4e, 0x9f, 0x6f, 0x57, 0x7f, 0x85, 0xef, 0xef, 0x71, 0xa6, - 0x82, 0x29, 0x36, 0x27, 0x5a, 0xaf, 0x52, 0xf2, 0x54, 0xe8, 0x9c, - 0xf6, 0x68, 0xd0, 0xe0, 0xa1, 0xdd, 0x93, 0xe4, 0x37, 0x21, 0x10, - 0x52, 0x60, 0xcf, 0x2c, 0xda, 0xee, 0xef, 0x1b, 0x64, 0x27, 0xc9, - 0x94, 0x3e, 0x87, 0xf5, 0x1b, 0x41, 0x34, 0x4c, 0x3e, 0x4a, 0x4e, - 0x35, 0x46, 0x20, 0x37, 0x36, 0x15, 0xb0, 0xa6, 0x0c, 0x38, 0xfb, - 0x50, 0x1a, 0xe1, 0x0b, 0xe8, 0xec, 0x1a, 0x9a, 0x84, 0xa3, 0xa7, - 0x6e, 0x4b, 0x83, 0x87, 0x6b, 0xdd, 0x11, 0xa8, 0xcb, 0x27, 0x57, - 0x8d, 0x1a, 0x9c, 0x93, 0x24, 0xa3, 0xd1, 0x9a, 0x2c, 0xe9, 0xf0, - 0xde, 0xc2, 0x6c, 0x4f, 0x91, 0x38, 0x92, 0x36, 0x06, 0xc2, 0xdd, - 0x6b, 0x00, 0x69, 0xfa, 0x2e, 0x2b, 0xa9, 0x86, 0xe4, 0xa3, 0xd0, - 0xf9, 0x51, 0xa9, 0x35, 0x46, 0x31, 0x2b, 0x1d, 0x70, 0x0e, 0x13, - 0x02, 0x72, 0xe8, 0x01, 0x35, 0xb2, 0x92, 0x6b, 0x98, 0x4a, 0xe0, - 0xaa, 0x69, 0xa3, 0x36, 0x9c, 0x1e, 0x51, 0x34, 0xc2, 0x84, 0x09, - 0x2c, 0x89, 0x89, 0x25, 0xa9, 0xe3, 0x94, 0xdb, 0x10, 0xe5, 0x07, - 0xc8, 0x32, 0x4f, 0x29, 0x4f, 0xf4, 0x02, 0x19, 0x6a, 0x4c, 0x73, - 0x5a, 0xeb, 0x7a, 0x76, 0x06, 0x79, 0x82, 0xba, 0x61, 0x36, 0xb7, - 0x0f, 0x8e, 0xcd, 0x17, 0x51, 0xea, 0xda, 0xe7, 0xab, 0xff, 0x19, - 0xf1, 0xe5, 0x9d, 0x64, 0x3c, 0xd3, 0xc2, 0x3b, 0x45, 0xd5, 0xfc, - 0xc1, 0x0f, 0x14, 0xf2, 0xd5, 0xda, 0x8c, 0xf4, 0x6d, 0x5d, 0x04, - 0xbf, 0xe0, 0xe3, 0xfc, 0x5a, 0xf8, 0xe8, 0x6b, 0x2e, 0x07, 0xc4, - 0x03, 0xca, 0xbe, 0x1e, 0xb7, 0x0f, 0x31, 0xf4, 0x72, 0x16, 0x6b, - 0x21, 0x56, 0xbc, 0x9d, 0xa1, 0x94, 0xb8, 0x95, 0x5c, 0xfa, 0x91, - 0xf9, 0x7f, 0xf3, 0x0a, 0xef, 0x73, 0xab, 0x8b, 0xea, 0x72, 0x22, - 0x0b, 0x06, 0xfc, 0x97, 0xda, 0x56, 0x98, 0xd5, 0xb4, 0xbc, 0x5a, - 0xd4, 0x4f, 0x88, 0x03, 0x68, 0x7f, 0x3d, 0xac, 0xea, 0xd5, 0x9a, - 0x3d, 0x8e, 0x43, 0x8f, 0x0f, 0xbe, 0x78, 0x30, 0x4b, 0x76, 0xc5, - 0x01, 0x2d, 0xbc, 0x1f, 0xba, 0x98, 0x28, 0xf0, 0xd3, 0x4b, 0x4a, - 0x1d, 0x8a, 0x15, 0xb5, 0xb0, 0x0b, 0x58, 0x73, 0xd0, 0x4b, 0x67, - 0x2f, 0x4a, 0xe0, 0x18, 0x22, 0xa9, 0x1c, 0x8e, 0x2a, 0x6a, 0xac, - 0x44, 0x1e, 0xa3, 0x36, 0x45, 0x6c, 0xcb, 0x55, 0x8f, 0xaa, 0x22, - 0x8d, 0x1d, 0x16, 0x50, 0xe5, 0x6b, 0xa8, 0x8d, 0x8f, 0xeb, 0x5a, - 0xdb, 0x05, 0x32, 0x0a, 0xed, 0xad, 0x39, 0xac, 0xfe, 0xce, 0xf5, - 0xa9, 0x07, 0x42, 0xbb, 0xcb, 0xf5, 0xfc, 0xd6, 0xc2, 0xe3, 0x8e, - 0xf7, 0xd7, 0xc0, 0x21, 0x69, 0xe5, 0x91, 0x4f, 0xe1, 0xdf, 0x55, - 0xa3, 0x20, 0xea, 0x3e, 0xa8, 0x65, 0x04, 0x2f, 0x5c, 0xe0, 0x27, - 0x85, 0x66, 0x79, 0x21, 0xae, 0x6d, 0x16, 0x17, 0xf8, 0x13, 0xa2, - 0x08, 0xdd, 0xc6, 0x90, 0x25, 0x6d, 0x20, 0x85, 0xb4, 0x7f, 0x61, - 0x55, 0x3b, 0xaf, 0x71, 0xc8, 0xed, 0x83, 0xa3, 0x15, 0x5e, 0xdd, - 0xf6, 0x24, 0xaa, 0x55, 0x1a, 0xa6, 0x38, 0x40, 0x8f, 0x61, 0x5a, - 0xc9, 0xcf, 0x77, 0xf9, 0xbe, 0x66, 0x91, 0xb7, 0x9c, 0xe6, 0x93, - 0xea, 0xf1, 0x25, 0x72, 0x68, 0x48, 0x0d, 0xcd, 0x7d, 0xe4, 0x06, - 0xd3, 0xa4, 0x44, 0x9c, 0xc5, 0x2b, 0x20, 0x40, 0x23, 0x44, 0x3a, - 0x9d, 0xdf, 0x71, 0x2e, 0xba, 0x9a, 0x6f, 0x1e, 0xcb, 0x30, 0x1e, - 0x43, 0xf2, 0x9b, 0x60, 0x0c, 0x85, 0x2f, 0x7d, 0xb5, 0x55, 0x2d, - 0x02, 0x52, 0xf9, 0x8a, 0x02, 0x91, 0xb5, 0x92, 0x95, 0xf8, 0x3e, - 0x95, 0x84, 0xef, 0x01, 0x02, 0x57, 0xd9, 0xc9, 0xbe, 0xb3, 0x36, - 0x54, 0x9d, 0x88, 0xb0, 0x96, 0x95, 0x1a, 0x91, 0xd5, 0x22, 0xaa, - 0xb0, 0x4f, 0x5f, 0x1c, 0xf2, 0x5a, 0xad, 0x1b, 0x52, 0x12, 0x86, - 0x7b, 0xe2, 0xfa, 0xd1, 0xa3, 0x83, 0x8e, 0xaa, 0x47, 0x39, 0x36, - 0xb1, 0x75, 0x4d, 0xa9, 0xbb, 0xe1, 0xad, 0xa0, 0x5d, 0x89, 0xfa, - 0xb1, 0xb4, 0x9e, 0x59, 0x46, 0xfe, 0x99, 0xf0, 0x8d, 0xc0, 0x9f, - 0xf7, 0x4e, 0x16, 0x46, 0x35, 0xf2, 0x3c, 0xe9, 0x96, 0xf0, 0x67, - 0xef, 0xb2, 0xff, 0x9a, 0xdd, 0xbc, 0x57, 0xde, 0xd8, 0xbc, 0x38, - 0x12, 0x36, 0xc4, 0x7e, 0x45, 0xc2, 0x87, 0x75, 0x1a, 0xbe, 0x5e, - 0x60, 0x6c, 0x07, 0x9d, 0x70, 0x69, 0x1d, 0xd9, 0x68, 0x3b, 0x71, - 0x76, 0x31, 0x69, 0xff, 0x56, 0xc2, 0x3a, 0x74, 0x53, 0xd9, 0x32, - 0xae, 0x04, 0xba, 0x8c, 0x19, 0xc5, 0x08, 0x22, 0xae, 0x41, 0x94, - 0xf9, 0x20, 0x98, 0x6c, 0x6c, 0x0f, 0x4b, 0x45, 0x29, 0xaf, 0x40, - 0x0f, 0xe7, 0x79, 0xdb, 0xea, 0x3b, 0x40, 0x9a, 0xd2, 0x06, 0x86, - 0x41, 0x8e, 0xfb, 0xcd, 0x8b, 0x54, 0x7e, 0xcf, 0x89, 0x55, 0x40, - 0xec, 0xd1, 0x84, 0x77, 0x5c, 0xd1, 0x7f, 0xd2, 0x08, 0x4f, 0xea, - 0x43, 0x87, 0xc2, 0x8b, 0x06, 0x84, 0x7d, 0x5e, 0x19, 0x51, 0xd9, - 0xe6, 0x85, 0x46, 0xd7, 0xa3, 0xdf, 0x9e, 0x24, 0x00, 0x6a, 0x4f, - 0xcb, 0x9f, 0xd8, 0x4f, 0x76, 0xb8, 0xc3, 0xe9, 0xa6, 0xcc, 0x52, - 0x0f, 0xf3, 0xc4, 0x5b, 0xaa, 0xe4, 0x36, 0x1e, 0x29, 0xc3, 0x20, - 0xcf, 0x15, 0x64, 0x95, 0x17, 0x49, 0x37, 0x4d, 0xfa, 0x07, 0x49, - 0x96, 0x45, 0x6c, 0x14, 0xa3, 0xeb, 0x97, 0x62, 0x17, 0xf2, 0x99, - 0xa2, 0x00, 0x35, 0x75, 0xab, 0x90, 0x6c, 0x33, 0x6a, 0x7c, 0xe1, - 0x55, 0x96, 0x4a, 0x98, 0xb9, 0xde, 0x49, 0x76, 0xd3, 0xc6, 0x5b, - 0xe6, 0xff, 0x58, 0xfc, 0xfc, 0x0e, 0xc8, 0x83, 0x9c, 0xd9, 0x93, - 0x9c, 0x6b, 0x4f, 0x83, 0xd4, 0x68, 0xce, 0xb6, 0x71, 0xfe, 0x5a, - 0x9d, 0x69, 0xee, 0xde, 0x25, 0xa0, 0xc5, 0x8c, 0x9b, 0x30, 0x5b, - 0x18, 0x46, 0xbb, 0x86, 0xd3, 0x3c, 0xd6, 0x6d, 0x06, 0x9c, 0x44, - 0x0b, 0x40, 0x61, 0x1f, 0x3d, 0xb8, 0x08, 0x65, 0x33, 0x05, 0x56, - 0xe9, 0xe7, 0x58, 0x2f, 0xa3, 0x8f, 0x7f, 0x38, 0x8e, 0x84, 0x8d, - 0x9c, 0xd1, 0xde, 0xa3, 0xcf, 0x75, 0x12, 0x0e, 0x14, 0x3a, 0xa4, - 0xbc, 0x88, 0x22, 0xf5, 0xaf, 0xc9, 0x38, 0x49, 0x4e, 0x09, 0x92, - 0xcf, 0x23, 0xf6, 0x17, 0xd4, 0x0d, 0xa3, 0x8d, 0x3c, 0xa8, 0xc9, - 0x27, 0xa8, 0x83, 0xb7, 0x7d, 0xad, 0xc3, 0xa9, 0x0f, 0x91, 0xf3, - 0x56, 0x61, 0x58, 0x10, 0x1b, 0x23, 0x91, 0x8e, 0xf9, 0x3c, 0xe8, - 0xc1, 0xe4, 0x0a, 0x37, 0x7c, 0x47, 0x3d, 0x6d, 0xc5, 0x61, 0xe6, - 0x6e, 0x95, 0xdd, 0x1a, 0xa7, 0x1e, 0x80, 0x83, 0x42, 0x92, 0x21, - 0xf5, 0xd5, 0x00, 0x0c, 0x1e, 0x37, 0x2d, 0xe3, 0x9f, 0xf5, 0xc9, - 0x97, 0x7d, 0x82, 0x0e, 0x70, 0xcf, 0xbd, 0x83, 0x8b, 0x94, 0x22, - 0x83, 0x52, 0x05, 0xf5, 0xfe, 0x1b, 0xa3, 0x24, 0xd2, 0x53, 0xec, - 0x52, 0x08, 0xe6, 0x89, 0x51, 0xde, 0xf8, 0x85, 0xb5, 0x9e, 0x01, - 0x83, 0x87, 0x5c, 0x61, 0x58, 0x08, 0xf6, 0x0c, 0x7e, 0x49, 0x66, - 0xb4, 0xfa, 0xeb, 0xf4, 0xd9, 0xf5, 0x9a, 0xa5, 0xdb, 0xfe, 0x87, - 0x56, 0x8e, 0x40, 0xb0, 0x72, 0xa8, 0xe2, 0x49, 0x3d, 0x8b, 0x65, - 0x2a, 0x04, 0xf0, 0x6f, 0x1a, 0xce, 0x9c, 0x2b, 0x85, 0x68, 0xcb, - 0x7f, 0x2b, 0x49, 0xaf, 0x32, 0x77, 0x32, 0xe6, 0x55, 0xd4, 0x1f, - 0xc4, 0xb4, 0x1f, 0xa9, 0xcb, 0xb8, 0x95, 0xbd, 0x60, 0xf7, 0xd3, - 0xec, 0xa6, 0x0c, 0x08, 0x78, 0xb2, 0x71, 0x93, 0x47, 0x6d, 0xa2, - 0x21, 0xb9, 0xa0, 0x2f, 0xe3, 0xc0, 0xea, 0x21, 0x12, 0x5f, 0x40, - 0x93, 0xbe, 0xf5, 0xcf, 0xd0, 0x93, 0xf6, 0xdd, 0x30, 0xf1, 0xf1, - 0xd2, 0x03, 0x07, 0x38, 0x0c, 0xd8, 0x6d, 0x0f, 0xae, 0x5b, 0x3a, - 0x06, 0x49, 0xbb, 0x26, 0x6c, 0x0a, 0xeb, 0xaf, 0xb0, 0x27, 0x89, - 0xd2, 0x63, 0x73, 0xda, 0xba, 0xdf, 0xcc, 0xf2, 0xbb, 0xe2, 0x89, - 0x27, 0xfc, 0x98, 0xb3, 0xbf, 0x62, 0x25, 0xee, 0x01, 0xff, 0x9c, - 0xfa, 0xc9, 0x2b, 0x4c, 0x43, 0xda, 0x45, 0x5f, 0x66, 0x1c, 0x13, - 0xf2, 0x58, 0x34, 0x3e, 0xc1, 0x8c, 0xf8, 0x53, 0x67, 0x36, 0xf4, - 0xa7, 0x9d, 0xaa, 0xc5, 0xfd, 0xb8, 0x93, 0xf9, 0xd9, 0x27, 0x61, - 0xa5, 0x39, 0x6b, 0x67, 0xe8, 0x2a, 0xad, 0x74, 0xfe, 0x46, 0xa0, - 0xdc, 0xe6, 0x7c, 0x5a, 0xc0, 0xfc, 0x00, 0xcf, 0x3e, 0x00, 0xba, - 0xc7, 0xf2, 0xdb, 0xb4, 0x8e, 0x42, 0x4a, 0x0b, 0xe2, 0xba, 0xd2, - 0x1d, 0x5e, 0x27, 0x30, 0x6c, 0xf7, 0x87, 0x7e, 0xb7, 0xdd, 0x23, - 0xdc, 0xa2, 0x19, 0x57, 0x42, 0xd5, 0xae, 0xe9, 0x02, 0x2a, 0x24, - 0xf8, 0x4f, 0x3b, 0x69, 0x90, 0x7b, 0xcd, 0xaf, 0x29, 0x53, 0xe0, - 0x98, 0xe0, 0x25, 0xa1, 0x61, 0x89, 0x22, 0xfb, 0xc0, 0xc8, 0x69, - 0x80, 0x8c, 0x4d, 0x7f, 0xd2, 0xf5, 0xed, 0xea, 0x14, 0xb7, 0xf6, - 0x06, 0x00, 0x98, 0x3a, 0xb0, 0xa2, 0xfb, 0xaf, 0xe2, 0x29, 0x0e, - 0x8a, 0xa0, 0xb0, 0xa7, 0x33, 0xa2, 0xc7, 0xbc, 0x1d, 0xfb, 0xa8, - 0x81, 0x61, 0x1d, 0x0b, 0x58, 0xa1, 0x52, 0x0d, 0xdc, 0x0e, 0x29, - 0x44, 0xa9, 0xc5, 0xfd, 0xc5, 0xf8, 0x84, 0x42, 0xb3, 0xb1, 0x2a, - 0x01, 0x7b, 0x1a, 0x07, 0xde, 0x35, 0x61, 0x8e, 0x45, 0xbd, 0x79, - 0x7b, 0x7c, 0x3c, 0x74, 0x55, 0xe1, 0x2d, 0x8a, 0x89, 0xad, 0xeb, - 0x14, 0xc9, 0xf4, 0x88, 0xcb, 0xde, 0x81, 0xf0, 0x1e, 0x0c, 0xbb, - 0x7e, 0xbe, 0xbf, 0x06, 0xe4, 0xc9, 0x64, 0xd8, 0x5b, 0x43, 0x80, - 0x1f, 0x8b, 0xe0, 0x38, 0x20, 0xa1, 0xa7, 0xce, 0x46, 0x7a, 0x1a, - 0xe7, 0x27, 0x91, 0xaf, 0xa1, 0xdf, 0xf4, 0xb2, 0xa1, 0x32, 0x49, - 0xf1, 0x4b, 0xed, 0x32, 0xed, 0x24, 0x63, 0x0b, 0xa4, 0x36, 0xcc, - 0xa2, 0xad, 0x3b, 0xcd, 0x08, 0x18, 0x7e, 0x96, 0x41, 0x18, 0x8c, - 0x75, 0x98, 0xdf, 0xac, 0x59, 0x5e, 0x9a, 0x2a, 0xcb, 0x8f, 0xd9, - 0x87, 0x63, 0x0f, 0x1d, 0x44, 0x14, 0xac, 0xd7, 0x0d, 0x7e, 0xed, - 0x1f, 0x1c, 0x2f, 0xf2, 0xf5, 0xc2, 0xa1, 0x1b, 0x31, 0x7d, 0x1b, - 0x8b, 0x01, 0xea, 0x03, 0x93, 0x3f, 0x8a, 0xb8, 0x07, 0x72, 0x54, - 0xad, 0xb3, 0xbf, 0x69, 0x4c, 0x6c, 0x59, 0xc1, 0x6d, 0x89, 0x48, - 0x65, 0x9e, 0xd4, 0x25, 0xfc, 0xeb, 0xf7, 0xe5, 0x1c, 0x6e, 0xfb, - 0x0b, 0xfd, 0x90, 0xd4, 0x76, 0x6b, 0x27, 0xc3, 0xd9, 0x4b, 0x4b, - 0x9a, 0x19, 0x53, 0xc0, 0xf0, 0xdf, 0xdf, 0x48, 0x0c, 0xe6, 0xd5, - 0xb5, 0xc1, 0x37, 0x88, 0x0b, 0x43, 0x2f, 0xcd, 0x46, 0xa4, 0x77, - 0x64, 0x35, 0x8d, 0x7a, 0xd2, 0x27, 0x24, 0xb7, 0xa2, 0xae, 0xd3, - 0xa0, 0x91, 0x12, 0xbc, 0x30, 0xf5, 0xfe, 0x30, 0xc2, 0x00, 0x52, - 0xcd, 0xb8, 0x38, 0xb2, 0xa5, 0x72, 0xca, 0x35, 0xe6, 0x29, 0x25, - 0xcc, 0x12, 0xf6, 0xbb, 0xea, 0x0d, 0xd4, 0x67, 0xd1, 0x35, 0x53, - 0x22, 0x32, 0xfe, 0x5f, 0x49, 0x34, 0xdb, 0x4b, 0xfb, 0x13, 0x14, - 0x0f, 0x77, 0x2a, 0x78, 0x1c, 0xcf, 0x5f, 0x3e, 0x1b, 0x7a, 0x61, - 0xd0, 0x0c, 0x41, 0x14, 0xf3, 0x76, 0x41, 0x54, 0xd7, 0x60, 0xca, - 0x4d, 0x00, 0x2d, 0x08, 0xc8, 0x54, 0x43, 0xd3, 0x4f, 0x23, 0x8d, - 0x3c, 0xa7, 0x0d, 0x19, 0x55, 0x1a, 0x8b, 0x29, 0xcc, 0xfe, 0x98, - 0x9e, 0x47, 0x3d, 0xfc, 0x22, 0xd4, 0xe3, 0xd4, 0xfa, 0xb8, 0xcf, - 0x81, 0x4c, 0xc9, 0xa1, 0x9a, 0x06, 0xae, 0x4f, 0x4e, 0x8d, 0x07, - 0x06, 0x53, 0x3a, 0xe6, 0xc9, 0xa7, 0x3e, 0x81, 0xe0, 0xdf, 0x2b, - 0xb0, 0xc8, 0xfe, 0x22, 0xcc, 0x93, 0x6f, 0xa2, 0xde, 0xc4, 0x4d, - 0x0f, 0x00, 0x90, 0xe4, 0x01, 0x87, 0xea, 0x77, 0x5c, 0xc2, 0x90, - 0xee, 0x65, 0x85, 0x96, 0xff, 0xf2, 0xfe, 0x5d, 0x5d, 0xd1, 0xc3, - 0xe4, 0x39, 0x54, 0xf9, 0xdb, 0xc6, 0x5b, 0xe8, 0x01, 0x50, 0x45, - 0x24, 0xcd, 0xc4, 0xdf, 0xd9, 0x12, 0x51, 0x64, 0x33, 0xf1, 0xf2, - 0x26, 0x13, 0x74, 0x40, 0x90, 0x95, 0x66, 0x39, 0x85, 0xcb, 0xeb, - 0x26, 0xad, 0x63, 0x05, 0xa2, 0xf2, 0x19, 0xf8, 0x74, 0x12, 0xd2, - 0xed, 0x67, 0x89, 0xbe, 0x6c, 0xe5, 0x58, 0xbc, 0xea, 0xb2, 0xef, - 0x68, 0x26, 0x56, 0x65, 0x98, 0xdc, 0x89, 0x20, 0x94, 0x91, 0x86, - 0x62, 0x99, 0xad, 0x2f, 0x00, 0xde, 0x6e, 0x9e, 0xce, 0x75, 0xe7, - 0x98, 0x1c, 0x6b, 0xfe, 0x69, 0x78, 0x3b, 0xdb, 0x0b, 0x97, 0x25, - 0x1c, 0x58, 0xc2, 0xdf, 0x3a, 0x17, 0x3c, 0x97, 0xa9, 0x8d, 0xf6, - 0xe3, 0xe9, 0xbe, 0xcd, 0x2a, 0x39, 0x70, 0xa8, 0xbc, 0xaa, 0x09, - 0xc0, 0xdb, 0x23, 0xbc, 0x7d, 0xa4, 0x41, 0xed, 0x1b, 0x5d, 0x45, - 0x70, 0x31, 0x19, 0x1e, 0xc7, 0x7b, 0xb1, 0xd2, 0xb1, 0xa5, 0x74, - 0xc0, 0x4f, 0x00, 0x0b, 0x74, 0xc8, 0xf1, 0xbb, 0xdb, 0x0d, 0xe9, - 0xac, 0x98, 0xd5, 0x87, 0x8c, 0x4e, 0x45, 0xbb, 0xb5, 0xa6, 0x47, - 0xe6, 0xb8, 0xdc, 0xe6, 0x51, 0x11, 0x8d, 0x4f, 0x24, 0x36, 0x5f, - 0xb5, 0x7e, 0x53, 0xe2, 0xf3, 0x6e, 0xa0, 0x06, 0xe1, 0xe6, 0x0b, - 0x8d, 0x76, 0x16, 0xa0, 0x62, 0xe0, 0x86, 0xaf, 0x7a, 0x5c, 0xb0, - 0x51, 0xd5, 0xc7, 0x27, 0xc7, 0x2c, 0xec, 0x3a, 0xab, 0x2d, 0x6c, - 0x3c, 0x35, 0x48, 0x77, 0xec, 0x10, 0x8d, 0x7f, 0x4d, 0xf2, 0x20, - 0xce, 0x02, 0x82, 0xa4, 0xcd, 0x40, 0xc3, 0xb8, 0xda, 0xcb, 0xe8, - 0xbe, 0x59, 0x2e, 0x1f, 0xc3, 0x06, 0x89, 0x9a, 0xf4, 0x1c, 0x7e, - 0x65, 0x12, 0xf2, 0x75, 0xd2, 0x4d, 0x08, 0x9e, 0xef, 0x4f, 0xe1, - 0x46, 0x2f, 0x5e, 0x5e, 0xd5, 0xc4, 0x5a, 0xff, 0x2a, 0x3a, 0xdd, - 0xb1, 0x11, 0x79, 0x07, 0x1b, 0x0f, 0x5d, 0x11, 0x53, 0x17, 0xe9, - 0x23, 0x81, 0x63, 0x71, 0x32, 0x90, 0xd9, 0xba, 0x50, 0xd2, 0x09, - 0xe9, 0x5d, 0xdb, 0x23, 0x2f, 0xaf, 0xe2, 0x84, 0xbd, 0x3e, 0x60, - 0x99, 0xb3, 0x05, 0xf4, 0x6a, 0xd1, 0x71, 0x0f, 0xe1, 0x87, 0x28, - 0x4c, 0x2f, 0x64, 0xde, 0x93, 0x10, 0xb5, 0x54, 0xab, 0xed, 0x5b, - 0xd3, 0x5e, 0xdc, 0x8c, 0x3a, 0x9a, 0xc4, 0xaf, 0x84, 0xe8, 0x42, - 0x2c, 0x22, 0x0c, 0x7e, 0x52, 0x58, 0x51, 0xd1, 0xb2, 0xef, 0x26, - 0xf8, 0x36, 0xdf, 0x73, 0xb0, 0x31, 0xe5, 0x97, 0xfa, 0xc9, 0x0d, - 0x2c, 0xb7, 0xf2, 0x0a, 0x7d, 0x1e, 0xfe, 0x25, 0x90, 0xfe, 0x31, - 0x2f, 0xf2, 0x6e, 0x97, 0x96, 0x21, 0xe1, 0xb4, 0x11, 0xf8, 0xb0, - 0x28, 0x39, 0xff, 0xf2, 0xc6, 0x3c, 0x0b, 0x75, 0x4a, 0xa7, 0x55, - 0xb2, 0x53, 0x32, 0xc4, 0xf2, 0xaf, 0xc4, 0xcf, 0xc0, 0x30, 0xe9, - 0x79, 0x1f, 0x4a, 0xf7, 0x77, 0x6d, 0xf7, 0x25, 0xbc, 0xa1, 0x2a, - 0x97, 0x3f, 0x02, 0xec, 0x98, 0xfc, 0x9b, 0x83, 0xc9, 0xad, 0x60, - 0xe4, 0x57, 0x0f, 0xdf, 0x98, 0x2b, 0x14, 0x7d, 0x22, 0x9a, 0x40, - 0x76, 0xbb, 0xaf, 0x30, 0xb3, 0x6b, 0x22, 0x48, 0x2c, 0xf9, 0x6f, - 0x86, 0x74, 0x5f, 0xa4, 0xb9, 0x1c, 0xe3, 0xc8, 0xec, 0x8a, 0xf5, - 0x5d, 0x58, 0x1f, 0x5f, 0x61, 0xb2, 0x99, 0x55, 0xf1, 0x18, 0x59, - 0x01, 0xa6, 0xfb, 0x55, 0x11, 0xb1, 0xdb, 0x54, 0xc6, 0xff, 0xf9, - 0xda, 0x1e, 0xb9, 0xd2, 0xaf, 0xef, 0x58, 0x66, 0x48, 0x63, 0x19, - 0xe5, 0xaf, 0xc8, 0xed, 0x80, 0x94, 0xbe, 0x2c, 0xdc, 0x44, 0xea, - 0x04, 0x64, 0x94, 0x56, 0xf2, 0x82, 0xef, 0x53, 0x95, 0x89, 0x86, - 0xf3, 0x24, 0xbc, 0x66, 0xbc, 0x47, 0x7f, 0xc0, 0x80, 0x2a, 0x1e, - 0x95, 0x22, 0x40, 0x76, 0x17, 0xf5, 0x3a, 0x74, 0xe2, 0xd3, 0xc6, - 0xba, 0x46, 0xd8, 0xa4, 0x7c, 0x42, 0x20, 0x2d, 0xce, 0x9a, 0xb3, - 0x64, 0x9c, 0xf1, 0xac, 0x50, 0xaa, 0x81, 0xfa, 0x29, 0xef, 0xe2, - 0x41, 0x81, 0xdc, 0x36, 0xc9, 0xc9, 0x99, 0x78, 0x35, 0xff, 0x4e, - 0xb2, 0x59, 0xa7, 0xb1, 0x9d, 0xc0, 0x91, 0xd0, 0x88, 0x34, 0x09, - 0x16, 0xf1, 0xe3, 0x8c, 0x42, 0x63, 0x78, 0x05, 0x0d, 0xbe, 0x72, - 0xf1, 0x62, 0x73, 0x85, 0xab, 0xa8, 0xa9, 0xa1, 0x44, 0x7f, 0x8c, - 0xc8, 0x8b, 0xd9, 0x8a, 0xf4, 0xda, 0x85, 0x26, 0x19, 0x2e, 0xdf, - 0xdf, 0xc2, 0x77, 0x8f, 0x1d, 0x8e, 0x62, 0x2d, 0xe7, 0xc4, 0xb1, - 0xbe, 0x16, 0xac, 0x61, 0x78, 0xa1, 0x35, 0x8a, 0xc7, 0xea, 0x84, - 0x8b, 0x10, 0xe4, 0xf4, 0x79, 0x08, 0x04, 0x0b, 0x90, 0x20, 0x27, - 0xaf, 0xb5, 0xda, 0x0d, 0x04, 0xdc, 0xb7, 0x1b, 0x07, 0x96, 0xba, - 0x17, 0x99, 0xd3, 0x5f, 0x8a, 0xb2, 0x40, 0x80, 0x34, 0x39, 0x52, - 0xf3, 0xf1, 0x8b, 0x17, 0xf2, 0x41, 0xf3, 0x42, 0xf5, 0x5f, 0x61, - 0xcc, 0x54, 0xea, 0xb1, 0x8a, 0x0e, 0xcb, 0x0b, 0x8a, 0x9e, 0xdf, - 0x38, 0x96, 0x27, 0xff, 0x4b, 0xc3, 0xd6, 0x66, 0x38, 0x62, 0x6a, - 0xbc, 0x69, 0xa0, 0x90, 0x87, 0x0f, 0xa1, 0xca, 0x88, 0x0d, 0x9d, - 0x11, 0x42, 0x3d, 0x33, 0x9c, 0xe4, 0xb4, 0x64, 0x80, 0x49, 0x56, - 0x9d, 0x03, 0x4b, 0x6d, 0xae, 0x75, 0x56, 0xe3, 0x38, 0x05, 0x88, - 0x5b, 0xca, 0x6e, 0xa1, 0x99, 0x33, 0x86, 0x9d, 0xaf, 0x19, 0xe4, - 0x3d, 0xea, 0x5f, 0xb0, 0x4e, 0x1b, 0x46, 0xf9, 0x58, 0x8a, 0xed, - 0xa1, 0x74, 0xca, 0x00, 0x1b, 0x31, 0x21, 0x36, 0x7b, 0x30, 0x36, - 0x64, 0x5f, 0x16, 0x0a, 0x38, 0xe2, 0x50, 0xd5, 0xf6, 0x06, 0x7f, - 0x47, 0x35, 0x8c, 0x07, 0x4a, 0x25, 0x3f, 0xb2, 0xae, 0x3d, 0x37, - 0xee, 0xbc, 0xbe, 0xfc, 0x62, 0x7f, 0x39, 0x6e, 0x04, 0xc5, 0x39, - 0x7a, 0x98, 0x50, 0x05, 0xd9, 0xe6, 0xcd, 0xe4, 0xf4, 0x70, 0x9e, - 0xc1, 0xd0, 0xec, 0xa9, 0x73, 0xf8, 0x30, 0xc8, 0xd8, 0x58, 0x57, - 0x94, 0x94, 0x72, 0xa4, 0x1c, 0xdd, 0x66, 0xa1, 0xf4, 0xb8, 0x5c, - 0x04, 0xd8, 0xbb, 0xb1, 0x73, 0x84, 0xc7, 0x95, 0x2a, 0xc7, 0xeb, - 0xbf, 0x49, 0xb0, 0xbc, 0xc3, 0x4b, 0xf0, 0xdc, 0x26, 0xb6, 0x72, - 0x2b, 0x2a, 0x64, 0x8f, 0x9f, 0xc0, 0x97, 0x17, 0x34, 0xb3, 0xd6, - 0xdc, 0xf6, 0x0d, 0x35, 0x17, 0x3e, 0xb8, 0x3f, 0xd2, 0x23, 0xec, - 0x33, 0x6a, 0x9c, 0x77, 0x3a, 0x62, 0x2c, 0x26, 0x54, 0xc7, 0x82, - 0x04, 0x1f, 0x12, 0x1b, 0xe8, 0x66, 0xda, 0x15, 0x5c, 0x0c, 0x57, - 0xd6, 0x04, 0x49, 0xb7, 0xfb, 0x66, 0x85, 0xfb, 0x34, 0xb7, 0xde, - 0x4f, 0x59, 0x5e, 0x66, 0x05, 0xff, 0x7e, 0x80, 0x93, 0xb2, 0x87, - 0x5b, 0xe6, 0x94, 0xe8, 0x00, 0x3f, 0x50, 0x7e, 0x1a, 0xb8, 0x4c, - 0x55, 0xd7, 0x44, 0x0d, 0xc3, 0xa8, 0xc5, 0xe0, 0xb4, 0x0c, 0x8e, - 0xa4, 0xe7, 0x41, 0x26, 0xac, 0x21, 0x9e, 0x04, 0xc0, 0x0b, 0xba, - 0xd7, 0x7c, 0x89, 0xf7, 0x10, 0xc7, 0x72, 0x82, 0xc5, 0xef, 0xc8, - 0x3e, 0xf7, 0x7f, 0xff, 0x54, 0xfe, 0x3e, 0xea, 0xc9, 0xf8, 0xd1, - 0x95, 0xd0, 0x10, 0x5b, 0xd0, 0x52, 0xd2, 0x1e, 0x90, 0xc0, 0xb1, - 0x12, 0xa1, 0xdf, 0x16, 0xb9, 0xc8, 0xcf, 0xf1, 0xc8, 0xf1, 0xbb, - 0x03, 0x56, 0x8a, 0xf4, 0x4e, 0x2e, 0xe4, 0xd4, 0x0a, 0x34, 0x18, - 0x63, 0xf5, 0x18, 0xee, 0x6b, 0x93, 0x9c, 0xbc, 0xca, 0xb1, 0xb4, - 0x9d, 0xa2, 0x89, 0x5a, 0xac, 0x1a, 0x47, 0xb8, 0x8c, 0xb2, 0x3e, - 0xbf, 0xed, 0xa4, 0xed, 0xf1, 0x65, 0x99, 0x7a, 0x23, 0x18, 0xde, - 0x8b, 0x1b, 0x9e, 0xdb, 0xf5, 0x37, 0x6c, 0x65, 0xfb, 0xbb, 0x09, - 0x49, 0x6c, 0xf8, 0x9a, 0xbd, 0xf6, 0x42, 0xae, 0xd2, 0x55, 0xda, - 0x42, 0xb5, 0xd6, 0x5d, 0xfc, 0x09, 0xc4, 0x2d, 0x87, 0xf2, 0x50, - 0xaf, 0x9c, 0xfb, 0xc1, 0x9a, 0x8e, 0x8d, 0x40, 0x8d, 0xb4, 0xb3, - 0x42, 0xb1, 0x48, 0xaa, 0x93, 0xa8, 0x44, 0x82, 0x75, 0xf7, 0x51, - 0xe2, 0x22, 0x42, 0xea, 0x1f, 0xd4, 0x7a, 0xbc, 0xd6, 0x8b, 0x1a, - 0x0e, 0x73, 0x36, 0x0c, 0xbf, 0x06, 0x2e, 0xd1, 0x9e, 0x19, 0x5a, - 0x11, 0x8e, 0x57, 0xcc, 0x97, 0xd2, 0x0b, 0x3c, 0x70, 0xca, 0x1a, - 0x22, 0xc3, 0x64, 0x19, 0xd2, 0x86, 0xf3, 0x64, 0x0b, 0xcb, 0xc4, - 0xa5, 0xfb, 0xb4, 0xca, 0x5e, 0xbf, 0x4e, 0x7d, 0x52, 0x2c, 0xdd, - 0x9b, 0x82, 0xb2, 0xaf, 0x31, 0x98, 0xc8, 0x89, 0xd6, 0xbb, 0x32, - 0x56, 0xed, 0x35, 0x1f, 0x7b, 0x64, 0x4b, 0x80, 0x4e, 0xc4, 0x22, - 0xeb, 0xa8, 0xd6, 0x8d, 0x18, 0x7e, 0x7f, 0x07, 0x31, 0xd8, 0xae, - 0x65, 0xf9, 0xea, 0x55, 0xf5, 0x86, 0x43, 0xcc, 0x9e, 0x6c, 0xcc, - 0x48, 0x47, 0xcf, 0x20, 0x19, 0xb1, 0xd2, 0x4b, 0x6b, 0x5c, 0x93, - 0xc7, 0x3b, 0x2a, 0x65, 0x18, 0x8d, 0x79, 0x40, 0x5e, 0xdf, 0xb3, - 0xb8, 0x19, 0x8a, 0x64, 0x52, 0x5d, 0x6d, 0xb5, 0xd8, 0x3e, 0x17, - 0xa2, 0xa4, 0x63, 0x6e, 0x9a, 0x53, 0x71, 0x3a, 0x88, 0xbb, 0xac, - 0xce, 0x69, 0x77, 0x5d, 0xa6, 0xcb, 0x61, 0x8d, 0x97, 0x1b, 0x7a, - 0x63, 0xe5, 0x90, 0x01, 0xf0, 0x52, 0xd5, 0x55, 0x8e, 0x35, 0xd4, - 0x92, 0x6b, 0x60, 0x61, 0x93, 0x7a, 0x33, 0x28, 0xee, 0xc6, 0xcd, - 0xf0, 0xd1, 0xa2, 0x0b, 0xd0, 0xfd, 0x1a, 0x48, 0x81, 0xa3, 0x4f, - 0xae, 0x1f, 0x6f, 0x59, 0x55, 0xd8, 0x5f, 0xc3, 0x43, 0xc5, 0x98, - 0x97, 0x60, 0x99, 0x1d, 0x2e, 0x72, 0xb9, 0xdb, 0x57, 0x45, 0x16, - 0xfc, 0x35, 0x15, 0xb3, 0x11, 0x5c, 0xa1, 0x4f, 0x4a, 0x36, 0x8b, - 0x4a, 0xcd, 0xcd, 0x61, 0x4d, 0x55, 0x47, 0x9b, 0x3e, 0x94, 0xa9, - 0x85, 0xf9, 0x71, 0x6f, 0x30, 0x98, 0xe2, 0x4a, 0x99, 0xfe, 0x10, - 0xcc, 0xe9, 0xa2, 0x1e, 0x96, 0xa5, 0x1d, 0x12, 0x67, 0x61, 0xf9, - 0xb0, 0x48, 0x02, 0xb0, 0x9b, 0xd8, 0xff, 0x40, 0xe4, 0x83, 0xfe, - 0x1e, 0xca, 0xb5, 0xfa, 0x13, 0x7b, 0x59, 0x61, 0x4b, 0x07, 0x3f, - 0xdc, 0x83, 0x64, 0x91, 0x61, 0xb4, 0x3d, 0xc5, 0xd3, 0x4b, 0x40, - 0x01, 0x7c, 0x5f, 0x12, 0xeb, 0x86, 0xf1, 0xee, 0x7c, 0x79, 0xec, - 0x00, 0xef, 0xbd, 0xfb, 0x10, 0x57, 0x79, 0x5f, 0xf3, 0xb7, 0xaf, - 0xe4, 0xc2, 0x62, 0x07, 0x41, 0xb6, 0xab, 0xaa, 0x0a, 0xd6, 0xab, - 0x3c, 0xb2, 0x16, 0xa5, 0xc2, 0x7d, 0x66, 0xda, 0x6b, 0xd8, 0xbd, - 0xf2, 0x33, 0xc7, 0x06, 0x49, 0x34, 0xfb, 0x53, 0x0b, 0xb5, 0x6c, - 0xd6, 0x4e, 0x66, 0x52, 0xac, 0x64, 0xc5, 0x0a, 0x9c, 0xb3, 0x56, - 0x38, 0xc7, 0x02, 0xa3, 0xa9, 0x83, 0x42, 0xdf, 0x8e, 0xb5, 0xf8, - 0x77, 0x03, 0x34, 0x56, 0xcd, 0xfe, 0x58, 0x2e, 0x3c, 0xb8, 0x77, - 0xfe, 0x38, 0xc5, 0x8a, 0x7f, 0xd4, 0xd0, 0x8d, 0x2d, 0x4b, 0x61, - 0xfc, 0xdb, 0x45, 0x90, 0xde, 0x26, 0x0d, 0xe5, 0xdc, 0x01, 0xb8, - 0xde, 0xad, 0x99, 0xdf, 0x31, 0xf1, 0xfc, 0x82, 0xe8, 0xe1, 0x5f, - 0x36, 0x6c, 0xe9, 0x8a, 0x08, 0x25, 0x30, 0xcf, 0x02, 0xf5, 0x64, - 0x87, 0xa2, 0x06, 0x4e, 0x16, 0x93, 0x44, 0xf1, 0x6d, 0x66, 0xbf, - 0xfd, 0x32, 0xe7, 0x04, 0xc2, 0xca, 0xc7, 0x07, 0x27, 0xf2, 0x4c, - 0xb5, 0x72, 0xf3, 0xda, 0xe8, 0x22, 0x28, 0x64, 0x6a, 0xa9, 0xca, - 0x42, 0x8d, 0x8c, 0xdc, 0x20, 0xc1, 0xd5, 0xf5, 0x51, 0x48, 0xfc, - 0xf1, 0x3a, 0xa2, 0x1c, 0x0b, 0xff, 0x92, 0x40, 0xeb, 0xa6, 0xdb, - 0xec, 0x77, 0xb4, 0xb5, 0xcd, 0x78, 0x0c, 0x3e, 0x1b, 0xfc, 0xde, - 0xad, 0xad, 0xbf, 0x72, 0x9a, 0x01, 0x41, 0x9d, 0x57, 0xcb, 0x34, - 0x5f, 0xb5, 0xf0, 0x45, 0x22, 0x5c, 0x94, 0xbb, 0xd6, 0x36, 0x15, - 0xc7, 0xec, 0x0c, 0x52, 0xec, 0x31, 0xc0, 0xe5, 0x75, 0x30, 0xf1, - 0x8d, 0xf1, 0x6a, 0xca, 0x88, 0x39, 0x16, 0x4e, 0xa2, 0xce, 0x1e, - 0x30, 0xa6, 0xe7, 0x74, 0x69, 0x6c, 0x25, 0x9f, 0xe8, 0xf6, 0xe2, - 0x1a, 0x43, 0x0d, 0x1f, 0x38, 0x6a, 0x9a, 0x50, 0x1e, 0xe2, 0xca, - 0xe8, 0xc8, 0x20, 0x36, 0x22, 0xc7, 0x29, 0x0b, 0x06, 0x8a, 0x60, - 0xf4, 0x50, 0xcd, 0x73, 0xf7, 0x0e, 0x47, 0x66, 0x4d, 0xba, 0x49, - 0x74, 0x83, 0x2c, 0x8b, 0xdc, 0x0f, 0x5f, 0xb0, 0xed, 0x07, 0xc7, - 0x8d, 0x4c, 0x59, 0x87, 0x1c, 0x2b, 0x71, 0xea, 0xba, 0xc5, 0xfd, - 0x91, 0xec, 0xf3, 0xdc, 0x3a, 0x90, 0x62, 0xb8, 0x0f, 0x9c, 0x42, - 0xf9, 0x4b, 0xb8, 0x3f, 0x02, 0x08, 0x33, 0x17, 0x19, 0x10, 0x86, - 0x5b, 0xc4, 0x9c, 0xdf, 0x6f, 0x54, 0xb6, 0x71, 0x3e, 0x35, 0x01, - 0x31, 0x3f, 0x67, 0xe4, 0x64, 0xd8, 0x05, 0x7c, 0x5e, 0x0f, 0xec, - 0xe1, 0x98, 0x08, 0xb1, 0xaa, 0x77, 0xa9, 0x09, 0xdc, 0x82, 0x6c, - 0x01, 0xbb, 0x35, 0xbe, 0x48, 0x9a, 0x97, 0x9d, 0xce, 0x42, 0x0e, - 0x30, 0x8b, 0x59, 0x1a, 0xcc, 0x8a, 0x7f, 0xa1, 0xf9, 0xcb, 0x06, - 0x3c, 0xb1, 0x1e, 0x21, 0xe4, 0x66, 0x2c, 0x27, 0x61, 0xe3, 0x1a, - 0xe0, 0x3f, 0x7a, 0x2a, 0x00, 0x82, 0x95, 0x95, 0x35, 0xd1, 0x1e, - 0x93, 0x9f, 0x0f, 0xca, 0xa5, 0x6b, 0x9c, 0x29, 0xbd, 0x82, 0x51, - 0x51, 0xdb, 0xc6, 0x92, 0x20, 0x8c, 0xfb, 0x1d, 0x48, 0x9f, 0x1c, - 0x2a, 0xe3, 0x43, 0x04, 0xb8, 0xa5, 0xa0, 0x8a, 0xde, 0x39, 0x60, - 0x9d, 0xe2, 0x17, 0xc9, 0x3e, 0x54, 0xb9, 0x47, 0x69, 0xbf, 0x0e, - 0xf1, 0x9e, 0x00, 0xe9, 0xca, 0x5f, 0x15, 0x65, 0xc3, 0xce, 0xa8, - 0x9b, 0xfa, 0x48, 0xc3, 0xf8, 0xb4, 0x69, 0xc9, 0xff, 0x3d, 0x85, - 0xd6, 0xad, 0x5b, 0x39, 0xfa, 0x8e, 0x17, 0xbf, 0xe0, 0x49, 0xe4, - 0xb8, 0xaa, 0xb3, 0x9b, 0xaf, 0x5a, 0x19, 0x64, 0xcf, 0x6e, 0x8c, - 0x4d, 0xc8, 0xf9, 0xfd, 0x7a, 0xc9, 0x18, 0xfb, 0xde, 0x32, 0x30, - 0xb0, 0x48, 0x45, 0x5f, 0x8d, 0x2f, 0x61, 0xb3, 0x98, 0x9b, 0xe3, - 0xd2, 0x40, 0xd6, 0x0c, 0x89, 0xc6, 0xe2, 0xc3, 0xc0, 0x53, 0x04, - 0xf9, 0xd6, 0x24, 0xf4, 0x61, 0x62, 0x5e, 0xb4, 0x49, 0xfd, 0xca, - 0x79, 0xb7, 0x48, 0x95, 0xc8, 0x8b, 0x75, 0xed, 0x06, 0x43, 0xec, - 0x45, 0xba, 0x46, 0x64, 0xfa, 0x70, 0x11, 0xd8, 0x4f, 0x19, 0x2d, - 0xff, 0xf5, 0x94, 0x9a, 0x8d, 0x91, 0xbd, 0x5c, 0x8c, 0x19, 0x5a, - 0x8a, 0xec, 0xea, 0xf5, 0x3e, 0x59, 0xec, 0x7a, 0x1a, 0xf4, 0x2e, - 0xe9, 0x4c, 0x3c, 0x52, 0x6d, 0x57, 0xbe, 0x33, 0x8b, 0xdd, 0xf0, - 0x3a, 0xac, 0x23, 0x4f, 0xf4, 0xd6, 0xf6, 0xf3, 0x84, 0x3b, 0x6e, - 0x50, 0x0e, 0x0c, 0xa6, 0xa7, 0x48, 0x74, 0x85, 0xa2, 0x75, 0xd2, - 0x03, 0x38, 0x92, 0x54, 0x7e, 0x99, 0x7c, 0xfd, 0xeb, 0xac, 0x31, - 0xe2, 0x6d, 0x58, 0x9a, 0x9a, 0x2b, 0xde, 0x4d, 0x48, 0x46, 0x11, - 0x32, 0xec, 0x6d, 0x54, 0xca, 0xbb, 0x0d, 0x91, 0x33, 0x2c, 0xc0, - 0x80, 0x2f, 0x2e, 0xc8, 0x62, 0xfb, 0x85, 0xa1, 0x43, 0x57, 0xf4, - 0xa5, 0x12, 0x33, 0x08, 0x46, 0xc7, 0xa5, 0xca, 0x80, 0x88, 0xa9, - 0x18, 0x26, 0x15, 0x95, 0x69, 0x8d, 0x86, 0x89, 0x11, 0x93, 0xeb, - 0x82, 0x31, 0x94, 0x81, 0x8e, 0x6d, 0xe2, 0x49, 0xa0, 0x26, 0x54, - 0xb0, 0x3d, 0xbb, 0xde, 0x62, 0xbb, 0x57, 0xfe, 0x29, 0x95, 0x3e, - 0xe6, 0xcf, 0xb6, 0xc2, 0xf8, 0x82, 0x57, 0xc7, 0xb0, 0xf8, 0xfe, - 0x0a, 0x6a, 0x33, 0x73, 0x6c, 0xa5, 0xa0, 0x54, 0x64, 0xdf, 0x69, - 0x20, 0x49, 0x61, 0x67, 0x54, 0x3d, 0x9f, 0x4c, 0x41, 0x2c, 0xb1, - 0x2d, 0xcf, 0x72, 0x73, 0xbd, 0x84, 0x62, 0xcf, 0x8f, 0xa6, 0xc0, - 0x70, 0x28, 0x0d, 0xfe, 0x56, 0xc7, 0x50, 0xb7, 0xec, 0x4d, 0x60, - 0xb0, 0xe6, 0xe8, 0x3c, 0x28, 0x10, 0xa3, 0xa3, 0x0c, 0x7d, 0x42, - 0xbe, 0x4e, 0x5e, 0xd7, 0x51, 0x96, 0x6a, 0xc7, 0x2f, 0xfc, 0x33, - 0x9b, 0xaa, 0xe0, 0xfa, 0xcd, 0x2b, 0x2a, 0x18, 0x50, 0xe4, 0xa9, - 0xf5, 0xbb, 0xf5, 0x3e, 0x9f, 0x3e, 0x8d, 0x25, 0x3e, 0x3c, 0x0a, - 0x49, 0x9f, 0x3e, 0xf6, 0x54, 0x86, 0x78, 0xf3, 0xed, 0x7f, 0x27, - 0x52, 0xc0, 0xb8, 0x39, 0xff, 0x9e, 0x5e, 0x94, 0x76, 0x14, 0x46, - 0x45, 0x15, 0xa1, 0x45, 0xa7, 0xbc, 0xef, 0xf0, 0x78, 0xc3, 0x42, - 0xe9, 0xdb, 0x48, 0x25, 0x5a, 0x3b, 0xdd, 0x4c, 0x3d, 0x39, 0xef, - 0x8e, 0xaf, 0xb1, 0x27, 0xb6, 0xbd, 0xb6, 0xc1, 0xc4, 0x99, 0x88, - 0x08, 0x3a, 0x52, 0xd1, 0xf7, 0x53, 0x8e, 0xac, 0xd4, 0xa6, 0x5a, - 0x2d, 0xcd, 0xa4, 0x1d, 0x8a, 0xb6, 0xf3, 0x94, 0x27, 0x4c, 0xbc, - 0x59, 0xf7, 0x5a, 0xe2, 0x56, 0x55, 0x8d, 0xf3, 0xcd, 0xcd, 0x0a, - 0x03, 0xa2, 0x74, 0x93, 0x23, 0xab, 0x04, 0xce, 0x1c, 0x91, 0xa6, - 0x94, 0x57, 0x2d, 0x19, 0x25, 0x02, 0x5c, 0x34, 0x12, 0xca, 0xad, - 0x4b, 0x1d, 0x79, 0x6b, 0xb2, 0x1e, 0x7c, 0x14, 0x9b, 0x75, 0x97, - 0x44, 0xb6, 0x27, 0xc9, 0x80, 0x49, 0x06, 0xdc, 0x33, 0x8f, 0x6a, - 0xe2, 0x6a, 0x82, 0x99, 0xa8, 0x8e, 0x34, 0xdf, 0x64, 0x4d, 0xbb, - 0x55, 0x82, 0x0b, 0x33, 0xbc, 0x50, 0xba, 0xaf, 0x86, 0x55, 0x7d, - 0x14, 0x8d, 0xd4, 0x12, 0xa1, 0xee, 0xeb, 0x14, 0xd7, 0x29, 0xab, - 0x07, 0x7d, 0x7c, 0x9e, 0x97, 0x19, 0x50, 0x49, 0x0d, 0x01, 0xdf, - 0xb0, 0x09, 0xfb, 0x8d, 0x31, 0xf7, 0x26, 0x3b, 0x76, 0x42, 0xa7, - 0x6c, 0xeb, 0x76, 0x9c, 0x4e, 0xe4, 0x4b, 0xe4, 0xab, 0x58, 0xe9, - 0xb5, 0xa0, 0x35, 0x3a, 0xf1, 0xfa, 0xcd, 0xef, 0xfe, 0xb1, 0x44, - 0xe4, 0x51, 0xe7, 0xb9, 0xeb, 0x25, 0xa7, 0x38, 0x86, 0x1b, 0x7b, - 0x30, 0x8f, 0xa8, 0xf1, 0x12, 0x26, 0x76, 0xce, 0x7c, 0x74, 0xa9, - 0xcc, 0xcb, 0x17, 0x5b, 0x08, 0x9e, 0x48, 0x81, 0x67, 0xd3, 0x65, - 0xc1, 0xc9, 0x08, 0x43, 0xd6, 0x5d, 0x44, 0x04, 0xd0, 0x32, 0x34, - 0x45, 0xa0, 0xf0, 0x8c, 0xa5, 0x6a, 0x13, 0x3d, 0xc1, 0x20, 0x43, - 0x29, 0x56, 0xd2, 0xd8, 0x78, 0x07, 0xe2, 0x5c, 0x60, 0xd6, 0xa1, - 0x03, 0x75, 0x67, 0x22, 0x67, 0xa7, 0xb5, 0x85, 0xc2, 0x14, 0x04, - 0x98, 0x29, 0x64, 0x02, 0x00, 0xff, 0x67, 0x6d, 0x90, 0xa4, 0xc6, - 0x40, 0x56, 0xd7, 0xaa, 0x2a, 0x77, 0x2c, 0x5b, 0xc2, 0x88, 0x84, - 0x0d, 0x96, 0x5b, 0xf2, 0xea, 0xc8, 0x76, 0x04, 0x8f, 0xbb, 0x9b, - 0x8b, 0x86, 0x7b, 0xef, 0xea, 0x8d, 0x10, 0xd3, 0x6a, 0xb0, 0x39, - 0x27, 0x43, 0x44, 0x8c, 0x36, 0x9b, 0xe4, 0x53, 0x4e, 0x3f, 0x02, - 0x6d, 0x76, 0xbf, 0x38, 0x7d, 0x01, 0x7a, 0xc6, 0x9a, 0x37, 0x45, - 0x24, 0x79, 0xcb, 0x03, 0x01, 0x13, 0x7a, 0xc0, 0xb8, 0xf9, 0x52, - 0x47, 0xbd, 0x40, 0x59, 0x01, 0x34, 0x86, 0x08, 0xc6, 0xbb, 0xe2, - 0xf8, 0x60, 0x04, 0xc9, 0xd4, 0xa7, 0x37, 0x98, 0x7a, 0x83, 0xd0, - 0xe8, 0x02, 0x64, 0xaf, 0x01, 0x94, 0x4b, 0xa2, 0xd5, 0x5b, 0x9e, - 0x5f, 0x03, 0xc1, 0xb6, 0xa5, 0xf7, 0x82, 0x17, 0x10, 0x39, 0x49, - 0xcd, 0x12, 0x71, 0x5e, 0x4f, 0xbc, 0x4c, 0x69, 0xda, 0xd6, 0xf0, - 0xf5, 0x07, 0x0c, 0x44, 0x37, 0x5e, 0x95, 0xf8, 0x9f, 0x90, 0x72, - 0x4a, 0x50, 0x0a, 0x6e, 0x46, 0x3a, 0x15, 0xf9, 0xa8, 0x11, 0x85, - 0x3d, 0x86, 0xa4, 0x99, 0x82, 0x07, 0x90, 0xb5, 0x62, 0xa8, 0xcd, - 0xcd, 0x7c, 0x93, 0xfe, 0xff, 0x17, 0x43, 0xaa, 0x45, 0x14, 0xb7, - 0xae, 0x2a, 0x34, 0x18, 0x34, 0x29, 0xc1, 0x08, 0x82, 0x84, 0xf7, - 0x84, 0x7a, 0x9d, 0xd7, 0x65, 0x6e, 0x37, 0x70, 0xd4, 0x3b, 0x26, - 0xa9, 0x92, 0xaf, 0xab, 0xbf, 0x56, 0x01, 0xf0, 0x4a, 0xd0, 0xe3, - 0xdc, 0x99, 0x3d, 0xc7, 0xb6, 0x09, 0x51, 0xbf, 0x09, 0x9c, 0x21, - 0xbc, 0x71, 0x9c, 0x0d, 0xce, 0x89, 0x7b, 0xbf, 0x86, 0x59, 0x84, - 0xef, 0x5c, 0x42, 0xeb, 0x25, 0xc9, 0x80, 0x58, 0xb6, 0x8c, 0x38, - 0x95, 0xde, 0x08, 0x15, 0x45, 0x3d, 0x29, 0xd7, 0x31, 0x5b, 0x04, - 0x92, 0x93, 0x5d, 0x2c, 0xf4, 0x08, 0x98, 0x76, 0x84, 0x74, 0x3b, - 0xd6, 0x2e, 0xd0, 0x72, 0x71, 0x70, 0x8c, 0xc3, 0xd6, 0x6a, 0x73, - 0x82, 0xdf, 0x2a, 0x15, 0x0f, 0x47, 0xa2, 0xe7, 0x13, 0x80, 0xbe, - 0xba, 0x54, 0xc4, 0x14, 0xde, 0x8a, 0xd1, 0x95, 0x9c, 0x26, 0x6c, - 0xb6, 0x22, 0xf9, 0xf7, 0xdd, 0x74, 0x85, 0x06, 0xa5, 0x82, 0x91, - 0x42, 0xa6, 0x13, 0xf3, 0xf4, 0xf4, 0xd2, 0xfa, 0xb4, 0x57, 0xda, - 0xd3, 0xcf, 0x27, 0x03, 0xb3, 0xbc, 0xac, 0x0f, 0x50, 0x86, 0xc7, - 0xc4, 0x85, 0x15, 0x2d, 0x77, 0x83, 0x8d, 0x9f, 0xec, 0x0c, 0x3d, - 0x9e, 0x1e, 0x48, 0xc2, 0x78, 0xbf, 0x42, 0x4a, 0xc3, 0x81, 0x86, - 0x4e, 0xa3, 0xaa, 0x7d, 0x02, 0x5e, 0xf5, 0x1f, 0x50, 0xb1, 0x17, - 0x1c, 0xbc, 0xb5, 0xe2, 0x15, 0xb1, 0x01, 0x71, 0xab, 0xf5, 0xf9, - 0x48, 0x7e, 0x72, 0x5b, 0xa4, 0xf2, 0x34, 0x56, 0xba, 0x3d, 0x10, - 0x27, 0x83, 0xca, 0x66, 0x12, 0x27, 0xeb, 0x12, 0x0e, 0x32, 0x0a, - 0x2f, 0x56, 0x85, 0x0d, 0x08, 0xd7, 0xef, 0xde, 0x56, 0x52, 0xe3, - 0x17, 0x72, 0x56, 0xef, 0xaa, 0x9b, 0x91, 0x25, 0x33, 0x93, 0xf3, - 0x1f, 0x86, 0x66, 0xa2, 0x74, 0xb7, 0x83, 0x74, 0x01, 0x61, 0x33, - 0xfa, 0x6f, 0x8a, 0x1e, 0xa0, 0x01, 0x28, 0xb2, 0xc5, 0xd7, 0xa5, - 0xf5, 0x9e, 0xf9, 0xfb, 0xbb, 0x8a, 0x55, 0x0a, 0x60, 0x45, 0xf6, - 0xbb, 0xc1, 0x8a, 0xa3, 0xd7, 0x2f, 0xe3, 0x44, 0x89, 0x0b, 0x51, - 0x42, 0xa6, 0x5d, 0x70, 0x1a, 0x73, 0x87, 0x8e, 0x10, 0x7d, 0x1e, - 0x9f, 0x1f, 0x25, 0x86, 0x92, 0x71, 0x2b, 0xa0, 0x92, 0xcb, 0xca, - 0x51, 0xbd, 0x8d, 0x11, 0x35, 0x8d, 0xb2, 0xd4, 0xf7, 0x2b, 0x51, - 0xb5, 0x2f, 0x75, 0xcf, 0x8f, 0x81, 0xc1, 0x42, 0xe7, 0x07, 0x27, - 0x13, 0x50, 0x97, 0x65, 0x5c, 0xda, 0xe4, 0x53, 0xe2, 0x47, 0xe2, - 0x04, 0x3d, 0xf1, 0xe5, 0x7a, 0xbd, 0xd9, 0x5b, 0xf8, 0xb9, 0x2a, - 0xc9, 0xe2, 0x70, 0x1b, 0xf1, 0x28, 0x1b, 0x0d, 0x67, 0xd4, 0xd3, - 0xcd, 0xcb, 0x4c, 0xc2, 0x27, 0x75, 0x3b, 0x47, 0xd7, 0xe2, 0xb7, - 0xb3, 0x0d, 0x34, 0xe2, 0xa9, 0xcd, 0x50, 0xc1, 0x69, 0x4b, 0xee, - 0x7b, 0x39, 0x07, 0xf3, 0xa8, 0x0d, 0x0c, 0x48, 0xde, 0xf2, 0xca, - 0x6a, 0x5d, 0x39, 0x35, 0xc2, 0x01, 0xc3, 0xd7, 0xef, 0xa3, 0xf6, - 0x90, 0x69, 0x5b, 0x86, 0xfd, 0x05, 0xd7, 0xca, 0xa8, 0xb3, 0x6a, - 0x21, 0xb1, 0x1a, 0xe0, 0x5f, 0xd6, 0x4a, 0xf0, 0xa7, 0x9f, 0x2e, - 0x8b, 0xf2, 0x8e, 0x9e, 0xbf, 0x0c, 0x6e, 0x41, 0xb3, 0x3b, 0x67, - 0xaa, 0x67, 0xff, 0x31, 0x98, 0x96, 0xdf, 0x7f, 0xca, 0xe8, 0xf8, - 0x71, 0x2e, 0x1b, 0xec, 0x81, 0x4e, 0x09, 0x8a, 0x52, 0xc2, 0xa2, - 0x6c, 0x9b, 0x15, 0x29, 0x01, 0xa9, 0x65, 0xa8, 0x10, 0x8c, 0x54, - 0x8d, 0x81, 0x96, 0x2b, 0x34, 0x04, 0x00, 0x61, 0x72, 0x9a, 0xc4, - 0x24, 0x30, 0xac, 0x68, 0x03, 0x0e, 0xc7, 0xd4, 0xea, 0x89, 0xc6, - 0x8e, 0x35, 0x09, 0xff, 0x9c, 0x71, 0xde, 0x9d, 0x46, 0x66, 0x1b, - 0xd7, 0xc0, 0xe4, 0x42, 0x5a, 0x68, 0x86, 0xde, 0xe4, 0xe6, 0xc6, - 0xae, 0x0b, 0x79, 0x3c, 0x70, 0x9d, 0x65, 0x98, 0x9f, 0xd2, 0x72, - 0x3e, 0x90, 0xe1, 0x76, 0xa3, 0x44, 0xab, 0x82, 0xc8, 0x68, 0xf0, - 0x72, 0x9a, 0x5a, 0x1d, 0x1e, 0xb4, 0x1a, 0x3b, 0xbe, 0x96, 0x51, - 0xf4, 0x4f, 0x41, 0xcf, 0x8e, 0x18, 0x19, 0x61, 0xe6, 0x5d, 0x79, - 0xa2, 0x49, 0xaa, 0x3d, 0x1b, 0xd0, 0xc3, 0xac, 0x14, 0x70, 0x86, - 0x88, 0x1c, 0xd9, 0xc9, 0x33, 0x58, 0xd6, 0xa4, 0xdc, 0xd7, 0x4c, - 0x22, 0x14, 0xd8, 0x90, 0xde, 0xde, 0x37, 0x65, 0x72, 0x20, 0x36, - 0xd4, 0x1d, 0xb0, 0xbb, 0x99, 0xfd, 0xb6, 0x26, 0x55, 0x15, 0xdf, - 0x5a, 0xe0, 0xbd, 0xd7, 0xd9, 0xab, 0xe9, 0xf4, 0x77, 0x96, 0x2e, - 0x37, 0xbd, 0xc3, 0xa8, 0xd1, 0x81, 0x8d, 0x68, 0x3a, 0xeb, 0x91, - 0x50, 0x5f, 0xaf, 0x8d, 0x73, 0xf0, 0x26, 0xc5, 0xf3, 0xf3, 0xcc, - 0x8c, 0x5e, 0x51, 0x89, 0xf8, 0x3a, 0x1b, 0x06, 0x87, 0xf9, 0x78, - 0xb1, 0xa3, 0xa9, 0xf2, 0x55, 0xc6, 0x64, 0x0a, 0xbc, 0xaf, 0x8b, - 0xf3, 0x2f, 0xe4, 0xf1, 0xe9, 0xc6, 0x84, 0xe2, 0xc8, 0x09, 0x51, - 0xb2, 0xad, 0x97, 0x71, 0x80, 0x79, 0x07, 0x43, 0xa3, 0x94, 0xad, - 0xce, 0x6d, 0x3f, 0x82, 0xf2, 0xb2, 0x11, 0x3a, 0xe2, 0x41, 0x8d, - 0x41, 0xeb, 0x3d, 0x13, 0x09, 0xd2, 0x47, 0x61, 0x3a, 0x69, 0xcf, - 0xb9, 0x17, 0x73, 0x15, 0x65, 0xec, 0x4e, 0x0a, 0xc8, 0xa7, 0xe4, - 0x98, 0xae, 0x14, 0x37, 0x79, 0x8f, 0xbf, 0x13, 0x79, 0x80, 0x2e, - 0x90, 0xb0, 0xbd, 0xfe, 0xdd, 0x71, 0xd6, 0xcc, 0x3e, 0xbd, 0xe3, - 0x57, 0x64, 0x8b, 0xb4, 0x7d, 0x7e, 0x21, 0x3a, 0x84, 0xca, 0x73, - 0x91, 0x43, 0xd5, 0x67, 0x14, 0xd2, 0x86, 0xd0, 0xe6, 0xe0, 0x02, - 0x6b, 0x47, 0x3e, 0xdb, 0xa5, 0xaa, 0x04, 0x2a, 0xdf, 0xe9, 0xfa, - 0x43, 0x8c, 0x92, 0x11, 0x37, 0xa8, 0xd5, 0x92, 0x2c, 0x9e, 0x5a, - 0x87, 0xb3, 0xb6, 0x70, 0x93, 0x7b, 0xa8, 0x62, 0xdc, 0x3d, 0x3e, - 0x64, 0x26, 0xd4, 0xa2, 0x5d, 0x29, 0xba, 0xd7, 0x61, 0x7f, 0x51, - 0x2a, 0x27, 0x8d, 0x48, 0xfc, 0x6b, 0xb1, 0x92, 0x36, 0x61, 0x54, - 0x5a, 0x15, 0xd4, 0xc1, 0x62, 0x35, 0x7c, 0x5f, 0x31, 0x2b, 0x1f, - 0xe2, 0x3e, 0x68, 0x04, 0x7b, 0x4c, 0x03, 0xa3, 0x7a, 0x68, 0x7e, - 0x66, 0x01, 0xeb, 0x1a, 0xeb, 0x51, 0xc4, 0xbf, 0x46, 0x0c, 0x29, - 0x80, 0xbe, 0xd8, 0xb6, 0xb8, 0xef, 0xca, 0xd3, 0xa6, 0xd8, 0x37, - 0x8e, 0xfe, 0xd4, 0xad, 0xc9, 0x91, 0xbf, 0x7a, 0x13, 0xa3, 0xa5, - 0xbe, 0x34, 0xc0, 0x5d, 0xca, 0x3b, 0xe5, 0x83, 0x28, 0xc2, 0x7a, - 0x4c, 0xdf, 0xfa, 0x8c, 0x70, 0x7e, 0x2b, 0xd3, 0x07, 0xdc, 0xfb, - 0xa8, 0x7a, 0xcd, 0x06, 0xed, 0x4d, 0x34, 0xa5, 0xe4, 0xa2, 0xf4, - 0xc5, 0x28, 0xea, 0x72, 0x9c, 0x6d, 0x83, 0xb1, 0xad, 0x50, 0xb2, - 0x43, 0xed, 0xf7, 0xc7, 0x91, 0x91, 0x82, 0xcd, 0xc5, 0x0e, 0xa4, - 0x9a, 0x53, 0xcf, 0x41, 0xb3, 0x07, 0xc9, 0x10, 0x6e, 0x18, 0x20, - 0x09, 0xc8, 0x11, 0x65, 0xa0, 0x01, 0xc7, 0x2b, 0x50, 0xb7, 0xf5, - 0x8c, 0x9f, 0x8a, 0xfb, 0x51, 0x61, 0x4d, 0xc1, 0x40, 0xc5, 0x3d, - 0xd7, 0x85, 0xaf, 0x10, 0xb7, 0x38, 0x0a, 0x0c, 0xbb, 0xc2, 0x2a, - 0x3c, 0xde, 0x08, 0xa6, 0x9c, 0x85, 0x8b, 0xc5, 0xca, 0xf9, 0xdc, - 0x8e, 0x0e, 0xcb, 0xe4, 0xb9, 0xb3, 0x71, 0xaa, 0x79, 0x92, 0x70, - 0x73, 0xd0, 0xc8, 0x42, 0x9f, 0xc7, 0x1b, 0x92, 0x3c, 0xb5, 0xa7, - 0xe1, 0x61, 0xad, 0xe1, 0xcf, 0x85, 0x2d, 0xd8, 0x18, 0xf0, 0x8d, - 0x24, 0x1b, 0xfc, 0x4c, 0xf3, 0xf5, 0x6f, 0xe0, 0xe6, 0x09, 0x27, - 0xb2, 0xab, 0xf8, 0x8d, 0x45, 0x22, 0x64, 0xe6, 0xc3, 0x5b, 0xcb, - 0xe5, 0x45, 0x93, 0xd5, 0x69, 0xcc, 0x5b, 0x4f, 0x71, 0xd5, 0x66, - 0x90, 0xf7, 0xb9, 0xc7, 0x78, 0x24, 0x7b, 0xa3, 0x19, 0xcf, 0x1d, - 0x95, 0xe6, 0x37, 0xe8, 0x94, 0x51, 0xaa, 0x8a, 0x95, 0x9d, 0x30, - 0x75, 0x13, 0xfa, 0xd4, 0xfe, 0x71, 0x46, 0x4f, 0xb6, 0x2a, 0x83, - 0x7b, 0x7b, 0xb1, 0xf1, 0xc0, 0x4c, 0xab, 0x7e, 0xb5, 0x32, 0x9f, - 0xde, 0x27, 0xdf, 0xaf, 0x4c, 0x2b, 0x89, 0x3e, 0x33, 0x40, 0xec, - 0x53, 0xe4, 0x9f, 0xb3, 0x56, 0xcc, 0x26, 0x95, 0xcb, 0x22, 0x76, - 0x19, 0x98, 0x3c, 0x37, 0x38, 0xd6, 0xf0, 0x64, 0xc3, 0xbb, 0x1a, - 0x93, 0xde, 0x0b, 0xcf, 0xd8, 0xc9, 0x42, 0x0a, 0x40, 0xe7, 0xbf, - 0x4c, 0x5c, 0x81, 0xbd, 0xc0, 0x76, 0xdb, 0xd6, 0xa7, 0x3f, 0xb4, - 0xc0, 0x77, 0x14, 0xe2, 0x26, 0x7f, 0x7d, 0xc1, 0x64, 0x82, 0x4b, - 0x6e, 0x3e, 0x3c, 0x3e, 0x1e, 0x57, 0x38, 0x2f, 0xb0, 0xa6, 0x94, - 0xde, 0x40, 0xc1, 0x31, 0x66, 0x98, 0xf1, 0x3e, 0x78, 0x80, 0x24, - 0x53, 0x3a, 0xb5, 0x92, 0x1d, 0xe8, 0xea, 0xc5, 0x6a, 0xdb, 0x2e, - 0xc8, 0x83, 0x61, 0x95, 0xc8, 0xd0, 0x59, 0x48, 0xa5, 0x55, 0xb0, - 0x97, 0x90, 0xc4, 0x3c, 0x27, 0xe5, 0x6a, 0x40, 0x3b, 0xcc, 0xd0, - 0x13, 0x1d, 0x05, 0xb9, 0x8f, 0x79, 0x1a, 0x70, 0x80, 0x55, 0x57, - 0x94, 0x5f, 0x12, 0x9b, 0x6d, 0x3a, 0x3e, 0xf2, 0x77, 0xcc, 0x7d, - 0x7b, 0x13, 0x2d, 0xeb, 0xfa, 0x01, 0x6c, 0xf3, 0x5b, 0x32, 0x95, - 0x87, 0xcb, 0x85, 0xfb, 0xfb, 0xe7, 0x56, 0x03, 0xa0, 0xa1, 0x17, - 0xc1, 0x37, 0x98, 0xc5, 0x68, 0x66, 0x14, 0x4f, 0x34, 0x69, 0x76, - 0xbd, 0x94, 0x6c, 0xff, 0x07, 0xc2, 0xdc, 0x0f, 0xf5, 0xa6, 0xf2, - 0xe5, 0x18, 0x0c, 0xaa, 0xe8, 0xae, 0x94, 0xf7, 0x44, 0xc0, 0x2b, - 0x85, 0x19, 0xde, 0x24, 0xf5, 0xc3, 0xae, 0x91, 0x6c, 0x3d, 0x5b, - 0x43, 0x2e, 0x3a, 0x7f, 0xed, 0xd0, 0x8a, 0xa5, 0x79, 0xb1, 0xfd, - 0x89, 0xba, 0x0d, 0xf0, 0xe6, 0x75, 0xc3, 0xb3, 0xb7, 0x1c, 0x87, - 0x56, 0x1e, 0x6e, 0x4c, 0xd9, 0x50, 0x08, 0xa2, 0x91, 0x31, 0x48, - 0x23, 0xfc, 0xa1, 0x97, 0x56, 0x80, 0x70, 0x19, 0x56, 0x5d, 0xad, - 0x39, 0x8a, 0x23, 0x49, 0x31, 0xf9, 0x10, 0xd5, 0xdd, 0x09, 0x57, - 0x73, 0xd1, 0x4b, 0x08, 0xf6, 0xe4, 0xe3, 0x2c, 0xef, 0x72, 0xdf, - 0x5e, 0x59, 0xd1, 0x93, 0xbb, 0xd5, 0xac, 0x3c, 0x5e, 0xb9, 0xf8, - 0x13, 0x80, 0xc4, 0x15, 0xb3, 0x99, 0xc2, 0x43, 0x9f, 0x14, 0xcd, - 0xd2, 0x4a, 0xf5, 0x8c, 0xe5, 0xba, 0x1a, 0xb2, 0x35, 0xe1, 0x19, - 0x8b, 0x17, 0xe6, 0x82, 0x9f, 0xb3, 0x9f, 0xc6, 0xfd, 0x37, 0xb5, - 0x84, 0xda, 0x2a, 0x77, 0xc8, 0x97, 0x64, 0xbf, 0x44, 0x0a, 0xbf, - 0x0f, 0xe3, 0x88, 0xed, 0xc2, 0xa0, 0x94, 0x3c, 0x05, 0xc9, 0x12, - 0xb7, 0xb6, 0x03, 0x34, 0xa8, 0xd6, 0xfe, 0x78, 0xba, 0x90, 0x3c, - 0x06, 0x9d, 0xdc, 0xe2, 0xd4, 0xe4, 0x94, 0xee, 0x01, 0x42, 0x2f, - 0x68, 0x0a, 0xb9, 0x4e, 0x4c, 0xbc, 0x44, 0x07, 0x0f, 0xc7, 0x9d, - 0x86, 0x88, 0x21, 0x69, 0xff, 0xcd, 0xe7, 0x3f, 0x2f, 0x56, 0x33, - 0x3a, 0xd2, 0x34, 0xbf, 0x00, 0x65, 0x3b, 0x61, 0xf2, 0x4a, 0x4b, - 0x46, 0x88, 0x66, 0xf1, 0x98, 0xad, 0x4a, 0xff, 0xb7, 0x19, 0x9b, - 0x0b, 0xa9, 0x51, 0xdc, 0x93, 0xbd, 0xae, 0xf8, 0x40, 0x20, 0x89, - 0x15, 0x86, 0x37, 0x4a, 0x80, 0x52, 0x04, 0xda, 0x84, 0x96, 0xb5, - 0xe3, 0x3f, 0x0b, 0xbc, 0x47, 0x05, 0xb9, 0xa8, 0xeb, 0x09, 0x28, - 0x62, 0xc8, 0x0b, 0x3f, 0x2e, 0xf9, 0x6b, 0x55, 0xdc, 0x58, 0x7f, - 0xee, 0xca, 0xd3, 0x54, 0xa0, 0x34, 0xee, 0xfc, 0x2c, 0x05, 0xeb, - 0xcd, 0xcf, 0x42, 0x54, 0x6f, 0x42, 0x2f, 0x22, 0x05, 0x65, 0xb9, - 0x12, 0x24, 0xe7, 0xf3, 0x70, 0x6c, 0x16, 0x09, 0xe0, 0x12, 0x41, - 0xa5, 0x3e, 0x22, 0x48, 0xd6, 0x94, 0xb1, 0x69, 0xf5, 0xed, 0xa7, - 0x2c, 0x8a, 0x88, 0x2c, 0xf2, 0x68, 0xab, 0xb0, 0x44, 0x35, 0xb7, - 0xaf, 0xab, 0xe6, 0x9f, 0xf4, 0xb9, 0xb2, 0x75, 0xb5, 0x20, 0xb8, - 0x63, 0x5e, 0xd3, 0xd9, 0x4c, 0x08, 0x13, 0x2e, 0xe8, 0x8f, 0xcf, - 0xa1, 0xd4, 0x21, 0xd6, 0x18, 0xa1, 0x1c, 0x8f, 0xe5, 0xd4, 0x03, - 0xc3, 0x3f, 0xeb, 0xcf, 0xd6, 0x66, 0x97, 0x0f, 0x39, 0xe1, 0xf0, - 0x15, 0x51, 0xb9, 0xe6, 0x82, 0xac, 0x90, 0xd7, 0xf1, 0xbe, 0xb5, - 0x7b, 0x06, 0x1e, 0xcf, 0xb2, 0x5e, 0xa3, 0x98, 0x08, 0x4d, 0xaf, - 0xcb, 0x0f, 0x18, 0xa3, 0xba, 0xea, 0xc5, 0xcb, 0xfe, 0x58, 0x85, - 0xb0, 0x75, 0x03, 0x6d, 0xf7, 0x63, 0x4b, 0x34, 0xeb, 0x31, 0x6e, - 0x13, 0x45, 0xac, 0x23, 0x2a, 0x02, 0x4c, 0xf5, 0x64, 0xd0, 0x48, - 0x96, 0xd2, 0x36, 0x0e, 0x7c, 0xd5, 0x42, 0xf1, 0xb7, 0x85, 0x67, - 0x38, 0x00, 0x55, 0x3e, 0xc7, 0x89, 0x3d, 0x07, 0xee, 0x7d, 0x9e, - 0xbb, 0x4b, 0x41, 0x21, 0xbd, 0x98, 0x35, 0x3b, 0x8b, 0xdd, 0x72, - 0xde, 0xec, 0x9e, 0x32, 0x2a, 0x7e, 0x2e, 0xc7, 0xc1, 0x75, 0xf0, - 0x6c, 0xcc, 0x29, 0x12, 0xca, 0xc3, 0x88, 0xa0, 0xc0, 0x06, 0xb3, - 0x4b, 0x23, 0xa9, 0x36, 0xd3, 0x27, 0x29, 0xd3, 0x99, 0xf2, 0x5b, - 0x1d, 0x55, 0x85, 0x35, 0xcc, 0x45, 0x89, 0xf7, 0x11, 0x6c, 0x4b, - 0x06, 0x78, 0xd0, 0x68, 0xe3, 0xba, 0x5f, 0x44, 0x2e, 0xe9, 0x68, - 0x05, 0x2f, 0x56, 0x6e, 0x73, 0xc4, 0xc3, 0xc5, 0x00, 0x6e, 0x5a, - 0x22, 0x47, 0x0b, 0x4b, 0x65, 0xb3, 0x5f, 0xc2, 0x2d, 0x89, 0x7e, - 0xd6, 0x24, 0x53, 0xef, 0xd2, 0xa5, 0x6c, 0x19, 0x0e, 0xb5, 0xd4, - 0xc2, 0xb0, 0x2f, 0x86, 0xdc, 0xe8, 0x59, 0xf1, 0xf4, 0x8a, 0xc0, - 0x43, 0xb1, 0x79, 0x24, 0x06, 0x30, 0x48, 0x6d, 0xf5, 0xf0, 0x97, - 0x8e, 0xf3, 0x1c, 0xe2, 0x3f, 0x77, 0x98, 0x99, 0x91, 0xc7, 0xce, - 0x23, 0x40, 0x77, 0xfa, 0xff, 0x59, 0x9a, 0x61, 0x62, 0x77, 0xef, - 0x31, 0xce, 0xaf, 0x18, 0x01, 0x58, 0x2e, 0x07, 0x77, 0xfb, 0x00, - 0xc6, 0x3b, 0xb4, 0x2b, 0xfa, 0x61, 0xe1, 0x67, 0x45, 0x3e, 0x71, - 0xe3, 0x18, 0x58, 0xd0, 0x1c, 0x1a, 0x2c, 0x80, 0x6c, 0x87, 0x13, - 0x38, 0x13, 0x65, 0x29, 0x3b, 0xd9, 0xa6, 0xb7, 0x22, 0x52, 0x8a, - 0xa4, 0xb8, 0x78, 0xb5, 0x69, 0xf3, 0xe2, 0x9a, 0x0b, 0xe2, 0x81, - 0x1e, 0x49, 0xd6, 0x75, 0xa9, 0xa9, 0xec, 0x70, 0x9b, 0x67, 0xc6, - 0xea, 0xda, 0xd9, 0x9b, 0xfe, 0x64, 0x97, 0x37, 0xcb, 0xc6, 0x6c, - 0xfd, 0x06, 0x2b, 0xdf, 0x62, 0x66, 0x55, 0x3b, 0xe3, 0x99, 0xdc, - 0x29, 0x1b, 0x0f, 0x00, 0x2a, 0x0a, 0x8c, 0xb8, 0xc5, 0x51, 0x14, - 0xb4, 0xad, 0x13, 0xf8, 0xf9, 0x5a, 0xb9, 0xb4, 0x15, 0x07, 0x71, - 0x72, 0xbb, 0x3f, 0xb0, 0xf2, 0xa7, 0x24, 0x6d, 0x2a, 0xd2, 0xa0, - 0x41, 0x0d, 0xb5, 0x7b, 0x48, 0x5d, 0xfe, 0xeb, 0xf7, 0x9f, 0x1e, - 0xbb, 0xfd, 0x8f, 0xee, 0xc4, 0xe6, 0x0f, 0x3a, 0x13, 0x67, 0x0d, - 0x4c, 0xe2, 0xa0, 0x51, 0xbc, 0xe1, 0x5f, 0x7b, 0xfc, 0x95, 0xe6, - 0x6e, 0xde, 0x79, 0xbf, 0x94, 0x51, 0xcb, 0xb3, 0xb8, 0xe2, 0xab, - 0x65, 0x1e, 0x39, 0x04, 0x6a, 0x34, 0xdc, 0xdb, 0xd0, 0x26, 0xd1, - 0xc4, 0x02, 0x0f, 0xbf, 0x1a, 0xf1, 0x0f, 0x3f, 0x37, 0x69, 0x1e, - 0x06, 0xde, 0xf6, 0x2b, 0x6c, 0x6e, 0x4d, 0x67, 0x24, 0x52, 0xa4, - 0x3e, 0xbb, 0xc7, 0x28, 0xe8, 0xe4, 0x3e, 0xeb, 0xa9, 0xc1, 0x02, - 0xc4, 0x00, 0x45, 0x99, 0x71, 0x5a, 0x36, 0x2d, 0x9a, 0xe5, 0xf4, - 0x94, 0x7e, 0x63, 0xac, 0x6d, 0x9d, 0x25, 0xdd, 0x86, 0xa5, 0x02, - 0x8d, 0x97, 0xf4, 0xf7, 0xd0, 0xea, 0x3c, 0x66, 0xe2, 0xfe, 0xdf, - 0x35, 0xba, 0x06, 0xe8, 0x0a, 0xa6, 0xbe, 0xfa, 0x15, 0xf9, 0x8f, - 0x60, 0x7e, 0xa4, 0x1d, 0x26, 0xb9, 0x62, 0x6c, 0xea, 0x61, 0xb2, - 0x1b, 0x42, 0x4b, 0x06, 0x33, 0x76, 0x62, 0xb9, 0x4b, 0xe1, 0x27, - 0x84, 0x99, 0xd9, 0x4b, 0x66, 0x0b, 0x02, 0x41, 0x84, 0x1e, 0x2f, - 0x08, 0x35, 0xfd, 0x37, 0x3a, 0x00, 0x36, 0x23, 0xa3, 0x74, 0x9b, - 0xb5, 0x06, 0x94, 0x23, 0xf7, 0x46, 0x51, 0x9f, 0xe5, 0x3f, 0xff, - 0x2b, 0xc0, 0x31, 0x14, 0xcf, 0x31, 0x0f, 0x76, 0xcb, 0x84, 0x5e, - 0xb4, 0x6d, 0x26, 0x05, 0x21, 0xde, 0x8d, 0x30, 0x1a, 0x5a, 0xe9, - 0x48, 0x6b, 0x84, 0x33, 0x06, 0xd1, 0x49, 0x3b, 0x28, 0xdd, 0xc6, - 0xa7, 0x1a, 0xa5, 0x9d, 0x43, 0xbd, 0x68, 0x03, 0x9c, 0x8e, 0x3c, - 0x52, 0x6b, 0xb4, 0xa7, 0x97, 0x5a, 0x24, 0xe2, 0x61, 0x4f, 0x18, - 0x0f, 0xff, 0x70, 0x98, 0x5b, 0x4a, 0x91, 0x19, 0x33, 0xa8, 0xa0, - 0x8d, 0xf8, 0x48, 0x84, 0x29, 0x43, 0xc5, 0x62, 0xca, 0x59, 0xc1, - 0xfc, 0xaa, 0x65, 0x27, 0xda, 0x0f, 0xbc, 0x55, 0xbd, 0x73, 0xc3, - 0xf5, 0xf2, 0x12, 0x6a, 0x15, 0x6f, 0x65, 0x5e, 0x24, 0xcf, 0xba, - 0x3c, 0x39, 0x84, 0xcf, 0x58, 0xc0, 0xc3, 0x2c, 0x06, 0xfa, 0x40, - 0x29, 0xb1, 0x7c, 0xa6, 0x4a, 0xa2, 0xed, 0xc6, 0x79, 0xa9, 0x59, - 0xf3, 0x00, 0xc4, 0x27, 0x59, 0xe3, 0xad, 0xcc, 0xcf, 0xca, 0xbc, - 0xf0, 0xa1, 0xe8, 0xa3, 0xe2, 0xaf, 0x25, 0x9f, 0xb3, 0x3e, 0x6f, - 0xdb, 0xd7, 0x40, 0x89, 0xfd, 0x6d, 0x1f, 0x54, 0x4c, 0x4d, 0xf2, - 0xa7, 0x7d, 0x8d, 0x29, 0x91, 0xd2, 0x89, 0x0f, 0xe1, 0xba, 0x31, - 0xfb, 0x51, 0x41, 0x1e, 0xd4, 0xe1, 0xce, 0x16, 0x76, 0x83, 0x2e, - 0xd3, 0xe4, 0xdb, 0x5e, 0x15, 0xc9, 0xf2, 0xe6, 0xd6, 0xda, 0xa2, - 0x6c, 0xd5, 0xd5, 0x64, 0xac, 0xab, 0x75, 0xe5, 0xcf, 0xc0, 0x51, - 0x86, 0x33, 0x85, 0x03, 0xb9, 0x11, 0x65, 0x08, 0xdc, 0xa2, 0x77, - 0xf2, 0x50, 0x68, 0xb5, 0x86, 0x99, 0x06, 0x17, 0x85, 0x8b, 0x44, - 0x38, 0x3f, 0x66, 0xef, 0xa1, 0x7d, 0x75, 0x35, 0xb5, 0x23, 0x98, - 0xb4, 0xb4, 0xf9, 0x9e, 0xd2, 0xc0, 0xe7, 0xe2, 0xee, 0x6a, 0x38, - 0x1f, 0xf4, 0x8d, 0x4e, 0xc0, 0xc8, 0x23, 0xa9, 0x92, 0x39, 0x92, - 0xef, 0xb9, 0x36, 0x5a, 0xc0, 0x90, 0xcb, 0xd5, 0x73, 0x72, 0x57, - 0x10, 0x8b, 0xf8, 0x1c, 0x2a, 0x7a, 0x23, 0x2a, 0x36, 0x10, 0x60, - 0xb3, 0xaa, 0x3d, 0x20, 0x9a, 0xea, 0xb7, 0xd6, 0x29, 0xad, 0xe4, - 0xba, 0xd5, 0xdd, 0xac, 0x4c, 0x23, 0xac, 0xc7, 0x61, 0x23, 0x88, - 0x8e, 0xa6, 0x47, 0x4a, 0x3e, 0xbb, 0xbb, 0x15, 0x70, 0xad, 0x58, - 0xe6, 0xb8, 0xd6, 0xa0, 0xab, 0x87, 0x02, 0x21, 0x5c, 0x8b, 0xa4, - 0xdf, 0xa1, 0xe7, 0x58, 0x92, 0x8d, 0xe6, 0xc5, 0x86, 0xab, 0x07, - 0xd2, 0x64, 0xf0, 0xfa, 0x76, 0x2a, 0xb3, 0x08, 0x6f, 0xb9, 0x46, - 0xd5, 0x47, 0x4a, 0x3b, 0x00, 0x62, 0xc9, 0x1d, 0xff, 0x73, 0x49, - 0x87, 0x42, 0xa9, 0xb9, 0x80, 0x52, 0x8f, 0x68, 0x36, 0xe3, 0xcd, - 0x32, 0x3b, 0x86, 0x78, 0x7d, 0x24, 0xb1, 0x31, 0x2c, 0xa9, 0x50, - 0x1e, 0xc3, 0x18, 0x37, 0x00, 0x20, 0xd1, 0x76, 0xd5, 0x49, 0xa1, - 0xa0, 0x55, 0x95, 0x43, 0xd3, 0xbe, 0x6e, 0xd6, 0xda, 0xba, 0x60, - 0x13, 0x64, 0xcc, 0xe8, 0xbb, 0x6e, 0x62, 0x88, 0x6e, 0x82, 0x6b, - 0x1e, 0x34, 0xfe, 0x4c, 0x73, 0xbd, 0x46, 0x3f, 0xc4, 0x0c, 0x01, - 0xdf, 0xf4, 0x81, 0xde, 0xff, 0x38, 0x23, 0x25, 0x4f, 0xbb, 0x28, - 0xb4, 0x0b, 0x0c, 0x75, 0x3a, 0xc6, 0x88, 0xe3, 0xc0, 0x0a, 0xa3, - 0xde, 0x66, 0x8c, 0xfc, 0xb1, 0x71, 0x0f, 0x35, 0x9e, 0xb3, 0xf0, - 0x10, 0xdf, 0x5d, 0x09, 0x61, 0x5e, 0x22, 0x54, 0x07, 0x05, 0x72, - 0x9a, 0x90, 0xef, 0xc2, 0xd8, 0xdf, 0x03, 0x56, 0xd9, 0x9e, 0xd3, - 0xdb, 0x30, 0xd7, 0x89, 0xf5, 0x9f, 0xab, 0x45, 0x15, 0xda, 0x29, - 0xf1, 0x83, 0x50, 0x98, 0x84, 0xa4, 0xc0, 0x7f, 0x54, 0x48, 0x09, - 0x2d, 0xec, 0xcb, 0x9d, 0x1d, 0x1a, 0xb6, 0x04, 0xc1, 0xbe, 0x18, - 0xd9, 0xa9, 0x00, 0x3d, 0xf1, 0xea, 0x0d, 0xec, 0x91, 0xdf, 0x9d, - 0x1a, 0xef, 0xa9, 0x7c, 0x8f, 0x40, 0xba, 0x0a, 0x81, 0xa0, 0x18, - 0x05, 0x17, 0x44, 0xe4, 0x0f, 0xb9, 0xc9, 0x29, 0x9d, 0xf1, 0x60, - 0x45, 0xc4, 0x69, 0xd8, 0xe4, 0xb8, 0xbd, 0xfd, 0xd6, 0x4e, 0x22, - 0xfc, 0xeb, 0xa6, 0xf4, 0x2e, 0x89, 0x7c, 0x9f, 0x0d, 0xf9, 0xfb, - 0xce, 0x0a, 0x5d, 0xcf, 0x82, 0xc1, 0x86, 0x8c, 0xc5, 0x47, 0xb0, - 0x8b, 0xa9, 0x4b, 0x4f, 0x15, 0x31, 0x83, 0x39, 0x1c, 0x83, 0xad, - 0xc9, 0x5e, 0x79, 0x51, 0x4d, 0x5f, 0x93, 0xa9, 0xd3, 0x97, 0x6b, - 0xa0, 0x27, 0xb7, 0x20, 0xa4, 0x5d, 0x54, 0xad, 0xe2, 0x8e, 0xc9, - 0x9f, 0x57, 0xad, 0x5a, 0x16, 0x01, 0x56, 0xe3, 0x84, 0x3d, 0xd0, - 0xfb, 0x86, 0x3c, 0x34, 0xde, 0x7b, 0xf9, 0x8f, 0xba, 0xc8, 0xb0, - 0x41, 0xe8, 0xdd, 0x61, 0xaa, 0x9b, 0x3d, 0xe7, 0xaa, 0xfc, 0xb4, - 0x06, 0x11, 0xc0, 0x09, 0xa8, 0x0e, 0x48, 0x67, 0xc7, 0x7e, 0x42, - 0xb8, 0xf1, 0xdf, 0xdc, 0xa6, 0xf8, 0x02, 0x58, 0x62, 0xfa, 0x3d, - 0x6c, 0x18, 0xc7, 0x81, 0x44, 0xca, 0x02, 0xc2, 0x67, 0x5b, 0x71, - 0x98, 0x44, 0xb8, 0x45, 0xea, 0x33, 0x1d, 0xee, 0x77, 0x1e, 0x05, - 0xbd, 0xfc, 0x62, 0x5c, 0x57, 0x17, 0xd4, 0x53, 0x49, 0x85, 0x29, - 0x78, 0x0c, 0x3e, 0x14, 0x00, 0xd8, 0x4e, 0x5c, 0x12, 0x5b, 0x50, - 0x7e, 0x7e, 0x14, 0xc8, 0xd5, 0x42, 0x0c, 0xcf, 0xc2, 0xde, 0x4f, - 0xcd, 0xff, 0x8c, 0x7a, 0x41, 0x36, 0x50, 0xcd, 0x26, 0xc5, 0xc9, - 0x49, 0x37, 0x5e, 0xa0, 0x5c, 0x1d, 0x40, 0xa9, 0x84, 0xe6, 0xe7, - 0x5a, 0xba, 0xb2, 0xb5, 0x59, 0x00, 0x20, 0x81, 0xcc, 0xea, 0xc8, - 0x9b, 0xbc, 0x50, 0x1e, 0x5d, 0x32, 0x26, 0x14, 0xb8, 0x65, 0xe1, - 0xf7, 0xb0, 0x37, 0xa2, 0x8b, 0xc3, 0x2e, 0xcd, 0xd2, 0x0a, 0xc2, - 0x34, 0x72, 0xec, 0x09, 0x7e, 0x97, 0x8c, 0x1a, 0x32, 0x77, 0x34, - 0xd5, 0xca, 0x57, 0x8c, 0xeb, 0x2b, 0x6e, 0xf8, 0x72, 0xe1, 0xf8, - 0x7f, 0x16, 0x15, 0x33, 0x6b, 0x00, 0xb0, 0x59, 0x69, 0x4c, 0xaf, - 0xd8, 0x1a, 0x66, 0x1f, 0xd9, 0xdd, 0x80, 0xbe, 0x80, 0x1c, 0x7b, - 0x6e, 0xf0, 0x8a, 0xab, 0xab, 0x14, 0x92, 0x48, 0x2a, 0xe6, 0x65, - 0x46, 0x3b, 0x64, 0x5c, 0x28, 0x3f, 0x53, 0x1a, 0x22, 0xa6, 0x4e, - 0x73, 0xbd, 0x6b, 0x6e, 0x9b, 0x93, 0xff, 0x67, 0xf7, 0x86, 0xa8, - 0x62, 0x14, 0xc0, 0x34, 0x96, 0x58, 0x89, 0xe4, 0xd8, 0xb8, 0x7f, - 0xd6, 0x79, 0xf9, 0x97, 0x7a, 0xaa, 0x33, 0xe6, 0xaa, 0x1c, 0xc1, - 0x30, 0x9e, 0x54, 0x10, 0x2c, 0xb3, 0x2b, 0xf3, 0xe7, 0x99, 0x3f, - 0x21, 0x66, 0xe1, 0x39, 0x6a, 0xe2, 0x31, 0x21, 0x74, 0xeb, 0x82, - 0x01, 0x15, 0xce, 0x04, 0xba, 0xfd, 0x07, 0x7e, 0x52, 0x63, 0xfa, - 0x46, 0x23, 0xa9, 0x75, 0xd4, 0x63, 0xc8, 0x13, 0x19, 0x17, 0x64, - 0xc9, 0xba, 0x8b, 0xda, 0x26, 0x1b, 0x6f, 0x5e, 0x73, 0x7a, 0x00, - 0x16, 0x01, 0x21, 0x61, 0xc3, 0xce, 0xf8, 0xa2, 0x96, 0xf1, 0xb8, - 0x63, 0xa0, 0x7e, 0xb1, 0x0f, 0x75, 0xf2, 0xfa, 0x2c, 0xbd, 0xa1, - 0x7f, 0xed, 0xdf, 0xaa, 0x76, 0x45, 0xf0, 0xd4, 0xbc, 0x70, 0x13, - 0xe3, 0x89, 0x83, 0x34, 0xbd, 0x99, 0xcf, 0x23, 0xf3, 0xec, 0x39, - 0x80, 0xc0, 0x9d, 0x74, 0x8e, 0x4d, 0x7e, 0xe7, 0x60, 0x48, 0xa2, - 0x45, 0x3c, 0xdd, 0x58, 0x50, 0xea, 0xfb, 0x11, 0xda, 0xe8, 0x0e, - 0x4f, 0x0f, 0xc7, 0x78, 0xd1, 0x8b, 0xcf, 0x5d, 0xbd, 0x51, 0xa5, - 0xb1, 0x3d, 0x9a, 0xc7, 0x52, 0x06, 0x71, 0x19, 0xb4, 0x08, 0x30, - 0xa3, 0x99, 0x09, 0xd4, 0x3a, 0x2d, 0x21, 0x71, 0xb5, 0xda, 0x11, - 0x5a, 0x9f, 0x4c, 0x56, 0xf9, 0x73, 0x60, 0xee, 0xe4, 0xa3, 0x30, - 0x71, 0x00, 0x70, 0x9c, 0xdc, 0xe1, 0x08, 0x0e, 0x54, 0x40, 0xcf, - 0xf9, 0x7c, 0x82, 0xee, 0xb7, 0x48, 0xb3, 0x3c, 0xc2, 0x9a, 0xd8, - 0x65, 0x7c, 0x52, 0x89, 0x29, 0x0c, 0x25, 0x7c, 0x15, 0x8e, 0xfb, - 0x4b, 0xe3, 0x9e, 0x87, 0x4b, 0xea, 0x67, 0xe9, 0xd6, 0x88, 0x10, - 0x98, 0x00, 0x5e, 0xc6, 0x48, 0x5f, 0x65, 0x64, 0xe7, 0x90, 0xf9, - 0xc9, 0x1b, 0x16, 0xee, 0x6e, 0x5c, 0x16, 0xd0, 0x5d, 0xd8, 0x1e, - 0x2f, 0x10, 0x16, 0xdd, 0xc2, 0xb9, 0x40, 0x9a, 0x75, 0x0e, 0x33, - 0xaa, 0x3d, 0x09, 0x31, 0x6d, 0x5f, 0xc3, 0x20, 0x3c, 0x5f, 0x89, - 0x06, 0xb4, 0xaa, 0xfb, 0x57, 0x54, 0xd4, 0xb5, 0x53, 0x9d, 0x4e, - 0x80, 0x9c, 0x2b, 0x5a, 0x23, 0x11, 0x50, 0x97, 0x93, 0x8c, 0x69, - 0x93, 0xc5, 0x58, 0x79, 0xa8, 0xea, 0x02, 0x24, 0x35, 0x74, 0x93, - 0xc8, 0x25, 0xa8, 0x8a, 0xb3, 0x52, 0x37, 0x19, 0xb9, 0xf4, 0x1f, - 0xa0, 0x71, 0x6e, 0x25, 0xe4, 0x37, 0x28, 0x90, 0xc4, 0x04, 0x4c, - 0xec, 0x05, 0x47, 0x0e, 0xaa, 0xb8, 0xe5, 0xd7, 0x28, 0xb9, 0xc1, - 0x7f, 0x05, 0x82, 0xf8, 0xea, 0xa3, 0xd6, 0xcd, 0x18, 0x56, 0x0a, - 0x60, 0x56, 0xa5, 0xa0, 0xea, 0x50, 0xc3, 0xd7, 0x8b, 0x0f, 0x98, - 0xcf, 0x69, 0xbd, 0xf5, 0x61, 0xd1, 0x37, 0x25, 0xda, 0x16, 0x2a, - 0xbc, 0xec, 0x55, 0xcc, 0xae, 0x54, 0xe8, 0x67, 0xdd, 0xd4, 0x1b, - 0xf0, 0x2b, 0x01, 0x75, 0x3b, 0x8a, 0xe0, 0x14, 0xed, 0xb0, 0x94, - 0xe1, 0x66, 0xea, 0x0e, 0x58, 0x6a, 0xd6, 0xe7, 0xec, 0xce, 0x24, - 0xfa, 0x6f, 0x64, 0xb1, 0xc3, 0xc7, 0xf2, 0x13, 0x7e, 0x55, 0x57, - 0x8b, 0x8b, 0x4e, 0x33, 0x50, 0xfa, 0x44, 0x65, 0x51, 0xbb, 0xd7, - 0x8b, 0xd0, 0x49, 0x49, 0x49, 0x2f, 0x9c, 0x4b, 0x2e, 0xe2, 0xc9, - 0xf3, 0xc7, 0xb1, 0x63, 0x82, 0x52, 0x75, 0xce, 0xa2, 0x1f, 0xf2, - 0x6e, 0x27, 0xbd, 0xd3, 0xd4, 0x35, 0x27, 0x4d, 0x13, 0x77, 0xbe, - 0xac, 0x6f, 0x00, 0xfd, 0x7a, 0xfa, 0xe1, 0xdd, 0x4a, 0xf1, 0x6c, - 0xe7, 0x1c, 0xc4, 0x0d, 0x6c, 0x44, 0xbd, 0x9b, 0xff, 0xc5, 0xa1, - 0x6e, 0x0c, 0xfa, 0x8e, 0x11, 0xc1, 0x90, 0x2d, 0x56, 0x3b, 0x42, - 0x57, 0x1d, 0x12, 0x8f, 0xd0, 0xea, 0xff, 0x1d, 0xcf, 0x28, 0x87, - 0xb9, 0x98, 0x24, 0x1e, 0x6b, 0xae, 0xcb, 0x71, 0xe4, 0x7a, 0x99, - 0xb3, 0x82, 0x82, 0x16, 0x94, 0x8f, 0x8b, 0x89, 0xc6, 0x41, 0x8d, - 0x63, 0x27, 0x60, 0xb2, 0xb2, 0x23, 0x80, 0xe6, 0xb5, 0x58, 0x4f, - 0xa1, 0xee, 0x0c, 0x76, 0xae, 0x79, 0xc6, 0xd1, 0x6d, 0x0d, 0x28, - 0x4e, 0x29, 0x00, 0x59, 0x5c, 0xe1, 0xa4, 0x44, 0x74, 0x3a, 0x01, - 0xf3, 0xaf, 0x19, 0xc2, 0x4a, 0x9b, 0x67, 0x49, 0xdd, 0x04, 0x55, - 0x77, 0x37, 0xa2, 0xaa, 0x77, 0x9a, 0xc9, 0x7c, 0xcd, 0x00, 0x1d, - 0x32, 0x78, 0x86, 0xe2, 0x0b, 0xdb, 0x76, 0xa3, 0x6b, 0xa7, 0x54, - 0xa3, 0x25, 0x70, 0x65, 0x40, 0x10, 0xda, 0x43, 0xd3, 0x7c, 0xbb, - 0x8a, 0xce, 0x85, 0xc3, 0x8d, 0x8a, 0x5e, 0xcb, 0xe3, 0xf0, 0xdd, - 0xc0, 0x08, 0x86, 0x92, 0xf0, 0xf1, 0x37, 0xe3, 0x3e, 0xb9, 0xd4, - 0x78, 0xb7, 0x83, 0x2c, 0x62, 0x4b, 0x27, 0x06, 0x76, 0x47, 0x69, - 0x80, 0x46, 0xcd, 0xea, 0xb4, 0x16, 0x59, 0xee, 0xa8, 0x6b, 0x12, - 0xaf, 0x52, 0xc5, 0x66, 0x78, 0xd6, 0x11, 0x40, 0x88, 0xf3, 0x3d, - 0x73, 0xa9, 0xd9, 0xa4, 0xc4, 0x84, 0x1e, 0xc9, 0x6c, 0xe6, 0x63, - 0x57, 0xc4, 0x90, 0x4b, 0x79, 0x6e, 0xd3, 0xd6, 0x74, 0x13, 0xa9, - 0xd4, 0xcb, 0x5a, 0x5c, 0x16, 0x29, 0xe6, 0x43, 0xc0, 0x23, 0x28, - 0xf4, 0x46, 0x87, 0x5c, 0x65, 0x91, 0x7b, 0xc5, 0xff, 0xfb, 0x5f, - 0xb5, 0x5f, 0xbb, 0xbb, 0x85, 0xbf, 0xd7, 0xfb, 0xe8, 0x23, 0x57, - 0x8a, 0x1d, 0xd1, 0x64, 0x9c, 0x69, 0xa1, 0x62, 0x4b, 0xd2, 0xb7, - 0x6e, 0x0f, 0x47, 0x34, 0xec, 0xd5, 0x49, 0x52, 0xe6, 0x11, 0x53, - 0x9f, 0x45, 0x5d, 0x05, 0x2f, 0xc9, 0xfb, 0x83, 0x2d, 0x0b, 0x2e, - 0xd9, 0x2f, 0x4b, 0xa7, 0x8f, 0x3b, 0xf7, 0x34, 0x3a, 0xb6, 0xb8, - 0x4f, 0x18, 0x24, 0x9c, 0xba, 0x08, 0x11, 0x32, 0xde, 0xc6, 0xc5, - 0xa3, 0x95, 0xce, 0xb7, 0xe3, 0x0b, 0x9d, 0xe8, 0xf0, 0xbc, 0x5b, - 0xf6, 0xff, 0xa9, 0x8b, 0x8c, 0x0b, 0xc2, 0x4e, 0x41, 0x00, 0x3b, - 0x90, 0x7a, 0x21, 0xef, 0xcf, 0x0b, 0xd2, 0xe1, 0x28, 0xc0, 0x4a, - 0xda, 0xc9, 0xba, 0xd3, 0x78, 0xb6, 0xa7, 0x47, 0x68, 0x68, 0x18, - 0xf2, 0x14, 0xaa, 0xf4, 0xc4, 0x2a, 0x4b, 0x1e, 0x8d, 0x76, 0xb2, - 0x96, 0x0c, 0x3d, 0x1f, 0x99, 0xaa, 0x9f, 0xba, 0xa0, 0x91, 0x84, - 0x95, 0xb9, 0x2f, 0x7b, 0x6d, 0xca, 0x16, 0x76, 0xc8, 0x89, 0xde, - 0xde, 0x52, 0x45, 0x5e, 0xcb, 0x1d, 0x5d, 0x94, 0x1c, 0x25, 0x11, - 0xe9, 0x26, 0x58, 0x41, 0x7b, 0xd4, 0x2d, 0xe2, 0x9d, 0x9e, 0x12, - 0xb9, 0x72, 0x76, 0xe7, 0x41, 0x64, 0x8e, 0x20, 0x17, 0x05, 0x52, - 0xa5, 0x0a, 0x67, 0x4e, 0x58, 0xb1, 0x4f, 0xf8, 0xeb, 0xd1, 0x64, - 0x75, 0xef, 0x2c, 0xbe, 0xd9, 0xf5, 0x05, 0x11, 0xc9, 0x2c, 0x30, - 0x11, 0xce, 0x4c, 0xe1, 0x83, 0x22, 0xd5, 0x61, 0x94, 0x5b, 0x4d, - 0xd4, 0x3c, 0xf3, 0xc2, 0x90, 0x4c, 0xbf, 0xbe, 0xe9, 0xbd, 0xf8, - 0x8d, 0xdf, 0xd9, 0x8e, 0x0a, 0xed, 0xf0, 0x5a, 0x33, 0xf3, 0x51, - 0xd0, 0x78, 0xf4, 0xa1, 0x6d, 0xcf, 0x28, 0xf1, 0xd6, 0x8e, 0x5c, - 0x31, 0x3b, 0x9d, 0x24, 0xac, 0xb4, 0xd4, 0x4c, 0x2e, 0xb1, 0xc5, - 0x38, 0x94, 0x9d, 0xf8, 0x69, 0x65, 0x7f, 0x3c, 0xb0, 0xab, 0x08, - 0x3e, 0x65, 0xb1, 0x56, 0x3b, 0xfd, 0x62, 0x76, 0xf7, 0x2e, 0x86, - 0xc3, 0x7d, 0xc9, 0xd6, 0x96, 0x59, 0x96, 0xda, 0x30, 0x56, 0x12, - 0xb4, 0x1a, 0x75, 0xd2, 0x79, 0x9f, 0x97, 0x39, 0x8e, 0xc5, 0xdb, - 0x0b, 0x35, 0xc7, 0x83, 0x0e, 0xa3, 0xd9, 0x90, 0x9e, 0x2e, 0xcc, - 0x70, 0x62, 0x8c, 0x01, 0xef, 0x33, 0xd2, 0xa8, 0xc3, 0x6f, 0x72, - 0x24, 0xf8, 0x2f, 0xa3, 0x12, 0x32, 0xbf, 0x9d, 0x0c, 0x40, 0x7b, - 0xb4, 0x76, 0xee, 0xc0, 0x6e, 0x8c, 0xb3, 0xe4, 0xd0, 0x54, 0x68, - 0xab, 0xbf, 0x27, 0xd1, 0x57, 0xf6, 0x41, 0x07, 0xfc, 0x11, 0x0a, - 0x6b, 0xb0, 0x17, 0x5f, 0xd7, 0x21, 0x2e, 0x5f, 0xa8, 0x17, 0xf5, - 0x83, 0xbc, 0x7a, 0xca, 0x39, 0x2e, 0xa2, 0x7e, 0x0a, 0x9d, 0x13, - 0xb8, 0x1c, 0x39, 0x04, 0xdf, 0x76, 0x4d, 0xad, 0xcb, 0xd3, 0x1c, - 0xb6, 0x71, 0x88, 0x10, 0x08, 0x49, 0x78, 0x8e, 0x81, 0xba, 0x66, - 0x10, 0xd8, 0xcb, 0x57, 0x91, 0x7d, 0xa2, 0x09, 0xf3, 0xcf, 0xbe, - 0x2c, 0xd2, 0x09, 0x29, 0x6f, 0x6b, 0x15, 0xf4, 0xfa, 0x7b, 0x9f, - 0xd1, 0xd9, 0xd6, 0x9e, 0x98, 0xfe, 0x46, 0xe9, 0x53, 0xa5, 0xcf, - 0x2e, 0xed, 0x1e, 0x99, 0x42, 0x1d, 0xae, 0xaa, 0xfd, 0xe6, 0x97, - 0xd4, 0xd1, 0x68, 0x9f, 0xf6, 0x47, 0x57, 0x75, 0xee, 0xda, 0x10, - 0x4e, 0xd5, 0x19, 0x5f, 0x2d, 0x8c, 0x93, 0x93, 0x62, 0xd7, 0x87, - 0x5d, 0x98, 0xde, 0xfb, 0x13, 0xbd, 0x13, 0xcc, 0xeb, 0x59, 0x8b, - 0x92, 0x69, 0x95, 0xf1, 0xfb, 0x40, 0xff, 0xe9, 0x5e, 0xc5, 0x41, - 0xbb, 0x56, 0x3a, 0xd0, 0x76, 0xe3, 0x4b, 0x81, 0x06, 0x0a, 0x97, - 0x55, 0x95, 0x33, 0x8a, 0xac, 0x66, 0x7e, 0x1a, 0x47, 0x97, 0xb3, - 0x7e, 0x18, 0xad, 0xd1, 0x22, 0x90, 0x91, 0x85, 0x46, 0x27, 0xa4, - 0xda, 0x29, 0x22, 0xbb, 0xf0, 0x32, 0xda, 0x5a, 0xff, 0xc8, 0xec, - 0xa9, 0x12, 0x72, 0x57, 0xa6, 0xdd, 0x0e, 0x49, 0x72, 0xe2, 0xb5, - 0xfc, 0xe8, 0x82, 0xa4, 0x3d, 0x31, 0x85, 0x2b, 0x6d, 0x00, 0xe0, - 0xe1, 0x91, 0xbb, 0x85, 0x7e, 0x09, 0xfe, 0xbc, 0xea, 0x1a, 0xe0, - 0x61, 0x53, 0x2b, 0x48, 0x94, 0x8c, 0x4b, 0x25, 0xd8, 0x92, 0x4e, - 0x9a, 0x53, 0x8f, 0xf4, 0x3d, 0x7e, 0xb0, 0x3c, 0xfd, 0xe5, 0x6d, - 0xee, 0x13, 0x7b, 0xfa, 0xc6, 0xfa, 0x11, 0x88, 0x1c, 0xb9, 0x02, - 0x8e, 0x53, 0xef, 0x92, 0xe2, 0xb1, 0xf9, 0x81, 0xef, 0x06, 0x17, - 0xff, 0xba, 0x28, 0xc9, 0xbf, 0x2f, 0xb0, 0x6e, 0x27, 0xb8, 0x38, - 0xc4, 0x3f, 0x36, 0x6c, 0x82, 0x90, 0x0c, 0x86, 0x22, 0x0e, 0xe0, - 0x03, 0x88, 0xc5, 0x29, 0x65, 0xa5, 0x11, 0x6d, 0xac, 0xba, 0x7f, - 0x78, 0xcd, 0xbc, 0xe9, 0xf4, 0xf5, 0x39, 0x76, 0xfb, 0x31, 0x80, - 0x65, 0x8b, 0x08, 0x01, 0x3b, 0x73, 0xce, 0x57, 0x50, 0xb7, 0xe9, - 0x60, 0x6d, 0xd6, 0x35, 0x71, 0xf8, 0x9a, 0xc7, 0x68, 0x2a, 0x9e, - 0xc0, 0x10, 0xe8, 0x10, 0x26, 0xbc, 0x1f, 0x35, 0xa5, 0x8d, 0xb8, - 0x8c, 0x20, 0xd8, 0xcf, 0x2f, 0xb4, 0xa6, 0x26, 0xea, 0x3e, 0x54, - 0xa5, 0xff, 0xda, 0x2b, 0xab, 0x79, 0x57, 0x1d, 0x5f, 0xe1, 0x90, - 0xd2, 0xa2, 0xb1, 0x24, 0x21, 0xda, 0x88, 0xbd, 0x94, 0x30, 0xa8, - 0x5c, 0x20, 0xbf, 0xe3, 0x9b, 0x88, 0xeb, 0x82, 0x33, 0xcb, 0xcb, - 0xad, 0xa3, 0x3d, 0x97, 0x1a, 0xd0, 0x9b, 0xb3, 0x0f, 0x20, 0x29, - 0xeb, 0x48, 0x3a, 0xaa, 0x81, 0x04, 0x78, 0x82, 0x28, 0x41, 0xcb, - 0xac, 0x82, 0xdd, 0x84, 0xe4, 0x46, 0x6c, 0x40, 0xad, 0x8d, 0x02, - 0xb5, 0xa6, 0xac, 0xb2, 0x6d, 0x36, 0x1c, 0x0a, 0x08, 0xda, 0x25, - 0x48, 0x0c, 0x65, 0xe5, 0xc4, 0xc0, 0xf5, 0xda, 0x37, 0x8c, 0xa9, - 0x0c, 0xe6, 0xca, 0x81, 0x66, 0x06, 0x2e, 0x84, 0x60, 0x7f, 0xbb, - 0x58, 0x57, 0x8a, 0xa6, 0xed, 0xa1, 0x46, 0xe6, 0x6b, 0x74, 0x16, - 0x36, 0x65, 0xe4, 0xcf, 0x8e, 0x54, 0xa5, 0xc9, 0x9a, 0xa5, 0x27, - 0x3c, 0x44, 0x7e, 0x55, 0x1d, 0x11, 0x93, 0xd6, 0x70, 0xf1, 0x93, - 0x08, 0x3c, 0x62, 0xd7, 0x9c, 0x04, 0x83, 0x70, 0xcb, 0x0f, 0x87, - 0x26, 0x6f, 0x45, 0xd8, 0xc7, 0xe7, 0x5c, 0xbf, 0x39, 0x5d, 0x90, - 0x2b, 0xb3, 0xa9, 0x79, 0x39, 0x4e, 0xfd, 0x38, 0x8b, 0x2d, 0x92, - 0x3d, 0xdc, 0x62, 0x88, 0xad, 0xfd, 0x74, 0xfa, 0x03, 0xca, 0xd8, - 0x90, 0x46, 0x77, 0xcd, 0x15, 0x9e, 0x4f, 0xc5, 0x65, 0x8f, 0x8f, - 0xba, 0x13, 0x8b, 0xda, 0x18, 0xac, 0xd9, 0xe1, 0x7b, 0xae, 0x72, - 0x2b, 0xf6, 0x37, 0x1a, 0xce, 0x10, 0x29, 0x3a, 0xb1, 0x45, 0xae, - 0x7a, 0xf3, 0x2e, 0x83, 0x90, 0x0b, 0x25, 0x62, 0xff, 0x18, 0x4d, - 0xe2, 0xe1, 0x87, 0x73, 0x58, 0x31, 0x59, 0x9f, 0x7b, 0xde, 0x3a, - 0xca, 0x90, 0xc0, 0xea, 0x1a, 0x97, 0x00, 0xd1, 0xb7, 0x0f, 0x41, - 0x15, 0xee, 0xb4, 0xca, 0xe9, 0xf4, 0x7d, 0x38, 0x05, 0xdb, 0xd1, - 0x6b, 0x79, 0xdd, 0xad, 0x1e, 0x44, 0x0c, 0xd0, 0xc5, 0x7c, 0x14, - 0x58, 0x18, 0x21, 0x6c, 0xb1, 0x0f, 0x3b, 0x5d, 0x1b, 0xc0, 0xc3, - 0xf3, 0xae, 0x44, 0x94, 0xd1, 0xe2, 0xca, 0x7c, 0x84, 0x45, 0x20, - 0x02, 0xad, 0xbd, 0xd8, 0x81, 0xb4, 0x24, 0xf8, 0xaa, 0xe9, 0xcf, - 0xf1, 0xd1, 0xac, 0x7f, 0x10, 0x00, 0x30, 0x62, 0x39, 0xc3, 0xff, - 0xbc, 0x36, 0x80, 0xd9, 0xd8, 0x1d, 0xaa, 0x41, 0xfa, 0xa2, 0x8f, - 0x38, 0xa3, 0x62, 0xe9, 0x12, 0xe2, 0xdb, 0x38, 0x7a, 0x2e, 0x53, - 0x00, 0xba, 0x78, 0x28, 0xad, 0xca, 0xc0, 0x54, 0x30, 0x95, 0xa8, - 0x95, 0x1b, 0xe1, 0x16, 0x24, 0xf2, 0x9c, 0x13, 0xc6, 0x6d, 0x1d, - 0x7e, 0x97, 0x3e, 0xa4, 0x0e, 0x70, 0x28, 0x74, 0xde, 0xaf, 0xfc, - 0x31, 0x08, 0x04, 0xea, 0xf7, 0x0f, 0x37, 0xb2, 0x6f, 0xdb, 0xd4, - 0x86, 0xe3, 0x2b, 0x7a, 0x1b, 0xa9, 0x3c, 0x28, 0x23, 0xf1, 0x5d, - 0x32, 0xab, 0x39, 0xbe, 0x47, 0xa8, 0xe5, 0x13, 0x2c, 0xc6, 0x3a, - 0x53, 0x71, 0xd9, 0x55, 0xcd, 0xd2, 0x47, 0xa4, 0x92, 0x4d, 0x73, - 0x64, 0x12, 0xa7, 0x82, 0x54, 0x14, 0x79, 0x8f, 0x47, 0x0b, 0xa9, - 0x37, 0x50, 0x87, 0xdd, 0x38, 0xa8, 0x25, 0x84, 0x5c, 0x9d, 0xeb, - 0x9f, 0x2e, 0xcf, 0x12, 0x9f, 0x31, 0x9f, 0x0b, 0xf9, 0xd2, 0xa2, - 0x12, 0xff, 0xfd, 0x4e, 0xc8, 0xb8, 0x10, 0xaf, 0xbe, 0x76, 0x79, - 0xb6, 0x18, 0xb4, 0x57, 0xd7, 0x10, 0xc2, 0xb8, 0x7c, 0x8b, 0xc7, - 0xac, 0x77, 0x62, 0x88, 0xeb, 0x1d, 0xab, 0xf0, 0xa2, 0x3c, 0x95, - 0x41, 0x3d, 0xc5, 0xbd, 0xd2, 0x93, 0xc4, 0x8b, 0x7c, 0xb5, 0xfc, - 0xbe, 0x67, 0xbb, 0x7c, 0x81, 0x45, 0x71, 0x0e, 0x32, 0xf4, 0xd0, - 0x3b, 0xe9, 0xcd, 0xfa, 0x1c, 0xc2, 0x96, 0xe2, 0xe8, 0xda, 0x7e, - 0x0f, 0xc0, 0xaa, 0x7e, 0xae, 0x38, 0x3e, 0xd8, 0x90, 0x99, 0x3f, - 0xec, 0x9b, 0x63, 0x2f, 0xa8, 0x5b, 0x0b, 0x7e, 0xe9, 0x1a, 0x35, - 0x0b, 0x3d, 0x27, 0xd1, 0xa8, 0x20, 0xf3, 0xad, 0xfd, 0xe3, 0x7c, - 0xc5, 0xa8, 0x67, 0x4e, 0x01, 0x83, 0xe9, 0xbf, 0xf6, 0x1a, 0x8a, - 0xb0, 0xb9, 0xcf, 0xac, 0x4a, 0x6d, 0x29, 0xa3, 0x72, 0xa9, 0xb3, - 0x55, 0x28, 0x15, 0x52, 0x0a, 0xb1, 0xed, 0x15, 0x90, 0x68, 0xc9, - 0xab, 0x63, 0x32, 0x02, 0xd1, 0x39, 0x1d, 0x3a, 0xf0, 0x3e, 0xd5, - 0xf8, 0xa8, 0xed, 0xd2, 0xbb, 0xb0, 0xa3, 0x1b, 0xd0, 0x37, 0xc7, - 0x26, 0xbb, 0xb1, 0x7c, 0x1a, 0xc5, 0x3c, 0xa0, 0xcb, 0xa6, 0xdc, - 0x92, 0xa9, 0x84, 0x10, 0x3d, 0xd5, 0x06, 0xbf, 0xe3, 0x00, 0xf3, - 0x16, 0x23, 0x38, 0x5e, 0x9f, 0x8d, 0xeb, 0x39, 0x67, 0x78, 0xfb, - 0xd9, 0xef, 0xc1, 0xff, 0xc4, 0x0b, 0x8d, 0x37, 0x6d, 0x1b, 0xc0, - 0x53, 0xc9, 0x94, 0xf2, 0xd5, 0x74, 0xf7, 0x89, 0x1f, 0xc6, 0x4f, - 0x44, 0xe3, 0x78, 0x8c, 0x02, 0xbf, 0x39, 0xbc, 0x69, 0xdb, 0x1f, - 0x22, 0x2e, 0x2c, 0xd4, 0xff, 0x98, 0xdc, 0xda, 0x8c, 0x65, 0x2d, - 0xb1, 0x22, 0x9a, 0xd6, 0xec, 0x6f, 0x96, 0xae, 0x75, 0x40, 0x66, - 0x22, 0xec, 0x5a, 0x86, 0xcd, 0x54, 0x30, 0xab, 0x9b, 0x2f, 0xe1, - 0xab, 0xec, 0xce, 0x1d, 0xa6, 0x1c, 0xa2, 0xce, 0x09, 0xa0, 0xa2, - 0x12, 0x57, 0x40, 0x56, 0x3c, 0xce, 0x13, 0x61, 0x44, 0x65, 0xd9, - 0x18, 0x4a, 0x2e, 0xe0, 0xcb, 0xc3, 0x5e, 0x2d, 0x8d, 0x78, 0xa8, - 0x9b, 0xf3, 0x80, 0x5f, 0x30, 0x5c, 0xf8, 0x2f, 0x12, 0xaf, 0xfd, - 0x85, 0x60, 0x3d, 0x2d, 0x35, 0x39, 0xe4, 0xd9, 0x91, 0x01, 0x60, - 0x07, 0xa3, 0xfb, 0x1c, 0x7b, 0x26, 0xaa, 0x9d, 0x3d, 0x01, 0xc5, - 0xaf, 0xb0, 0x3d, 0x08, 0x47, 0x92, 0x0d, 0x14, 0xc1, 0x09, 0xd0, - 0xc0, 0xea, 0xf3, 0x8b, 0x80, 0x10, 0x43, 0xbb, 0x9f, 0x5e, 0x22, - 0x8e, 0x1b, 0xdb, 0x72, 0xc4, 0x38, 0x6f, 0x83, 0x7f, 0x88, 0x03, - 0xe7, 0x93, 0xc5, 0x47, 0x5a, 0x3f, 0xba, 0x4c, 0x4e, 0xd0, 0x66, - 0xdb, 0x6f, 0x1c, 0x4a, 0x37, 0x41, 0x2c, 0xac, 0x1c, 0x0a, 0x22, - 0x61, 0xdf, 0x3e, 0xf9, 0x87, 0x7e, 0x16, 0xe6, 0x53, 0x20, 0x1e, - 0x2f, 0x45, 0x93, 0x71, 0x9f, 0x53, 0xa5, 0x02, 0xd0, 0xba, 0x5a, - 0x6d, 0xfa, 0xca, 0x1a, 0xc1, 0x48, 0x28, 0xc7, 0x8d, 0x0b, 0xb2, - 0xaf, 0xd4, 0x66, 0xc9, 0xe1, 0xa1, 0xbb, 0x3f, 0xee, 0x0d, 0x9a, - 0x7a, 0x9d, 0xcf, 0x20, 0x92, 0x62, 0x06, 0x9b, 0x58, 0x77, 0x89, - 0xe8, 0xed, 0xa8, 0xf7, 0xc0, 0xfb, 0xe0, 0xa9, 0xba, 0xa0, 0x93, - 0xdb, 0x1a, 0x19, 0x55, 0x27, 0x58, 0x59, 0xaa, 0x65, 0x73, 0xdb, - 0x71, 0x57, 0xdb, 0x3c, 0xcc, 0x1c, 0x86, 0x85, 0xf9, 0x2b, 0x6f, - 0xbc, 0xc5, 0x41, 0x51, 0x59, 0x58, 0x27, 0xc8, 0x5e, 0xf2, 0x60, - 0x4e, 0xbf, 0x85, 0xb8, 0xb1, 0xc6, 0x70, 0xe2, 0x1c, 0xd3, 0x1d, - 0x80, 0x1e, 0x38, 0x6f, 0x09, 0x9b, 0x2c, 0x82, 0x00, 0xc0, 0xc4, - 0x32, 0xc2, 0x83, 0x71, 0xb0, 0x69, 0x34, 0x81, 0x20, 0xaa, 0x40, - 0x43, 0xd3, 0x25, 0x6b, 0x93, 0x5c, 0xfe, 0x59, 0x58, 0xfe, 0xe6, - 0x65, 0x0a, 0x56, 0x11, 0x48, 0xce, 0xea, 0x8e, 0x5e, 0xd3, 0x1c, - 0x56, 0xb3, 0x47, 0x62, 0x5d, 0xb7, 0x07, 0x83, 0xf7, 0xd1, 0x3b, - 0x6e, 0xf2, 0x1c, 0xf6, 0xbe, 0x73, 0x3d, 0x89, 0xcf, 0x90, 0x02, - 0xf7, 0x1b, 0x83, 0xf4, 0x03, 0x62, 0xce, 0xc2, 0x9a, 0x91, 0x8c, - 0x0c, 0x33, 0xc5, 0xb5, 0x0c, 0x88, 0x56, 0x5f, 0x2d, 0x43, 0x14, - 0xef, 0x45, 0x4e, 0x22, 0x66, 0xc7, 0xff, 0xbe, 0xd6, 0xc7, 0x09, - 0x68, 0x4a, 0x26, 0xec, 0x3c, 0x7a, 0x2b, 0x30, 0xe5, 0x69, 0xc1, - 0x3b, 0x4e, 0x65, 0x5b, 0xf2, 0xa7, 0x95, 0x7d, 0x52, 0xbc, 0x06, - 0x33, 0x0d, 0x6e, 0x98, 0x71, 0x08, 0xe9, 0x77, 0x6c, 0xb0, 0xbd, - 0x07, 0x5b, 0x0a, 0x99, 0xc7, 0xbf, 0xa7, 0xdf, 0x5f, 0x37, 0x4b, - 0xfc, 0x92, 0xce, 0x69, 0x55, 0x80, 0x97, 0x83, 0x81, 0x25, 0x52, - 0x8c, 0xd2, 0xa4, 0x00, 0x04, 0xe7, 0xc6, 0x91, 0x9c, 0x2b, 0x9f, - 0x31, 0xba, 0x19, 0x93, 0x38, 0xeb, 0x34, 0xd1, 0x44, 0x74, 0x04, - 0x49, 0x2f, 0x3d, 0xf2, 0xbf, 0x19, 0xca, 0x75, 0x07, 0x08, 0xfc, - 0xb2, 0xf8, 0x24, 0xf1, 0xc8, 0x7a, 0x0b, 0x67, 0x69, 0x00, 0x48, - 0xff, 0xe4, 0x50, 0xe1, 0xcd, 0x2f, 0x0f, 0x23, 0x4a, 0xfb, 0x04, - 0x65, 0x4b, 0xd7, 0x8b, 0xd2, 0xfd, 0x2f, 0x0a, 0x2d, 0xc2, 0xb0, - 0x79, 0xcf, 0x31, 0x26, 0xf3, 0xe8, 0x4e, 0xe6, 0x49, 0xfb, 0x0a, - 0x21, 0x89, 0x49, 0x76, 0x79, 0xe9, 0x9a, 0xff, 0xe9, 0x27, 0xda, - 0x10, 0x79, 0xcc, 0x7b, 0xba, 0x5b, 0x12, 0x7f, 0xb0, 0x19, 0xfb, - 0xd7, 0x48, 0xb7, 0x24, 0xf8, 0x59, 0xc7, 0x17, 0x55, 0xfc, 0x8b, - 0x21, 0x57, 0xd6, 0xab, 0x35, 0x81, 0x14, 0x6c, 0xbd, 0x4c, 0xc2, - 0x09, 0xd6, 0x1d, 0x98, 0x15, 0x14, 0xd3, 0x89, 0x24, 0x17, 0x18, - 0x98, 0xe3, 0x94, 0x95, 0xba, 0x5e, 0x38, 0x0d, 0x4a, 0x61, 0x6f, - 0x28, 0xc3, 0x99, 0x8d, 0x7f, 0x56, 0x5d, 0xc2, 0xf0, 0x79, 0x4c, - 0xba, 0x09, 0x2f, 0x36, 0x9c, 0x38, 0x19, 0xd0, 0x67, 0x52, 0xeb, - 0x9a, 0x0a, 0x79, 0x37, 0x81, 0x7a, 0x38, 0x0b, 0xb9, 0xb1, 0x67, - 0x70, 0x5a, 0x29, 0xa1, 0xc7, 0x90, 0x3f, 0x02, 0xb4, 0x63, 0x1a, - 0x16, 0x66, 0x59, 0x9e, 0xe5, 0x75, 0x61, 0x38, 0xda, 0x27, 0xd5, - 0x78, 0xb3, 0x03, 0xd3, 0xbe, 0x0a, 0xb2, 0x8d, 0xad, 0xca, 0xe9, - 0xf2, 0xdf, 0x9d, 0x99, 0xab, 0x6b, 0x14, 0x1b, 0x02, 0x35, 0xc7, - 0xba, 0x4b, 0x0a, 0x48, 0x0a, 0xf0, 0xc3, 0x9a, 0x12, 0xb6, 0x8f, - 0xa6, 0xab, 0xe6, 0x8c, 0xaa, 0xab, 0x13, 0xab, 0x4c, 0xdb, 0x1a, - 0xcf, 0x19, 0x54, 0x13, 0xa0, 0xde, 0x36, 0xd8, 0x03, 0x0c, 0x7f, - 0xc1, 0x99, 0x7a, 0x99, 0x4d, 0xc3, 0xa0, 0xc6, 0x04, 0x62, 0xec, - 0x44, 0x4c, 0x59, 0x3a, 0xab, 0x36, 0x5f, 0xd0, 0xba, 0x56, 0x27, - 0xf1, 0xff, 0x02, 0xec, 0x30, 0xa8, 0x29, 0xac, 0x0a, 0x02, 0xeb, - 0x0c, 0x40, 0x73, 0xf5, 0x58, 0xf2, 0x4e, 0x21, 0x6a, 0x1c, 0xc4, - 0x30, 0x4c, 0x33, 0x6d, 0xb5, 0x66, 0xb6, 0x68, 0x2b, 0x5c, 0xc8, - 0xe2, 0xab, 0x9b, 0x76, 0x30, 0x02, 0xdd, 0x6e, 0xe3, 0x7b, 0x14, - 0x9a, 0x25, 0xce, 0x9f, 0x8e, 0x3f, 0x4f, 0xee, 0x36, 0x35, 0xe4, - 0x35, 0xa2, 0x65, 0x10, 0xac, 0xd4, 0xca, 0xd4, 0xd5, 0xb1, 0x69, - 0x8e, 0xa5, 0xfd, 0xcb, 0x80, 0xa5, 0x77, 0xf9, 0xcc, 0xbd, 0xd6, - 0x9f, 0x03, 0x98, 0xcb, 0x5f, 0x94, 0x38, 0x78, 0xa9, 0xe4, 0x6a, - 0xc8, 0x8e, 0xcb, 0xd4, 0x2e, 0x93, 0xd9, 0x0c, 0x42, 0x4b, 0xfb, - 0xa0, 0x60, 0x65, 0xab, 0x22, 0x47, 0x6b, 0xcd, 0xba, 0x0d, 0x0d, - 0xc1, 0xd9, 0x8f, 0x44, 0x9b, 0xb7, 0x03, 0xec, 0x18, 0x51, 0x5e, - 0xc4, 0x24, 0x6a, 0x24, 0x89, 0xbb, 0x6a, 0x56, 0x45, 0xbb, 0xe0, - 0xbf, 0x6e, 0x47, 0x49, 0x5b, 0xf5, 0x33, 0x86, 0x9c, 0xa8, 0x7f, - 0x7a, 0x07, 0x19, 0x44, 0xe9, 0x53, 0x85, 0x5e, 0x37, 0x9f, 0x4a, - 0x7e, 0xde, 0x97, 0xdb, 0xdd, 0x9c, 0xd1, 0x6f, 0xaf, 0x19, 0x7a, - 0xba, 0xfa, 0xcf, 0xa0, 0xfe, 0x75, 0x34, 0x56, 0xf2, 0x9a, 0x78, - 0xba, 0x78, 0xaf, 0x78, 0xb4, 0x2f, 0x19, 0x6a, 0xc5, 0xfb, 0xd5, - 0x87, 0x1a, 0xab, 0x1f, 0x2e, 0xe9, 0xfe, 0xbf, 0xba, 0x5e, 0x55, - 0x79, 0x40, 0xc1, 0xc9, 0xae, 0x6a, 0xc4, 0x70, 0xf8, 0xd8, 0xa0, - 0x48, 0x2a, 0x2f, 0x99, 0x64, 0xa8, 0xb3, 0x1f, 0xda, 0xea, 0x29, - 0x37, 0x98, 0x63, 0xe3, 0xbf, 0xff, 0x5d, 0x81, 0xf2, 0xad, 0xe3, - 0xe6, 0xab, 0x23, 0xf3, 0x7d, 0x70, 0xaa, 0xaf, 0xda, 0x14, 0x57, - 0x18, 0x94, 0xa1, 0x37, 0x49, 0x4f, 0x36, 0x63, 0x9d, 0x9b, 0xa1, - 0x14, 0x03, 0x36, 0xbc, 0x63, 0x21, 0x65, 0x49, 0x75, 0xeb, 0x27, - 0x0a, 0x2d, 0x95, 0x76, 0x88, 0xf9, 0x09, 0xcb, 0x17, 0x84, 0xcb, - 0x07, 0x8b, 0xff, 0x5f, 0x4f, 0x6d, 0x7a, 0x41, 0xa1, 0x71, 0x6b, - 0x3c, 0xda, 0x7f, 0xfd, 0x28, 0x8e, 0x5f, 0x50, 0xeb, 0x0f, 0xdb, - 0x18, 0xe2, 0x91, 0x5a, 0xc1, 0x3d, 0x06, 0x30, 0x24, 0xf5, 0xc6, - 0x9e, 0x3e, 0x71, 0xf9, 0x64, 0x00, 0x77, 0x5c, 0xb9, 0xea, 0x0a, - 0x97, 0xdd, 0x79, 0xa0, 0x2b, 0x65, 0xec, 0x78, 0xbc, 0x20, 0xd3, - 0x77, 0xd6, 0x15, 0xfc, 0x5a, 0x58, 0x0c, 0xd4, 0x3e, 0xcf, 0xa1, - 0x24, 0x44, 0xf9, 0xef, 0xe4, 0x33, 0x0d, 0xf6, 0x23, 0x36, 0x46, - 0xf7, 0x8a, 0xc5, 0xed, 0x99, 0x5b, 0x35, 0xd3, 0xa3, 0xcc, 0xed, - 0xc9, 0x2b, 0xdf, 0xc8, 0xbe, 0x83, 0x27, 0x00, 0xde, 0x54, 0x12, - 0xd1, 0x28, 0x51, 0x1c, 0x86, 0xc2, 0x8a, 0x6a, 0xe9, 0x54, 0xa1, - 0x29, 0x4a, 0x69, 0x0a, 0x1c, 0x95, 0x00, 0xa5, 0xb5, 0x5a, 0x87, - 0x30, 0xa3, 0xc5, 0xcc, 0xa6, 0x56, 0x81, 0x12, 0x98, 0x8f, 0x9e, - 0xb9, 0xb8, 0x48, 0xe3, 0x3f, 0x44, 0xa1, 0x74, 0xad, 0x97, 0x2a, - 0x2d, 0x7f, 0x07, 0x46, 0x9d, 0xdf, 0xdc, 0xab, 0x6b, 0x8e, 0x27, - 0x5d, 0x93, 0xc7, 0xb9, 0xca, 0x64, 0x7e, 0x44, 0xf7, 0xc8, 0xca, - 0xca, 0x13, 0xde, 0xff, 0x8c, 0xc8, 0xb6, 0x98, 0xda, 0x2c, 0xe1, - 0x6d, 0xba, 0xb9, 0x50, 0xc1, 0xef, 0x2e, 0x00, 0x53, 0x09, 0x5c, - 0xd9, 0xca, 0x0a, 0xd0, 0x3f, 0x22, 0xb3, 0xae, 0x26, 0xed, 0xd4, - 0xec, 0xaa, 0xf2, 0x88, 0x26, 0x4a, 0xe8, 0x5d, 0xfa, 0x3d, 0xef, - 0x8a, 0x88, 0xbe, 0x79, 0x13, 0x50, 0x2e, 0x56, 0x46, 0x43, 0x98, - 0x89, 0x05, 0xab, 0x70, 0xdc, 0xd9, 0x5f, 0x0f, 0x1b, 0x87, 0xee, - 0x0b, 0x4a, 0x47, 0xa6, 0x79, 0x46, 0x8d, 0x84, 0xbe, 0xb8, 0x66, - 0x82, 0x24, 0xfa, 0x06, 0x67, 0xf9, 0x66, 0xf4, 0x5f, 0xe4, 0xbb, - 0x83, 0x6b, 0x41, 0xd7, 0x9f, 0x9b, 0x7c, 0x69, 0x42, 0x02, 0x54, - 0xb3, 0x14, 0xcb, 0xf2, 0x5c, 0xbe, 0xf5, 0x16, 0xd7, 0xb4, 0xf1, - 0x19, 0xdf, 0x6d, 0x5d, 0x27, 0x38, 0x9e, 0xa0, 0x74, 0x5d, 0x76, - 0x48, 0x67, 0x70, 0x55, 0x33, 0x67, 0x83, 0xde, 0x83, 0xe0, 0x53, - 0x1c, 0xc5, 0x85, 0xab, 0xce, 0x91, 0xd0, 0x70, 0xa7, 0x43, 0x87, - 0x31, 0x17, 0xe3, 0x84, 0xe0, 0xb9, 0x24, 0x02, 0x58, 0x1f, 0x6f, - 0x84, 0xbe, 0x8a, 0x0a, 0x83, 0x6b, 0x06, 0x43, 0xe6, 0x52, 0x9d, - 0xf2, 0x07, 0xeb, 0xd6, 0x91, 0x3c, 0xa7, 0xe8, 0x4e, 0x9b, 0xe8, - 0xa2, 0xa6, 0x45, 0x66, 0xe0, 0xf9, 0xb5, 0x1d, 0x92, 0x21, 0x5b, - 0xbd, 0xf1, 0xe5, 0x51, 0xdb, 0xde, 0xf6, 0xb8, 0x57, 0x8c, 0x96, - 0xc1, 0x5c, 0x75, 0x89, 0xab, 0x84, 0x20, 0xdd, 0x1f, 0xac, 0xdd, - 0xfa, 0xd8, 0x52, 0xde, 0xce, 0x30, 0x15, 0x0a, 0xad, 0x7c, 0x4a, - 0x9a, 0xe8, 0x82, 0xc4, 0x54, 0x81, 0x9d, 0x3a, 0x52, 0xc1, 0x6d, - 0x29, 0xa9, 0x1a, 0x0d, 0x7b, 0x49, 0xd3, 0x63, 0xa0, 0xca, 0xb4, - 0x3e, 0xcb, 0x62, 0xb0, 0xc1, 0x67, 0x4b, 0x27, 0x69, 0x68, 0xd5, - 0x8b, 0x23, 0x0d, 0x56, 0xb3, 0x2f, 0xfc, 0xc8, 0x96, 0xc4, 0xbb, - 0xe6, 0xe0, 0xa7, 0x68, 0x42, 0xaf, 0xd1, 0xb4, 0x07, 0xe5, 0x20, - 0x42, 0x59, 0x46, 0x60, 0x8c, 0x7c, 0x94, 0xcb, 0xb0, 0xe9, 0xcd, - 0x23, 0xe4, 0x4f, 0x54, 0xfe, 0x1b, 0x16, 0xd9, 0xd9, 0xb0, 0x58, - 0x72, 0xa6, 0xa7, 0x6f, 0x61, 0x4a, 0x73, 0x30, 0x9f, 0xff, 0x15, - 0x6b, 0xed, 0x83, 0x43, 0xbf, 0xd1, 0xa0, 0x31, 0x5d, 0xeb, 0xb3, - 0x5f, 0x88, 0xd5, 0x8a, 0x58, 0x5f, 0xd1, 0xf1, 0x1d, 0x28, 0x44, - 0x74, 0x06, 0x92, 0xa8, 0x8e, 0x38, 0x30, 0x1c, 0xa6, 0x9b, 0xe8, - 0x29, 0x4f, 0x58, 0xf3, 0xf1, 0xa2, 0x88, 0xf8, 0xe4, 0x47, 0x55, - 0xfa, 0xa5, 0xf2, 0x4a, 0xff, 0x09, 0x7d, 0x8e, 0x4a, 0x3a, 0x66, - 0xdc, 0x9c, 0x52, 0x96, 0xdf, 0x19, 0xaa, 0x8d, 0x94, 0xaa, 0xdb, - 0xa4, 0xe3, 0xb5, 0x21, 0x7f, 0x77, 0x65, 0x34, 0xc0, 0xba, 0x4f, - 0x04, 0xe3, 0xe9, 0x88, 0x29, 0x6d, 0xa9, 0x09, 0x65, 0x3c, 0xf5, - 0xbc, 0x02, 0x6b, 0x71, 0x80, 0xa0, 0x4e, 0x2b, 0x90, 0x55, 0xa7, - 0xcf, 0x32, 0x76, 0xd3, 0xb0, 0x61, 0x18, 0x13, 0xc4, 0xa9, 0x2b, - 0x26, 0xd0, 0xb9, 0xdf, 0x91, 0xfd, 0x30, 0x3a, 0xbf, 0xf6, 0x48, - 0x82, 0x89, 0xd7, 0xfd, 0x8d, 0x43, 0x23, 0xa2, 0x07, 0x66, 0x7b, - 0x18, 0x92, 0x6e, 0xf3, 0x00, 0xbd, 0x3d, 0x28, 0x0b, 0x04, 0xa5, - 0x9c, 0xd8, 0x8b, 0x75, 0x45, 0x56, 0x49, 0xa7, 0x1d, 0x41, 0xaa, - 0x33, 0x79, 0xb6, 0xcc, 0x32, 0x93, 0x5b, 0xb1, 0x93, 0x6c, 0x25, - 0x70, 0x46, 0x85, 0xa8, 0x12, 0xc0, 0x09, 0x0a, 0xbd, 0x1b, 0xbd, - 0x50, 0xd7, 0x16, 0xd7, 0x31, 0xfe, 0x24, 0xe8, 0xf3, 0xe4, 0x3d, - 0x71, 0xdb, 0x1e, 0xa3, 0xfa, 0xcd, 0xb5, 0xbb, 0xde, 0x55, 0xa3, - 0x9f, 0x0a, 0x67, 0x84, 0x95, 0x00, 0x13, 0x2e, 0xd9, 0x44, 0x95, - 0xbc, 0x18, 0x30, 0x92, 0x49, 0x1d, 0xdc, 0x1a, 0x90, 0x5f, 0x3a, - 0xe3, 0x46, 0xbf, 0x4a, 0x7d, 0xef, 0xe6, 0xc1, 0x71, 0xfd, 0x5b, - 0x9d, 0x80, 0xa4, 0xee, 0xe5, 0x9c, 0x6d, 0xb3, 0x21, 0x5d, 0xc3, - 0x2b, 0x03, 0xec, 0xbf, 0x40, 0xb6, 0xbd, 0xf7, 0x95, 0xb9, 0x76, - 0xb7, 0x17, 0xa8, 0xcc, 0x0b, 0x23, 0x75, 0x2f, 0xf0, 0x17, 0x46, - 0xea, 0x4d, 0x90, 0x0b, 0x58, 0x74, 0x5c, 0x88, 0x54, 0x27, 0x1f, - 0x9e, 0x9a, 0x1b, 0x3f, 0x3f, 0xfa, 0x68, 0x48, 0x97, 0x4e, 0x6c, - 0xa1, 0xa8, 0xa1, 0xc1, 0xdd, 0x27, 0x9e, 0x7f, 0xe0, 0x92, 0x20, - 0x8b, 0xf4, 0x11, 0x8d, 0xcb, 0x9a, 0x85, 0xa6, 0x56, 0xf0, 0x47, - 0x13, 0xda, 0x6c, 0xbd, 0x28, 0x38, 0x5e, 0x81, 0x8c, 0x04, 0xc0, - 0x7f, 0x4b, 0x0f, 0x28, 0xd6, 0x61, 0x32, 0xb2, 0x66, 0x91, 0xd6, - 0x41, 0xcf, 0x57, 0x31, 0xf5, 0xb3, 0x1a, 0xe2, 0xcc, 0xef, 0x0e, - 0x43, 0x04, 0xfb, 0x4d, 0x64, 0xc0, 0x2a, 0x29, 0xbd, 0x9b, 0xbc, - 0xb5, 0x64, 0x90, 0xcb, 0x6a, 0x70, 0xff, 0xb9, 0x47, 0xd1, 0x78, - 0x25, 0x96, 0x72, 0xd8, 0x26, 0xd7, 0x5f, 0xc5, 0x59, 0x15, 0x95, - 0xf1, 0x7b, 0x89, 0x5b, 0x1e, 0x0c, 0x2d, 0x3e, 0xcc, 0xc4, 0x3f, - 0x42, 0xa9, 0xd5, 0x20, 0xb6, 0x68, 0x8b, 0x77, 0x85, 0x42, 0x8b, - 0xb3, 0x5c, 0xa2, 0xa7, 0x97, 0x4e, 0x4e, 0xa3, 0x30, 0xb8, 0xa4, - 0x81, 0x54, 0x76, 0x63, 0xf2, 0xaf, 0x61, 0xed, 0x23, 0xc8, 0xbb, - 0x7e, 0x5d, 0x79, 0x85, 0x19, 0x6c, 0xbe, 0x2e, 0x7d, 0x11, 0x6a, - 0x37, 0xcc, 0x13, 0x9d, 0x67, 0xac, 0x89, 0x9b, 0xb8, 0x64, 0xb2, - 0x1c, 0xac, 0x6f, 0x16, 0x8e, 0x1f, 0x06, 0x12, 0xb6, 0xe8, 0x59, - 0x75, 0x2f, 0xb5, 0x76, 0x15, 0x18, 0xc7, 0x77, 0xd5, 0xca, 0xc8, - 0x8a, 0x57, 0xe0, 0x6d, 0xc7, 0xf4, 0x50, 0x93, 0xb4, 0xd4, 0x35, - 0x8e, 0x18, 0x02, 0xcf, 0xe6, 0x75, 0x99, 0xef, 0xc6, 0xf3, 0xf8, - 0xd9, 0xb8, 0xf5, 0xab, 0x9e, 0x96, 0xce, 0x47, 0x47, 0x87, 0x95, - 0x1b, 0xd4, 0x90, 0x83, 0x2a, 0xee, 0x50, 0x10, 0xae, 0x16, 0xa4, - 0x29, 0x26, 0x74, 0xea, 0x01, 0x58, 0xaf, 0x4f, 0x85, 0x4c, 0x64, - 0xdc, 0x6b, 0x54, 0xeb, 0xbc, 0x55, 0x25, 0x56, 0x2d, 0x3d, 0xc3, - 0x77, 0x12, 0xa9, 0xae, 0x48, 0xd8, 0xb5, 0xb5, 0x11, 0x33, 0x24, - 0xa3, 0x1e, 0x87, 0x9c, 0x6f, 0x89, 0x95, 0x95, 0xbb, 0x77, 0xff, - 0x54, 0xf0, 0x14, 0xcc, 0x8b, 0x27, 0xd7, 0x95, 0xfe, 0x00, 0xcf, - 0x9a, 0x0d, 0xa5, 0x6e, 0x43, 0x50, 0x84, 0x67, 0x50, 0x6e, 0x68, - 0xc3, 0x87, 0xcf, 0xb9, 0x1c, 0xb9, 0x7c, 0x73, 0xba, 0x64, 0x27, - 0x0f, 0x0c, 0x93, 0xdf, 0xd4, 0x1a, 0xd4, 0x13, 0x0e, 0xd5, 0xa6, - 0xf3, 0x1f, 0xda, 0x24, 0x0a, 0x6a, 0x81, 0x76, 0x89, 0xc7, 0x2b, - 0xb8, 0xea, 0x86, 0x5a, 0x5e, 0x30, 0x15, 0x7b, 0xfc, 0x1c, 0x2e, - 0x81, 0xe2, 0x32, 0xfb, 0x16, 0xfd, 0x07, 0x37, 0x8c, 0xdb, 0xc6, - 0x7b, 0xfb, 0xc1, 0x07, 0xb7, 0x1e, 0xcc, 0x46, 0xf3, 0x96, 0xb1, - 0xd6, 0xa0, 0xae, 0x3f, 0x76, 0xea, 0x87, 0x6f, 0x7b, 0xd3, 0x01, - 0x7c, 0xe6, 0xfa, 0x65, 0x56, 0x80, 0xd9, 0xb5, 0x68, 0x53, 0x73, - 0xb0, 0xbf, 0x1b, 0xd4, 0xec, 0x43, 0x47, 0x33, 0x99, 0x3c, 0xde, - 0x61, 0xd0, 0x87, 0x38, 0x76, 0xb3, 0xd1, 0x11, 0x31, 0x4b, 0x40, - 0xb4, 0xf0, 0x72, 0xed, 0xa5, 0xa5, 0x2b, 0xb6, 0xa4, 0xb3, 0xc3, - 0x47, 0x3e, 0xfd, 0x7c, 0x98, 0x03, 0xdc, 0x68, 0x0e, 0xbe, 0xe8, - 0x50, 0xe3, 0x52, 0xaf, 0x85, 0x01, 0xeb, 0x1a, 0xc0, 0xd9, 0x78, - 0x91, 0x4f, 0x55, 0x49, 0x7e, 0x35, 0x59, 0x70, 0xd0, 0xc4, 0x19, - 0xf8, 0xb4, 0x25, 0x8d, 0x29, 0xa4, 0x22, 0x67, 0x81, 0x6b, 0x55, - 0xa7, 0x43, 0xc5, 0xb2, 0x4c, 0x46, 0x65, 0xec, 0xc7, 0xa4, 0x3a, - 0xdc, 0x42, 0x02, 0x81, 0xf0, 0x78, 0xf5, 0x49, 0x30, 0x93, 0x51, - 0xed, 0x28, 0xb0, 0x87, 0x5a, 0x42, 0x24, 0xee, 0x81, 0x1b, 0x28, - 0x98, 0xd8, 0x89, 0xa5, 0x81, 0xea, 0x30, 0xb3, 0xf9, 0xc4, 0xa2, - 0x77, 0x71, 0xd4, 0x9a, 0x1d, 0xcf, 0xaf, 0x01, 0x03, 0x90, 0x0d, - 0x2b, 0x65, 0xa2, 0x64, 0x9f, 0xa6, 0xc8, 0xb2, 0x4c, 0xa2, 0x90, - 0x2d, 0xbc, 0xa3, 0x5f, 0xd5, 0x6d, 0xbe, 0x07, 0x3f, 0x79, 0x2c, - 0xcd, 0x37, 0x3d, 0xae, 0x81, 0x64, 0x3e, 0x32, 0xe0, 0x96, 0x78, - 0xef, 0x8b, 0x1c, 0x5d, 0xba, 0xec, 0x59, 0xf5, 0x75, 0xb8, 0x68, - 0x2d, 0x23, 0x93, 0x7e, 0x0d, 0xb1, 0xec, 0x2a, 0xdb, 0xe4, 0xbb, - 0xb1, 0x5e, 0x15, 0x17, 0x9a, 0x83, 0x15, 0x01, 0xd2, 0xc3, 0x21, - 0x91, 0x4f, 0x9d, 0xec, 0x6b, 0xa4, 0x71, 0x7b, 0x75, 0x20, 0x8d, - 0x1f, 0x32, 0xd2, 0x17, 0x22, 0x6e, 0x08, 0x01, 0xec, 0xc1, 0xb5, - 0x80, 0x2f, 0xcb, 0x67, 0xa7, 0xd5, 0xe9, 0xb0, 0xaf, 0xe7, 0x19, - 0x67, 0xee, 0x6f, 0xa4, 0x65, 0x95, 0xdb, 0x4c, 0x06, 0x02, 0x93, - 0xd6, 0x30, 0xcf, 0xfb, 0x10, 0x3d, 0xe2, 0xcd, 0x08, 0x66, 0xf3, - 0xab, 0xdc, 0x54, 0x24, 0xbc, 0x65, 0xa8, 0x44, 0xde, 0x2c, 0x31, - 0x66, 0x7c, 0xca, 0xd0, 0xad, 0xc8, 0x9f, 0x3a, 0xdf, 0x9a, 0xc7, - 0xdf, 0xd0, 0xd0, 0x67, 0x6f, 0x4e, 0xe9, 0xbf, 0x4e, 0xc3, 0x9a, - 0x8d, 0x70, 0xbe, 0x25, 0x21, 0x48, 0x68, 0x30, 0xb5, 0xb5, 0xa5, - 0xea, 0xa3, 0x37, 0xeb, 0xea, 0x5d, 0x98, 0xe0, 0xcd, 0x84, 0x55, - 0x82, 0x62, 0x7c, 0x8d, 0x31, 0x32, 0xd5, 0xc4, 0x44, 0xe5, 0xf5, - 0xc5, 0x8b, 0xa1, 0xda, 0xa7, 0x9d, 0x4b, 0x3c, 0xb4, 0xf9, 0xf9, - 0x10, 0x76, 0x3f, 0x93, 0xb2, 0x8a, 0x0d, 0x2f, 0xa1, 0x7b, 0x93, - 0x12, 0x2c, 0x58, 0x00, 0x24, 0x7b, 0xc4, 0x35, 0x27, 0xdd, 0x55, - 0x82, 0x2f, 0x11, 0xc3, 0x3b, 0xd9, 0xd0, 0x59, 0x58, 0xb4, 0x8c, - 0x53, 0x2e, 0x7f, 0x2c, 0xd7, 0x87, 0xa5, 0x02, 0xcc, 0x37, 0x45, - 0x70, 0x1e, 0x02, 0xb8, 0x31, 0x09, 0x4b, 0xe2, 0xfe, 0x2b, 0x16, - 0x89, 0xd3, 0x70, 0x59, 0x1c, 0xb6, 0x49, 0x8e, 0x68, 0x9c, 0x1c, - 0x78, 0x89, 0x69, 0x24, 0x45, 0xd5, 0x84, 0xa6, 0x0b, 0x92, 0x15, - 0xfe, 0x5e, 0xd1, 0xbb, 0x84, 0x28, 0x9a, 0xb1, 0xd5, 0x60, 0x7f, - 0x18, 0x65, 0x9a, 0xad, 0xa0, 0x7d, 0x3f, 0xd3, 0x38, 0xbe, 0x04, - 0x47, 0x0d, 0x13, 0x64, 0x33, 0x37, 0x88, 0xc5, 0x3f, 0xde, 0xe5, - 0x59, 0x7d, 0xb3, 0x0e, 0x6c, 0x71, 0xb5, 0x1b, 0x0d, 0x21, 0x95, - 0x33, 0x1b, 0x19, 0x6a, 0x27, 0xa7, 0x28, 0x28, 0x8d, 0xd7, 0x2e, - 0xbc, 0x86, 0xa5, 0xdc, 0xbe, 0xd1, 0xad, 0x93, 0xff, 0x68, 0xfe, - 0x6b, 0x0e, 0xf8, 0x54, 0x81, 0x9d, 0x47, 0x78, 0x57, 0xa5, 0x3e, - 0x17, 0x77, 0x89, 0x9f, 0x4e, 0x7a, 0x1c, 0x07, 0x96, 0x08, 0x6b, - 0xba, 0xaa, 0x86, 0xcf, 0x87, 0x0a, 0x77, 0xc5, 0xeb, 0xaa, 0x0d, - 0x04, 0xd3, 0x0f, 0x2a, 0xc1, 0x21, 0xde, 0x99, 0xa3, 0xac, 0x5f, - 0xdd, 0x7b, 0x3a, 0xf7, 0x72, 0xf7, 0x45, 0x4f, 0xd8, 0x9e, 0xb0, - 0x0e, 0xd8, 0x25, 0x09, 0xe3, 0x72, 0x39, 0xa4, 0xb8, 0x97, 0x35, - 0x06, 0x40, 0xc5, 0x62, 0x29, 0x20, 0x7e, 0x83, 0xce, 0xda, 0x0c, - 0x13, 0x85, 0x45, 0x62, 0x41, 0x01, 0x96, 0xd1, 0x35, 0x51, 0x3c, - 0x3f, 0xdd, 0x58, 0x57, 0x68, 0x75, 0x82, 0x4c, 0xd8, 0x4c, 0x3d, - 0xae, 0xbe, 0x4a, 0xb8, 0x0f, 0x54, 0x35, 0xda, 0x66, 0xf4, 0x7d, - 0x9f, 0x89, 0xd1, 0xc1, 0xd4, 0x6a, 0x52, 0x32, 0xd6, 0xfa, 0x52, - 0xc6, 0x50, 0x1e, 0xd9, 0xb4, 0xbd, 0x0c, 0xdc, 0x03, 0x4c, 0xf6, - 0x77, 0x0c, 0x5d, 0xf2, 0xb9, 0x35, 0x50, 0x30, 0x0a, 0x97, 0xd7, - 0xbc, 0x0f, 0x17, 0xd3, 0xf8, 0xd3, 0x5d, 0x73, 0x17, 0xe7, 0x5e, - 0x67, 0x44, 0xbd, 0x71, 0x22, 0xe3, 0xf8, 0xef, 0x38, 0xa0, 0xe0, - 0x69, 0xbb, 0x43, 0x4d, 0x7a, 0x12, 0xa5, 0x76, 0x8c, 0x18, 0x72, - 0x8e, 0xa3, 0x27, 0xfe, 0x20, 0x58, 0xa7, 0x42, 0x7b, 0x46, 0xc3, - 0x30, 0x2e, 0xc7, 0x4f, 0xef, 0x56, 0x36, 0xf7, 0x57, 0x25, 0x08, - 0x5e, 0xcf, 0xd5, 0xc0, 0xa0, 0x86, 0xf0, 0x6b, 0x14, 0x95, 0xb3, - 0x5e, 0xf3, 0x08, 0x44, 0xcd, 0x3a, 0x74, 0x12, 0x9b, 0x02, 0x34, - 0x19, 0x51, 0x81, 0xdc, 0x72, 0x01, 0xdc, 0xa9, 0xb5, 0xfd, 0x1b, - 0x1a, 0x3e, 0xfb, 0x0b, 0xee, 0x49, 0x66, 0x6e, 0x75, 0x4e, 0x93, - 0xf8, 0x8e, 0xe3, 0x7b, 0xe9, 0xd1, 0xd8, 0x20, 0x00, 0x9c, 0xa1, - 0xc4, 0x82, 0x61, 0xfc, 0xa9, 0x07, 0xd3, 0x23, 0x44, 0x63, 0x79, - 0x77, 0x78, 0x9b, 0x19, 0xee, 0x83, 0xc5, 0x1b, 0xd1, 0x10, 0x17, - 0xe5, 0xe5, 0x14, 0xee, 0xed, 0xc3, 0xbf, 0x87, 0x2f, 0x24, 0x33, - 0xcd, 0x08, 0xb9, 0x01, 0xdf, 0x88, 0x01, 0x6f, 0xba, 0x13, 0x5e, - 0x48, 0xc9, 0x5f, 0x8d, 0x79, 0xef, 0xd1, 0x0d, 0x19, 0x83, 0x96, - 0x91, 0xe6, 0xdc, 0x3f, 0x8d, 0xcf, 0xe4, 0xd6, 0x23, 0xbe, 0xe2, - 0x37, 0xe5, 0x5c, 0x2e, 0x5e, 0xa2, 0x84, 0x1f, 0xb4, 0x3c, 0x96, - 0xcf, 0xf0, 0x9a, 0x82, 0x60, 0xde, 0xbb, 0xe0, 0x94, 0x0c, 0xf7, - 0x37, 0x8d, 0x6b, 0x60, 0x7c, 0x1b, 0x28, 0x41, 0xed, 0xbb, 0x2b, - 0xe3, 0x70, 0x49, 0xc4, 0x64, 0x40, 0x9a, 0x03, 0x67, 0x46, 0x9d, - 0x7e, 0x86, 0x4f, 0xe8, 0xf2, 0xb2, 0xee, 0xe5, 0x6b, 0x4a, 0x5e, - 0xb7, 0x18, 0x64, 0x6b, 0xd1, 0xc8, 0x6f, 0xcf, 0x17, 0x5c, 0x6a, - 0x69, 0x08, 0xbe, 0xe8, 0xce, 0x55, 0xe9, 0xc9, 0xa2, 0x03, 0x98, - 0x1a, 0xa8, 0x06, 0x22, 0xf2, 0xfb, 0x9e, 0x69, 0xbf, 0x71, 0x0a, - 0x25, 0xdb, 0xae, 0x27, 0x02, 0x06, 0x3c, 0x9b, 0xc9, 0x2c, 0x76, - 0x3e, 0x75, 0x9e, 0x81, 0xfd, 0x78, 0x2c, 0xa0, 0xd7, 0xa7, 0x6f, - 0xd8, 0xe7, 0x84, 0x1e, 0xaa, 0x49, 0xb9, 0x89, 0xb5, 0x98, 0x93, - 0xbe, 0xf4, 0xa7, 0xf0, 0xab, 0x66, 0x21, 0xa9, 0x0e, 0x1c, 0x98, - 0x28, 0xc2, 0x93, 0x83, 0x73, 0x93, 0xe8, 0x0e, 0x2d, 0x57, 0xa0, - 0x27, 0x35, 0xce, 0x9f, 0x3c, 0x9d, 0x1b, 0x7f, 0x22, 0xee, 0x2e, - 0x0d, 0xbc, 0x4f, 0x70, 0x80, 0xd8, 0x41, 0xbc, 0xb5, 0x58, 0x65, - 0xc5, 0x95, 0x2a, 0xad, 0xd1, 0xac, 0xd2, 0x82, 0x23, 0x28, 0xd0, - 0x7c, 0x25, 0xec, 0x81, 0x24, 0xa4, 0x35, 0x90, 0xc6, 0xf1, 0x75, - 0x9d, 0xcb, 0xed, 0x2a, 0x8d, 0xa2, 0x81, 0x35, 0xe0, 0x75, 0x0b, - 0xe1, 0x23, 0xa5, 0xb2, 0x3c, 0xad, 0x50, 0x29, 0x84, 0xe0, 0x9e, - 0x57, 0x75, 0x19, 0xf6, 0x32, 0xbb, 0xec, 0x78, 0xcb, 0x9a, 0x65, - 0x59, 0xc0, 0x23, 0x46, 0x79, 0x34, 0xc9, 0x78, 0x4d, 0x2e, 0xed, - 0x61, 0x21, 0x5d, 0x5c, 0xa2, 0x1c, 0x99, 0x47, 0xe9, 0xd0, 0xf4, - 0xd0, 0x04, 0x68, 0xa0, 0xa5, 0xc0, 0x1a, 0x6e, 0x82, 0x88, 0x56, - 0x74, 0xba, 0xfc, 0xe9, 0xd2, 0xfb, 0x23, 0x91, 0x3d, 0x67, 0x26, - 0x3c, 0xbf, 0x84, 0xa4, 0xfd, 0x63, 0x18, 0x8c, 0x92, 0xcf, 0x00, - 0x6a, 0x6e, 0x88, 0x32, 0xdf, 0x0a, 0x5d, 0x3d, 0x02, 0x76, 0xd0, - 0x1a, 0x97, 0xe1, 0xdd, 0x2d, 0x84, 0xf2, 0xc8, 0x79, 0x8b, 0x45, - 0x5d, 0x81, 0x9b, 0xe9, 0xa5, 0x71, 0x2f, 0x5c, 0x30, 0x41, 0xaf, - 0x29, 0xd8, 0x07, 0xd2, 0xa1, 0xfd, 0xb6, 0xed, 0xa2, 0x2e, 0xc0, - 0xfc, 0xd8, 0x85, 0x5a, 0x26, 0xc6, 0x05, 0x05, 0x29, 0x91, 0x33, - 0xc0, 0x3c, 0xf6, 0x18, 0x53, 0xfc, 0x77, 0x1b, 0x9c, 0x89, 0x04, - 0xc6, 0x90, 0x5e, 0xf4, 0x85, 0xd5, 0xcf, 0xa7, 0x20, 0xd3, 0x63, - 0xe3, 0x8a, 0x24, 0xea, 0x68, 0x69, 0xfe, 0xa9, 0x03, 0xac, 0xd2, - 0xe3, 0x5f, 0xa0, 0xa2, 0xeb, 0xdb, 0x24, 0x20, 0x89, 0x61, 0xd2, - 0x14, 0x42, 0xaa, 0x76, 0x9b, 0x24, 0x7d, 0xd5, 0x5b, 0x49, 0x8b, - 0xe8, 0xb1, 0xf3, 0x35, 0x0d, 0xe3, 0x25, 0xfb, 0xe5, 0xab, 0x2a, - 0x68, 0x8b, 0x99, 0xc2, 0x00, 0xa5, 0x87, 0xae, 0xfb, 0x12, 0x2c, - 0x28, 0x38, 0xee, 0x71, 0x3c, 0x0e, 0x27, 0x59, 0xbe, 0xc2, 0x03, - 0x3d, 0x4b, 0x8b, 0x15, 0x32, 0x46, 0xdf, 0xf0, 0xd1, 0x80, 0xbb, - 0xcb, 0x5e, 0x50, 0x28, 0xb2, 0xc9, 0x1f, 0xe1, 0x42, 0x91, 0x9b, - 0x53, 0x38, 0x8f, 0xb2, 0xe2, 0x48, 0xc4, 0x5f, 0x3d, 0xe7, 0x45, - 0xcd, 0x0a, 0x3d, 0x15, 0xbb, 0xe2, 0x9a, 0xb5, 0xcc, 0x61, 0xc9, - 0xeb, 0x26, 0xaa, 0xf4, 0x8c, 0x01, 0x0c, 0xfb, 0x6c, 0x34, 0xc8, - 0x14, 0x7d, 0x38, 0x2e, 0xf1, 0x5a, 0xa9, 0xd5, 0xd6, 0xe6, 0x87, - 0x32, 0x41, 0xe4, 0xe3, 0x4a, 0xe4, 0xbe, 0x29, 0xd3, 0xc4, 0xf4, - 0xf1, 0xdd, 0xc2, 0x66, 0xc5, 0xba, 0x0b, 0x3e, 0xa9, 0x1f, 0xfb, - 0xc5, 0xd1, 0x77, 0xa4, 0x80, 0x11, 0xb7, 0xed, 0xa7, 0xc5, 0x43, - 0x7d, 0xe2, 0x90, 0x73, 0x00, 0xde, 0xd6, 0xa5, 0xd9, 0x46, 0xa1, - 0x26, 0xaa, 0xf2, 0x24, 0xb1, 0xe0, 0x1d, 0x40, 0xd6, 0x52, 0x1d, - 0x52, 0x5c, 0x0e, 0xe4, 0x5e, 0x00, 0x83, 0xe4, 0x11, 0x7d, 0x1b, - 0xbe, 0x7a, 0xd3, 0x1e, 0xb1, 0x91, 0xee, 0x15, 0xfd, 0x2b, 0x27, - 0xa0, 0x12, 0x70, 0x1a, 0x9f, 0xe4, 0xd3, 0xb2, 0x1f, 0x23, 0xc5, - 0x6f, 0x76, 0xe3, 0x9d, 0xeb, 0x42, 0xf5, 0x6e, 0xb0, 0x0a, 0x34, - 0x07, 0x72, 0x4b, 0xbd, 0x32, 0x75, 0xc1, 0xc4, 0x2d, 0x0a, 0x53, - 0xb0, 0xa7, 0x31, 0x4e, 0x69, 0x5f, 0x05, 0x31, 0xbb, 0x7a, 0x3c, - 0x8f, 0x2f, 0x84, 0x02, 0x56, 0x63, 0x02, 0x41, 0x62, 0xc0, 0x53, - 0xf3, 0xef, 0x77, 0xf2, 0x78, 0x3f, 0xbe, 0xe4, 0xa0, 0xf8, 0xfc, - 0xbe, 0xfb, 0xf3, 0x69, 0x17, 0xca, 0xc3, 0x76, 0xd3, 0xb9, 0x7f, - 0x34, 0xbc, 0xf9, 0xc3, 0x2f, 0x28, 0x5e, 0xea, 0x8e, 0x60, 0x2a, - 0xc2, 0x56, 0xea, 0xcd, 0xc7, 0xf6, 0x25, 0x52, 0x8d, 0x34, 0xc6, - 0x41, 0x1d, 0xc3, 0x0f, 0x26, 0xfc, 0x39, 0x60, 0x53, 0x90, 0x9c, - 0x6a, 0x73, 0x77, 0x38, 0xbd, 0x19, 0xcf, 0x81, 0x14, 0xdb, 0x84, - 0xad, 0x96, 0xe4, 0xa8, 0xdc, 0xda, 0x21, 0x92, 0x35, 0x8a, 0x25, - 0xd4, 0xd4, 0xbb, 0x7c, 0x55, 0xd5, 0x53, 0x6b, 0x0c, 0x02, 0x8e, - 0xed, 0x57, 0x29, 0xfd, 0x8a, 0xa2, 0xc5, 0x04, 0xa0, 0x1d, 0xf4, - 0xc6, 0x9b, 0xb1, 0xb0, 0xff, 0x0a, 0x69, 0xd7, 0x70, 0xc6, 0xca, - 0x0e, 0x16, 0xfb, 0xbc, 0x05, 0xa2, 0xef, 0xc5, 0x09, 0xcd, 0x54, - 0xa1, 0x16, 0xc5, 0xa0, 0xf8, 0xd2, 0x31, 0x5e, 0xeb, 0x27, 0x06, - 0x70, 0x70, 0xb1, 0x34, 0x15, 0x30, 0x04, 0x26, 0x66, 0xb6, 0xef, - 0xaa, 0x83, 0x0d, 0x46, 0x2d, 0x97, 0xd7, 0x5d, 0x6e, 0x6a, 0x85, - 0x38, 0x32, 0xa0, 0xfa, 0xb4, 0x21, 0xdd, 0x0c, 0x37, 0x29, 0x91, - 0xdf, 0x77, 0x73, 0x14, 0xc0, 0x24, 0xcb, 0x72, 0x0a, 0x86, 0x1a, - 0x6e, 0x14, 0xc7, 0x14, 0xd0, 0xe2, 0xc0, 0xf4, 0x95, 0x95, 0x32, - 0x1b, 0x3e, 0x1f, 0x0e, 0x15, 0x5f, 0x8f, 0x02, 0x19, 0x5a, 0x22, - 0xe7, 0xda, 0x30, 0x7b, 0x6f, 0x9d, 0x4d, 0x6a, 0xb1, 0x9f, 0xee, - 0x02, 0xd4, 0xf5, 0x06, 0x15, 0x0f, 0x1e, 0x18, 0xde, 0x46, 0x3b, - 0xc4, 0x47, 0x70, 0x8a, 0x1d, 0x98, 0x1c, 0xad, 0xc1, 0xfd, 0x34, - 0x79, 0x5d, 0x0f, 0x7f, 0xe6, 0xcd, 0x9d, 0xf3, 0x92, 0x8e, 0x86, - 0x53, 0x7f, 0x44, 0x00, 0xff, 0x3e, 0xf4, 0xca, 0x19, 0x36, 0xfc, - 0xd8, 0x54, 0x35, 0x5d, 0x78, 0xdb, 0xc1, 0xca, 0x53, 0xa0, 0x3d, - 0xdf, 0x0b, 0xbe, 0xaa, 0x28, 0xe8, 0x98, 0xb3, 0x86, 0x12, 0x4c, - 0x6b, 0x3f, 0x42, 0xde, 0x36, 0x79, 0x8e, 0x66, 0x8d, 0x0c, 0x69, - 0x45, 0x36, 0x74, 0xc4, 0xe5, 0x8f, 0x73, 0x4a, 0xc6, 0x45, 0x95, - 0x41, 0xff, 0x84, 0xdf, 0xa8, 0x68, 0xda, 0x9c, 0x4b, 0x20, 0xcd, - 0x75, 0x18, 0x3a, 0xbb, 0x16, 0x10, 0x09, 0x4a, 0xa1, 0x06, 0xaa, - 0xd8, 0x76, 0x76, 0x96, 0x0d, 0x4a, 0x6a, 0x6b, 0x36, 0x4b, 0x89, - 0x1b, 0xe1, 0x09, 0xb0, 0x02, 0x4f, 0x22, 0xc0, 0x51, 0x79, 0xfb, - 0x1e, 0x5d, 0x70, 0xaf, 0x64, 0xec, 0xed, 0xf0, 0xa7, 0x44, 0x41, - 0x40, 0x67, 0x46, 0x75, 0x67, 0xb6, 0xd1, 0x8c, 0xf2, 0xd0, 0x5a, - 0xb2, 0x11, 0x04, 0xc9, 0xa6, 0xa1, 0x69, 0xc7, 0x51, 0x86, 0x71, - 0xb8, 0xd6, 0x44, 0x0a, 0x28, 0x8b, 0x84, 0x67, 0x82, 0x47, 0xc0, - 0x1c, 0x6b, 0xf0, 0xcf, 0x91, 0x87, 0xeb, 0x65, 0xf6, 0x34, 0xa4, - 0xdf, 0x13, 0x42, 0x9c, 0x09, 0xd1, 0x23, 0x3c, 0x75, 0x4a, 0xc1, - 0x52, 0x19, 0x2b, 0x71, 0xdf, 0xa5, 0x01, 0xd9, 0x8e, 0x24, 0x8e, - 0x9b, 0x87, 0x8a, 0xa7, 0xac, 0xa2, 0xd0, 0x87, 0x3c, 0xb6, 0xbc, - 0x13, 0x41, 0x47, 0x0c, 0xca, 0x00, 0x80, 0x72, 0x2e, 0x3f, 0xfa, - 0xc9, 0x2e, 0x04, 0x24, 0x2b, 0x2e, 0xc6, 0x1f, 0x4f, 0xb6, 0x92, - 0x37, 0xef, 0x3d, 0x52, 0x39, 0x56, 0xcc, 0x4a, 0x23, 0x23, 0xbd, - 0xf1, 0x7b, 0x36, 0x12, 0xa0, 0xb1, 0xad, 0x89, 0xad, 0x2c, 0x0e, - 0xbb, 0x4f, 0x25, 0x42, 0xa7, 0x4a, 0x0b, 0x5c, 0x7f, 0xe7, 0x31, - 0x98, 0xd9, 0x89, 0x6d, 0xf3, 0x31, 0xc9, 0x7e, 0x76, 0x6b, 0xb1, - 0x8e, 0x47, 0x40, 0x25, 0x3d, 0xb3, 0x10, 0x9b, 0xaa, 0xf2, 0x01, - 0x19, 0x68, 0x0d, 0x92, 0xc5, 0xb1, 0x9d, 0x06, 0x52, 0x95, 0x10, - 0x4d, 0xd2, 0x17, 0x00, 0xc8, 0xb9, 0x6a, 0x48, 0xc6, 0xd2, 0x99, - 0x1f, 0xd8, 0xcc, 0xc0, 0x5a, 0x5f, 0x8c, 0x69, 0x8d, 0x89, 0xe4, - 0x6b, 0xd8, 0x49, 0x04, 0xc0, 0xf1, 0xc7, 0x88, 0xd0, 0xf1, 0xf2, - 0x30, 0xf9, 0x9b, 0xdf, 0x7b, 0xe2, 0x79, 0xe8, 0x15, 0x89, 0x9a, - 0x8a, 0x31, 0x86, 0xd9, 0x2a, 0x5c, 0x45, 0x01, 0xc8, 0x94, 0xff, - 0x2a, 0xfd, 0xde, 0x36, 0x34, 0x89, 0x6e, 0xe6, 0x07, 0xd3, 0xf2, - 0x04, 0xe0, 0x9d, 0x43, 0x80, 0x52, 0xe2, 0x7b, 0x75, 0xd6, 0x18, - 0xa3, 0x8b, 0x05, 0xc5, 0x68, 0xb8, 0x5b, 0x62, 0xca, 0xf0, 0xec, - 0x1b, 0x4b, 0xec, 0xcd, 0xc7, 0x5f, 0x9e, 0x81, 0xf9, 0xec, 0x3d, - 0xb8, 0x7d, 0x7f, 0x18, 0x94, 0x7b, 0x58, 0x42, 0x30, 0xf9, 0xde, - 0xd6, 0x31, 0x4c, 0x73, 0x17, 0xe7, 0x5e, 0x67, 0x44, 0xbf, 0xee, - 0x30, 0xfa, 0x0e, 0xa8, 0x81, 0xb4, 0x2c, 0xa3, 0xaf, 0x57, 0xd3, - 0x78, 0xd3, 0x78, 0x3a, 0xe6, 0xfc, 0x9e, 0x54, 0x8e, 0xd9, 0xd1, - 0x51, 0x13, 0xcf, 0x35, 0x5d, 0xd9, 0x61, 0x27, 0xa1, 0x21, 0xd0, - 0x93, 0x37, 0x99, 0xf5, 0x8b, 0x8a, 0x46, 0x2d, 0xd9, 0xd9, 0x65, - 0xf6, 0x72, 0xa0, 0x3f, 0xa5, 0xf6, 0x6f, 0x24, 0x37, 0xff, 0x9f, - 0x87, 0x22, 0xca, 0x75, 0x04, 0x9a, 0xb4, 0xdf, 0x2d, 0x40, 0x9a, - 0xf4, 0x52, 0x93, 0xe9, 0x09, 0x05, 0x0e, 0xae, 0xde, 0xee, 0x88, - 0x99, 0x3c, 0xac, 0x67, 0xe5, 0x01, 0x9f, 0x9e, 0xe8, 0x64, 0x65, - 0x86, 0xe9, 0x58, 0x0c, 0x31, 0x36, 0x0d, 0xcd, 0x32, 0x43, 0xd1, - 0x85, 0x26, 0x1c, 0x0f, 0x81, 0x15, 0xd8, 0x2e, 0x1f, 0x3b, 0x10, - 0x0c, 0xdb, 0xad, 0x1d, 0x48, 0x76, 0xdb, 0x62, 0xfb, 0x90, 0x8b, - 0x56, 0xb5, 0x74, 0x23, 0x53, 0xc2, 0x4b, 0xae, 0x42, 0xf2, 0x77, - 0xe9, 0x67, 0x85, 0x7d, 0x58, 0x5a, 0xce, 0x25, 0xa1, 0x90, 0x6c, - 0x94, 0x0b, 0x9a, 0x8c, 0x99, 0x04, 0xa2, 0xeb, 0xf7, 0x2b, 0x20, - 0xb2, 0x46, 0x76, 0x84, 0x53, 0xc4, 0x68, 0x6a, 0x2a, 0xff, 0x2d, - 0xcd, 0xde, 0xbd, 0x38, 0x5a, 0xa4, 0x3e, 0xd4, 0x19, 0xa2, 0x1d, - 0x15, 0xb7, 0xc3, 0xdf, 0x65, 0xcd, 0x62, 0xfb, 0xbe, 0xb9, 0x63, - 0x17, 0x76, 0x65, 0x66, 0x63, 0x4a, 0x5b, 0xbe, 0x73, 0x7f, 0x06, - 0x33, 0x31, 0xa6, 0xf7, 0xdc, 0x71, 0xf7, 0x39, 0xc1, 0x76, 0xc7, - 0x4b, 0x52, 0x7c, 0x8c, 0x10, 0x34, 0xad, 0x86, 0x90, 0x9e, 0x42, - 0x5a, 0x25, 0x1b, 0xdb, 0x51, 0x84, 0xb6, 0xa9, 0xf4, 0x08, 0x32, - 0x92, 0x4e, 0xb5, 0x23, 0x68, 0x7c, 0x5e, 0x2e, 0xa0, 0x18, 0x16, - 0x25, 0xaa, 0x55, 0x06, 0xc4, 0x96, 0x86, 0x2f, 0x52, 0x2f, 0xc8, - 0x18, 0xee, 0x94, 0x37, 0xbf, 0x0f, 0x86, 0xc0, 0xc5, 0xf4, 0x52, - 0x10, 0x18, 0xa7, 0x1d, 0xf8, 0xc9, 0xd8, 0x67, 0xf6, 0xe2, 0x91, - 0x2a, 0xbb, 0x64, 0x54, 0x8e, 0xcd, 0x6e, 0xbe, 0xff, 0x5d, 0x5d, - 0xa9, 0xe8, 0x16, 0xb7, 0x32, 0x59, 0x0e, 0x7b, 0x12, 0x6d, 0xc2, - 0x0c, 0x2a, 0x36, 0x83, 0xf4, 0x68, 0xc3, 0x8c, 0xb4, 0x03, 0xe8, - 0x4e, 0xd3, 0x76, 0xb0, 0x1b, 0xf1, 0x85, 0x62, 0x4a, 0x97, 0xb3, - 0xe3, 0xd4, 0x05, 0x83, 0xef, 0x8e, 0xe4, 0xbc, 0x92, 0xab, 0x11, - 0x6d, 0x38, 0x5c, 0x74, 0xd7, 0xab, 0x4e, 0xfd, 0x3c, 0x20, 0x4f, - 0xc7, 0xde, 0x23, 0x92, 0x90, 0x58, 0xbd, 0x32, 0x42, 0x13, 0x2d, - 0x8e, 0xee, 0xac, 0x27, 0x66, 0xb6, 0x02, 0x0e, 0x97, 0xe6, 0xd1, - 0x73, 0x6f, 0xe0, 0xf9, 0x37, 0x8c, 0x14, 0xcd, 0x05, 0x7b, 0x67, - 0x57, 0x06, 0x6a, 0x45, 0x92, 0x3c, 0x01, 0x54, 0x09, 0x79, 0x47, - 0x2f, 0xf6, 0x37, 0xb3, 0x34, 0xdf, 0x6f, 0xdb, 0x97, 0xfa, 0x0e, - 0xa1, 0x25, 0xb3, 0x52, 0xfb, 0xf4, 0x56, 0xc1, 0x40, 0x68, 0xe9, - 0x9e, 0x56, 0xdb, 0x65, 0xa3, 0x82, 0x3d, 0xa2, 0xc3, 0xb9, 0x11, - 0x38, 0x89, 0x95, 0xdf, 0x2a, 0xe0, 0xaa, 0x7c, 0xab, 0xc7, 0x5e, - 0xe4, 0xa2, 0x7b, 0xa1, 0x85, 0x0c, 0xb8, 0xc5, 0x1f, 0x8c, 0xf8, - 0x0e, 0x04, 0x32, 0xd4, 0xdd, 0x0d, 0xd8, 0x9a, 0xf1, 0x06, 0x8c, - 0xee, 0x7b, 0x5e, 0x29, 0x28, 0x7b, 0x55, 0xb7, 0xb1, 0xd8, 0x1a, - 0x46, 0x47, 0xf2, 0x88, 0x55, 0x2d, 0xab, 0x9e, 0x4e, 0x4e, 0xc9, - 0x35, 0x2a, 0x62, 0x47, 0xa1, 0xf8, 0x59, 0x18, 0x7c, 0xd3, 0x96, - 0xea, 0x54, 0x2f, 0xba, 0x00, 0xd3, 0x53, 0xb3, 0xfa, 0xf9, 0x0f, - 0x31, 0xdb, 0x13, 0x49, 0x39, 0xcd, 0x28, 0xaf, 0x21, 0x97, 0x6b, - 0xed, 0x7c, 0x2a, 0x57, 0xd3, 0xa6, 0x2b, 0xde, 0x14, 0x0b, 0xc3, - 0x70, 0x63, 0x3f, 0x24, 0xdc, 0xdc, 0x4d, 0x73, 0x5e, 0x42, 0x1a, - 0x82, 0x41, 0x77, 0x9d, 0x61, 0xb4, 0x6b, 0x7d, 0x08, 0xbc, 0x1e, - 0x4b, 0x60, 0x2c, 0x1f, 0xef, 0xee, 0x28, 0xf0, 0x44, 0x8c, 0xe3, - 0x5e, 0x49, 0xa8, 0x15, 0x61, 0x9a, 0x4f, 0x69, 0x49, 0x93, 0x6a, - 0xdf, 0x8c, 0x43, 0x92, 0x6a, 0xea, 0xc3, 0x63, 0x3b, 0x52, 0x37, - 0xdb, 0x78, 0x67, 0x79, 0xf2, 0x56, 0x65, 0x4b, 0xf1, 0xb5, 0xc2, - 0x9e, 0x14, 0x78, 0xd7, 0xfe, 0x8d, 0x98, 0x89, 0xbb, 0x02, 0x01, - 0xce, 0x92, 0x82, 0x52, 0x11, 0x25, 0x74, 0xe4, 0xa3, 0x41, 0x8e, - 0x6e, 0x2c, 0x07, 0xe9, 0xad, 0x47, 0x23, 0x51, 0xaa, 0x34, 0x46, - 0x95, 0xd6, 0x5b, 0xc5, 0xdc, 0x34, 0xc9, 0x28, 0x36, 0x16, 0x4c, - 0xd3, 0x55, 0x31, 0x91, 0xc7, 0x5e, 0x96, 0xe4, 0x7a, 0xc9, 0x36, - 0xbb, 0xc6, 0x6d, 0x8b, 0xae, 0x61, 0x46, 0xb8, 0xc1, 0xd4, 0x2c, - 0x0d, 0x72, 0x94, 0x96, 0x98, 0xe4, 0x8e, 0x39, 0x81, 0xfb, 0x52, - 0x26, 0x86, 0x23, 0x38, 0x56, 0x2d, 0x90, 0x39, 0xfb, 0xd2, 0x50, - 0x5a, 0x68, 0x43, 0x51, 0x12, 0x10, 0xdd, 0x51, 0x48, 0xac, 0x36, - 0xe3, 0x8c, 0x59, 0x72, 0xab, 0x85, 0x60, 0xf3, 0x19, 0x2f, 0x7f, - 0xf6, 0x43, 0xe5, 0x71, 0x8c, 0x4d, 0x8e, 0x80, 0x81, 0x21, 0x10, - 0x1d, 0x35, 0x61, 0x15, 0x01, 0x41, 0x48, 0xd1, 0xed, 0xa6, 0xe2, - 0xd7, 0x63, 0x4c, 0x4f, 0x15, 0xe3, 0x65, 0xa9, 0xe8, 0x94, 0x33, - 0x29, 0xe2, 0x22, 0xd3, 0x21, 0x8d, 0x3a, 0x7d, 0x12, 0x5b, 0x49, - 0x58, 0x4c, 0xc3, 0xd3, 0xaf, 0x9e, 0x3c, 0x44, 0x30, 0x1a, 0xe3, - 0xb2, 0x82, 0x03, 0xb5, 0xfe, 0xcc, 0xc1, 0x82, 0x42, 0x34, 0x88, - 0xc2, 0xfe, 0xe7, 0x85, 0x29, 0xb2, 0x17, 0xbd, 0xf9, 0x53, 0xd7, - 0xbf, 0x3d, 0xd1, 0x4a, 0xc4, 0x0a, 0x4e, 0x42, 0x26, 0x57, 0x62, - 0xb9, 0x27, 0xda, 0xab, 0x6f, 0xca, 0x23, 0x00, 0x65, 0x74, 0x64, - 0x7b, 0xb5, 0xe8, 0x98, 0xeb, 0xfb, 0x0c, 0x9a, 0xd4, 0xec, 0xab, - 0x04, 0x2a, 0x60, 0x63, 0x46, 0xd4, 0xe6, 0x96, 0x72, 0x0a, 0x17, - 0xe8, 0x4a, 0xf5, 0x9a, 0x64, 0xf6, 0x7d, 0x64, 0x1b, 0xd7, 0xc0, - 0xe4, 0x42, 0x5a, 0x68, 0x86, 0x89, 0x39, 0xa6, 0x1d, 0xf1, 0x96, - 0x95, 0xc1, 0xc9, 0x1c, 0x23, 0xee, 0xf0, 0xb6, 0x73, 0x44, 0xff, - 0xa3, 0xa2, 0xbe, 0xc8, 0xdb, 0x52, 0xdb, 0xd3, 0x37, 0xd2, 0xdc, - 0x80, 0x9b, 0x94, 0x0b, 0xa4, 0xfd, 0x97, 0xd6, 0x4e, 0x8e, 0xe5, - 0x35, 0x34, 0xf0, 0x16, 0xaf, 0xfd, 0x7f, 0xce, 0x95, 0xcf, 0x0a, - 0xbe, 0x55, 0x1c, 0x6c, 0x02, 0x6c, 0xf3, 0x7a, 0x10, 0x19, 0x71, - 0xb9, 0x77, 0x5b, 0xea, 0x21, 0x4f, 0xe7, 0xdb, 0x04, 0xcf, 0x4b, - 0x14, 0x23, 0x58, 0x7f, 0x5a, 0x77, 0xe7, 0x91, 0xab, 0x65, 0x08, - 0x57, 0xa2, 0xb2, 0x12, 0x22, 0xea, 0x4b, 0x19, 0x1b, 0xf2, 0xa0, - 0xd3, 0x8a, 0x64, 0xb1, 0x0e, 0x8c, 0x19, 0xe0, 0x79, 0xfc, 0xd3, - 0x8b, 0xf5, 0xe0, 0x68, 0xf5, 0xaf, 0x3a, 0x47, 0xd0, 0x38, 0x3a, - 0x25, 0xf1, 0x9f, 0xbf, 0x74, 0xca, 0x4f, 0xbe, 0x17, 0x40, 0x7a, - 0xcf, 0xf4, 0xff, 0x97, 0x5e, 0x04, 0x2a, 0x5f, 0x03, 0x1b, 0x9b, - 0x16, 0x16, 0xa1, 0xea, 0xdd, 0x90, 0xc7, 0xd4, 0x61, 0xae, 0xc9, - 0xb4, 0xe1, 0x12, 0x06, 0xfb, 0xff, 0x9e, 0x5c, 0xf9, 0xc8, 0x80, - 0xd4, 0x6a, 0x1e, 0x33, 0x39, 0xec, 0x1f, 0x9f, 0x34, 0x6a, 0xbe, - 0x43, 0xb6, 0xe9, 0x2b, 0x89, 0xa5, 0xee, 0xfc, 0x33, 0xd7, 0x42, - 0x01, 0x53, 0x81, 0x9d, 0x47, 0x78, 0x57, 0xa5, 0x3e, 0x17, 0x66, - 0xc3, 0xc7, 0x61, 0xcb, 0xe9, 0xc0, 0x9c, 0x46, 0xed, 0x9d, 0x53, - 0xd9, 0xe1, 0x21, 0xdd, 0x4f, 0x46, 0xb0, 0x58, 0xa4, 0x92, 0x7f, - 0x62, 0x63, 0x31, 0xde, 0xdf, 0x46, 0xfc, 0xa6, 0x3c, 0xdb, 0x11, - 0xe9, 0xd9, 0x01, 0x79, 0xbc, 0x10, 0x76, 0x15, 0xb9, 0xce, 0x26, - 0xf1, 0xcd, 0x6b, 0xc9, 0xb8, 0xfc, 0xfb, 0x99, 0xa5, 0x6a, 0x3c, - 0x42, 0x12, 0x00, 0x00, 0x10, 0xd7, 0x78, 0x3c, 0x69, 0xf5, 0xe6, - 0xd0, 0x0c, 0x08, 0x5d, 0x03, 0xfa, 0xcf, 0xcb, 0xd8, 0x93, 0x29, - 0xaa, 0x81, 0x3a, 0xc6, 0xc3, 0x53, 0x2c, 0x83, 0x92, 0x79, 0x56, - 0x1a, 0xf0, 0x1f, 0x69, 0x6b, 0x45, 0xaf, 0xff, 0xad, 0x68, 0xd2, - 0x72, 0xb4, 0xf9, 0xb7, 0x2f, 0xb0, 0x46, 0x2d, 0xfe, 0x6d, 0x93, - 0x06, 0x70, 0x08, 0xad, 0x49, 0x4a, 0x9b, 0xcd, 0xc3, 0x6f, 0x80, - 0x4e, 0x02, 0xf6, 0x56, 0x64, 0xa6, 0xcd, 0x3f, 0x22, 0x5d, 0xee, - 0x14, 0x04, 0x49, 0x62, 0xf0, 0xb4, 0x26, 0x3c, 0x05, 0x51, 0x46, - 0x6e, 0x31, 0x4e, 0x43, 0x6a, 0xaa, 0xa5, 0xde, 0x36, 0xb2, 0x79, - 0x01, 0x1c, 0xe7, 0x45, 0x2d, 0xd7, 0x30, 0xa4, 0x53, 0x54, 0x49, - 0xe5, 0xd8, 0x3a, 0xa7, 0xc4, 0x3c, 0x6b, 0xe7, 0xb6, 0x14, 0xcf, - 0xa0, 0x3d, 0xd0, 0x90, 0xd0, 0x92, 0x0e, 0x51, 0x15, 0xcb, 0xc7, - 0x2a, 0x77, 0xae, 0xe4, 0x59, 0xa6, 0x53, 0x47, 0x48, 0x8b, 0xcb, - 0x94, 0x8f, 0xb4, 0x84, 0xe8, 0x57, 0x78, 0xb9, 0xa7, 0x33, 0x53, - 0xb6, 0x54, 0x10, 0xb8, 0x87, 0xd3, 0xf2, 0xbf, 0x77, 0x4e, 0x52, - 0x3d, 0xde, 0x14, 0x94, 0x79, 0x8c, 0x6b, 0x3a, 0x91, 0xc2, 0x47, - 0xfe, 0x7d, 0xc3, 0xb7, 0x04, 0x02, 0xfa, 0xc1, 0x1f, 0x68, 0x29, - 0x86, 0xa2, 0x5c, 0x58, 0x14, 0x94, 0x1a, 0xdc, 0xa6, 0x1c, 0x54, - 0xc5, 0x80, 0xc0, 0x70, 0xd2, 0x8e, 0xc4, 0xbe, 0x37, 0x10, 0x0f, - 0x5c, 0x54, 0xc5, 0xbf, 0x61, 0x2a, 0x59, 0xb6, 0x48, 0x52, 0xa1, - 0x68, 0x59, 0x9c, 0x9b, 0x1c, 0xfc, 0x2a, 0x01, 0x6a, 0xc5, 0x61, - 0x5a, 0x76, 0x8f, 0xfd, 0x5e, 0xa8, 0xd9, 0xba, 0xda, 0x9d, 0x38, - 0x59, 0x1c, 0x90, 0xbf, 0xc7, 0x66, 0x34, 0x0a, 0xc8, 0xda, 0x5a, - 0x97, 0x65, 0xd0, 0x7a, 0xe5, 0xd3, 0x9c, 0x13, 0xda, 0x6f, 0xc5, - 0x1c, 0x30, 0xff, 0xed, 0xce, 0xcd, 0xfa, 0xe0, 0x31, 0xeb, 0x5c, - 0xab, 0x11, 0xfc, 0x0b, 0xae, 0x7b, 0x67, 0xf2, 0xf1, 0xa3, 0xfc, - 0xb3, 0xea, 0x8c, 0xca, 0x0f, 0xf4, 0xd3, 0x65, 0xa1, 0x75, 0x1b, - 0xb2, 0x9f, 0x4b, 0x4c, 0x0b, 0xf0, 0x2c, 0x97, 0x26, 0xbd, 0x57, - 0x4c, 0x98, 0xfb, 0x4c, 0xa5, 0xdd, 0x1e, 0xc3, 0xe1, 0x29, 0x6d, - 0x4f, 0x6d, 0x3a, 0xc1, 0x84, 0xbd, 0x70, 0x78, 0x95, 0x85, 0xf3, - 0xd5, 0x30, 0xb3, 0x66, 0x31, 0x68, 0xf9, 0x42, 0x89, 0x25, 0xbe, - 0x05, 0xe9, 0x00, 0xbc, 0x73, 0xf4, 0xd0, 0xd8, 0x0e, 0x05, 0x09, - 0x00, 0xec, 0xb1, 0xc4, 0x47, 0x9a, 0xcc, 0xf4, 0xd7, 0xda, 0xff, - 0xc9, 0x6d, 0xd0, 0x81, 0xd1, 0xb7, 0x01, 0x6b, 0xb3, 0xf5, 0x35, - 0x18, 0xca, 0xdd, 0xe3, 0xc3, 0x30, 0x11, 0x80, 0x2c, 0x22, 0xe2, - 0x8e, 0xb8, 0x0d, 0xa8, 0x82, 0x76, 0x47, 0x4f, 0xe7, 0x69, 0x98, - 0x4d, 0x4f, 0xc0, 0xec, 0xea, 0xf3, 0x86, 0x9f, 0xc7, 0x3a, 0x3d, - 0xd2, 0xac, 0x00, 0x5b, 0x8e, 0xef, 0xfb, 0xf1, 0x8a, 0x2b, 0x0f, - 0x46, 0x80, 0xc4, 0x92, 0x62, 0x2e, 0xc9, 0x59, 0xb4, 0x58, 0x46, - 0xc8, 0x16, 0xa0, 0xa4, 0xaf, 0xeb, 0x12, 0xfb, 0x67, 0xe7, 0x7c, - 0x15, 0x57, 0x4e, 0x51, 0x1b, 0x10, 0xc2, 0x9d, 0x55, 0x98, 0xb4, - 0x98, 0xc5, 0x95, 0x8d, 0x3b, 0xf3, 0x30, 0x0c, 0x2a, 0x29, 0xc3, - 0x4a, 0xe6, 0x25, 0x5b, 0xc7, 0x27, 0x7f, 0xcb, 0x34, 0x0b, 0x45, - 0x3d, 0x0e, 0x74, 0xb1, 0x09, 0x77, 0xbe, 0xc5, 0x3d, 0xa8, 0xc4, - 0xab, 0xe0, 0x17, 0xdb, 0x17, 0x17, 0xc1, 0x58, 0x7e, 0xf4, 0x59, - 0xa1, 0x7d, 0xbf, 0xfa, 0x1b, 0xa5, 0x40, 0x78, 0x80, 0x03, 0xd3, - 0x70, 0x1a, 0x7b, 0xfa, 0x59, 0xae, 0x4c, 0x20, 0xb5, 0x81, 0xfb, - 0x7f, 0x7a, 0xd9, 0xff, 0xbc, 0xc2, 0xda, 0x6c, 0x63, 0x45, 0xf0, - 0x1a, 0x9f, 0xcc, 0x2e, 0xc5, 0xbb, 0x99, 0x5b, 0x11, 0x6e, 0x16, - 0xf9, 0x8b, 0x83, 0xb8, 0xfc, 0x10, 0x9b, 0x17, 0xae, 0xe7, 0xd7, - 0xd2, 0xb6, 0x0e, 0x86, 0x39, 0xa4, 0xa7, 0xdb, 0xa5, 0xbb, 0x13, - 0x1a, 0x0b, 0xf9, 0x76, 0x7e, 0x06, 0x0f, 0x50, 0x4c, 0xf2, 0xef, - 0x0b, 0xd9, 0x1d, 0xeb, 0x96, 0x70, 0xbe, 0x9f, 0x0f, 0xba, 0xd9, - 0xc5, 0xc1, 0x3f, 0x36, 0xf2, 0xa0, 0xb6, 0x0f, 0x82, 0x43, 0x16, - 0x20, 0xf5, 0xcc, 0x31, 0x79, 0x2e, 0x6c, 0xd3, 0x0b, 0x9a, 0x31, - 0xb1, 0x7e, 0x97, 0x7a, 0x76, 0x2b, 0x6a, 0x38, 0xad, 0xa2, 0xf8, - 0xb3, 0x26, 0x65, 0xc5, 0x10, 0x0b, 0x2e, 0xdd, 0x81, 0xcf, 0xf5, - 0xb3, 0x99, 0xa9, 0xe3, 0xcf, 0x8a, 0x3e, 0xc0, 0x54, 0xd6, 0x53, - 0x65, 0x58, 0xe0, 0x1e, 0xb3, 0x30, 0x66, 0xda, 0xc4, 0x05, 0x2d, - 0xcd, 0xe4, 0xf7, 0x31, 0xdb, 0x05, 0x30, 0x13, 0x70, 0x62, 0x29, - 0x4b, 0xb9, 0x12, 0xfa, 0xd4, 0xcb, 0x97, 0xfd, 0x57, 0xb3, 0x37, - 0xa4, 0x15, 0x77, 0xc2, 0x05, 0xc0, 0x15, 0x31, 0xe9, 0x32, 0xa0, - 0x8c, 0xa4, 0xf3, 0xa7, 0xb5, 0x18, 0xb7, 0x46, 0xe5, 0x82, 0x44, - 0xc0, 0x34, 0xb7, 0xfe, 0x89, 0xa5, 0xc4, 0xf0, 0x3d, 0x8d, 0xe3, - 0xf4, 0x57, 0x35, 0x5a, 0xee, 0x4d, 0xbf, 0xd1, 0x86, 0x6e, 0x08, - 0xc3, 0x60, 0xc2, 0x5d, 0xd9, 0x50, 0xe0, 0x0e, 0x4f, 0x85, 0xbf, - 0x7f, 0xbe, 0x54, 0x01, 0x15, 0x72, 0x84, 0xdc, 0x5b, 0x0d, 0xf8, - 0xe8, 0xb6, 0x1c, 0x84, 0x0e, 0xa3, 0x0b, 0x75, 0x69, 0x7c, 0xea, - 0x7b, 0x88, 0x31, 0x7d, 0x7d, 0x8d, 0xd6, 0x81, 0x04, 0x73, 0x5f, - 0x8f, 0xfe, 0x77, 0x69, 0x10, 0x64, 0x8d, 0x44, 0x93, 0xdd, 0x9b, - 0x1e, 0xe6, 0x80, 0xf9, 0x9c, 0x54, 0x7e, 0x83, 0x80, 0x9e, 0xf8, - 0x22, 0x34, 0x0f, 0x90, 0x2a, 0xbe, 0x52, 0x16, 0x55, 0xaa, 0x62, - 0x41, 0xab, 0x98, 0x76, 0x1e, 0x06, 0x6f, 0x7f, 0xca, 0x3e, 0x57, - 0x63, 0x8a, 0x3a, 0x74, 0x31, 0x53, 0x4d, 0xce, 0xee, 0x91, 0x4d, - 0x40, 0x8b, 0xe1, 0x24, 0x2f, 0x2b, 0x79, 0x74, 0x7d, 0x67, 0x63, - 0xdd, 0x53, 0xfc, 0xc5, 0x6e, 0x83, 0xa9, 0x3d, 0x83, 0xb7, 0xaa, - 0x3b, 0x84, 0xa3, 0x6e, 0x5a, 0x74, 0x54, 0x77, 0xa7, 0x8a, 0x5c, - 0xd3, 0x30, 0x3f, 0x9a, 0x4b, 0xa6, 0xaa, 0xda, 0x7a, 0xd0, 0x6f, - 0x85, 0xec, 0x20, 0x44, 0x7a, 0x17, 0x79, 0x54, 0x09, 0x17, 0x6c, - 0xed, 0xee, 0x64, 0xbb, 0x20, 0xbb, 0xbf, 0x69, 0x28, 0x8c, 0x89, - 0xe6, 0x0a, 0xd5, 0xd0, 0x26, 0x69, 0x8d, 0x3c, 0x7c, 0xef, 0xbb, - 0x0d, 0xf2, 0xd0, 0x1e, 0x2b, 0xae, 0xbb, 0x5f, 0x00, 0x68, 0xbc, - 0x57, 0x79, 0xfb, 0x72, 0x6c, 0x87, 0x8f, 0x3f, 0x24, 0x8c, 0xd5, - 0x1b, 0xe5, 0xfd, 0xfe, 0x22, 0xf7, 0x1d, 0xce, 0xd8, 0xcb, 0x4f, - 0xf0, 0x02, 0xee, 0x1b, 0x9f, 0x72, 0xb7, 0x15, 0xf4, 0xcb, 0x54, - 0xd0, 0x92, 0xc6, 0xaf, 0x6d, 0x62, 0xfc, 0x4a, 0x60, 0x3f, 0xd4, - 0xd8, 0x3f, 0x15, 0x08, 0x8f, 0x16, 0xf8, 0xfb, 0x35, 0x5f, 0x5c, - 0x74, 0xcc, 0xea, 0x7c, 0xeb, 0xb6, 0x2f, 0x1e, 0x44, 0xed, 0xf3, - 0xc8, 0xe2, 0x4b, 0x6c, 0x83, 0x40, 0xd3, 0x0d, 0x28, 0x25, 0x95, - 0x2e, 0x67, 0x71, 0x32, 0xa0, 0xf4, 0x7c, 0x2c, 0x78, 0x28, 0xb0, - 0xc0, 0xfd, 0xf1, 0x01, 0xbd, 0x50, 0x3e, 0x28, 0x35, 0x0b, 0x04, - 0x6f, 0xe2, 0xb2, 0x53, 0xaa, 0x7a, 0x44, 0xc0, 0x1c, 0x79, 0x7a, - 0x81, 0x7b, 0x3f, 0x07, 0xd7, 0x56, 0x33, 0x3b, 0xf5, 0xd4, 0xb1, - 0x9c, 0xce, 0x10, 0x0f, 0x22, 0x7e, 0x76, 0x5d, 0x07, 0x88, 0xbd, - 0x5c, 0x9e, 0xb2, 0x20, 0x78, 0xb2, 0x50, 0xb9, 0x50, 0xd5, 0xc4, - 0xb5, 0x40, 0x56, 0x7e, 0xdc, 0xa7, 0x57, 0x27, 0x74, 0x55, 0x81, - 0x86, 0x89, 0xad, 0xd4, 0x36, 0x35, 0x12, 0x52, 0x47, 0x76, 0x75, - 0x75, 0xe6, 0x48, 0xea, 0xb8, 0xe7, 0xba, 0x72, 0x4b, 0x07, 0x4a, - 0x4e, 0xcc, 0x6f, 0xcd, 0x7d, 0x73, 0x14, 0x15, 0xb1, 0x2d, 0x08, - 0xb5, 0xcd, 0x4c, 0xf6, 0x43, 0xdb, 0xef, 0xe1, 0x09, 0xd8, 0x2c, - 0x86, 0x0b, 0x4c, 0xb4, 0x18, 0xe1, 0x88, 0xba, 0x94, 0xb0, 0x9b, - 0x57, 0xfb, 0x87, 0xc9, 0xfd, 0x01, 0xd3, 0x1c, 0x72, 0x98, 0x3b, - 0xbb, 0xf5, 0xbe, 0x88, 0x4c, 0x1f, 0x84, 0xf2, 0x9b, 0x7a, 0xa5, - 0x74, 0x5b, 0xaf, 0x7e, 0x8a, 0x72, 0x63, 0x9d, 0xaf, 0xb5, 0x60, - 0x16, 0x2c, 0x72, 0xbf, 0x9b, 0xed, 0xfd, 0xb6, 0x40, 0xd0, 0xbd, - 0x06, 0x22, 0xd5, 0xb3, 0x0b, 0xba, 0x5e, 0x0f, 0x96, 0x15, 0xf1, - 0x48, 0x16, 0xb2, 0xf4, 0x4e, 0x47, 0x84, 0xa9, 0x95, 0x94, 0xe1, - 0xda, 0xa5, 0xd7, 0xc2, 0x3a, 0x8b, 0x17, 0x46, 0xd7, 0xdd, 0xf8, - 0x9a, 0xf3, 0x8b, 0x7e, 0xf4, 0x2e, 0xfb, 0x43, 0xcc, 0x70, 0x7b, - 0xee, 0x8a, 0xfa, 0x4f, 0xa8, 0x13, 0x7e, 0x90, 0x50, 0x3e, 0x63, - 0x14, 0xcc, 0x53, 0xbb, 0x84, 0x06, 0x06, 0x14, 0x6e, 0xd1, 0x44, - 0xfa, 0x64, 0x28, 0x02, 0x95, 0xb1, 0x1c, 0xb2, 0x08, 0x33, 0x74, - 0xd9, 0x02, 0x25, 0x12, 0xb0, 0x7a, 0xcc, 0x15, 0xf4, 0xe5, 0x84, - 0xfd, 0x66, 0xea, 0xd8, 0x8a, 0x7e, 0xb7, 0x2b, 0xa0, 0x28, 0x39, - 0x71, 0xeb, 0xde, 0xbf, 0xc0, 0x85, 0x8f, 0x52, 0x0f, 0x38, 0x50, - 0xed, 0xc0, 0x6e, 0x53, 0xf8, 0x05, 0xce, 0x80, 0x1f, 0xcd, 0xa3, - 0x3d, 0x4f, 0xa3, 0x97, 0x36, 0xad, 0x87, 0x3b, 0x48, 0xfc, 0x54, - 0x81, 0x9d, 0x58, 0xab, 0x27, 0x21, 0x06, 0x82, 0xbd, 0x22, 0x83, - 0x22, 0xb5, 0x23, 0xbc, 0xc5, 0xb6, 0x58, 0xca, 0x49, 0x9b, 0x44, - 0x53, 0xd7, 0x24, 0x9e, 0x42, 0xac, 0xe0, 0xa4, 0x6a, 0x4c, 0xa3, - 0xec, 0x47, 0x8d, 0x57, 0x22, 0x97, 0xf5, 0xa4, 0x54, 0x64, 0x5f, - 0xaf, 0x3f, 0xa7, 0xf0, 0x40, 0x7f, 0xde, 0x82, 0x86, 0x88, 0xf0, - 0x31, 0x82, 0xf1, 0x04, 0x03, 0x5f, 0x93, 0x19, 0x7b, 0xc3, 0x53, - 0xbc, 0x53, 0xb8, 0xee, 0xfb, 0x12, 0x14, 0x87, 0xe9, 0x57, 0x73, - 0xe9, 0x80, 0x98, 0x7f, 0x0c, 0xd1, 0xf1, 0x5d, 0x19, 0x5a, 0x60, - 0x4f, 0x8a, 0x68, 0xa4, 0xd7, 0x47, 0x6b, 0x7f, 0x4f, 0x13, 0x78, - 0x91, 0xcb, 0xfd, 0x39, 0xa0, 0x6c, 0x86, 0xb1, 0xfd, 0xf7, 0x74, - 0xaa, 0xdc, 0x8d, 0xeb, 0x17, 0xdb, 0x2f, 0x55, 0xf1, 0x5d, 0x99, - 0x64, 0x95, 0xd1, 0x7d, 0x52, 0xd1, 0x81, 0xd2, 0x61, 0x39, 0x5d, - 0x47, 0x33, 0x46, 0x7c, 0x85, 0xfc, 0x84, 0x06, 0xee, 0x50, 0xfd, - 0xdc, 0xd7, 0x3f, 0x2e, 0x28, 0x7f, 0x3b, 0x09, 0xda, 0xcb, 0xee, - 0xbe, 0x25, 0xba, 0x50, 0x2b, 0x6d, 0x3b, 0x19, 0x70, 0x2f, 0x6e, - 0xa2, 0x65, 0x46, 0x41, 0xe0, 0xfc, 0xd0, 0x7d, 0x21, 0x8b, 0x1c, - 0x37, 0x35, 0x69, 0xbc, 0xd3, 0x0f, 0xed, 0x0a, 0x74, 0x5d, 0xdf, - 0xd4, 0x98, 0x82, 0x5f, 0x6b, 0x43, 0x8c, 0xdf, 0x71, 0x24, 0x00, - 0xcf, 0x7b, 0x37, 0x40, 0xce, 0xc9, 0x49, 0x05, 0x40, 0xa6, 0xd0, - 0x5a, 0xe5, 0x08, 0xf4, 0xfd, 0x11, 0x3e, 0xea, 0xac, 0xcf, 0x07, - 0x45, 0xc7, 0x8e, 0xe4, 0x0b, 0xe5, 0x52, 0xf5, 0xb7, 0x7d, 0xaf, - 0x5a, 0xb8, 0xb8, 0x82, 0x00, 0x01, 0x10, 0x0b, 0xca, 0xaa, 0xf8, - 0x5f, 0x19, 0xec, 0x01, 0x87, 0xd6, 0x66, 0xfe, 0x6e, 0x2b, 0xe3, - 0x61, 0x75, 0x49, 0xfe, 0xa4, 0xee, 0x42, 0x0e, 0x80, 0x4d, 0xa3, - 0x67, 0x9b, 0xf2, 0x9a, 0x46, 0x83, 0x6d, 0x5f, 0x6b, 0x3c, 0x04, - 0x6f, 0x15, 0xcf, 0x30, 0x37, 0x49, 0xd2, 0x5f, 0x80, 0x34, 0x47, - 0x11, 0x83, 0x34, 0x01, 0x83, 0xb9, 0x25, 0x91, 0x7e, 0xd8, 0x13, - 0x50, 0xc7, 0xf7, 0xa9, 0x05, 0xdf, 0xd6, 0xef, 0x04, 0xea, 0x84, - 0x5a, 0x62, 0x8d, 0x8a, 0x27, 0x58, 0x18, 0x09, 0x45, 0x9f, 0xce, - 0x93, 0x07, 0x8c, 0xc2, 0xb1, 0xe4, 0xeb, 0x57, 0x2a, 0x3b, 0x94, - 0xe7, 0x77, 0x8f, 0x8f, 0x95, 0x6d, 0x7e, 0x83, 0x56, 0xfd, 0x7d, - 0x0a, 0xd8, 0x56, 0x46, 0x3c, 0xf1, 0xd3, 0x35, 0x28, 0xf9, 0x54, - 0xd9, 0xdf, 0x01, 0xd3, 0xe0, 0x75, 0xdf, 0x02, 0x19, 0x69, 0x6b, - 0x21, 0x4d, 0x61, 0x80, 0x7f, 0x75, 0x10, 0x87, 0xfe, 0xd1, 0x9a, - 0xa3, 0x95, 0xfc, 0xcb, 0x12, 0x5c, 0x21, 0x3f, 0x1e, 0x8c, 0xca, - 0x79, 0xc4, 0x66, 0x47, 0x7c, 0xcb, 0x02, 0xf7, 0x6e, 0x2e, 0x05, - 0x5d, 0xb2, 0x15, 0x82, 0xdb, 0x60, 0xc5, 0x56, 0xbd, 0x8c, 0x6f, - 0xb9, 0x1a, 0xfc, 0x16, 0xd8, 0x2d, 0xec, 0x15, 0x38, 0x61, 0xf3, - 0x2b, 0x0e, 0x10, 0x38, 0x64, 0x5d, 0x65, 0xcf, 0xa5, 0xb3, 0xf7, - 0xf8, 0x77, 0xdf, 0xaa, 0x99, 0x3e, 0x7d, 0x9d, 0x69, 0x73, 0xce, - 0x3c, 0x2d, 0xab, 0x27, 0x80, 0xe8, 0x76, 0xdb, 0x45, 0x9c, 0xe7, - 0x3f, 0x95, 0x24, 0xb5, 0x95, 0xc3, 0x19, 0xbe, 0xbd, 0x9f, 0x84, - 0x68, 0xfa, 0x5d, 0xf5, 0xeb, 0x38, 0xcb, 0xa8, 0x5b, 0x58, 0xc4, - 0x7b, 0x8f, 0x51, 0x7b, 0xe2, 0x2d, 0xdd, 0x1a, 0xf1, 0x22, 0xc4, - 0xa5, 0xac, 0x0e, 0x4d, 0xce, 0x82, 0xab, 0x59, 0x39, 0x5a, 0x95, - 0xd5, 0x7c, 0xf8, 0x43, 0xe1, 0x3f, 0xbc, 0x61, 0x0f, 0x2c, 0xa7, - 0x47, 0x45, 0x8e, 0xd4, 0x16, 0xd4, 0x1d, 0xec, 0x91, 0x9c, 0xe4, - 0xfc, 0x96, 0x67, 0xfe, 0xfd, 0xc9, 0x91, 0x38, 0xa7, 0x01, 0xc9, - 0x08, 0xd1, 0xcc, 0xcb, 0xd4, 0x3b, 0x58, 0x2c, 0x3a, 0xf2, 0x18, - 0xda, 0x39, 0x76, 0x53, 0xc2, 0xea, 0xe7, 0x6e, 0x9b, 0x61, 0xce, - 0x62, 0x75, 0x39, 0xea, 0x01, 0xe8, 0x88, 0x14, 0x8f, 0xd1, 0x3e, - 0x5c, 0x4c, 0xef, 0x27, 0xfe, 0x10, 0xf2, 0x54, 0x65, 0xd3, 0x2a, - 0x1e, 0x4a, 0xee, 0x42, 0x46, 0x56, 0xa7, 0xca, 0x43, 0xa3, 0x5e, - 0x4a, 0x0b, 0xd6, 0x30, 0x11, 0x3e, 0x98, 0xdc, 0xdc, 0xdd, 0x79, - 0x13, 0xa6, 0x04, 0x6e, 0x7c, 0x62, 0x65, 0xb2, 0x40, 0xe6, 0x18, - 0x8e, 0x5d, 0x51, 0xa8, 0x7a, 0xf0, 0x47, 0xf3, 0xe7, 0x0b, 0xd0, - 0x93, 0x53, 0x86, 0x78, 0x52, 0x5c, 0x08, 0x2d, 0x02, 0x46, 0x5e, - 0xf1, 0x1b, 0x5d, 0x1b, 0x82, 0x66, 0x28, 0xba, 0x8f, 0x11, 0xac, - 0x61, 0x55, 0x01, 0x57, 0xb9, 0x9c, 0xab, 0x4d, 0x36, 0x43, 0x78, - 0x62, 0x96, 0x8f, 0xf5, 0x4a, 0xb9, 0x5c, 0xd4, 0x59, 0x16, 0xd1, - 0xf7, 0x0b, 0xf6, 0xda, 0x26, 0xdc, 0xa2, 0x27, 0x6d, 0x49, 0xf7, - 0x70, 0x77, 0x92, 0x28, 0xd1, 0x55, 0xc3, 0x2f, 0x01, 0x41, 0x29, - 0x59, 0x57, 0x73, 0x31, 0x5f, 0x1c, 0x52, 0x1f, 0xc0, 0x1e, 0xe6, - 0xa0, 0xac, 0x35, 0xa7, 0x2e, 0xf2, 0x04, 0x22, 0x1f, 0x11, 0x55, - 0x71, 0x68, 0x4f, 0xa4, 0xea, 0x18, 0xe5, 0x96, 0x02, 0x23, 0x46, - 0x5c, 0x4c, 0x75, 0xd7, 0xb9, 0x42, 0x6f, 0x41, 0x9a, 0xe9, 0x38, - 0xe2, 0x64, 0x6a, 0xf7, 0x60, 0x8e, 0xfe, 0x50, 0x1f, 0xaf, 0xf0, - 0x3f, 0xb7, 0x24, 0xae, 0xc5, 0x51, 0x51, 0x9d, 0x15, 0x04, 0x77, - 0x8c, 0xc6, 0xca, 0xd1, 0x42, 0x69, 0x85, 0xc7, 0xf2, 0x6e, 0x4c, - 0x4d, 0x70, 0xac, 0x79, 0xd3, 0xcd, 0x5a, 0xd0, 0x23, 0x4a, 0x87, - 0x89, 0x22, 0x85, 0xd7, 0x00, 0x4e, 0xcf, 0x9b, 0x9e, 0x27, 0xc2, - 0xa5, 0x7c, 0xcc, 0x32, 0x0c, 0x58, 0x84, 0xc6, 0x90, 0x69, 0x08, - 0x21, 0x41, 0x3e, 0xe5, 0x32, 0xb5, 0xa8, 0x4f, 0x4c, 0x98, 0x33, - 0xd8, 0x7b, 0x60, 0xc7, 0x29, 0x3c, 0xf3, 0x62, 0xa4, 0x90, 0xe2, - 0xa0, 0xda, 0xda, 0x14, 0x77, 0xff, 0x42, 0xa0, 0x35, 0x96, 0x2a, - 0x3b, 0x37, 0xe5, 0xc1, 0xa7, 0x6f, 0x45, 0x3c, 0x4b, 0x2b, 0x56, - 0x3e, 0x0c, 0x72, 0xcd, 0xd8, 0x5a, 0x42, 0x3b, 0xec, 0x12, 0x65, - 0x73, 0xf8, 0xe8, 0x77, 0x58, 0xc6, 0x1b, 0x0c, 0x4c, 0x16, 0xcd, - 0xdc, 0x55, 0x4e, 0x73, 0x53, 0xa1, 0xe9, 0xf1, 0xfc, 0x52, 0x5b, - 0xa4, 0x18, 0xd8, 0xa8, 0xcd, 0x1b, 0x28, 0x2f, 0x33, 0xbf, 0x9d, - 0xb5, 0x63, 0x98, 0x1d, 0x6b, 0xbd, 0x7d, 0x9d, 0x8d, 0x4d, 0xfe, - 0xf8, 0x1a, 0x9b, 0x1f, 0xa7, 0xf1, 0x9e, 0xca, 0x9a, 0xf6, 0x14, - 0x36, 0x16, 0x70, 0x18, 0x47, 0xea, 0x6f, 0x1b, 0xb8, 0x01, 0x43, - 0x8c, 0xcb, 0x41, 0xc7, 0x17, 0x7e, 0xdd, 0x65, 0xf8, 0xb5, 0x9e, - 0x99, 0x5f, 0x83, 0xbb, 0x3e, 0x65, 0x04, 0x16, 0x8c, 0xb3, 0x4b, - 0xf3, 0x20, 0x98, 0x77, 0x13, 0x1b, 0x34, 0xb1, 0x35, 0x4d, 0xd2, - 0x92, 0x1e, 0x53, 0x6b, 0xd2, 0xa7, 0x37, 0xd5, 0x35, 0x66, 0x02, - 0xb6, 0xde, 0x69, 0x66, 0x48, 0x5d, 0xba, 0xb0, 0xbe, 0x32, 0xf0, - 0x0f, 0x18, 0xf5, 0xe9, 0xb6, 0x69, 0xad, 0x57, 0x2e, 0x57, 0x92, - 0xba, 0xa9, 0x65, 0xaf, 0x9b, 0x80, 0xf4, 0xca, 0xa3, 0x56, 0x16, - 0x50, 0xf5, 0xf5, 0xc8, 0xc4, 0x2a, 0x48, 0x6d, 0x6f, 0xac, 0xf5, - 0xa2, 0xa0, 0x15, 0xc1, 0x13, 0xa4, 0xbb, 0x4b, 0xcb, 0x7a, 0x28, - 0xd4, 0x0b, 0x2c, 0xca, 0x7d, 0x7b, 0x19, 0x5c, 0x35, 0x83, 0xcf, - 0x4a, 0x20, 0xf5, 0xf9, 0x95, 0x41, 0x0d, 0x77, 0xab, 0x82, 0xaa, - 0xfc, 0x99, 0x39, 0xda, 0x0c, 0xb4, 0x3b, 0xc5, 0xca, 0x75, 0xd5, - 0xc1, 0x3a, 0xd7, 0x38, 0x8a, 0xb7, 0x25, 0x98, 0x7e, 0x93, 0x36, - 0x6c, 0x0c, 0x33, 0x8a, 0x14, 0xe9, 0x71, 0x65, 0xa6, 0x53, 0x05, - 0xcd, 0x58, 0xca, 0xf3, 0xb9, 0x6c, 0xad, 0xc5, 0x5a, 0xc7, 0x86, - 0xbb, 0x54, 0x51, 0xbf, 0x23, 0x10, 0x5f, 0x05, 0x1e, 0x20, 0xb9, - 0x34, 0x65, 0x42, 0xfd, 0x4a, 0x3e, 0xee, 0x02, 0x57, 0xca, 0x15, - 0x7c, 0xf2, 0xcb, 0x10, 0x56, 0xee, 0x46, 0xc3, 0x44, 0x9f, 0xce, - 0x08, 0x6a, 0x7a, 0xfe, 0xfa, 0xdd, 0x18, 0x3d, 0x85, 0xa2, 0x54, - 0x1c, 0xc9, 0x36, 0xe4, 0x66, 0xe8, 0x98, 0xe8, 0xfe, 0x8f, 0xf6, - 0x19, 0x80, 0x82, 0xc2, 0xcf, 0x72, 0xc7, 0x8f, 0xc6, 0xc6, 0x10, - 0xeb, 0xdd, 0x7f, 0x14, 0xc9, 0x4c, 0x93, 0x9f, 0x26, 0xac, 0x6a, - 0x4c, 0x4d, 0x00, 0x03, 0x86, 0xc5, 0x49, 0x42, 0xe5, 0x2e, 0xb7, - 0x53, 0xfa, 0xe4, 0xc3, 0xe2, 0x6d, 0xb4, 0xac, 0xe4, 0x19, 0x62, - 0x85, 0x3c, 0xc6, 0x0d, 0xe9, 0xae, 0x5e, 0x87, 0x5c, 0x12, 0x69, - 0x02, 0xaf, 0x77, 0x8a, 0xc7, 0xe9, 0xe4, 0xb3, 0x4f, 0x6c, 0xb8, - 0xd5, 0xd1, 0xf3, 0x8c, 0xe0, 0x80, 0xb8, 0x7c, 0x8d, 0x90, 0x36, - 0xc0, 0xf9, 0xc4, 0x5c, 0x40, 0x3e, 0xf9, 0x3d, 0xb5, 0xd5, 0xb8, - 0x8f, 0x3e, 0x72, 0xe7, 0x99, 0xc1, 0x67, 0xec, 0x36, 0xa2, 0x1d, - 0x55, 0x2f, 0x2d, 0x92, 0x9b, 0x8a, 0x57, 0xf3, 0xb0, 0x1d, 0xfb, - 0x67, 0x34, 0xed, 0x1b, 0xde, 0x98, 0x10, 0x81, 0xec, 0x0b, 0x0c, - 0x21, 0x87, 0x7b, 0xb2, 0x49, 0x71, 0x9f, 0x8d, 0xa7, 0x65, 0x50, - 0x76, 0x05, 0xeb, 0xda, 0xc7, 0xea, 0x7e, 0xce, 0xaa, 0x4e, 0x1d, - 0xee, 0xa5, 0xd6, 0x8f, 0xcf, 0x42, 0x35, 0xbf, 0x2c, 0x2a, 0xea, - 0x77, 0xd8, 0x16, 0x29, 0xa2, 0x76, 0x93, 0xaa, 0xe0, 0xec, 0xb6, - 0xba, 0x4a, 0x26, 0x8a, 0x0d, 0x6d, 0x4b, 0x77, 0x1f, 0xce, 0xac, - 0x40, 0x80, 0x12, 0xde, 0xe1, 0x40, 0xcb, 0x7b, 0xbf, 0x30, 0xa4, - 0x8e, 0x74, 0xb0, 0x93, 0x1d, 0xf7, 0x30, 0x0a, 0xad, 0x1d, 0xa7, - 0x98, 0xa9, 0x0e, 0x12, 0x2a, 0x6f, 0xb0, 0x56, 0xbb, 0xb2, 0x65, - 0xbb, 0xc4, 0xee, 0x8f, 0x71, 0xc7, 0x34, 0xad, 0x3f, 0xcc, 0xcb, - 0x15, 0xdf, 0x9a, 0xb8, 0xfd, 0x9e, 0x9f, 0xe2, 0x4d, 0x9c, 0x19, - 0xce, 0x62, 0x4b, 0x23, 0x3f, 0xed, 0xbc, 0x78, 0x8e, 0xd3, 0x04, - 0x35, 0xf5, 0x7f, 0xcc, 0xee, 0x63, 0x75, 0xb8, 0x42, 0xf9, 0xe3, - 0xb2, 0xdf, 0x0c, 0xf2, 0x78, 0x4c, 0x6b, 0x23, 0x4a, 0x1a, 0xe1, - 0x1e, 0x6f, 0x13, 0xc0, 0xb6, 0x5e, 0xa3, 0x4b, 0xd3, 0x09, 0x07, - 0xd0, 0xe5, 0xe5, 0xb6, 0x47, 0x4a, 0x13, 0x3b, 0xb2, 0x4e, 0x38, - 0x0e, 0x62, 0x36, 0x20, 0x33, 0xc6, 0x1f, 0x18, 0xaa, 0x37, 0xdc, - 0x68, 0xad, 0x6e, 0xcb, 0x11, 0x88, 0x7a, 0xe9, 0x68, 0xc7, 0x81, - 0x28, 0xfd, 0x34, 0xed, 0x7f, 0x8a, 0x12, 0xeb, 0xb2, 0xe2, 0x2f, - 0x13, 0x44, 0xfb, 0x35, 0xde, 0x8b, 0x91, 0x24, 0xce, 0xc3, 0x46, - 0x83, 0x34, 0xd0, 0xe2, 0x89, 0x1f, 0x99, 0x02, 0x19, 0x21, 0xa4, - 0x5d, 0xd6, 0x7e, 0x2a, 0xa2, 0xf5, 0x65, 0xb4, 0xeb, 0xe5, 0xff, - 0x22, 0x05, 0xd0, 0x43, 0x0c, 0x41, 0xe3, 0x12, 0x6a, 0x58, 0xa5, - 0x63, 0x20, 0xb8, 0x85, 0x1f, 0xbb, 0x02, 0x93, 0x62, 0xe4, 0xe6, - 0x5c, 0x2d, 0x3e, 0x95, 0xb0, 0xe7, 0x0d, 0xc0, 0xc8, 0x79, 0x09, - 0xd9, 0x08, 0xa7, 0xf8, 0x1a, 0x59, 0xd6, 0xa6, 0x90, 0x90, 0x14, - 0x4e, 0xd2, 0x5d, 0x85, 0xd0, 0x03, 0xb2, 0x4d, 0xc9, 0x38, 0x7d, - 0x00, 0x29, 0xa6, 0xfb, 0x84, 0x0e, 0x6a, 0xf7, 0x7d, 0x9d, 0x52, - 0xf6, 0xcb, 0x8d, 0x69, 0xf4, 0xfe, 0x6c, 0x69, 0x67, 0x3d, 0xd7, - 0x51, 0x8b, 0x6a, 0x15, 0x00, 0x82, 0x4b, 0xcc, 0xe9, 0xac, 0x15, - 0xa5, 0x13, 0x55, 0x46, 0xf5, 0xdc, 0x6c, 0xbe, 0x1b, 0xeb, 0x6d, - 0xf1, 0x1b, 0x97, 0x8e, 0x88, 0x9c, 0xb1, 0x84, 0xe4, 0x3d, 0x07, - 0xad, 0xe1, 0xfe, 0x39, 0x62, 0x93, 0x25, 0x54, 0x0b, 0xc3, 0x60, - 0xe9, 0x06, 0xf6, 0x38, 0x42, 0x5a, 0xc9, 0x25, 0x26, 0xb3, 0xad, - 0x4b, 0xc6, 0x00, 0xeb, 0xb8, 0xa1, 0xfd, 0x31, 0x80, 0x7c, 0x17, - 0x7f, 0x90, 0xfe, 0x2f, 0xb7, 0x8a, 0x86, 0x88, 0xbd, 0x27, 0x27, - 0x7d, 0x57, 0x47, 0x15, 0xb9, 0x69, 0xfa, 0xbf, 0x0a, 0x22, 0x72, - 0x50, 0x8b, 0x37, 0x7a, 0x2e, 0xa0, 0xd4, 0x31, 0x80, 0xfb, 0x12, - 0x85, 0x30, 0x25, 0xe4, 0xb8, 0x08, 0x82, 0xeb, 0x6b, 0x16, 0x5b, - 0x14, 0x76, 0x64, 0x12, 0x79, 0xf2, 0x9e, 0x94, 0xdb, 0xe4, 0xf2, - 0x4a, 0x82, 0x01, 0x59, 0xcf, 0x83, 0x37, 0xb9, 0x20, 0x95, 0x0c, - 0x36, 0xa0, 0x85, 0xfd, 0xc2, 0x6f, 0xb2, 0x90, 0x3f, 0x3b, 0x00, - 0x65, 0x91, 0xf4, 0x62, 0x19, 0x0e, 0x6b, 0x16, 0x60, 0x01, 0x07, - 0xf3, 0x88, 0x05, 0xd5, 0x9d, 0x3f, 0xe8, 0x81, 0xd0, 0xd5, 0x87, - 0xec, 0xea, 0xb3, 0xa1, 0x87, 0xb3, 0x45, 0x1d, 0x56, 0x57, 0xe1, - 0x1f, 0x04, 0xcb, 0x88, 0x44, 0x94, 0x62, 0xf0, 0xe5, 0x55, 0x84, - 0x16, 0x8a, 0xf0, 0x5e, 0xb1, 0x2b, 0x34, 0x60, 0x84, 0xc2, 0x39, - 0x71, 0xc1, 0x21, 0x87, 0x56, 0xb6, 0xac, 0x41, 0x27, 0xad, 0xa6, - 0x53, 0x8e, 0xad, 0x64, 0x40, 0x8d, 0x4a, 0x38, 0x34, 0xd9, 0x47, - 0xb3, 0x4e, 0x76, 0x32, 0x07, 0x76, 0xe8, 0x2e, 0x39, 0xa8, 0x13, - 0xfc, 0x48, 0x91, 0xb4, 0x9e, 0x07, 0xe9, 0xe9, 0xbd, 0x03, 0x48, - 0x79, 0xf9, 0x4f, 0x27, 0x7d, 0x2d, 0x94, 0xe8, 0xc4, 0x0a, 0x98, - 0xdd, 0x37, 0x95, 0x0c, 0xf9, 0x5d, 0xd2, 0x15, 0x9d, 0x06, 0x5a, - 0x66, 0xda, 0xd6, 0xfe, 0x0d, 0x6c, 0x92, 0x7e, 0xa2, 0xda, 0xf8, - 0xb7, 0x6a, 0xaa, 0xa5, 0x4c, 0xc0, 0x07, 0x62, 0xa5, 0xa9, 0x9d, - 0x44, 0xda, 0x27, 0x30, 0xdb, 0x53, 0xfd, 0xad, 0x6e, 0x97, 0x62, - 0x2b, 0xab, 0x30, 0xf0, 0x42, 0x6c, 0xfd, 0x3d, 0x97, 0xde, 0xff, - 0xe1, 0xae, 0xd9, 0xb3, 0xd9, 0xee, 0x27, 0x41, 0x08, 0x82, 0xab, - 0xe0, 0xc6, 0xed, 0x83, 0x7f, 0xdc, 0x81, 0xde, 0x01, 0x3a, 0x32, - 0x1c, 0xd4, 0xdf, 0x93, 0x4b, 0xd7, 0x9c, 0xc1, 0x58, 0x54, 0x5a, - 0x6a, 0x98, 0xe5, 0xf0, 0x1e, 0x30, 0xfb, 0xb6, 0x4b, 0x09, 0x43, - 0x80, 0xef, 0xc1, 0xb2, 0x72, 0x4d, 0x34, 0xd1, 0x16, 0x25, 0x70, - 0xb3, 0x4e, 0x77, 0x45, 0x6c, 0x47, 0x8e, 0x58, 0xff, 0xb8, 0x37, - 0x76, 0x37, 0x5b, 0x97, 0x78, 0x72, 0x33, 0x06, 0xd5, 0x6a, 0x13, - 0x3d, 0x95, 0xb3, 0xb9, 0xe0, 0x06, 0xf0, 0xdf, 0xd4, 0xd8, 0x3f, - 0x15, 0x3a, 0x1d, 0x84, 0x57, 0xc5, 0x18, 0xfc, 0x96, 0x4b, 0xa4, - 0xd7, 0xc1, 0x10, 0xd6, 0xae, 0xf3, 0xb9, 0xfe, 0xc6, 0x35, 0xb5, - 0x3c, 0xca, 0x18, 0xb3, 0xaa, 0xaf, 0x8a, 0xa6, 0xc2, 0x72, 0x02, - 0x67, 0x60, 0x38, 0xcc, 0x0f, 0x89, 0x50, 0x39, 0x2b, 0x6c, 0xd6, - 0x21, 0x24, 0x90, 0xfe, 0x78, 0xf5, 0x25, 0x91, 0x4a, 0x47, 0xe9, - 0xcc, 0x5d, 0xfe, 0xf3, 0x15, 0xb4, 0x89, 0x0c, 0x4a, 0xe3, 0x38, - 0x08, 0xc5, 0xd9, 0x63, 0xe6, 0xcd, 0x6f, 0xcc, 0xe3, 0x7b, 0xaf, - 0x72, 0x25, 0xb8, 0x32, 0x9d, 0xd0, 0xbb, 0x01, 0x00, 0x02, 0x9c, - 0x2c, 0x0d, 0x01, 0x6e, 0x54, 0x36, 0xc6, 0x2f, 0x25, 0xdb, 0x74, - 0x08, 0x04, 0x66, 0x12, 0x72, 0x05, 0x73, 0x4a, 0x76, 0x15, 0xf4, - 0xbe, 0xf1, 0xab, 0x98, 0x7a, 0x47, 0x28, 0xdd, 0xcc, 0xd5, 0x96, - 0xc9, 0x1c, 0x9b, 0x77, 0x89, 0xe8, 0xec, 0x3c, 0x7f, 0x88, 0xb0, - 0x84, 0x9c, 0x72, 0x0b, 0x71, 0xfe, 0xac, 0xe1, 0x0e, 0x0d, 0x8a, - 0x12, 0xd8, 0xe2, 0x89, 0xf9, 0x09, 0xd4, 0x54, 0x87, 0xe1, 0xee, - 0x40, 0x2a, 0xc2, 0x17, 0x8e, 0xb9, 0xac, 0xb0, 0xde, 0xcd, 0xec, - 0x93, 0x15, 0x40, 0x48, 0xd5, 0xa6, 0x80, 0x97, 0x57, 0x56, 0x54, - 0x21, 0xf7, 0x25, 0xd3, 0xbf, 0xcb, 0x20, 0xf1, 0x73, 0xe8, 0x8c, - 0x11, 0xc1, 0x63, 0x15, 0x06, 0x37, 0xb9, 0xd8, 0x36, 0x42, 0xd9, - 0x0a, 0x29, 0x3c, 0x31, 0x46, 0x92, 0xac, 0x84, 0xa9, 0x83, 0x1c, - 0x3e, 0xe8, 0xc9, 0x7b, 0x5c, 0xe0, 0x8c, 0x1f, 0x7c, 0x77, 0xd6, - 0x1a, 0x3a, 0x7f, 0x03, 0x44, 0x79, 0xc1, 0x05, 0xe2, 0x94, 0x42, - 0x3c, 0xe7, 0xcd, 0x55, 0x84, 0xce, 0x9e, 0xeb, 0x34, 0xc8, 0x77, - 0x85, 0xd8, 0x00, 0xff, 0x24, 0x03, 0xf3, 0xa9, 0xc6, 0x3d, 0x81, - 0xee, 0x85, 0xac, 0x2d, 0xc1, 0xbb, 0xbd, 0x67, 0xaa, 0xa7, 0x68, - 0x90, 0x76, 0x59, 0xb5, 0x17, 0x1f, 0x8e, 0x0d, 0x70, 0x99, 0x69, - 0xa5, 0xa2, 0xe3, 0x61, 0x1a, 0x49, 0x29, 0x21, 0x0d, 0xed, 0xb1, - 0xdb, 0x06, 0xb8, 0x65, 0xf0, 0xdf, 0x73, 0x2d, 0x35, 0xea, 0x3c, - 0x2d, 0x30, 0xbc, 0x24, 0xa1, 0x55, 0x78, 0x84, 0xc8, 0x44, 0xa4, - 0x93, 0x3d, 0x68, 0x61, 0x0a, 0xd3, 0x5a, 0x0f, 0x17, 0x9c, 0x0a, - 0x64, 0x0e, 0x54, 0xd1, 0x01, 0x6e, 0x0b, 0x1d, 0xf2, 0x12, 0x5d, - 0xef, 0x11, 0x75, 0x0b, 0x87, 0xd2, 0xa9, 0x20, 0xf3, 0xa7, 0x93, - 0x8b, 0xdc, 0x52, 0x16, 0x7b, 0x46, 0x9d, 0x01, 0x1d, 0xe3, 0x3c, - 0xb1, 0x5b, 0xb3, 0x71, 0xf1, 0xa8, 0xa3, 0xbd, 0xfa, 0x82, 0x65, - 0xbc, 0x17, 0xc8, 0x50, 0xff, 0xe3, 0xf7, 0x2e, 0x29, 0x44, 0x64, - 0x43, 0xca, 0x2e, 0x7f, 0x2f, 0xd6, 0x86, 0xcb, 0x92, 0xba, 0xa7, - 0xf7, 0xcf, 0x89, 0x54, 0x71, 0xf9, 0x82, 0xa4, 0x24, 0x73, 0xf2, - 0x59, 0xa8, 0x0d, 0x89, 0x52, 0xbd, 0xaf, 0xce, 0x2e, 0xee, 0x73, - 0x0d, 0x3c, 0xee, 0xfd, 0x90, 0x8e, 0xd8, 0x94, 0x13, 0xcd, 0xc3, - 0x6e, 0x80, 0x6b, 0x70, 0xc1, 0x7f, 0x64, 0x35, 0x54, 0xea, 0xd7, - 0x64, 0x29, 0xcd, 0x2d, 0xef, 0x9d, 0xb0, 0x16, 0x90, 0x28, 0xa1, - 0xfe, 0xd6, 0xbc, 0xb5, 0x73, 0xa3, 0xcc, 0xa2, 0x5d, 0xc7, 0x55, - 0x24, 0xc7, 0xeb, 0x2f, 0xb7, 0x5c, 0x24, 0xbd, 0xab, 0x2f, 0x12, - 0x53, 0xa5, 0xd9, 0xa3, 0x6d, 0x25, 0x80, 0x39, 0x15, 0x26, 0x05, - 0xc5, 0x21, 0xec, 0x86, 0xa6, 0xe3, 0xed, 0x3f, 0x5a, 0xea, 0xad, - 0x2e, 0xe2, 0x2f, 0x3d, 0x9e, 0x99, 0x03, 0x18, 0xdb, 0x10, 0x39, - 0xc7, 0xcf, 0x60, 0xb1, 0x63, 0x94, 0xb5, 0xa2, 0x4e, 0x49, 0x74, - 0x0c, 0x2b, 0x0d, 0x64, 0x75, 0x38, 0x2c, 0xc9, 0x9e, 0x68, 0x33, - 0x94, 0xcf, 0x48, 0x35, 0x65, 0x3f, 0x42, 0x70, 0xee, 0x87, 0x3c, - 0xce, 0xe5, 0xe0, 0xa1, 0xe0, 0xfe, 0xb7, 0xd8, 0x7c, 0xcc, 0xde, - 0x43, 0x70, 0x33, 0x25, 0xa7, 0x7f, 0xca, 0xab, 0x2a, 0x5d, 0x73, - 0x67, 0x36, 0x69, 0x49, 0xa0, 0x86, 0xee, 0x9f, 0xf3, 0x04, 0x63, - 0x14, 0xa5, 0xcc, 0x31, 0x5e, 0x23, 0x8b, 0x99, 0x97, 0xac, 0x34, - 0x22, 0x58, 0x2d, 0xc8, 0x60, 0x42, 0x85, 0x77, 0x7d, 0x95, 0xe7, - 0xed, 0xed, 0x84, 0x30, 0x67, 0x38, 0xe5, 0xcd, 0xa9, 0xeb, 0x8b, - 0xee, 0x1a, 0xf4, 0x4f, 0x09, 0xc4, 0x93, 0xe7, 0xca, 0xe4, 0x50, - 0xd9, 0x9a, 0x75, 0x62, 0xcd, 0x6a, 0xa2, 0x06, 0xf5, 0x66, 0xab, - 0xdf, 0xae, 0xe9, 0x78, 0x6d, 0xd7, 0x08, 0xd8, 0x97, 0xa8, 0xee, - 0x46, 0xd9, 0x0a, 0x2d, 0xe2, 0x8f, 0x2a, 0x89, 0xbc, 0x09, 0xa7, - 0xeb, 0x4d, 0x60, 0xcd, 0x09, 0x3e, 0xe4, 0x6b, 0x90, 0x6b, 0xd6, - 0x66, 0x89, 0xc0, 0x46, 0x15, 0x4c, 0x2d, 0x69, 0xab, 0x81, 0xa8, - 0xee, 0xad, 0xdf, 0xeb, 0xec, 0x28, 0xa1, 0xcf, 0xd1, 0xe0, 0xa5, - 0x9e, 0x78, 0x89, 0x65, 0xbe, 0x6d, 0x8d, 0xa6, 0x34, 0x48, 0x41, - 0x3e, 0x84, 0x9f, 0xf8, 0x47, 0x7f, 0xe8, 0x68, 0x26, 0x28, 0x1f, - 0xc8, 0x16, 0xe1, 0x96, 0x35, 0x78, 0x3f, 0xd9, 0x43, 0xc2, 0x33, - 0xb3, 0xc8, 0x3f, 0x3e, 0x9f, 0xdf, 0x04, 0x7f, 0x9c, 0x4a, 0xe6, - 0xdb, 0xd6, 0x10, 0xbc, 0x34, 0x4e, 0xc8, 0x41, 0xcf, 0x2d, 0x70, - 0xe3, 0x09, 0xa0, 0x4a, 0xe0, 0x82, 0xef, 0xf0, 0x6d, 0xff, 0x5d, - 0x0b, 0x90, 0x59, 0x26, 0xca, 0x13, 0xd3, 0xa0, 0x34, 0x3a, 0x73, - 0x71, 0x7a, 0x4e, 0x47, 0xfa, 0x3e, 0x58, 0xd2, 0xb8, 0xc6, 0x1a, - 0x0b, 0x85, 0x1a, 0xac, 0x43, 0xf3, 0x06, 0x13, 0x3b, 0x92, 0x6b, - 0xf9, 0x55, 0x94, 0x0d, 0x51, 0x7a, 0x38, 0xdf, 0xa4, 0x3d, 0xb0, - 0x0b, 0x76, 0x09, 0xf8, 0x63, 0xa0, 0xc7, 0xe3, 0x50, 0x63, 0x2d, - 0x05, 0x79, 0x36, 0xa3, 0x90, 0x68, 0x9a, 0x99, 0xb8, 0x13, 0xd1, - 0x45, 0x3d, 0x98, 0x6e, 0x24, 0x26, 0x4b, 0x47, 0xd3, 0xb2, 0x37, - 0x98, 0xc2, 0xdf, 0x09, 0xe7, 0xc4, 0x9f, 0x2a, 0xab, 0x39, 0xab, - 0xa4, 0x6d, 0x40, 0xc1, 0x3f, 0x5c, 0xa0, 0x41, 0x92, 0x64, 0xf1, - 0x6a, 0xd6, 0x8d, 0xab, 0x44, 0xbf, 0xec, 0xac, 0x38, 0xc6, 0x4f, - 0x9a, 0x56, 0x7e, 0xe3, 0x69, 0xe5, 0xce, 0xe2, 0x43, 0x99, 0xdc, - 0xe2, 0x38, 0xa6, 0xbf, 0x51, 0x98, 0x39, 0x32, 0xf1, 0xb4, 0x48, - 0xa6, 0x4f, 0x75, 0xc0, 0xfd, 0x39, 0x84, 0xa5, 0x5d, 0x9a, 0xeb, - 0xb4, 0x9b, 0xe5, 0x9c, 0x6f, 0x40, 0x8d, 0x09, 0xfd, 0xba, 0x0a, - 0xfb, 0xbf, 0xd2, 0x62, 0x0b, 0x87, 0xc3, 0x55, 0xa8, 0xa6, 0xe1, - 0xbc, 0x97, 0x4a, 0x7a, 0x31, 0xdf, 0xff, 0x57, 0xdc, 0x16, 0xd1, - 0x7d, 0xd4, 0xd2, 0xc7, 0xeb, 0xfd, 0x0d, 0x3a, 0x30, 0x7b, 0x64, - 0xd0, 0x9f, 0xda, 0xba, 0xf3, 0x4a, 0x95, 0x6f, 0xf7, 0x63, 0x15, - 0x0f, 0x15, 0x26, 0x9b, 0x77, 0xcc, 0xa4, 0x10, 0x16, 0xb6, 0x95, - 0x66, 0x67, 0x76, 0x92, 0xbf, 0xa7, 0x7d, 0x25, 0x03, 0x0f, 0x0d, - 0x6a, 0x64, 0x68, 0xf4, 0xcf, 0x49, 0x2e, 0x67, 0x4b, 0x22, 0x37, - 0xe6, 0xb9, 0x0b, 0xb1, 0xb4, 0xcb, 0x10, 0x2a, 0x29, 0xe0, 0x06, - 0x8e, 0x68, 0x84, 0x25, 0xe8, 0x5b, 0x19, 0x1d, 0x1c, 0x83, 0x3b, - 0xe0, 0xd0, 0x14, 0x5f, 0xc1, 0x80, 0x3b, 0x22, 0x3f, 0x6d, 0xbb, - 0x34, 0x5b, 0xfc, 0x23, 0x19, 0x68, 0x4b, 0x6c, 0xc0, 0xea, 0xd5, - 0xe7, 0xd1, 0xf8, 0x2f, 0x0f, 0x68, 0x21, 0x01, 0x91, 0x94, 0xf2, - 0x75, 0x2c, 0x0f, 0x80, 0x0e, 0x0c, 0x98, 0x88, 0x46, 0x2c, 0x73, - 0x54, 0x18, 0xa1, 0x4d, 0x40, 0x85, 0xd1, 0x74, 0x18, 0x48, 0x16, - 0x62, 0xee, 0xfb, 0xf2, 0x74, 0x54, 0x8f, 0xd9, 0x31, 0x92, 0x0a, - 0x41, 0xd2, 0x26, 0xed, 0x78, 0x9f, 0xac, 0xbd, 0x12, 0xd2, 0xf9, - 0x28, 0x90, 0x46, 0xc0, 0xab, 0x8d, 0x94, 0x9d, 0x37, 0x73, 0x9a, - 0xc3, 0xb5, 0xa6, 0xe0, 0x7c, 0x17, 0xbb, 0x68, 0xa8, 0xe3, 0x69, - 0x30, 0x04, 0x02, 0xe5, 0xdb, 0x75, 0xb1, 0xa9, 0x4a, 0xbf, 0xed, - 0x56, 0xb0, 0x43, 0x76, 0xf2, 0x2b, 0x8c, 0x39, 0x99, 0xc2, 0x2a, - 0xd6, 0xb7, 0x48, 0xd0, 0x05, 0x36, 0xa4, 0x44, 0x97, 0x70, 0xfb, - 0x6c, 0x7a, 0x21, 0xd6, 0xf9, 0x79, 0x40, 0x93, 0xe0, 0x87, 0x7f, - 0x1a, 0xcb, 0xbb, 0x8d, 0x5e, 0x01, 0x8e, 0x4b, 0x5b, 0x8e, 0x45, - 0xe3, 0xf7, 0xf5, 0x32, 0x55, 0xb4, 0x80, 0x58, 0x9a, 0x1d, 0x3f, - 0x40, 0x8c, 0x90, 0x5f, 0xd4, 0xfa, 0x50, 0xac, 0xca, 0xe8, 0x2c, - 0x0f, 0xc6, 0x45, 0x70, 0xa4, 0x8b, 0x56, 0x55, 0xd9, 0xbb, 0xdb, - 0xae, 0x44, 0x9d, 0xda, 0xea, 0xc5, 0xbf, 0x7c, 0x88, 0xa0, 0x24, - 0xd4, 0x2d, 0xf8, 0x9c, 0x45, 0x86, 0x75, 0xa2, 0x4e, 0x58, 0x65, - 0x84, 0x0a, 0x14, 0xab, 0x61, 0xb7, 0x24, 0x6e, 0x9a, 0x6c, 0xb6, - 0x3e, 0xab, 0x19, 0xe5, 0x1b, 0x9b, 0xe3, 0x10, 0x02, 0x11, 0x14, - 0x87, 0x96, 0x47, 0x0c, 0xbd, 0xd7, 0x45, 0xbd, 0x04, 0xa1, 0xb5, - 0x7f, 0x0a, 0xe6, 0x50, 0x10, 0x72, 0xe3, 0x32, 0xe8, 0xad, 0x8f, - 0x3c, 0x93, 0x6f, 0x0a, 0x73, 0x66, 0xc9, 0xb1, 0xb3, 0xa6, 0xde, - 0xef, 0x09, 0x78, 0x33, 0x99, 0x4b, 0x18, 0xcc, 0x2c, 0xea, 0xd1, - 0x5e, 0x02, 0xa8, 0xc2, 0x18, 0x90, 0xa1, 0x37, 0x15, 0xb7, 0xb5, - 0xcc, 0x25, 0xc6, 0x62, 0x42, 0x48, 0x75, 0xc7, 0x92, 0x89, 0xa2, - 0x2e, 0xa9, 0x53, 0xae, 0xa7, 0x68, 0x11, 0x24, 0xcd, 0xe7, 0x0e, - 0xfb, 0x20, 0x81, 0x86, 0x84, 0xe7, 0x98, 0x6e, 0x6a, 0x06, 0xcf, - 0x67, 0xb7, 0x01, 0x5b, 0xea, 0xb3, 0x6e, 0x0e, 0x5d, 0x67, 0x7b, - 0x65, 0x9e, 0x9a, 0x9f, 0x4d, 0x27, 0xbc, 0xcd, 0x23, 0xed, 0x0d, - 0x78, 0x29, 0x18, 0xab, 0xfb, 0x45, 0x12, 0xac, 0x44, 0xd1, 0xfc, - 0xa7, 0x7a, 0xac, 0x3a, 0xe5, 0x1c, 0xef, 0xd4, 0xca, 0xb9, 0x81, - 0xdd, 0x51, 0xa9, 0x4f, 0x24, 0x26, 0x2b, 0xff, 0x41, 0xc8, 0xdd, - 0x8f, 0x43, 0xd7, 0xec, 0x17, 0x48, 0xfc, 0x6d, 0x85, 0x9b, 0xd2, - 0x33, 0xa7, 0x03, 0xa5, 0xf3, 0xe4, 0x4c, 0x2a, 0xbc, 0x84, 0x97, - 0x81, 0xcc, 0x24, 0x52, 0x8c, 0x79, 0xf5, 0x40, 0xf0, 0x98, 0xad, - 0x3e, 0x2d, 0xca, 0xff, 0x1c, 0xce, 0x4c, 0x00, 0xc3, 0x14, 0xd9, - 0xf1, 0x19, 0x1b, 0xae, 0xe9, 0x7c, 0xb7, 0x80, 0xe2, 0x7b, 0x8c, - 0x4b, 0x6e, 0x8b, 0x4f, 0x05, 0xf7, 0xb0, 0x63, 0x2f, 0x83, 0x13, - 0xb5, 0x60, 0x5f, 0xae, 0xc1, 0xa0, 0xa6, 0x99, 0x0d, 0xfc, 0x60, - 0xd2, 0x19, 0xe5, 0xe6, 0xa2, 0x08, 0x98, 0xeb, 0x5e, 0x6b, 0x11, - 0xe3, 0x23, 0x32, 0x5b, 0x9c, 0x8f, 0xb8, 0x09, 0x63, 0x5f, 0x26, - 0xf1, 0xb8, 0x1d, 0xc5, 0xf7, 0xc7, 0x92, 0x61, 0x53, 0xfd, 0xb4, - 0x6d, 0xbb, 0x2c, 0x0d, 0x5e, 0x08, 0xe2, 0x76, 0xe2, 0x22, 0x68, - 0xd7, 0xf0, 0xcd, 0xa4, 0x63, 0x33, 0xf7, 0x2b, 0xf6, 0x35, 0x8a, - 0xac, 0x5a, 0x02, 0x33, 0x06, 0x75, 0x28, 0x14, 0x5b, 0x46, 0x27, - 0x2f, 0x06, 0x74, 0xb1, 0x1f, 0x2d, 0x5f, 0x1e, 0xf5, 0xe0, 0xd0, - 0x6f, 0xb2, 0x77, 0xcb, 0x77, 0x77, 0x58, 0x64, 0xb3, 0x42, 0x14, - 0xba, 0x04, 0x95, 0x50, 0x79, 0x1d, 0xb5, 0x99, 0x1d, 0x55, 0xeb, - 0xfa, 0x55, 0x29, 0xb4, 0xf4, 0xd7, 0x1a, 0xed, 0xb6, 0x5c, 0x5d, - 0x4b, 0x5c, 0xe8, 0x89, 0xd7, 0x61, 0x78, 0xca, 0x6e, 0x1d, 0x9a, - 0xd1, 0x62, 0x06, 0x2e, 0x3e, 0xaf, 0xc1, 0x45, 0x50, 0x6d, 0xb2, - 0x4b, 0x2c, 0xd5, 0x18, 0xad, 0xe1, 0xf8, 0xa8, 0xd0, 0xe4, 0x14, - 0xb9, 0x49, 0x99, 0xca, 0x1b, 0x61, 0x80, 0xf2, 0x1c, 0xd4, 0xfd, - 0xbd, 0x09, 0xeb, 0x15, 0x9e, 0x8c, 0x24, 0xf3, 0x00, 0x85, 0x9d, - 0x62, 0x6d, 0x85, 0xea, 0xca, 0xf6, 0x41, 0x65, 0xf1, 0x55, 0x26, - 0x9e, 0x93, 0x25, 0x8f, 0xfe, 0x3c, 0xfb, 0x16, 0x79, 0xf0, 0x10, - 0x2f, 0x17, 0x01, 0xcb, 0x23, 0x65, 0xac, 0x4d, 0x51, 0xe0, 0x10, - 0x64, 0x43, 0xba, 0x08, 0x32, 0x55, 0x45, 0x1b, 0xb7, 0x20, 0xbc, - 0xd9, 0x24, 0x36, 0x16, 0x5c, 0xcf, 0x09, 0x3c, 0x33, 0xe0, 0x43, - 0xb6, 0xd2, 0x15, 0x5b, 0xe8, 0x5d, 0x91, 0x34, 0x07, 0xb2, 0x25, - 0x51, 0x7c, 0x70, 0x0a, 0x89, 0x79, 0xe6, 0x9a, 0x16, 0xb7, 0xad, - 0x09, 0x1a, 0x06, 0x14, 0x7b, 0xcd, 0xe4, 0x3a, 0x09, 0x76, 0xd3, - 0x32, 0x92, 0x47, 0x87, 0xd9, 0x1c, 0xd5, 0x0d, 0x1f, 0xc4, 0xbd, - 0xcc, 0xe7, 0x56, 0xc3, 0xad, 0x86, 0x5f, 0x36, 0xbc, 0x94, 0x3f, - 0x23, 0xb3, 0xcf, 0xb2, 0xc7, 0xcf, 0xef, 0xeb, 0x5b, 0x14, 0xa5, - 0xe4, 0xd0, 0xb7, 0xe8, 0xbd, 0x1f, 0x74, 0x32, 0x28, 0x55, 0xb8, - 0xdd, 0x39, 0xc4, 0xc9, 0x12, 0x57, 0xa1, 0xa6, 0xa0, 0x9d, 0xde, - 0x12, 0x1a, 0x58, 0x0d, 0xc8, 0x31, 0xe3, 0xa7, 0x0f, 0x02, 0xec, - 0x6d, 0x05, 0xa8, 0x3b, 0xf4, 0x77, 0x31, 0xe3, 0xf8, 0x1e, 0x12, - 0xd4, 0xb6, 0xa6, 0x2f, 0x52, 0xed, 0x97, 0xbf, 0xb7, 0xfa, 0x06, - 0x99, 0x94, 0x9d, 0x9f, 0x63, 0xad, 0x0b, 0xc2, 0x2d, 0xe2, 0x03, - 0xc4, 0x77, 0xf9, 0x8e, 0x89, 0x9b, 0x23, 0x2c, 0x8c, 0x81, 0x73, - 0x54, 0xdb, 0x05, 0x71, 0x5c, 0x05, 0x87, 0x70, 0x7a, 0x25, 0x8a, - 0xbe, 0x6a, 0x1c, 0x2a, 0xd0, 0xfe, 0x5e, 0xec, 0x0a, 0x3f, 0x01, - 0x09, 0xcd, 0xcc, 0x9b, 0x60, 0xba, 0xa2, 0xc0, 0x4f, 0xb7, 0x9b, - 0xdb, 0x23, 0xc6, 0xeb, 0x1a, 0xed, 0x17, 0x49, 0x6b, 0x8b, 0x39, - 0x37, 0x60, 0xaa, 0x69, 0x53, 0x52, 0x3c, 0x29, 0x89, 0x37, 0x23, - 0xbe, 0x8f, 0xde, 0x61, 0x28, 0xd4, 0x0b, 0x7c, 0xb5, 0xab, 0x27, - 0xa7, 0x7e, 0xe4, 0x5f, 0x11, 0xe1, 0x1e, 0x0a, 0x62, 0x61, 0x28, - 0x51, 0x56, 0x42, 0xa1, 0x7f, 0xb2, 0xa5, 0x85, 0xa8, 0x0a, 0xc2, - 0xc5, 0xf6, 0x8b, 0x07, 0x3d, 0xf2, 0x91, 0xa7, 0xaa, 0x0b, 0x59, - 0x46, 0xa6, 0xd6, 0xab, 0x43, 0x89, 0x06, 0x69, 0xac, 0x37, 0x6f, - 0xef, 0x0f, 0xbd, 0x27, 0xdc, 0x15, 0xdb, 0xd9, 0x34, 0xba, 0x4e, - 0x74, 0x73, 0xb8, 0xab, 0x45, 0xd4, 0x18, 0x97, 0x4f, 0x49, 0xe3, - 0x49, 0xfe, 0xcd, 0xde, 0xd7, 0x07, 0x1f, 0x0e, 0x51, 0x8b, 0x63, - 0x31, 0xf9, 0x29, 0x2e, 0x82, 0xe0, 0x3c, 0xc2, 0xa8, 0xbd, 0x5e, - 0x2b, 0xfc, 0x2a, 0x61, 0x8e, 0x07, 0x69, 0xd1, 0x2c, 0x60, 0xda, - 0x97, 0xd3, 0x20, 0x90, 0x91, 0xd8, 0x3a, 0xae, 0x4f, 0xc2, 0xd4, - 0x43, 0xb9, 0x66, 0x42, 0xf0, 0x0b, 0x8a, 0x99, 0x55, 0xd6, 0x35, - 0xd7, 0x15, 0xcc, 0x4d, 0x46, 0xee, 0x45, 0x1d, 0xf9, 0x81, 0xff, - 0x01, 0xc7, 0x82, 0x0b, 0x35, 0x85, 0x09, 0xb1, 0x80, 0x94, 0xde, - 0x2b, 0xc1, 0x27, 0x68, 0xaf, 0x50, 0x80, 0xbb, 0xe7, 0xf7, 0x75, - 0xf6, 0xa3, 0xf2, 0x69, 0x9a, 0xfe, 0x8f, 0x89, 0xb0, 0x5b, 0x1e, - 0x9e, 0x76, 0x0a, 0x3d, 0xfc, 0x8c, 0xe7, 0x96, 0x33, 0x46, 0xec, - 0xc1, 0x28, 0xfd, 0xcd, 0x83, 0xbf, 0x34, 0xfd, 0x6f, 0x4b, 0x7e, - 0xf1, 0x44, 0x40, 0x67, 0xeb, 0xdc, 0x79, 0xbc, 0x05, 0xe8, 0x10, - 0xb3, 0xeb, 0xa8, 0xfc, 0x34, 0x9b, 0x3e, 0xe1, 0x88, 0x1c, 0xf5, - 0xbe, 0x3d, 0xfa, 0x1c, 0x99, 0xd8, 0x12, 0xd0, 0x02, 0x61, 0xb4, - 0x0d, 0x83, 0x74, 0x1f, 0x0d, 0xa9, 0x96, 0x2c, 0x4e, 0x54, 0xed, - 0xf0, 0x63, 0xd3, 0xfb, 0x97, 0xb7, 0x4d, 0xef, 0x35, 0x57, 0x8b, - 0x79, 0x32, 0xd1, 0x94, 0xe1, 0xe6, 0x90, 0x9a, 0xea, 0x23, 0x32, - 0x5b, 0xa9, 0xfc, 0xe1, 0x78, 0x66, 0x07, 0x42, 0x05, 0x4a, 0x8f, - 0x06, 0x56, 0x6d, 0x39, 0xd7, 0xd5, 0xa2, 0x76, 0x31, 0xd1, 0xe5, - 0x03, 0x57, 0xe0, 0x6e, 0x04, 0x8b, 0x46, 0x65, 0x43, 0x0b, 0xa1, - 0x7b, 0x3f, 0x45, 0x4a, 0x1a, 0x21, 0xee, 0x86, 0x6b, 0x96, 0x99, - 0x78, 0x31, 0xbb, 0xc2, 0x2a, 0x0b, 0xb7, 0x43, 0xd4, 0x6f, 0x93, - 0xba, 0xb6, 0x09, 0x17, 0x2c, 0x5f, 0xfd, 0xc1, 0xd5, 0xc4, 0xf3, - 0xb8, 0x4f, 0xf6, 0xa2, 0xac, 0x1f, 0x54, 0x15, 0xab, 0x29, 0x58, - 0xd1, 0x56, 0x80, 0x34, 0xa4, 0xcd, 0x09, 0xb8, 0x79, 0x72, 0xc2, - 0x8b, 0x29, 0x05, 0xd4, 0xc3, 0x4b, 0x00, 0x50, 0xbe, 0xc3, 0x64, - 0xa7, 0xad, 0xe4, 0xb3, 0x56, 0x67, 0x06, 0xad, 0x1d, 0x5f, 0xf2, - 0xa8, 0x22, 0x99, 0xc4, 0x00, 0xdc, 0x0e, 0x74, 0xea, 0x89, 0x84, - 0x95, 0x5e, 0x14, 0x0a, 0x78, 0x03, 0x63, 0xf6, 0x32, 0xde, 0x70, - 0x4d, 0x66, 0x7c, 0xae, 0x9b, 0x1d, 0x5a, 0x20, 0xd1, 0x26, 0xa8, - 0x01, 0x63, 0x73, 0x9e, 0x88, 0x14, 0x92, 0x35, 0x9b, 0x10, 0x82, - 0xdb, 0x4b, 0x01, 0xe8, 0xe9, 0x7a, 0x54, 0xb0, 0xc5, 0x9e, 0xd9, - 0x1b, 0xc2, 0xa9, 0x42, 0x8b, 0x70, 0xb7, 0x2a, 0xed, 0x3a, 0x79, - 0x49, 0xdf, 0x11, 0x57, 0x0c, 0x07, 0x6a, 0xe4, 0x3a, 0x14, 0xf3, - 0x83, 0xfc, 0x46, 0x9c, 0xd2, 0x77, 0xff, 0xf6, 0xca, 0x45, 0xcc, - 0xec, 0x88, 0xce, 0x9d, 0x05, 0xbc, 0x66, 0x1b, 0x28, 0x7a, 0x5a, - 0x18, 0x69, 0x25, 0x97, 0x11, 0x63, 0xb3, 0x54, 0x7d, 0x75, 0xcc, - 0xc0, 0xfc, 0xf3, 0xfc, 0xf0, 0x0f, 0x47, 0xdc, 0x88, 0x38, 0x31, - 0x89, 0x44, 0xef, 0x9b, 0x1b, 0x1a, 0x46, 0x67, 0xa5, 0xa2, 0x16, - 0x96, 0x61, 0x49, 0x37, 0x91, 0xda, 0x3f, 0x71, 0xcb, 0x07, 0x68, - 0xd3, 0x2c, 0x47, 0x8c, 0xfa, 0xe6, 0xb9, 0x99, 0x72, 0x09, 0xb1, - 0xe6, 0xd8, 0xe2, 0xf6, 0xb7, 0xd5, 0xe0, 0x4d, 0xf4, 0x0c, 0xc1, - 0x0d, 0xdc, 0x35, 0xc2, 0xfa, 0x57, 0xee, 0x7c, 0x83, 0x21, 0x3d, - 0xf1, 0xcc, 0x90, 0xce, 0x71, 0xaa, 0x9e, 0x8c, 0x2e, 0xdf, 0x8c, - 0x43, 0x41, 0x3d, 0x4f, 0x09, 0xe3, 0x33, 0xde, 0x69, 0x55, 0x56, - 0x7d, 0x41, 0x26, 0x01, 0x1b, 0x84, 0xb3, 0x16, 0xf0, 0x7a, 0xfc, - 0xd2, 0xc8, 0x13, 0xbf, 0xac, 0x9c, 0x6f, 0xf3, 0x7c, 0xbe, 0xf9, - 0x67, 0x38, 0xb7, 0x60, 0xf3, 0x07, 0xf7, 0x4e, 0x23, 0x1e, 0xfc, - 0xbd, 0xd4, 0x32, 0x73, 0xf4, 0xd2, 0x9b, 0x20, 0x11, 0x97, 0x72, - 0xec, 0xe2, 0xe1, 0x88, 0xef, 0xbe, 0x12, 0xee, 0x59, 0x99, 0x56, - 0x12, 0xcd, 0xcf, 0xea, 0xaa, 0x2a, 0x7a, 0x6d, 0xac, 0x2f, 0x06, - 0xa1, 0x7d, 0x6c, 0x64, 0x8d, 0x5c, 0xa9, 0x63, 0x80, 0x17, 0x54, - 0x12, 0x2e, 0xb9, 0x14, 0x97, 0xb5, 0x96, 0xf4, 0xf8, 0x8b, 0xad, - 0x10, 0x31, 0xbc, 0xa6, 0x26, 0xc8, 0x82, 0x44, 0x80, 0xb0, 0xc6, - 0x43, 0x7d, 0x1a, 0xed, 0xd6, 0x8f, 0xbe, 0x29, 0x02, 0x4d, 0x61, - 0x1b, 0xe3, 0xec, 0x09, 0xc2, 0xa0, 0x41, 0x1d, 0x74, 0x60, 0x28, - 0xaa, 0x24, 0xfc, 0xc2, 0x8a, 0xa9, 0x79, 0xa2, 0xb6, 0x1e, 0x16, - 0x6a, 0x62, 0x98, 0xea, 0x1d, 0x61, 0x4c, 0x79, 0xe2, 0xf6, 0xe4, - 0x50, 0xb1, 0x21, 0xfa, 0xac, 0x68, 0x84, 0x58, 0x34, 0x62, 0x34, - 0xc0, 0xad, 0x45, 0x6c, 0xd9, 0x21, 0xbc, 0x95, 0x54, 0xf1, 0xf7, - 0xbe, 0x7e, 0x32, 0xcc, 0x7a, 0x00, 0xd4, 0x86, 0xeb, 0x1a, 0x97, - 0x9c, 0x04, 0x9a, 0x47, 0x77, 0xa7, 0xf2, 0x11, 0xfd, 0x0f, 0xd9, - 0xb8, 0x60, 0x03, 0xb3, 0x77, 0xa3, 0x76, 0xd8, 0xf7, 0x09, 0xd9, - 0x29, 0x19, 0xbf, 0x29, 0x64, 0x56, 0x7d, 0xfa, 0x45, 0x13, 0x74, - 0xc5, 0x56, 0x2b, 0x4d, 0xf5, 0xae, 0x83, 0xb7, 0xdc, 0x57, 0xb0, - 0xdb, 0x6d, 0xd2, 0xb6, 0x1c, 0xf3, 0xc9, 0x67, 0x31, 0x9f, 0x9e, - 0xa1, 0x9f, 0xbd, 0xe0, 0x58, 0x10, 0x61, 0x7d, 0xb0, 0x60, 0xdd, - 0x8a, 0x20, 0xdf, 0x72, 0x5b, 0xdb, 0x22, 0xf8, 0x8c, 0xe7, 0x29, - 0x6e, 0x94, 0xfd, 0xc1, 0x59, 0x2a, 0x70, 0xf7, 0x85, 0x1a, 0x4f, - 0xd8, 0x4b, 0x10, 0x80, 0xd3, 0x72, 0xfd, 0xc0, 0x1d, 0xb6, 0x52, - 0x5f, 0xf4, 0x02, 0x87, 0x2d, 0x36, 0x80, 0xe1, 0xf5, 0xad, 0xac, - 0xd1, 0x4d, 0xfa, 0x33, 0xad, 0xe4, 0x40, 0xc7, 0x4d, 0xb6, 0x3e, - 0xfe, 0xec, 0xef, 0xd0, 0x21, 0xe1, 0xe7, 0x98, 0x26, 0x09, 0x9b, - 0x25, 0x10, 0x96, 0x92, 0x1c, 0x19, 0xfe, 0x11, 0xd8, 0xda, 0xb6, - 0x12, 0x95, 0x6d, 0x3e, 0x0c, 0xa2, 0x8c, 0xa4, 0x66, 0x2e, 0x57, - 0x2a, 0xe4, 0x90, 0x02, 0xd4, 0x3e, 0x0b, 0x8c, 0xfe, 0x7e, 0x86, - 0x9a, 0x59, 0xe7, 0x67, 0x50, 0xcb, 0xe9, 0x76, 0x48, 0x0a, 0x3c, - 0xd0, 0x54, 0xe0, 0xa7, 0x54, 0xa0, 0x95, 0x26, 0x3b, 0xdc, 0x5f, - 0x7c, 0x54, 0x77, 0xc5, 0x34, 0x71, 0x2c, 0xbb, 0x85, 0x05, 0x5f, - 0xb3, 0x27, 0xca, 0xd7, 0x7a, 0x9f, 0xc6, 0xbf, 0xc8, 0x73, 0x1a, - 0x3f, 0x7a, 0x66, 0xfb, 0x96, 0x4c, 0x82, 0xfb, 0x0d, 0x77, 0x7c, - 0x6d, 0x59, 0x33, 0x72, 0x0e, 0x45, 0x73, 0x26, 0x88, 0x32, 0xc2, - 0xfa, 0x26, 0xfc, 0x2e, 0xb2, 0x3f, 0x23, 0x79, 0xaf, 0xd1, 0xcb, - 0x7e, 0x1a, 0x81, 0x75, 0xf2, 0xbc, 0x62, 0x29, 0x35, 0x9b, 0xe1, - 0x7a, 0x68, 0x81, 0xd0, 0xd7, 0xc6, 0x41, 0x33, 0x2c, 0xfc, 0xda, - 0x03, 0xf6, 0xcd, 0x79, 0x85, 0x63, 0x13, 0xd9, 0x03, 0x92, 0x34, - 0x3f, 0xba, 0x52, 0x86, 0x68, 0x70, 0x58, 0xc7, 0xe2, 0xda, 0xc5, - 0xc8, 0x0e, 0x15, 0x8f, 0x57, 0xae, 0x2b, 0x5c, 0x2d, 0xf3, 0x33, - 0x72, 0x9a, 0x13, 0xc3, 0x8d, 0x38, 0xbc, 0xf9, 0xe2, 0xfc, 0x02, - 0xad, 0xb9, 0x3d, 0x31, 0xc1, 0x44, 0x84, 0xa3, 0x27, 0x79, 0x3a, - 0x95, 0x2e, 0x9a, 0x0f, 0x49, 0xa3, 0x6f, 0xe8, 0xab, 0x3d, 0xe7, - 0xd2, 0xbe, 0x93, 0xd1, 0x09, 0x51, 0x7c, 0x68, 0x30, 0x25, 0xda, - 0xcd, 0xb0, 0x5a, 0x17, 0xaf, 0x4a, 0x67, 0x26, 0x75, 0x48, 0xd4, - 0x78, 0xc1, 0x2e, 0xcf, 0x8b, 0xbb, 0xb8, 0x96, 0x18, 0xa9, 0xd0, - 0x88, 0xf8, 0x21, 0xf5, 0xa9, 0x69, 0x6e, 0x5f, 0x73, 0x43, 0x40, - 0xfa, 0xf9, 0x9e, 0x11, 0x08, 0x88, 0x57, 0xda, 0xc8, 0x3d, 0xdf, - 0x7a, 0x34, 0xed, 0xa6, 0x5f, 0x3b, 0x34, 0x01, 0x36, 0xa6, 0xb2, - 0x51, 0xfe, 0xd2, 0x49, 0x6b, 0xb8, 0xe4, 0x3f, 0x82, 0x74, 0xb3, - 0x60, 0x23, 0xdc, 0xd2, 0xb6, 0x4e, 0x23, 0x46, 0x3a, 0x33, 0x33, - 0x3f, 0x14, 0xe8, 0x35, 0x87, 0x31, 0xed, 0xe0, 0xbd, 0x16, 0xf4, - 0xe1, 0x7d, 0x43, 0xdc, 0xf7, 0xd2, 0x5c, 0x6f, 0xbd, 0x38, 0xd4, - 0x3c, 0xdf, 0xea, 0x65, 0xc4, 0x3e, 0xaf, 0xff, 0xb2, 0x44, 0xec, - 0x19, 0xae, 0x34, 0x53, 0xbb, 0xec, 0xb9, 0x18, 0x92, 0xab, 0x87, - 0x64, 0x45, 0x60, 0x24, 0x20, 0x62, 0xe4, 0x20, 0xa9, 0x88, 0xdf, - 0xf1, 0xfe, 0x23, 0xc8, 0x6e, 0x8a, 0x84, 0x8f, 0xa8, 0x68, 0xfe, - 0x01, 0x10, 0x36, 0x52, 0x17, 0xf3, 0x91, 0x23, 0xa2, 0x2e, 0xc4, - 0x84, 0x73, 0x47, 0x82, 0xcf, 0x45, 0xbf, 0xf8, 0xa0, 0x79, 0xef, - 0xf1, 0xee, 0x67, 0xd1, 0x9f, 0x58, 0x13, 0x24, 0x3a, 0x65, 0x40, - 0x97, 0x76, 0xf1, 0xa8, 0xf7, 0x05, 0xe0, 0x04, 0xba, 0xc0, 0xd5, - 0x4a, 0xb4, 0xb6, 0xd2, 0x0e, 0x34, 0x89, 0xee, 0x26, 0x1c, 0x92, - 0x10, 0xd2, 0x19, 0xbf, 0x51, 0xb1, 0xa6, 0xe2, 0xc0, 0x35, 0xe8, - 0x58, 0xe0, 0x60, 0x61, 0x34, 0xa0, 0x5b, 0x96, 0x67, 0x2c, 0x59, - 0xb8, 0xfc, 0x78, 0x2d, 0x05, 0xd4, 0x48, 0x10, 0xf8, 0x8d, 0xbe, - 0x0f, 0xb6, 0xea, 0xf6, 0xa3, 0x9d, 0x2b, 0x1e, 0x7f, 0x99, 0x60, - 0x3a, 0x48, 0x86, 0x21, 0x3e, 0xc7, 0x82, 0xab, 0x55, 0xf4, 0xec, - 0x87, 0x7c, 0x2b, 0xe3, 0x8e, 0x0f, 0xcb, 0x8b, 0xeb, 0x57, 0x83, - 0x9a, 0x38, 0x2e, 0x4c, 0xe1, 0xde, 0x68, 0x3b, 0x36, 0xf2, 0x40, - 0xed, 0x29, 0x45, 0xe9, 0x9c, 0x47, 0x28, 0xa3, 0x17, 0x3a, 0xc7, - 0x99, 0x94, 0x2c, 0xf1, 0x17, 0x6f, 0x88, 0xcb, 0xd2, 0x99, 0xa6, - 0xc2, 0x09, 0x1e, 0x9d, 0x20, 0x85, 0xec, 0xf4, 0x93, 0x00, 0xfe, - 0x5e, 0xb0, 0x63, 0x2c, 0x6a, 0xb3, 0x01, 0xbd, 0x58, 0x3c, 0x72, - 0xbc, 0x42, 0x05, 0xc2, 0xe8, 0x1a, 0xef, 0xbd, 0x02, 0xc5, 0xa3, - 0xc5, 0x24, 0x8c, 0xd6, 0xec, 0xb8, 0x6a, 0xb9, 0x05, 0xd4, 0x16, - 0x29, 0xe0, 0xe2, 0x8b, 0x11, 0x71, 0xeb, 0x10, 0x8a, 0x4d, 0x2d, - 0x18, 0x0c, 0xaf, 0xe4, 0x3a, 0xd2, 0x17, 0xc2, 0x60, 0x6a, 0xa7, - 0x7f, 0x3e, 0xb6, 0x4c, 0x61, 0xab, 0xaf, 0x38, 0x2b, 0x7a, 0xdd, - 0xeb, 0x9f, 0x2c, 0xd9, 0x45, 0x2c, 0xf8, 0x9b, 0x0d, 0x27, 0xe5, - 0x30, 0xec, 0xb8, 0xa7, 0x3d, 0x8c, 0x30, 0xe1, 0xb0, 0x3b, 0x7a, - 0xcc, 0xa2, 0xe2, 0x46, 0x16, 0x02, 0xeb, 0x1d, 0x93, 0xa9, 0xc0, - 0x76, 0x2c, 0x84, 0xe2, 0x89, 0x51, 0x9b, 0x58, 0x91, 0x3b, 0xd7, - 0x15, 0x8d, 0x84, 0x6a, 0x73, 0x8f, 0x93, 0xa1, 0x2a, 0x28, 0x84, - 0x9d, 0xc8, 0xc5, 0x34, 0x9d, 0xf9, 0x24, 0x93, 0x5b, 0xdc, 0xb7, - 0xc7, 0x33, 0x9b, 0x51, 0xd6, 0x6f, 0x99, 0xe0, 0x58, 0x7d, 0xc1, - 0x9e, 0x07, 0x47, 0x8f, 0x61, 0x26, 0xce, 0x76, 0xbb, 0x1b, 0xf7, - 0x9e, 0x01, 0x00, 0x08, 0x12, 0x51, 0xab, 0x56, 0xee, 0x61, 0xb6, - 0xfd, 0x83, 0x48, 0xe7, 0xd0, 0x19, 0xa3, 0x59, 0x98, 0x73, 0x19, - 0x46, 0xeb, 0x25, 0xed, 0xb0, 0x55, 0x93, 0x20, 0x4a, 0x59, 0x37, - 0xcb, 0xa0, 0x93, 0x91, 0x34, 0x87, 0xe1, 0xa0, 0x88, 0x62, 0x64, - 0x48, 0x5d, 0x5b, 0x28, 0x6f, 0xca, 0x54, 0x4a, 0xd5, 0xf8, 0x1a, - 0x58, 0x83, 0xec, 0x9a, 0x1c, 0x61, 0xf8, 0xbb, 0x6c, 0x2b, 0x48, - 0xa9, 0x3f, 0xa4, 0xe2, 0xb5, 0xa5, 0x7f, 0x52, 0x13, 0x9b, 0x4d, - 0xda, 0xb9, 0x21, 0xf8, 0xd7, 0xe4, 0x08, 0x78, 0x54, 0xcb, 0x47, - 0x13, 0x26, 0x79, 0xfb, 0x3f, 0xc0, 0xe5, 0xf4, 0x0d, 0xb7, 0x78, - 0x07, 0xe3, 0xb2, 0x7d, 0x4e, 0x97, 0x00, 0x6c, 0x29, 0x29, 0xec, - 0x80, 0x35, 0x66, 0x24, 0x78, 0xbc, 0xbd, 0x89, 0x24, 0xd2, 0x23, - 0xbe, 0x52, 0x7b, 0x5e, 0x76, 0xab, 0x75, 0xe9, 0xf3, 0xe1, 0xb3, - 0x28, 0xb9, 0xf9, 0xee, 0xd2, 0x7d, 0x41, 0x3a, 0x97, 0xb6, 0x28, - 0x02, 0x09, 0x1b, 0x0e, 0x39, 0x28, 0xad, 0x6c, 0xb4, 0xa5, 0x26, - 0xb4, 0xe2, 0xa2, 0xe8, 0x4b, 0x57, 0x1c, 0xd8, 0x58, 0x51, 0x64, - 0x5c, 0xe9, 0x9c, 0xb2, 0xdc, 0x82, 0x31, 0x9a, 0xe4, 0x5f, 0x91, - 0x3b, 0x46, 0x99, 0x43, 0x47, 0x09, 0x83, 0xa1, 0xdf, 0x2a, 0x5e, - 0x88, 0x75, 0x01, 0x52, 0x8a, 0x7d, 0x77, 0x41, 0x61, 0xc9, 0xf9, - 0xff, 0xf7, 0x1d, 0xd8, 0x5d, 0x3d, 0x09, 0x6c, 0x4b, 0xf0, 0x4e, - 0x4f, 0x5e, 0xf6, 0x18, 0xdb, 0xe6, 0x3d, 0x6f, 0x6f, 0xee, 0xb6, - 0x06, 0x9e, 0x27, 0x88, 0xaa, 0xb7, 0xa0, 0x38, 0x7b, 0x8a, 0xdb, - 0xb2, 0xaa, 0x7f, 0x79, 0x2e, 0x87, 0x63, 0x0f, 0x83, 0x2f, 0x5c, - 0xfd, 0x43, 0xcd, 0x9e, 0xad, 0xba, 0x09, 0xaa, 0xcb, 0xdb, 0x54, - 0xc8, 0xd2, 0xcd, 0x1a, 0xd8, 0x7f, 0x79, 0x55, 0xf4, 0x79, 0x77, - 0xff, 0xd2, 0x9a, 0xcc, 0x8c, 0xee, 0x62, 0x86, 0xee, 0xae, 0xd9, - 0xe9, 0xbf, 0x0c, 0x0f, 0xf0, 0x25, 0xc9, 0x03, 0x98, 0x3f, 0x9e, - 0xf8, 0x19, 0xec, 0xa3, 0xef, 0x80, 0x34, 0xcd, 0xec, 0xdd, 0x40, - 0xfa, 0xe4, 0x09, 0x64, 0x6b, 0x59, 0x17, 0xde, 0xe4, 0x30, 0x41, - 0x4f, 0x39, 0x3b, 0xf2, 0x1c, 0xdf, 0x39, 0x1d, 0x9e, 0xe4, 0x2e, - 0xac, 0xd7, 0xcb, 0x3d, 0x8d, 0x88, 0xd4, 0xe9, 0xd9, 0xef, 0xc6, - 0x6e, 0xfe, 0x7f, 0x7b, 0x5c, 0x4e, 0xe9, 0x9b, 0x37, 0x92, 0x89, - 0x92, 0x69, 0xfa, 0xe5, 0xbe, 0xb2, 0xd9, 0x22, 0x9d, 0x4b, 0x5c, - 0xd8, 0xe0, 0x37, 0x1e, 0x1e, 0x75, 0x6b, 0xb0, 0xad, 0x71, 0x94, - 0x6f, 0x3d, 0x2b, 0x1e, 0x68, 0xf3, 0xaf, 0x9b, 0xb4, 0x6a, 0x4f, - 0xd0, 0xf1, 0x7b, 0x01, 0xc6, 0x7d, 0x10, 0xac, 0x46, 0x5e, 0x9b, - 0x49, 0x23, 0x01, 0x8d, 0x04, 0x9d, 0xed, 0xb0, 0xb0, 0x2e, 0x39, - 0xc2, 0x7c, 0x01, 0x0b, 0xeb, 0x73, 0x3d, 0x5f, 0x67, 0x62, 0x6a, - 0x5a, 0x11, 0x93, 0x8b, 0x2d, 0xc5, 0x94, 0x22, 0x42, 0x2f, 0x20, - 0xf9, 0xa7, 0x4b, 0x72, 0xaa, 0xaa, 0xd7, 0x2c, 0x93, 0x37, 0x45, - 0x91, 0x2c, 0xfb, 0x37, 0x6b, 0x30, 0x45, 0x12, 0x3e, 0xe4, 0xcf, - 0xc2, 0xcf, 0x48, 0xdb, 0xcd, 0x4d, 0x10, 0x5a, 0xb0, 0xcf, 0xe6, - 0x4b, 0xdc, 0x02, 0x2a, 0xbe, 0x67, 0x8a, 0x7f, 0x2e, 0x8b, 0xa8, - 0xcd, 0xc0, 0x90, 0xb4, 0x7e, 0xf1, 0xcf, 0xbf, 0x23, 0x06, 0xb2, - 0x8e, 0x45, 0x92, 0x08, 0xb3, 0x1e, 0x53, 0x5e, 0xfa, 0x98, 0x29, - 0x5e, 0x89, 0x79, 0x01, 0x37, 0x25, 0x26, 0x9d, 0x2e, 0x0f, 0x9f, - 0xe0, 0x54, 0xc6, 0x1c, 0x0a, 0xd4, 0x3d, 0x6f, 0x0c, 0x5b, 0xb1, - 0x78, 0xaf, 0x76, 0x0a, 0xbd, 0x63, 0x62, 0xa1, 0xc2, 0xb4, 0x2b, - 0xa2, 0x77, 0xcb, 0xe1, 0xbc, 0x5d, 0xcf, 0x39, 0xd8, 0xe6, 0xbb, - 0x07, 0x2b, 0x81, 0x49, 0xb3, 0x4c, 0x1a, 0x02, 0x46, 0x12, 0x56, - 0x67, 0x21, 0x89, 0x60, 0xac, 0x1b, 0xe5, 0xed, 0x43, 0x8a, 0x28, - 0xa4, 0xbd, 0xd0, 0x15, 0x54, 0x4f, 0xf3, 0x00, 0x65, 0xad, 0x95, - 0xc5, 0x02, 0x5f, 0x1c, 0x8e, 0xbd, 0x04, 0x28, 0x45, 0xae, 0xa6, - 0x4f, 0x31, 0x44, 0xa2, 0x98, 0x01, 0x91, 0x09, 0xe6, 0x8e, 0x45, - 0x5f, 0xf1, 0xbf, 0x9e, 0x69, 0x7a, 0x5b, 0x01, 0x42, 0xfa, 0xe0, - 0x3a, 0xc0, 0x8a, 0x95, 0x8f, 0xde, 0x3b, 0x5d, 0x1a, 0xb2, 0x5f, - 0xbe, 0xeb, 0xff, 0xc4, 0x2a, 0x48, 0xba, 0x40, 0xa8, 0xc0, 0xdb, - 0x4e, 0xc4, 0x41, 0x25, 0x6f, 0x76, 0x3d, 0x88, 0x9e, 0x5b, 0x3d, - 0xf5, 0xea, 0xeb, 0x8a, 0x9d, 0xfa, 0xca, 0x42, 0x7f, 0x30, 0xf8, - 0x01, 0x32, 0x32, 0x42, 0x6d, 0x10, 0xdb, 0xf4, 0xa5, 0x17, 0xfa, - 0xd0, 0x24, 0x6b, 0x75, 0xeb, 0x23, 0xcb, 0x35, 0xf8, 0xb9, 0xdf, - 0xda, 0x68, 0xad, 0xd4, 0xe2, 0x82, 0x6a, 0xb9, 0xab, 0x1d, 0x03, - 0x6a, 0xb5, 0xfb, 0xf9, 0x24, 0xa8, 0x1a, 0x97, 0xf8, 0xc4, 0x07, - 0xe1, 0xa3, 0xe0, 0x5b, 0xa9, 0xd7, 0xde, 0x41, 0xaf, 0x1e, 0xf4, - 0x44, 0x14, 0x2c, 0x77, 0x57, 0x8b, 0xe7, 0x96, 0x03, 0x91, 0x8c, - 0x60, 0x32, 0x85, 0x38, 0x6e, 0x04, 0x32, 0x1c, 0xea, 0xef, 0x4b, - 0x14, 0x7e, 0xc0, 0x4d, 0xec, 0x80, 0x71, 0x07, 0xa8, 0xf9, 0x13, - 0x5d, 0x3a, 0x9d, 0x1e, 0x41, 0x7e, 0xd1, 0xde, 0x4b, 0x7b, 0xeb, - 0xec, 0x7c, 0x31, 0x0e, 0xbc, 0x77, 0x7a, 0x86, 0x97, 0x28, 0x0e, - 0x97, 0x13, 0x84, 0xb2, 0x6c, 0x80, 0xa8, 0xc6, 0xfe, 0x7e, 0x3f, - 0x34, 0xd5, 0x1f, 0xfb, 0x9e, 0xd5, 0x03, 0x5a, 0x8c, 0x57, 0x54, - 0xf2, 0x06, 0x13, 0xa8, 0xb4, 0x18, 0x6a, 0x9d, 0xa9, 0x60, 0xaa, - 0x03, 0x5c, 0x29, 0xa7, 0x46, 0x03, 0xab, 0xaa, 0x73, 0xae, 0xee, - 0x1b, 0x68, 0x51, 0x22, 0xae, 0xdd, 0x3f, 0xd3, 0xf4, 0x80, 0x0c, - 0xe1, 0x29, 0x55, 0x51, 0xcf, 0x56, 0x6e, 0x56, 0x0b, 0xcd, 0x33, - 0x48, 0x75, 0x77, 0xc9, 0xf1, 0x96, 0xea, 0xf1, 0xaa, 0xcc, 0x02, - 0x7b, 0xa2, 0xc5, 0xd6, 0x98, 0x4d, 0x87, 0xdc, 0x55, 0x81, 0x8d, - 0xc7, 0xda, 0xda, 0xdc, 0x5b, 0x29, 0xf6, 0x46, 0x93, 0x1c, 0x66, - 0x18, 0x83, 0x63, 0x79, 0x24, 0xec, 0xcd, 0x86, 0x7a, 0xb7, 0x41, - 0xf3, 0xc6, 0xe2, 0xb4, 0xe8, 0xf7, 0xff, 0x68, 0x97, 0xef, 0xbb, - 0xba, 0xc7, 0x0b, 0xff, 0xec, 0xf1, 0x87, 0x62, 0xeb, 0x23, 0x1d, - 0x9a, 0x20, 0x5c, 0xf2, 0x7c, 0xd7, 0x5a, 0xf2, 0xee, 0xf2, 0xf4, - 0x8e, 0xd0, 0x44, 0xfe, 0xcb, 0x41, 0x38, 0x03, 0xcc, 0x5e, 0x13, - 0x5d, 0x83, 0x89, 0xb5, 0xc5, 0xc4, 0xe5, 0xce, 0x0d, 0x30, 0x27, - 0x30, 0xbb, 0x64, 0x76, 0x7f, 0x99, 0x15, 0x8e, 0x38, 0x49, 0x4b, - 0x06, 0x6d, 0x36, 0xf7, 0xc2, 0x66, 0x2c, 0x53, 0xc0, 0x66, 0x29, - 0xe5, 0x56, 0x6a, 0x4f, 0x21, 0xbe, 0xee, 0xbe, 0xb5, 0x45, 0x0b, - 0xd0, 0xaf, 0x52, 0x8a, 0xc4, 0x3d, 0x78, 0x36, 0x9e, 0x88, 0x6a, - 0x87, 0x69, 0x96, 0xe0, 0xa6, 0xbf, 0xca, 0xd4, 0xda, 0x41, 0x0e, - 0x69, 0xc5, 0x42, 0x67, 0xb0, 0x7f, 0x34, 0xf5, 0xe2, 0x0f, 0xcf, - 0x42, 0x2d, 0x55, 0x1d, 0xbc, 0xcc, 0x32, 0xf8, 0x50, 0x44, 0xef, - 0x14, 0x4c, 0x7e, 0x99, 0x5d, 0xb5, 0x38, 0x4f, 0x5c, 0x19, 0xe4, - 0x70, 0x0e, 0xa5, 0x28, 0x8c, 0x8b, 0xba, 0x8a, 0x32, 0x58, 0x58, - 0x32, 0xb5, 0xe9, 0x2e, 0xff, 0xf6, 0xfd, 0x18, 0xbc, 0x53, 0xa9, - 0xe9, 0x21, 0x2d, 0x1b, 0x35, 0x2a, 0x48, 0x83, 0x1c, 0x42, 0x28, - 0x8b, 0x6c, 0x51, 0xa5, 0xa8, 0x9c, 0x6d, 0xec, 0xec, 0x2b, 0xd8, - 0xd7, 0x89, 0x64, 0x42, 0xb9, 0x89, 0xf2, 0x32, 0xf8, 0x02, 0xf1, - 0x0c, 0x01, 0x95, 0x70, 0x0a, 0x12, 0xac, 0x67, 0x2d, 0x58, 0x96, - 0xeb, 0x2e, 0x14, 0x35, 0xe2, 0xfa, 0xd8, 0xa2, 0x70, 0x50, 0xc5, - 0x89, 0x5b, 0x2d, 0x18, 0x05, 0x79, 0x15, 0x58, 0x46, 0x67, 0xda, - 0x24, 0xe8, 0xd3, 0xfb, 0xa2, 0x66, 0xf6, 0x8e, 0x81, 0xc3, 0x58, - 0xdc, 0x77, 0xb3, 0xe3, 0xbb, 0xe7, 0x33, 0xe7, 0x8b, 0xf9, 0x84, - 0x7c, 0x64, 0x1d, 0x89, 0x93, 0x21, 0x78, 0xfe, 0x52, 0x99, 0x02, - 0x36, 0x1c, 0xe4, 0x7f, 0x96, 0x43, 0xb7, 0xbb, 0x8c, 0x15, 0xfb, - 0xb0, 0x19, 0xd8, 0x85, 0xcb, 0x64, 0x5b, 0x94, 0xfb, 0xd6, 0x9c, - 0x74, 0x83, 0x96, 0x2a, 0xc1, 0x99, 0xf2, 0x2e, 0x80, 0xf8, 0xdf, - 0x35, 0xb9, 0xaa, 0x7b, 0x7a, 0x66, 0x69, 0xe0, 0xa0, 0xdf, 0x9e, - 0x05, 0x90, 0xa9, 0xc1, 0x40, 0x5b, 0x2b, 0x62, 0xda, 0x76, 0xa1, - 0x70, 0x4e, 0xa3, 0x69, 0xb1, 0xd2, 0x69, 0x36, 0x02, 0x4a, 0xbd, - 0xab, 0xf0, 0x9c, 0x3e, 0x00, 0x48, 0x03, 0xe2, 0x20, 0x73, 0x51, - 0xd0, 0x1b, 0xe5, 0x70, 0x57, 0x22, 0x82, 0xf2, 0x44, 0x0e, 0x47, - 0x67, 0x27, 0xb5, 0x8a, 0xc5, 0xc7, 0x21, 0xf7, 0x8a, 0x77, 0xbb, - 0x04, 0xdd, 0x6d, 0x17, 0xba, 0xf4, 0xed, 0xb6, 0x26, 0x66, 0xf5, - 0x63, 0xb3, 0x8d, 0x3f, 0xec, 0x27, 0x27, 0x39, 0x5b, 0xed, 0x9b, - 0x53, 0x31, 0xb5, 0x0a, 0x2f, 0xf6, 0xb8, 0xe4, 0x69, 0xe0, 0x8d, - 0x33, 0xbd, 0x8a, 0xad, 0x3f, 0xcf, 0x76, 0x09, 0x4d, 0xe3, 0xa9, - 0x0d, 0x79, 0xe0, 0x97, 0x89, 0xed, 0xb1, 0x0e, 0x0a, 0x14, 0xb3, - 0x7c, 0x4a, 0xe3, 0x67, 0x27, 0xac, 0xc0, 0x77, 0xc8, 0x0e, 0xf3, - 0xe7, 0xec, 0xe0, 0x83, 0x16, 0x60, 0x31, 0x1d, 0x9d, 0xfa, 0x95, - 0x5d, 0x4b, 0xaf, 0x6d, 0x43, 0xf3, 0xe4, 0x6b, 0xb7, 0xe4, 0xa4, - 0x34, 0x5d, 0x51, 0xf2, 0xb4, 0x49, 0x83, 0x90, 0x7a, 0x02, 0xbd, - 0x1b, 0x37, 0xa0, 0xd7, 0xcb, 0x6e, 0x5b, 0xc5, 0x5f, 0x67, 0xe4, - 0xdc, 0x50, 0x47, 0x89, 0x20, 0x43, 0x28, 0x33, 0x05, 0x48, 0xa6, - 0x42, 0xc8, 0x7d, 0xc4, 0x46, 0xc7, 0x75, 0x6e, 0x64, 0x0a, 0xf7, - 0xb2, 0xd1, 0xfc, 0xdf, 0x76, 0x8a, 0x64, 0x3c, 0x7b, 0x6c, 0x80, - 0x15, 0x51, 0xae, 0x7e, 0x42, 0xa2, 0x6d, 0x18, 0x30, 0x3b, 0x0c, - 0x85, 0xa9, 0xc6, 0x45, 0xd1, 0xfb, 0x12, 0x04, 0x4a, 0xa3, 0x96, - 0x41, 0x75, 0xb6, 0xe8, 0x42, 0x12, 0x1e, 0x37, 0x85, 0x1b, 0x92, - 0xb7, 0x48, 0x7c, 0x1d, 0x09, 0xfc, 0x30, 0x85, 0xb4, 0xb3, 0x46, - 0x35, 0xd0, 0x28, 0x79, 0x2d, 0x20, 0xb6, 0x9b, 0x9a, 0xe0, 0x97, - 0xd6, 0x8b, 0xc5, 0xf5, 0xd1, 0x6c, 0xfc, 0x85, 0xfc, 0xf0, 0xcb, - 0x8c, 0xf1, 0x6b, 0xd3, 0xf2, 0x12, 0x79, 0x82, 0x44, 0xb3, 0xdc, - 0x99, 0x62, 0x98, 0xad, 0xa3, 0x72, 0xc9, 0xf9, 0x04, 0xf9, 0x16, - 0xa5, 0xef, 0x8d, 0x33, 0x65, 0x03, 0x49, 0x9d, 0x1d, 0xe6, 0x2c, - 0x8f, 0xaf, 0xc3, 0x65, 0xf4, 0x11, 0x94, 0x46, 0x8a, 0x53, 0xa6, - 0xf4, 0x62, 0x6e, 0x30, 0xd6, 0xc0, 0xd7, 0xb2, 0xfe, 0xd4, 0x55, - 0x85, 0x06, 0x7f, 0x92, 0x85, 0x5b, 0xfe, 0xd3, 0x4f, 0x57, 0x39, - 0x7b, 0x0b, 0xfb, 0x6c, 0x30, 0x4a, 0x67, 0xed, 0x0c, 0xd4, 0x43, - 0xa3, 0x4d, 0xb5, 0x21, 0x76, 0x50, 0x3c, 0xd4, 0x01, 0x89, 0x29, - 0xe4, 0x1a, 0x08, 0x92, 0x7c, 0x03, 0x53, 0x72, 0x9c, 0x68, 0xc7, - 0x61, 0x77, 0xc1, 0x6c, 0x84, 0x03, 0x87, 0xc5, 0xf3, 0x0f, 0x20, - 0xc1, 0x7e, 0xf8, 0x74, 0x78, 0xdd, 0xb7, 0xc6, 0x62, 0x8b, 0xcb, - 0xfb, 0x56, 0x34, 0xfd, 0x7a, 0xae, 0xbb, 0x67, 0x8a, 0x99, 0xe1, - 0x0d, 0x68, 0x9f, 0xdd, 0xa5, 0xbc, 0x42, 0x40, 0xb7, 0x85, 0xd2, - 0x74, 0x87, 0xdc, 0x8a, 0x61, 0x1f, 0xeb, 0x52, 0x28, 0x6a, 0xe9, - 0x37, 0xd5, 0x77, 0x7d, 0x78, 0xca, 0xee, 0x4d, 0x2c, 0x9b, 0x1c, - 0x37, 0xeb, 0x17, 0x03, 0x5c, 0x1d, 0x76, 0x3d, 0xc3, 0xf0, 0x2c, - 0x49, 0x54, 0x28, 0x3d, 0x63, 0x24, 0x02, 0x10, 0x1b, 0x60, 0xb3, - 0xe0, 0x7a, 0x29, 0x7c, 0x66, 0x79, 0x6b, 0xc7, 0x15, 0xb1, 0x8a, - 0xd3, 0x13, 0x20, 0x35, 0xb3, 0xa8, 0x3e, 0x73, 0x4b, 0xf1, 0x17, - 0xc6, 0x6e, 0x11, 0x77, 0xa4, 0x21, 0xbc, 0x1f, 0x10, 0xb1, 0xfb, - 0xb1, 0x04, 0xf8, 0xb5, 0x57, 0x73, 0x05, 0xb1, 0xca, 0xde, 0x4e, - 0xa2, 0x6c, 0x7e, 0x9a, 0x80, 0x86, 0x32, 0x17, 0x56, 0x94, 0xc9, - 0xf9, 0x8a, 0xaf, 0x7d, 0xce, 0xee, 0x3e, 0xac, 0x7b, 0xd5, 0xea, - 0x9e, 0xa7, 0x3a, 0x3c, 0x23, 0x95, 0x53, 0x95, 0x89, 0x4a, 0x19, - 0xea, 0x70, 0x63, 0xe6, 0x82, 0x95, 0xd3, 0xa4, 0x1a, 0xcc, 0x2b, - 0xdd, 0x88, 0x73, 0x93, 0x8e, 0x7d, 0x56, 0x04, 0xde, 0xd8, 0x21, - 0xae, 0x4c, 0x13, 0x4c, 0x01, 0x09, 0xef, 0xd9, 0x71, 0xef, 0x45, - 0xf2, 0x37, 0x37, 0xf1, 0x94, 0x82, 0x68, 0xd7, 0xda, 0xea, 0x47, - 0x7b, 0x1f, 0x1b, 0x70, 0xfa, 0x31, 0x13, 0x7c, 0xe9, 0x19, 0xa7, - 0x6c, 0x6b, 0x23, 0xb1, 0x58, 0x1f, 0xd8, 0x8d, 0xe9, 0xd1, 0xea, - 0x4e, 0x05, 0x4b, 0x4b, 0xab, 0xb0, 0x08, 0x53, 0x43, 0x2e, 0x54, - 0x82, 0x82, 0x05, 0xd9, 0x72, 0xfb, 0xd2, 0xf3, 0x3f, 0x84, 0x79, - 0x10, 0x3f, 0x75, 0x16, 0x09, 0x7f, 0x9e, 0xfa, 0x29, 0x5f, 0x56, - 0xcb, 0x13, 0xc5, 0x67, 0xdd, 0xe7, 0x24, 0x39, 0x15, 0x89, 0xc0, - 0x10, 0xa8, 0xba, 0xa7, 0xc7, 0x36, 0x6e, 0xff, 0x3b, 0x20, 0xb5, - 0x36, 0x95, 0x6a, 0x40, 0x69, 0x88, 0x84, 0x43, 0xc5, 0xd9, 0x37, - 0x85, 0x7e, 0xcf, 0x66, 0xaf, 0xf2, 0x7d, 0xe5, 0xaa, 0xf0, 0xd2, - 0x0e, 0x15, 0x1d, 0xd1, 0x13, 0xb3, 0xed, 0x89, 0x1a, 0xe6, 0x0f, - 0xbb, 0x62, 0x29, 0x78, 0x59, 0xde, 0x46, 0xfe, 0x85, 0x7a, 0x5f, - 0x74, 0xaf, 0x1b, 0x9a, 0x74, 0xc3, 0x27, 0xef, 0x50, 0x9a, 0x66, - 0x94, 0xe9, 0x1a, 0xb5, 0xcd, 0xf1, 0xcf, 0x5c, 0x4e, 0xa2, 0x1f, - 0x35, 0x93, 0xb0, 0xc1, 0x1e, 0xba, 0x66, 0x33, 0x0d, 0x0d, 0x45, - 0xd6, 0xb2, 0x3d, 0x86, 0x0b, 0xcf, 0x67, 0x2f, 0x8c, 0x11, 0xba, - 0x8f, 0xa2, 0xad, 0x86, 0x42, 0x28, 0x73, 0xb7, 0xfd, 0xf1, 0xea, - 0x50, 0xa4, 0x6f, 0xbe, 0x91, 0x21, 0xb4, 0x52, 0x90, 0x75, 0xc5, - 0xd7, 0x64, 0x04, 0x5b, 0x45, 0x46, 0xd9, 0xd1, 0x48, 0xd5, 0xcb, - 0x37, 0x20, 0x71, 0x10, 0x83, 0xc5, 0x8b, 0xcd, 0x53, 0xfa, 0x70, - 0xe3, 0xb3, 0x23, 0xd4, 0x1d, 0xdb, 0x5f, 0x7c, 0x84, 0xe2, 0xe1, - 0x0a, 0xf2, 0x8d, 0x80, 0x77, 0xe3, 0xa0, 0x82, 0xb7, 0xee, 0xda, - 0x90, 0x21, 0xc7, 0x55, 0x6c, 0x60, 0xa0, 0xe7, 0x58, 0x07, 0x4a, - 0x2d, 0x3c, 0x98, 0xe2, 0xca, 0x0d, 0x13, 0x1e, 0x9f, 0xa8, 0xe6, - 0x77, 0x04, 0x1e, 0xb9, 0x17, 0x42, 0x32, 0xb9, 0x7c, 0x44, 0xf4, - 0xb4, 0xd6, 0x83, 0xfd, 0x91, 0xac, 0x9e, 0x1a, 0x2d, 0x26, 0xb8, - 0x7c, 0xd3, 0xef, 0xf9, 0xea, 0xb0, 0xbc, 0x95, 0x0b, 0x1e, 0xf4, - 0x57, 0x2a, 0x83, 0xe0, 0x48, 0x24, 0x2d, 0xb3, 0xeb, 0xb4, 0xde, - 0xe1, 0x8e, 0x73, 0xc9, 0x5a, 0xf0, 0x6a, 0x71, 0x33, 0xeb, 0xde, - 0x3b, 0xce, 0x42, 0x64, 0x96, 0x25, 0xd9, 0xe3, 0x48, 0x65, 0xf3, - 0xee, 0x00, 0x54, 0xb0, 0x0a, 0x1b, 0x5d, 0xca, 0x6c, 0x77, 0xc9, - 0xb0, 0x9b, 0xf8, 0xcb, 0x1f, 0xf3, 0xae, 0x3c, 0xd3, 0x8a, 0x37, - 0x8f, 0xb1, 0xc3, 0x2f, 0x28, 0x02, 0x99, 0xf2, 0x2b, 0xa8, 0xd6, - 0x56, 0x6a, 0xa4, 0x69, 0xfa, 0xac, 0x70, 0x80, 0xb5, 0xc0, 0x2a, - 0x1b, 0xbd, 0x87, 0x24, 0x5b, 0xcc, 0x96, 0xbe, 0x03, 0x82, 0xd2, - 0x1e, 0x78, 0xde, 0xc3, 0xa4, 0x18, 0x94, 0xfd, 0x2f, 0xc6, 0xb8, - 0x6a, 0x23, 0xbb, 0x0c, 0xbe, 0xe6, 0xd9, 0xe0, 0xdc, 0xbb, 0x01, - 0x8e, 0x1d, 0x04, 0xfa, 0x66, 0x88, 0xc7, 0x66, 0x90, 0xa2, 0xc9, - 0x8d, 0x1e, 0x83, 0x7c, 0xa7, 0xeb, 0xce, 0x48, 0xcf, 0x23, 0x74, - 0x1c, 0xb0, 0x1a, 0xe2, 0xba, 0x10, 0x4c, 0xd0, 0x01, 0xd3, 0xb5, - 0x11, 0x73, 0x61, 0xd9, 0x28, 0xff, 0xdf, 0xa3, 0x1a, 0x8d, 0xae, - 0x03, 0xd6, 0x24, 0x47, 0xe2, 0x5f, 0x5f, 0xab, 0x6c, 0x36, 0xbd, - 0x7e, 0xac, 0x60, 0xe1, 0x5d, 0x95, 0x5e, 0x25, 0x15, 0x2e, 0xf6, - 0xc4, 0x69, 0x8a, 0x6d, 0x70, 0xeb, 0x06, 0x64, 0x51, 0xdf, 0x0d, - 0xbd, 0xcc, 0x4a, 0xc4, 0x85, 0xc7, 0xaf, 0x6c, 0xb1, 0x54, 0x78, - 0xe3, 0xad, 0x20, 0xb0, 0xec, 0x29, 0x56, 0x7d, 0x6d, 0x6f, 0xc1, - 0x50, 0x8a, 0xd1, 0xb0, 0x67, 0x5a, 0xff, 0x86, 0x0e, 0x05, 0xc7, - 0x2f, 0xee, 0x31, 0xee, 0xd0, 0x3f, 0x2e, 0x6c, 0x83, 0xe4, 0x19, - 0x40, 0x40, 0xe5, 0x52, 0x50, 0x7f, 0x0f, 0x42, 0x1a, 0xc2, 0xbc, - 0x42, 0x3a, 0xe9, 0x67, 0x1e, 0x9a, 0x66, 0x0d, 0x1c, 0x40, 0x46, - 0xa4, 0x74, 0xfe, 0x18, 0x19, 0xc4, 0x77, 0xb4, 0xdb, 0xc6, 0x1a, - 0xbf, 0xb5, 0xa6, 0xeb, 0x71, 0xb1, 0xfc, 0xaf, 0x3a, 0xca, 0xe9, - 0x41, 0xea, 0xc6, 0x2b, 0xb8, 0xc8, 0xab, 0x7b, 0x8b, 0xf9, 0x6a, - 0xe7, 0x5c, 0x0a, 0x7d, 0x75, 0x0e, 0x07, 0x6d, 0x59, 0x04, 0x9f, - 0x53, 0xc9, 0x1b, 0xba, 0xd9, 0xf1, 0x6d, 0x3a, 0xb7, 0xaa, 0x70, - 0xc3, 0x74, 0x62, 0x13, 0x4c, 0x63, 0xa4, 0xf5, 0xa9, 0x06, 0x77, - 0xe3, 0xb2, 0x52, 0x01, 0x15, 0x97, 0x8c, 0xd9, 0x8a, 0x47, 0x1a, - 0x31, 0x7c, 0x69, 0x6a, 0xc8, 0x46, 0x28, 0xf1, 0x30, 0xd9, 0x2e, - 0xc2, 0x64, 0x9c, 0x26, 0x3c, 0x5d, 0x41, 0x32, 0x79, 0x3c, 0xdf, - 0x8d, 0xb0, 0xce, 0x9b, 0x42, 0xe4, 0x94, 0x74, 0xd5, 0x5a, 0xf8, - 0xa0, 0x47, 0x91, 0xee, 0xef, 0x29, 0x96, 0x3a, 0xbe, 0xd0, 0x7a, - 0x72, 0x25, 0xd0, 0xb6, 0x1e, 0x88, 0xad, 0x2d, 0x9f, 0x3d, 0xeb, - 0x44, 0x78, 0x63, 0x35, 0xf3, 0x13, 0x2a, 0x77, 0x0e, 0xda, 0xb6, - 0x9e, 0xf5, 0x46, 0x93, 0x12, 0x4a, 0x2a, 0xe4, 0x40, 0x7f, 0x77, - 0xff, 0xe8, 0x8a, 0x39, 0x8a, 0x3f, 0x14, 0x9b, 0x2e, 0xbd, 0xcb, - 0xbe, 0xb3, 0xa8, 0xc7, 0x36, 0x89, 0x2f, 0x98, 0x20, 0xa3, 0xf2, - 0x28, 0x00, 0x5e, 0x6d, 0xe7, 0xcb, 0xc0, 0x06, 0xb8, 0xb1, 0x5c, - 0x88, 0x0d, 0xdd, 0x52, 0x04, 0x35, 0x81, 0xd4, 0x07, 0x6b, 0xd9, - 0x45, 0xdd, 0x01, 0x7d, 0x8b, 0x4b, 0x1e, 0x22, 0x4b, 0x75, 0x80, - 0x05, 0x8e, 0x0f, 0xb0, 0xeb, 0x3c, 0x62, 0x52, 0x59, 0x21, 0x37, - 0x93, 0xda, 0x3f, 0x52, 0xdd, 0xdd, 0x49, 0x8a, 0xcc, 0x74, 0xbe, - 0xdb, 0xa5, 0x8a, 0x5b, 0xcb, 0xa9, 0x88, 0x97, 0x8d, 0x3e, 0x20, - 0x69, 0x03, 0x18, 0x74, 0xb6, 0x69, 0x20, 0x83, 0x96, 0x8d, 0x3a, - 0x9a, 0xe5, 0xe3, 0xbd, 0xc0, 0xdd, 0x94, 0x84, 0xa5, 0xfa, 0x08, - 0x16, 0x5f, 0x6f, 0xf2, 0x7d, 0x64, 0x41, 0xd7, 0x27, 0x60, 0x50, - 0xc0, 0x1d, 0x4f, 0x84, 0x56, 0x66, 0xc7, 0x86, 0xeb, 0x15, 0xa5, - 0xf0, 0xde, 0xc6, 0xef, 0xe1, 0x5a, 0x64, 0x5b, 0xb1, 0x2c, 0xb6, - 0x36, 0x00, 0x31, 0x12, 0xb8, 0x10, 0x74, 0xe2, 0x8b, 0x46, 0x3d, - 0xe5, 0x6c, 0x02, 0x1e, 0x0d, 0x3b, 0x1e, 0xbf, 0xcf, 0xe5, 0x7c, - 0x19, 0x11, 0x20, 0x8e, 0xe9, 0x06, 0x35, 0x18, 0x85, 0x7a, 0xaa, - 0x8f, 0xf2, 0x5f, 0x4d, 0x03, 0xc6, 0xab, 0x2c, 0xd6, 0x36, 0xbc, - 0xb8, 0xbf, 0xc4, 0xe3, 0x6f, 0x50, 0xe0, 0x78, 0x8f, 0x2f, 0x0e, - 0xc0, 0xf8, 0x16, 0x44, 0xbd, 0x58, 0x70, 0xf2, 0x47, 0x86, 0x1e, - 0x89, 0xda, 0x5a, 0x6a, 0x76, 0x4a, 0x49, 0x3c, 0x33, 0x01, 0x25, - 0x94, 0xed, 0x6b, 0x52, 0x6a, 0xa7, 0x8d, 0x68, 0xd6, 0x91, 0xee, - 0x6d, 0x8c, 0xd6, 0xd4, 0x15, 0x59, 0xe5, 0x95, 0x9a, 0xca, 0xa3, - 0x21, 0xe8, 0x33, 0xda, 0x79, 0x2e, 0x6d, 0x43, 0x6f, 0xf9, 0x5d, - 0x50, 0x06, 0x11, 0x49, 0x56, 0x72, 0x3b, 0x4b, 0x39, 0x85, 0xcd, - 0x2f, 0xca, 0xa1, 0x94, 0x28, 0x53, 0x52, 0xa2, 0xe0, 0x48, 0x4e, - 0x37, 0x99, 0xca, 0x5a, 0x3d, 0xf3, 0x98, 0xea, 0xed, 0x82, 0x58, - 0x12, 0x5b, 0xd3, 0x74, 0xa5, 0x34, 0x75, 0x0e, 0x15, 0xd5, 0xad, - 0x12, 0x82, 0xbb, 0x76, 0x99, 0x0e, 0xf9, 0x18, 0x07, 0xe4, 0x7a, - 0x4a, 0xb3, 0x34, 0x65, 0xd4, 0xd5, 0x25, 0xee, 0x5e, 0x49, 0xbc, - 0xfc, 0xa6, 0xd4, 0x5b, 0xd3, 0xd3, 0x45, 0x9b, 0x71, 0xf3, 0x84, - 0xde, 0xb8, 0xcb, 0x3c, 0x05, 0xaf, 0x60, 0xd5, 0xe0, 0x50, 0x63, - 0xde, 0x4a, 0xa9, 0x62, 0x33, 0x91, 0x11, 0x76, 0x43, 0xb8, 0x83, - 0xa8, 0x71, 0x10, 0x84, 0x08, 0xf7, 0x8d, 0x4b, 0xc5, 0x5c, 0x89, - 0x5e, 0x58, 0x5b, 0xcf, 0xe0, 0x58, 0x97, 0xa7, 0xe3, 0xa7, 0x5b, - 0x4d, 0x07, 0x37, 0xdb, 0xdf, 0xe9, 0x10, 0x73, 0xdc, 0x0b, 0x7c, - 0xed, 0xba, 0x42, 0x56, 0x7a, 0x87, 0xb2, 0x4d, 0x85, 0x5a, 0xe0, - 0x28, 0x94, 0xc1, 0x73, 0xbf, 0x18, 0xbc, 0x91, 0x31, 0xa6, 0x30, - 0xc5, 0x7a, 0xdf, 0x5a, 0x09, 0xb4, 0x2d, 0x7f, 0xc8, 0x2b, 0x67, - 0x77, 0x3b, 0xb5, 0x56, 0xc2, 0xb0, 0x1a, 0x5a, 0x5f, 0x11, 0x3a, - 0x48, 0x2f, 0x06, 0x53, 0xa5, 0xa9, 0x6a, 0xc2, 0xcf, 0x1c, 0xfd, - 0x9e, 0x58, 0x5f, 0x11, 0x86, 0x66, 0x82, 0xe5, 0x32, 0x78, 0x5e, - 0x11, 0xc4, 0xeb, 0xb4, 0x2d, 0xa5, 0xea, 0x70, 0x83, 0xfe, 0xa9, - 0xf4, 0x37, 0xc5, 0x31, 0x86, 0x4a, 0xd0, 0x2a, 0x72, 0x42, 0xd5, - 0x21, 0x37, 0x46, 0x1c, 0x53, 0x30, 0xf0, 0x0b, 0x84, 0x12, 0xef, - 0x96, 0xd7, 0x1f, 0x8c, 0x7a, 0xbb, 0xc7, 0xd1, 0xc7, 0x25, 0x6e, - 0xf1, 0x7e, 0x63, 0x71, 0x4b, 0x2c, 0x02, 0x1e, 0x50, 0xb3, 0xe0, - 0xc0, 0x54, 0x3b, 0x68, 0xb2, 0x84, 0x13, 0x52, 0x43, 0x85, 0x5c, - 0x82, 0xb9, 0xfe, 0xf8, 0xfe, 0x5d, 0xf7, 0x16, 0x68, 0xac, 0x8e, - 0x2f, 0xf6, 0x7a, 0x37, 0xf3, 0x8c, 0x0b, 0x7d, 0xbd, 0x8a, 0xd9, - 0xff, 0x3b, 0xd0, 0x4f, 0xb9, 0xeb, 0x22, 0x6d, 0x24, 0xb3, 0xe9, - 0x64, 0x75, 0x46, 0xb4, 0x1b, 0x2e, 0xd7, 0xbe, 0xc3, 0xb6, 0x82, - 0x7f, 0x86, 0xb8, 0x2f, 0xc2, 0x81, 0x03, 0x7b, 0x52, 0x20, 0x3e, - 0xe4, 0x33, 0x93, 0xda, 0x14, 0xa9, 0xf9, 0x99, 0x38, 0x93, 0x99, - 0x56, 0x7f, 0x09, 0xda, 0xc4, 0x7c, 0xe4, 0x86, 0xf3, 0xb4, 0x87, - 0x6d, 0x7f, 0xad, 0xaf, 0xd9, 0x67, 0x56, 0x2d, 0xda, 0x8c, 0xd0, - 0x0a, 0xda, 0x81, 0x08, 0x3d, 0xf1, 0x0f, 0x3f, 0x1d, 0x2c, 0x9b, - 0xdd, 0x58, 0x50, 0xf3, 0x8b, 0x0a, 0x6f, 0x93, 0x4f, 0x53, 0x02, - 0x42, 0x60, 0xf7, 0x63, 0x42, 0x98, 0x9c, 0x41, 0x89, 0x88, 0x89, - 0x74, 0x5b, 0x07, 0xac, 0x7b, 0xf8, 0x76, 0xf6, 0xf6, 0xb3, 0x70, - 0x2f, 0x37, 0xb9, 0x78, 0xa6, 0x9a, 0xc0, 0x83, 0x76, 0x8b, 0x43, - 0xf5, 0x32, 0x7a, 0x9d, 0x14, 0xbf, 0xc4, 0x21, 0xff, 0xbe, 0xc7, - 0xed, 0x17, 0x53, 0xbf, 0xf6, 0x32, 0xa0, 0xea, 0xf5, 0xfa, 0x8c, - 0x4c, 0x63, 0xf4, 0xe0, 0x5a, 0x9a, 0xd3, 0x39, 0x29, 0x23, 0xaf, - 0xec, 0x70, 0x9b, 0x67, 0xc6, 0xea, 0xda, 0xd9, 0x80, 0x0d, 0x36, - 0x0b, 0xfb, 0xfd, 0xae, 0xdd, 0x46, 0x7b, 0xd0, 0x1e, 0x6e, 0x2e, - 0x8b, 0x51, 0x20, 0xd3, 0x37, 0x8c, 0x56, 0x79, 0x75, 0x35, 0xf0, - 0x96, 0x35, 0x3f, 0x85, 0x33, 0xe9, 0x27, 0x18, 0xb3, 0x31, 0xbc, - 0x53, 0x12, 0x00, 0xcb, 0x39, 0x57, 0x64, 0xd6, 0xad, 0xe9, 0x12, - 0x2c, 0xf9, 0x6b, 0x93, 0x62, 0x0e, 0x8d, 0xf5, 0x44, 0x3f, 0x31, - 0x5d, 0x87, 0xef, 0x6a, 0x13, 0x48, 0x4d, 0x6e, 0xe3, 0x4e, 0xc7, - 0xff, 0x6a, 0xd5, 0x55, 0x36, 0x3d, 0x24, 0xc3, 0x60, 0xa1, 0xbe, - 0x89, 0x27, 0x0f, 0xb5, 0x53, 0x38, 0x4e, 0x97, 0x19, 0xa2, 0x5a, - 0x9b, 0x4c, 0x8d, 0xbe, 0x58, 0xa7, 0xb4, 0x9f, 0xcc, 0x6a, 0xb2, - 0xb5, 0x64, 0xbd, 0xfb, 0xcf, 0x48, 0xfe, 0xcd, 0x2f, 0x29, 0xb4, - 0xe6, 0xe9, 0xef, 0x83, 0x4c, 0x75, 0x24, 0x7e, 0xda, 0x37, 0xc8, - 0x64, 0x92, 0x51, 0x13, 0x5c, 0x18, 0x96, 0x5a, 0x7a, 0xad, 0x98, - 0x91, 0x2a, 0x14, 0xcd, 0xd7, 0xfe, 0x72, 0xad, 0xf9, 0xff, 0x00, - 0x0f, 0xf0, 0x47, 0x71, 0xd6, 0xf1, 0xd7, 0x76, 0x67, 0xeb, 0x71, - 0xdb, 0xea, 0x3d, 0x80, 0x3c, 0xea, 0xb2, 0xd3, 0x4b, 0x29, 0x8d, - 0x48, 0x9f, 0x76, 0xce, 0x0d, 0x9e, 0x48, 0x93, 0x73, 0xe0, 0x77, - 0x34, 0x75, 0xc9, 0xf9, 0xfc, 0xf2, 0x28, 0x9a, 0x6a, 0x64, 0x45, - 0x10, 0x45, 0x4a, 0x0a, 0x9c, 0x00, 0xb5, 0x26, 0x3e, 0x09, 0xaa, - 0x46, 0xb2, 0x7d, 0xbb, 0x6b, 0x77, 0x02, 0xc8, 0x2e, 0xde, 0x3e, - 0xd1, 0xdd, 0x46, 0xef, 0xaf, 0x0d, 0x66, 0x3e, 0x83, 0x1e, 0x2b, - 0x34, 0xf0, 0x69, 0xf8, 0x53, 0x7b, 0x62, 0xad, 0x6a, 0x8a, 0x0e, - 0x91, 0x34, 0x6e, 0xee, 0xad, 0xfb, 0x41, 0x48, 0x59, 0x16, 0xf5, - 0x29, 0x6e, 0xbf, 0x76, 0x79, 0x7e, 0x44, 0xca, 0x6a, 0x0a, 0xf3, - 0xaa, 0x07, 0x58, 0x81, 0xb3, 0xc5, 0xe0, 0xf7, 0x73, 0x35, 0xb2, - 0x19, 0xc1, 0x00, 0x27, 0xcd, 0xe1, 0x02, 0xfa, 0x19, 0x17, 0x98, - 0x03, 0x15, 0x95, 0xa4, 0x64, 0x94, 0x13, 0xea, 0x53, 0x12, 0xd2, - 0x13, 0xde, 0xf4, 0x57, 0x3b, 0xc9, 0xf6, 0x7e, 0x62, 0xa8, 0x4b, - 0xdd, 0xf7, 0x95, 0x53, 0x1e, 0xbf, 0x55, 0x5f, 0x40, 0x7e, 0x17, - 0x81, 0x28, 0xd9, 0x49, 0xff, 0xdb, 0xc1, 0xeb, 0x54, 0x19, 0xa9, - 0x0d, 0x06, 0x2a, 0x6e, 0xbb, 0xb0, 0xd4, 0x9f, 0x33, 0x3d, 0xf0, - 0xf9, 0xd4, 0x7b, 0x66, 0x8b, 0x23, 0xfd, 0x4b, 0xfc, 0x65, 0xbe, - 0x3f, 0xbd, 0x25, 0xb8, 0xe2, 0xbb, 0x2c, 0x8d, 0xc5, 0x58, 0x00, - 0x4f, 0x34, 0xbe, 0x33, 0x1b, 0x07, 0xa3, 0x01, 0x5a, 0x58, 0xe5, - 0x99, 0x5f, 0xf4, 0x09, 0x2f, 0xf8, 0x4d, 0x9d, 0x92, 0xe1, 0x5b, - 0x0e, 0x9b, 0x74, 0x93, 0x8b, 0x98, 0xf9, 0x81, 0xf3, 0x85, 0x22, - 0xb9, 0x5f, 0xf4, 0xfa, 0x18, 0x73, 0x87, 0xa2, 0xf9, 0x2a, 0x69, - 0xca, 0xd3, 0x2f, 0x86, 0x14, 0x6b, 0xe6, 0xb9, 0xc1, 0xf9, 0xf9, - 0x8e, 0x79, 0xdd, 0xe4, 0xce, 0x3f, 0x78, 0x42, 0x4a, 0x46, 0x21, - 0x67, 0xc9, 0xaf, 0xb2, 0x62, 0xe7, 0x26, 0x35, 0x5a, 0xf7, 0x4c, - 0xd2, 0x3c, 0x7c, 0xc9, 0x49, 0xde, 0xf9, 0x83, 0xb4, 0x60, 0x95, - 0x16, 0x4a, 0xda, 0xc2, 0xf6, 0xb4, 0x79, 0xa9, 0x2d, 0x91, 0x32, - 0x62, 0x1d, 0x17, 0x0f, 0xb4, 0xc3, 0x8f, 0x8b, 0x2e, 0xae, 0xf5, - 0x05, 0x8c, 0x30, 0xfa, 0x5d, 0x9a, 0x1a, 0xd2, 0x6e, 0x83, 0x60, - 0xb1, 0x9b, 0x15, 0x55, 0x07, 0x6f, 0x31, 0x22, 0x78, 0xcb, 0x3a, - 0x5c, 0xe3, 0x92, 0x40, 0x3d, 0x96, 0x91, 0xc3, 0x13, 0xad, 0x7d, - 0xfd, 0x4d, 0xac, 0x93, 0xca, 0xd2, 0xb4, 0x66, 0xc1, 0xd1, 0x5e, - 0x10, 0x83, 0xea, 0xde, 0x95, 0x76, 0x7a, 0xb3, 0x0d, 0x56, 0x8d, - 0x8f, 0xa7, 0xe4, 0x14, 0x81, 0x65, 0xf2, 0x9f, 0xeb, 0x40, 0x90, - 0xad, 0x6d, 0x29, 0xf5, 0x23, 0xa6, 0x02, 0x02, 0xb4, 0x06, 0x2b, - 0x5c, 0x52, 0x8b, 0x67, 0x57, 0x00, 0xb5, 0xf8, 0x94, 0x83, 0x56, - 0x1d, 0xbb, 0x92, 0x75, 0xeb, 0xf7, 0x22, 0x5f, 0x48, 0xfa, 0x5d, - 0x73, 0x78, 0x49, 0xb2, 0x50, 0xb6, 0xaf, 0xab, 0x41, 0x49, 0xc5, - 0xae, 0xa8, 0x4a, 0x93, 0xb5, 0xd7, 0x08, 0xb0, 0x62, 0x30, 0x79, - 0x7b, 0x51, 0xa9, 0xdb, 0x72, 0x11, 0x93, 0xca, 0xfb, 0x47, 0xbb, - 0x0c, 0x07, 0xd1, 0x6b, 0xdb, 0x73, 0xc2, 0x83, 0x97, 0x32, 0x82, - 0xaa, 0xea, 0x24, 0xa8, 0x32, 0x3e, 0x65, 0x40, 0x6b, 0x2c, 0xfa, - 0xa9, 0x1c, 0x88, 0xb4, 0x58, 0x2b, 0x81, 0x4e, 0x22, 0xfc, 0xb4, - 0x77, 0x0f, 0xa1, 0x13, 0x04, 0x7a, 0x8b, 0x74, 0xd9, 0xc1, 0xa3, - 0xa4, 0x46, 0x2e, 0xd7, 0x9e, 0x3b, 0x86, 0x88, 0x7d, 0x49, 0x72, - 0x23, 0x2f, 0xca, 0x17, 0xd1, 0x93, 0x99, 0xe1, 0xd5, 0x14, 0x2e, - 0x7e, 0xc8, 0x19, 0x00, 0x25, 0x6e, 0xbb, 0xae, 0xb4, 0x8f, 0x25, - 0x17, 0x4d, 0xf6, 0xbf, 0xb1, 0x51, 0xf9, 0xa8, 0x59, 0xd7, 0xb6, - 0x4a, 0xd4, 0x0e, 0x0e, 0x8b, 0x8d, 0xb8, 0xbe, 0x11, 0xb5, 0xe9, - 0x50, 0x8b, 0x14, 0xb3, 0xd6, 0x09, 0xf1, 0x2c, 0x57, 0x60, 0xef, - 0x7a, 0xd0, 0x31, 0xf8, 0x89, 0xaf, 0xb1, 0x68, 0x13, 0x2e, 0x05, - 0xb2, 0xea, 0xd5, 0x58, 0xa5, 0x42, 0xa8, 0xed, 0x30, 0xaf, 0xc0, - 0xd0, 0x6b, 0xd5, 0x51, 0x87, 0xd8, 0xe3, 0x81, 0x87, 0xcb, 0xfc, - 0x5e, 0x3f, 0xfd, 0x15, 0x40, 0x82, 0x59, 0x74, 0xac, 0x06, 0x6b, - 0xe6, 0xde, 0xc4, 0x83, 0xcb, 0x84, 0x4b, 0x15, 0xb0, 0x2b, 0xc9, - 0x1a, 0x28, 0xbc, 0xe8, 0x09, 0x15, 0xc7, 0x99, 0xd2, 0xf9, 0x71, - 0x1d, 0x0f, 0x6d, 0x8c, 0x3a, 0x1d, 0x8c, 0xdb, 0xf2, 0x65, 0x69, - 0x30, 0xdb, 0x0e, 0xc9, 0xef, 0xb0, 0xcd, 0x0c, 0x1a, 0x7d, 0x93, - 0xde, 0xb8, 0xc7, 0x59, 0x50, 0x20, 0xae, 0x53, 0x61, 0x7f, 0x4b, - 0x27, 0xc5, 0x55, 0x36, 0xff, 0x56, 0xa6, 0x50, 0x84, 0xd9, 0xf8, - 0x41, 0x6c, 0x3f, 0x33, 0x0c, 0x22, 0xff, 0x46, 0x6b, 0xac, 0xf2, - 0xe5, 0x19, 0x30, 0x01, 0x2e, 0x1e, 0xc9, 0x0c, 0xa8, 0x2c, 0xf0, - 0x63, 0xb8, 0xa6, 0xb9, 0xc9, 0x15, 0xea, 0x88, 0x77, 0x4b, 0xb8, - 0xa8, 0xc4, 0x37, 0x42, 0xf6, 0xc6, 0xd2, 0x75, 0xb7, 0x0a, 0x0d, - 0x42, 0x03, 0x64, 0x44, 0xfd, 0x47, 0x29, 0xff, 0x82, 0x6f, 0xcd, - 0x3d, 0xe0, 0xce, 0xf7, 0xef, 0x9a, 0x0c, 0xe0, 0xd5, 0xfd, 0xab, - 0x0a, 0xc0, 0x3a, 0x49, 0x9c, 0x7c, 0xb5, 0x6b, 0xd8, 0x0a, 0xc8, - 0xf2, 0x10, 0x1c, 0x69, 0x67, 0x7f, 0x39, 0x57, 0x44, 0xf0, 0x51, - 0x16, 0xa0, 0x64, 0x0d, 0x87, 0x15, 0x4c, 0xe5, 0x56, 0x53, 0xb5, - 0xc5, 0x68, 0x92, 0x5e, 0x99, 0x60, 0x22, 0x6b, 0x00, 0x6b, 0x1e, - 0x5f, 0xe9, 0x8c, 0xe9, 0xfa, 0xad, 0x07, 0x88, 0x58, 0xec, 0x7f, - 0x06, 0x5f, 0xb1, 0xd8, 0x33, 0x95, 0x7e, 0xee, 0x10, 0x3d, 0x65, - 0xe2, 0x4f, 0xea, 0x77, 0xcb, 0xd2, 0x99, 0x96, 0x0e, 0x8b, 0x20, - 0xaa, 0x5c, 0x36, 0xcd, 0xc4, 0xd6, 0x57, 0xd1, 0x2f, 0x09, 0x9d, - 0x23, 0xd9, 0x8f, 0x99, 0x2d, 0x37, 0xaa, 0x25, 0x17, 0xcf, 0x2c, - 0x74, 0x36, 0xee, 0x14, 0x72, 0x05, 0x54, 0x6b, 0xc2, 0x3b, 0xf1, - 0xc1, 0x1f, 0x8e, 0x5e, 0x20, 0x23, 0x84, 0x50, 0x4c, 0xa0, 0x15, - 0x07, 0x98, 0x43, 0x36, 0x62, 0xd8, 0x9b, 0xe0, 0x1f, 0x54, 0x63, - 0x1f, 0x38, 0x8b, 0x13, 0x27, 0xb6, 0x06, 0xd2, 0xc1, 0x6b, 0x73, - 0x46, 0x18, 0x82, 0x66, 0x58, 0x05, 0x54, 0x41, 0x6e, 0x11, 0x19, - 0x04, 0x54, 0x50, 0xd7, 0xe3, 0xaf, 0x0d, 0xc2, 0x2f, 0x54, 0x91, - 0x38, 0x58, 0xd1, 0xbd, 0x09, 0x59, 0x98, 0xf3, 0xd6, 0x49, 0x61, - 0x6b, 0x45, 0x9d, 0x8b, 0x45, 0xdb, 0xbd, 0x24, 0x7e, 0xf3, 0x88, - 0x3c, 0xa5, 0xad, 0x4e, 0x82, 0x1e, 0xaa, 0x0d, 0xcf, 0xc1, 0xb3, - 0x5b, 0x90, 0x7f, 0xf8, 0xab, 0xdc, 0x93, 0x92, 0xd3, 0x9b, 0x5e, - 0x28, 0xd7, 0xf4, 0xd0, 0x2a, 0x5c, 0xd5, 0xf6, 0xcc, 0x3b, 0x03, - 0x63, 0x0a, 0x11, 0xf4, 0x37, 0x57, 0xe5, 0x7f, 0xb8, 0xf4, 0x6a, - 0x48, 0x0f, 0x6e, 0xfe, 0xaf, 0x85, 0x24, 0x88, 0x67, 0x40, 0x07, - 0xb5, 0xec, 0x28, 0x7b, 0x3b, 0x9b, 0xe1, 0xab, 0x5d, 0x29, 0x21, - 0xab, 0x42, 0xa8, 0x89, 0xb1, 0xb0, 0xf1, 0x2d, 0xb3, 0x32, 0x13, - 0x9d, 0x24, 0x61, 0xc0, 0x2f, 0x70, 0x4c, 0x07, 0xe4, 0xab, 0xfc, - 0xc7, 0xc5, 0x43, 0x2f, 0xfc, 0xc6, 0x1c, 0x9f, 0x57, 0xc2, 0x9e, - 0xca, 0xce, 0xb4, 0xa1, 0x32, 0xb9, 0x3e, 0x9c, 0x85, 0x5c, 0xca, - 0x2f, 0x46, 0xa8, 0x95, 0xef, 0xbb, 0xdd, 0xa3, 0xc8, 0x40, 0xf5, - 0xae, 0x78, 0x8d, 0xdf, 0x47, 0xcc, 0x3b, 0x2c, 0x49, 0x73, 0x43, - 0xb5, 0x11, 0x43, 0x8f, 0x28, 0x16, 0x77, 0xd2, 0x5f, 0x0a, 0x7d, - 0x19, 0xcb, 0x20, 0x04, 0x2e, 0x23, 0x62, 0x51, 0xd6, 0x5e, 0x49, - 0xbc, 0x21, 0x97, 0x4e, 0x6f, 0x82, 0xd3, 0x50, 0x99, 0x61, 0xa6, - 0x0a, 0xff, 0xdf, 0x9a, 0xca, 0x19, 0xbb, 0xd8, 0x5c, 0x3b, 0x66, - 0x98, 0x2a, 0x4c, 0x64, 0x62, 0xb1, 0x21, 0x49, 0x84, 0x02, 0x61, - 0x1b, 0x7f, 0x67, 0xa2, 0x50, 0xbf, 0xb3, 0x29, 0x2c, 0x23, 0x35, - 0xbf, 0x66, 0x63, 0x08, 0x8e, 0x4a, 0xb6, 0x78, 0x93, 0xa4, 0x64, - 0x2d, 0x6f, 0xe2, 0x45, 0x42, 0xc4, 0x63, 0xf5, 0x41, 0x78, 0xa8, - 0xd6, 0x3e, 0x57, 0xb1, 0x2c, 0x73, 0xe9, 0x71, 0xd8, 0xa4, 0x4e, - 0xb6, 0x2b, 0x67, 0x21, 0x27, 0x1b, 0x68, 0x7e, 0xaa, 0x5f, 0x79, - 0x66, 0xe9, 0x78, 0x9a, 0x91, 0xa3, 0xc2, 0xa9, 0x20, 0x7a, 0x2d, - 0x82, 0x72, 0xd2, 0x24, 0x94, 0xf7, 0x1f, 0x08, 0xdb, 0x63, 0x59, - 0xd9, 0xda, 0x0c, 0x71, 0x1b, 0xf2, 0xa6, 0xae, 0x6e, 0xef, 0x1b, - 0x96, 0xc9, 0xa4, 0xc0, 0x45, 0xb2, 0xf7, 0x39, 0x12, 0x9f, 0x27, - 0x4e, 0x14, 0x31, 0x60, 0x10, 0x4f, 0xdc, 0x0a, 0xd1, 0x3e, 0xdc, - 0x9c, 0x93, 0x46, 0xa5, 0x53, 0xed, 0xf4, 0x28, 0x70, 0x63, 0x36, - 0x3e, 0x5d, 0xb7, 0xa6, 0x8d, 0x20, 0x91, 0x44, 0x85, 0xe9, 0xdb, - 0xb7, 0x2a, 0xab, 0x92, 0xf5, 0xc7, 0xa7, 0x71, 0x77, 0x0d, 0x3e, - 0xdc, 0x6c, 0x87, 0xfe, 0x0c, 0x7e, 0x3e, 0x9c, 0xb1, 0xb6, 0x78, - 0x7c, 0x30, 0x44, 0x0a, 0xf2, 0x15, 0x41, 0x44, 0x82, 0x68, 0xe4, - 0xa7, 0x74, 0x93, 0x11, 0xcd, 0xf0, 0x6b, 0x1c, 0xe0, 0x76, 0xb9, - 0xba, 0x40, 0xa9, 0x00, 0x6f, 0x26, 0x78, 0x40, 0xf6, 0x5a, 0x5a, - 0xc8, 0x42, 0xff, 0x81, 0x36, 0xcf, 0x71, 0x86, 0x9e, 0xec, 0xf0, - 0x62, 0x57, 0x45, 0x7a, 0x02, 0x9c, 0x14, 0xf0, 0xbb, 0x05, 0xf3, - 0x4d, 0x57, 0xaf, 0x0a, 0xa3, 0xca, 0x22, 0xea, 0xec, 0xfc, 0xdb, - 0xe8, 0x6f, 0x44, 0x6a, 0xad, 0x07, 0x3c, 0xe8, 0xa5, 0x91, 0xc0, - 0x34, 0x18, 0x46, 0x1c, 0x1f, 0x6f, 0x37, 0xab, 0xd2, 0x1b, 0xa0, - 0x18, 0x32, 0x31, 0x64, 0x29, 0x3a, 0xbb, 0xae, 0x19, 0x4f, 0xa8, - 0x60, 0x1a, 0x00, 0x77, 0x14, 0x61, 0xec, 0xb4, 0x79, 0xa6, 0x50, - 0x3b, 0x38, 0x72, 0x6a, 0x7c, 0x11, 0x18, 0xa2, 0x47, 0xf9, 0xab, - 0x24, 0x73, 0xf9, 0x99, 0xae, 0x92, 0xc6, 0xb2, 0x3a, 0x19, 0x37, - 0x69, 0x06, 0xb5, 0xfa, 0x85, 0x14, 0x07, 0x2d, 0xc2, 0x73, 0xd1, - 0xb0, 0x69, 0xba, 0x19, 0xe8, 0x0f, 0x85, 0x34, 0x0e, 0x0a, 0x81, - 0x55, 0x25, 0xbd, 0xec, 0x6f, 0x9b, 0x0d, 0x2b, 0xf9, 0xd1, 0xde, - 0x18, 0x6b, 0x3b, 0x18, 0x9b, 0x3e, 0x4f, 0x33, 0x68, 0x41, 0xe8, - 0x6b, 0xda, 0x0c, 0x96, 0x4a, 0xeb, 0x71, 0xe1, 0x4f, 0x8e, 0x4a, - 0x1c, 0x25, 0x8c, 0x86, 0x74, 0xa2, 0xee, 0x48, 0x8c, 0xc7, 0x0c, - 0xef, 0x31, 0xe9, 0x3f, 0x9c, 0x7c, 0x0b, 0x8e, 0x05, 0x96, 0x9a, - 0x44, 0x0e, 0x4f, 0x79, 0xbd, 0xdb, 0x4f, 0xbc, 0x50, 0x27, 0x6b, - 0x5c, 0x66, 0x8f, 0xfe, 0x0a, 0x3c, 0xdd, 0xf3, 0xb0, 0x70, 0x84, - 0x7c, 0x96, 0x9b, 0x50, 0x55, 0xb1, 0x4e, 0x1f, 0xf8, 0x68, 0x57, - 0xea, 0x96, 0x8f, 0x75, 0x7b, 0xcc, 0x66, 0x12, 0x8e, 0x8a, 0x39, - 0x78, 0xd5, 0x7a, 0x5c, 0x15, 0x0c, 0x02, 0x16, 0xc0, 0x27, 0xe2, - 0x9e, 0x83, 0xbe, 0x54, 0x47, 0xf1, 0x41, 0x27, 0xdc, 0xb7, 0x49, - 0x51, 0x94, 0xdb, 0x86, 0xbb, 0x77, 0xf1, 0x5b, 0xa6, 0x5b, 0x9a, - 0xf5, 0x1b, 0xc9, 0x6d, 0x03, 0xb7, 0xb7, 0x6b, 0x0d, 0x01, 0x5d, - 0xab, 0xe8, 0x98, 0xd2, 0xf3, 0xa8, 0x7f, 0x76, 0xd5, 0x79, 0x27, - 0xec, 0xd8, 0x2b, 0x1f, 0x54, 0x5e, 0xd3, 0xc4, 0xd7, 0x5a, 0x10, - 0xd6, 0xed, 0x3f, 0xf3, 0x21, 0xaf, 0x83, 0xcd, 0xcc, 0x11, 0x96, - 0xf6, 0x24, 0x82, 0x9e, 0xbd, 0x7a, 0xeb, 0x5a, 0x92, 0x5d, 0x0e, - 0x60, 0x1d, 0x24, 0xac, 0x93, 0x09, 0xaf, 0xbf, 0x6f, 0x0a, 0xd4, - 0xe4, 0x80, 0xff, 0x7f, 0xb4, 0xa6, 0xcb, 0x04, 0x13, 0xbf, 0x89, - 0x71, 0xb8, 0xa3, 0x45, 0xf9, 0x6d, 0x1e, 0x56, 0x25, 0xbf, 0xaf, - 0x9c, 0xd6, 0xc9, 0xdc, 0xb7, 0x02, 0x4a, 0x2a, 0xaf, 0xcc, 0x66, - 0x2c, 0x4f, 0x52, 0x9e, 0x3e, 0xf5, 0x15, 0xe0, 0x5e, 0x22, 0x03, - 0x47, 0x29, 0x1a, 0x2b, 0x67, 0x45, 0xdb, 0xd5, 0x50, 0xf4, 0xd3, - 0xa8, 0x5f, 0xeb, 0xef, 0xcf, 0x82, 0x79, 0x7d, 0x4e, 0x7f, 0x48, - 0x6a, 0x53, 0xa1, 0xbf, 0xd2, 0xf7, 0x33, 0xdb, 0x58, 0xd4, 0x8b, - 0x96, 0xbe, 0x23, 0x69, 0x22, 0xdf, 0xfe, 0x76, 0x79, 0xb1, 0x1c, - 0x8e, 0x34, 0x2c, 0xa1, 0xa5, 0x70, 0x2b, 0x19, 0xb2, 0x63, 0xb8, - 0xf7, 0x03, 0x8b, 0x37, 0x53, 0xe9, 0x3a, 0x0c, 0xa0, 0xa2, 0xff, - 0x37, 0xb9, 0x2c, 0xe6, 0xc9, 0x53, 0xa9, 0xe4, 0x58, 0x97, 0xe3, - 0xf4, 0xec, 0xe2, 0x66, 0x8d, 0xdf, 0x72, 0x1e, 0x7a, 0x2e, 0xb6, - 0x33, 0x27, 0x4a, 0xb4, 0xcd, 0x43, 0xa2, 0x88, 0x61, 0x5b, 0xf1, - 0x32, 0x6e, 0xf1, 0xd4, 0x03, 0x1b, 0x6d, 0xa9, 0x5f, 0x4c, 0xac, - 0x4b, 0x8a, 0xab, 0xb5, 0x8d, 0x53, 0x41, 0xe2, 0xad, 0xd9, 0x62, - 0x19, 0xef, 0xc4, 0x11, 0x20, 0xfc, 0xf5, 0xeb, 0x55, 0x29, 0xd9, - 0x11, 0x89, 0xd0, 0x81, 0x12, 0x1b, 0x8b, 0x89, 0xca, 0xb2, 0x4c, - 0x3a, 0x60, 0x23, 0x61, 0x3c, 0x4d, 0xb9, 0x14, 0xb4, 0x2b, 0x9e, - 0x7c, 0xb5, 0x13, 0x06, 0x4e, 0x9a, 0x02, 0x01, 0x25, 0x09, 0xa2, - 0x61, 0x5d, 0xa5, 0x07, 0x4f, 0xe7, 0xd3, 0x32, 0xb2, 0x4f, 0xd7, - 0xc2, 0xb2, 0xaa, 0xaf, 0xc0, 0x57, 0xeb, 0xe3, 0xc5, 0x07, 0x95, - 0x5f, 0x25, 0x42, 0x85, 0xd6, 0x44, 0x3b, 0xa9, 0xc1, 0x31, 0x88, - 0x84, 0x31, 0xfc, 0x30, 0xf2, 0xf1, 0xdc, 0xdf, 0xb2, 0xf2, 0xb3, - 0x10, 0xc4, 0x0b, 0x9b, 0x25, 0xbe, 0xfd, 0xf0, 0x1d, 0x7d, 0xf9, - 0x1d, 0x9f, 0x36, 0x5c, 0x20, 0x2a, 0xe6, 0xbf, 0x72, 0xd1, 0x6e, - 0x3f, 0x3a, 0xd0, 0xa9, 0xde, 0x0b, 0x8b, 0xe2, 0x25, 0xe1, 0xc0, - 0xa7, 0x39, 0xd6, 0x43, 0x96, 0xf6, 0x52, 0xbf, 0xfc, 0xd6, 0x60, - 0xbf, 0xf9, 0xe0, 0x14, 0xaf, 0xb3, 0x3a, 0x15, 0x9d, 0x0b, 0x5d, - 0xcf, 0xab, 0xc7, 0x9e, 0x8f, 0xf6, 0x64, 0x87, 0x5e, 0x6b, 0x83, - 0x57, 0x77, 0x65, 0xed, 0xfd, 0x14, 0xe9, 0xd2, 0x65, 0x18, 0xeb, - 0x2d, 0x5e, 0xf0, 0xcc, 0xff, 0xc3, 0x7c, 0x4b, 0x2a, 0x73, 0x1f, - 0xde, 0x67, 0xad, 0xeb, 0xc5, 0x1e, 0x95, 0x4c, 0x0c, 0x2d, 0x85, - 0x96, 0x34, 0x49, 0x1d, 0x86, 0xe3, 0x34, 0xa4, 0x93, 0x57, 0x82, - 0xc0, 0x96, 0x9d, 0xf5, 0x96, 0xa8, 0xba, 0xc2, 0xe6, 0x73, 0x77, - 0xaf, 0xcc, 0xa1, 0x58, 0xe9, 0x9e, 0x37, 0xe4, 0x77, 0x3b, 0xff, - 0x5b, 0x33, 0x24, 0x62, 0xf3, 0x40, 0x87, 0x92, 0x57, 0x66, 0xd9, - 0x42, 0x4b, 0xcd, 0xd0, 0x93, 0xec, 0xd8, 0x3d, 0x64, 0xef, 0x7a, - 0x8b, 0xd9, 0x86, 0x19, 0x45, 0xee, 0x5c, 0xf8, 0xdb, 0x51, 0xb1, - 0x5d, 0x60, 0xe4, 0x28, 0x9e, 0x78, 0x22, 0xa8, 0x42, 0xd4, 0xd6, - 0xde, 0x71, 0x55, 0xd8, 0x58, 0xb7, 0xcd, 0x13, 0x1d, 0xe8, 0x01, - 0x36, 0xe0, 0x57, 0x85, 0x76, 0x06, 0x97, 0x61, 0xe0, 0xd5, 0xfe, - 0x56, 0x47, 0x4a, 0x9c, 0x1a, 0x0c, 0xea, 0x5a, 0x61, 0x9d, 0x94, - 0xaa, 0x19, 0xbb, 0xec, 0x6d, 0xee, 0x39, 0x84, 0xb8, 0xc1, 0x54, - 0xa8, 0xa7, 0x7f, 0x28, 0xc2, 0xcb, 0x13, 0x4b, 0x81, 0xbc, 0xaf, - 0xcb, 0x8d, 0x77, 0x81, 0x14, 0xf7, 0xc4, 0x92, 0x94, 0x6a, 0x08, - 0x6c, 0x20, 0x5f, 0xa0, 0x1b, 0x7a, 0x3d, 0xa2, 0x5d, 0x9b, 0x5e, - 0xdf, 0xb2, 0x6c, 0x65, 0x20, 0x84, 0xf1, 0x07, 0xea, 0x53, 0x99, - 0x18, 0x36, 0x96, 0x78, 0x10, 0x19, 0x02, 0x8d, 0x28, 0x4b, 0x8f, - 0xc5, 0x98, 0x27, 0xae, 0xbc, 0x8e, 0x7e, 0x3e, 0x14, 0xc2, 0x50, - 0xbe, 0x91, 0x9b, 0x18, 0xc7, 0x87, 0x4d, 0x74, 0xd4, 0x25, 0xd1, - 0x08, 0x3c, 0xd5, 0x88, 0xf7, 0xd4, 0x66, 0x17, 0x2e, 0x3e, 0xa4, - 0x1e, 0xce, 0x19, 0xc6, 0x7e, 0x2e, 0x13, 0x92, 0xba, 0x1d, 0x88, - 0xa9, 0x5a, 0x49, 0x9e, 0xf8, 0x97, 0x0b, 0x84, 0xd1, 0x82, 0x5a, - 0xd5, 0x30, 0xd8, 0x3f, 0x54, 0x30, 0x7e, 0x66, 0x22, 0x8f, 0xcc, - 0xa9, 0xa2, 0x90, 0x16, 0xd4, 0x05, 0x85, 0xc0, 0xab, 0x2f, 0x5a, - 0xce, 0x79, 0x8f, 0x14, 0x49, 0xa8, 0x23, 0x78, 0xa0, 0xdc, 0xef, - 0x4e, 0xcb, 0x8b, 0xae, 0x62, 0xb8, 0xff, 0xe9, 0x44, 0x41, 0xbf, - 0x79, 0x73, 0x06, 0x5c, 0x57, 0x4c, 0x31, 0x7c, 0x2d, 0x90, 0xbd, - 0xcb, 0x66, 0x66, 0x3e, 0x76, 0xc6, 0x7b, 0xb0, 0x16, 0xb2, 0x41, - 0x28, 0x23, 0xc2, 0xf2, 0xb4, 0xaf, 0xeb, 0x9d, 0x8a, 0xf5, 0xbb, - 0x0c, 0x24, 0x8e, 0x2d, 0xb4, 0x20, 0x74, 0x8b, 0x68, 0xb3, 0x14, - 0x65, 0xb2, 0xbc, 0x04, 0x29, 0x16, 0x2b, 0x40, 0xc6, 0x89, 0x0b, - 0x0c, 0x11, 0xa3, 0x39, 0x8e, 0x29, 0xc2, 0x3a, 0xfa, 0xf5, 0xb0, - 0xa5, 0x29, 0xc3, 0x29, 0x95, 0x05, 0x6a, 0xc7, 0x41, 0xf5, 0x1e, - 0xe7, 0xfb, 0xc9, 0xb7, 0x18, 0xbb, 0xcc, 0x62, 0xea, 0x43, 0x92, - 0x69, 0x1c, 0xd1, 0xe2, 0x65, 0xdb, 0x2f, 0x52, 0x9b, 0x23, 0x05, - 0x70, 0xe6, 0x40, 0x29, 0xb1, 0x56, 0x49, 0x48, 0xf6, 0x1d, 0x5f, - 0x0b, 0x00, 0x1b, 0x16, 0x38, 0xe4, 0xe4, 0x1a, 0x26, 0x62, 0xc4, - 0x73, 0x6b, 0x5f, 0x80, 0x63, 0x51, 0x03, 0x4e, 0xf8, 0xe0, 0x22, - 0xe4, 0x71, 0xfd, 0x11, 0x42, 0x0d, 0xa4, 0x45, 0x54, 0x03, 0x06, - 0xd9, 0x95, 0x8c, 0x99, 0x8b, 0x0b, 0x0b, 0xd6, 0x64, 0x86, 0xcd, - 0x93, 0x62, 0x67, 0xc4, 0x30, 0x44, 0x17, 0x01, 0x5d, 0x28, 0x56, - 0x20, 0xe1, 0x87, 0xfe, 0xd7, 0xbf, 0x5e, 0x67, 0x84, 0x14, 0x9c, - 0x85, 0xfd, 0x01, 0x42, 0xeb, 0x70, 0x98, 0x90, 0xe2, 0x11, 0xfc, - 0xc8, 0x30, 0xac, 0x0c, 0xed, 0x28, 0x69, 0xaf, 0xa0, 0xed, 0xc6, - 0x87, 0x4e, 0x8e, 0x8f, 0x88, 0x72, 0x96, 0x2f, 0x05, 0x78, 0x65, - 0x71, 0xc1, 0x91, 0xa7, 0x67, 0x5a, 0x07, 0x62, 0x86, 0xcf, 0xef, - 0x05, 0x71, 0x59, 0x76, 0x24, 0x40, 0x6f, 0x42, 0xb8, 0xd2, 0x6c, - 0x05, 0x28, 0x3e, 0xc2, 0xcb, 0xbb, 0xdf, 0x40, 0x67, 0xf1, 0x0d, - 0xe9, 0x61, 0x85, 0x76, 0xac, 0x3f, 0x75, 0x13, 0x9a, 0x71, 0x6e, - 0x9a, 0x9f, 0xc9, 0xe6, 0x5c, 0xb3, 0x3a, 0x11, 0x50, 0x3a, 0xce, - 0x91, 0xc3, 0x90, 0x77, 0xea, 0x74, 0xdf, 0x32, 0xd7, 0x30, 0xcf, - 0x09, 0x7f, 0x9b, 0xde, 0xfe, 0xca, 0x88, 0x5d, 0x0e, 0x9d, 0x27, - 0xa3, 0x7f, 0x2b, 0xd4, 0xbf, 0xb8, 0x97, 0x8f, 0x8a, 0x3b, 0x65, - 0x23, 0x7b, 0x39, 0xa7, 0x14, 0x1a, 0x1d, 0x1a, 0x35, 0xcf, 0x48, - 0x59, 0xd5, 0xc6, 0xe6, 0x7f, 0x36, 0x71, 0xc6, 0x62, 0xa6, 0x5e, - 0x91, 0xc4, 0xb2, 0xaf, 0x07, 0x65, 0xea, 0x91, 0xbd, 0xd3, 0xd9, - 0x2c, 0x8b, 0x37, 0x7f, 0x5f, 0xb4, 0x94, 0xe2, 0x8b, 0x65, 0xc8, - 0xf8, 0x87, 0xf8, 0x30, 0x11, 0xd3, 0xcd, 0xac, 0x19, 0xb3, 0x7b, - 0x4d, 0xb1, 0x32, 0x49, 0xc7, 0xce, 0xb4, 0x16, 0x26, 0x58, 0x66, - 0x8f, 0xd6, 0x3c, 0x08, 0x14, 0xf3, 0x0c, 0xb8, 0x98, 0xe2, 0xe3, - 0x9c, 0x75, 0xdc, 0xda, 0x90, 0x7f, 0x1c, 0x4d, 0xd9, 0xbc, 0x50, - 0x9b, 0x41, 0x5d, 0x2a, 0xf3, 0x53, 0x07, 0xe2, 0xee, 0x93, 0x2a, - 0x6d, 0x17, 0x09, 0x6f, 0xd6, 0xb8, 0xb6, 0xa0, 0xc8, 0x55, 0x78, - 0x27, 0xfd, 0x75, 0xc5, 0xb7, 0x48, 0xdd, 0xc9, 0xe3, 0x1a, 0xf7, - 0x96, 0x05, 0x9f, 0xa8, 0xe8, 0x58, 0x09, 0x0c, 0xe7, 0x64, 0xe7, - 0x04, 0x76, 0xfd, 0x05, 0xe6, 0x3d, 0xde, 0x16, 0xf4, 0x5e, 0x42, - 0x18, 0x9d, 0x55, 0x0a, 0x9f, 0x98, 0x96, 0xc7, 0x4e, 0x7e, 0xee, - 0xa2, 0xda, 0x3b, 0x88, 0x3f, 0x89, 0x60, 0xad, 0x1f, 0x36, 0xb9, - 0xb0, 0xe7, 0xf5, 0x6b, 0xf1, 0xec, 0x61, 0x1f, 0xa8, 0xad, 0xdd, - 0x53, 0x95, 0x0e, 0x0b, 0xe4, 0x54, 0x87, 0x3c, 0x53, 0x3b, 0x3a, - 0xc7, 0xa5, 0xf4, 0xee, 0xf8, 0xbf, 0x1d, 0x0e, 0x83, 0x8a, 0xb2, - 0x1b, 0xab, 0x19, 0xcc, 0x6f, 0x23, 0x14, 0x2f, 0x0a, 0xeb, 0x52, - 0x10, 0x6e, 0x4a, 0x62, 0xdc, 0x72, 0x4f, 0x17, 0x2d, 0xda, 0x2b, - 0x70, 0xe1, 0xde, 0xce, 0xc9, 0x9d, 0xa9, 0xe3, 0xdc, 0x20, 0x7c, - 0x63, 0x7f, 0x63, 0xa1, 0x5f, 0x33, 0xb6, 0xc8, 0x65, 0x34, 0xf4, - 0xc6, 0x72, 0x42, 0xe8, 0x28, 0x05, 0xe5, 0xe6, 0xdf, 0x48, 0xdb, - 0xd5, 0x31, 0xf6, 0x91, 0x0b, 0xde, 0x74, 0x35, 0x43, 0x2f, 0xa0, - 0xd8, 0xae, 0x4b, 0x46, 0x15, 0xd5, 0x5f, 0x0b, 0xa6, 0xc4, 0xe6, - 0x38, 0x79, 0xeb, 0x58, 0xd5, 0x3f, 0xb9, 0x45, 0x45, 0xdb, 0x16, - 0xdc, 0xcc, 0x86, 0x56, 0x40, 0x51, 0x7e, 0x33, 0x9f, 0xd4, 0xa4, - 0xd2, 0xca, 0xab, 0x3f, 0xe0, 0xd5, 0xac, 0x37, 0xdd, 0xc2, 0x25, - 0x1b, 0x34, 0xcd, 0x14, 0xa5, 0x65, 0x9d, 0xe0, 0x39, 0x02, 0xfe, - 0x45, 0x41, 0xe5, 0xa9, 0x1a, 0x32, 0x1f, 0x08, 0xc8, 0xe1, 0x26, - 0xf5, 0x05, 0xc1, 0xb0, 0x2e, 0x50, 0xb7, 0x33, 0x85, 0xc9, 0x9b, - 0xe4, 0xed, 0xe0, 0x57, 0x1d, 0xc3, 0x6e, 0xe2, 0x63, 0x05, 0x9f, - 0x74, 0xea, 0x1d, 0x7a, 0xdc, 0x03, 0x65, 0x46, 0x1b, 0xb5, 0x76, - 0xe4, 0x3a, 0x0b, 0xf4, 0x40, 0xf8, 0x30, 0xd8, 0x5c, 0x8f, 0xca, - 0x6d, 0x3f, 0x46, 0xc7, 0xb2, 0xa1, 0xae, 0xd3, 0xaf, 0xc0, 0x37, - 0x5c, 0x9d, 0xec, 0x5a, 0x4f, 0xe4, 0x20, 0xb3, 0x7e, 0x00, 0x52, - 0xfb, 0x99, 0xc4, 0x19, 0x0b, 0x42, 0x97, 0x62, 0x99, 0x71, 0xf4, - 0x49, 0x75, 0x8e, 0x5f, 0x31, 0x46, 0xff, 0x33, 0x35, 0x11, 0x28, - 0x0c, 0x2c, 0x56, 0x75, 0x17, 0xef, 0xc0, 0x9a, 0xba, 0xbc, 0x61, - 0xd3, 0x0e, 0xde, 0xed, 0x78, 0x66, 0x43, 0x55, 0xd1, 0xdc, 0x09, - 0xdb, 0x51, 0x47, 0xca, 0x88, 0x58, 0xbe, 0x7f, 0xe7, 0x56, 0xdf, - 0x61, 0x13, 0xb8, 0x0f, 0x4f, 0xa3, 0xa9, 0x37, 0xc2, 0x65, 0xcc, - 0x28, 0xa8, 0x3e, 0x50, 0x92, 0xbb, 0x63, 0xbc, 0x36, 0x98, 0x1e, - 0xed, 0xaa, 0xad, 0x18, 0xe8, 0x84, 0xd3, 0x72, 0x80, 0x63, 0x03, - 0xe8, 0xd2, 0x45, 0xab, 0xa2, 0xdc, 0x98, 0x4d, 0xf4, 0x8e, 0x69, - 0xd6, 0x70, 0x2d, 0x8a, 0x06, 0x9d, 0x93, 0xb9, 0x3b, 0xd1, 0x79, - 0xa6, 0x20, 0x70, 0xf7, 0x8b, 0x1f, 0x4b, 0x77, 0x5b, 0x38, 0x11, - 0xe8, 0xaf, 0x1d, 0x38, 0x69, 0xef, 0x2b, 0x04, 0xa9, 0x86, 0x43, - 0xbf, 0x8d, 0x9e, 0x3d, 0x79, 0x5f, 0x3e, 0xac, 0xee, 0xbd, 0x39, - 0x8e, 0x65, 0xe5, 0x95, 0x50, 0xab, 0x79, 0xf1, 0xf1, 0xed, 0x04, - 0x49, 0x4b, 0x28, 0x4f, 0xed, 0x92, 0xe1, 0x90, 0x5b, 0x43, 0x6e, - 0x88, 0x36, 0x39, 0x6b, 0x3d, 0x0b, 0x37, 0x7c, 0xca, 0xc0, 0x73, - 0x1c, 0xc0, 0x2f, 0x17, 0x28, 0x50, 0xbb, 0xe0, 0x54, 0x6f, 0x9a, - 0xc0, 0xc7, 0x3f, 0x73, 0xda, 0xd5, 0x2c, 0xb8, 0xd7, 0xa9, 0x73, - 0x9b, 0x01, 0x39, 0xc0, 0x0b, 0x7c, 0xb7, 0xf1, 0x3b, 0x8b, 0x00, - 0x3c, 0x20, 0xe7, 0xc3, 0x09, 0x18, 0x06, 0xe4, 0xf6, 0x34, 0x0c, - 0x59, 0xba, 0x8a, 0xd2, 0xf7, 0x0b, 0x4c, 0x05, 0x3d, 0xbe, 0x40, - 0x3c, 0xa9, 0xf9, 0x07, 0xc4, 0xcb, 0xfd, 0xb7, 0x5a, 0x0a, 0x26, - 0x8b, 0x36, 0xab, 0x3a, 0xb2, 0xae, 0xf0, 0xa1, 0x55, 0xd8, 0x5e, - 0x88, 0xb8, 0xd3, 0x55, 0x66, 0xbf, 0x17, 0x14, 0x1c, 0x12, 0x3a, - 0x81, 0x7a, 0xfb, 0xc3, 0x47, 0x32, 0xd9, 0x74, 0xcd, 0x36, 0x29, - 0x7b, 0x2d, 0x61, 0x7e, 0x11, 0xfc, 0x92, 0x42, 0x39, 0x8a, 0xa4, - 0x69, 0xbb, 0x10, 0xe3, 0xaf, 0xdd, 0xad, 0xba, 0x19, 0xda, 0x0b, - 0x53, 0x17, 0x1c, 0x83, 0x37, 0x3d, 0x91, 0x5b, 0x2f, 0x11, 0xe1, - 0xef, 0x5f, 0x52, 0x56, 0x5f, 0x0c, 0x14, 0xf4, 0x0d, 0x16, 0x90, - 0x04, 0x5a, 0xf5, 0xc4, 0x82, 0xa9, 0x81, 0xcb, 0x3f, 0xf6, 0xfe, - 0x58, 0xbd, 0x79, 0x66, 0x9d, 0x00, 0xd6, 0x44, 0x99, 0xd9, 0xe9, - 0x53, 0x4d, 0x2f, 0x91, 0x64, 0xf2, 0x33, 0xbc, 0x08, 0xef, 0x08, - 0x61, 0x9d, 0x4d, 0x67, 0x6c, 0xd0, 0x16, 0x6c, 0x9f, 0x0b, 0x99, - 0x67, 0x76, 0x26, 0x33, 0xd4, 0x77, 0xcf, 0x75, 0xa6, 0xa2, 0x2b, - 0x92, 0xcf, 0x92, 0xb0, 0x26, 0xf1, 0xa9, 0x71, 0xf8, 0xcc, 0x9e, - 0x8b, 0x0d, 0x23, 0x03, 0x29, 0x2e, 0x87, 0xa4, 0x5a, 0x22, 0xed, - 0x99, 0xb0, 0x48, 0xc7, 0x0b, 0x0a, 0xf2, 0xa4, 0x1d, 0xe1, 0x88, - 0xd3, 0x10, 0x2e, 0xf2, 0x90, 0xc1, 0x87, 0x41, 0x3e, 0xfc, 0x1b, - 0xef, 0x4b, 0x8e, 0x5f, 0xc9, 0xf6, 0xa7, 0x19, 0xd0, 0x2d, 0xe8, - 0x0d, 0x3e, 0x3f, 0x74, 0xc8, 0xe2, 0xdf, 0x72, 0xbf, 0xb1, 0x6d, - 0x2b, 0x9e, 0x10, 0x6a, 0x76, 0xe5, 0x7c, 0x05, 0xfd, 0xef, 0xa0, - 0x42, 0xa1, 0x75, 0x78, 0xea, 0x19, 0x97, 0x2f, 0xd9, 0x9b, 0xef, - 0x17, 0xae, 0x20, 0x66, 0x1e, 0xc5, 0x1e, 0xb3, 0x85, 0x2a, 0x11, - 0x0c, 0xec, 0x30, 0xa3, 0x72, 0xae, 0xc1, 0xe0, 0x96, 0x63, 0x47, - 0xe0, 0x06, 0xd9, 0x7d, 0x25, 0x4b, 0x59, 0x05, 0x7b, 0x01, 0x8f, - 0xe7, 0xaf, 0x20, 0xf9, 0x37, 0x1a, 0xd4, 0xb1, 0xc8, 0x3d, 0xb0, - 0xd7, 0xd2, 0x86, 0xae, 0x3c, 0xc9, 0xc2, 0xe2, 0x42, 0x95, 0x8e, - 0xc0, 0xc3, 0x1a, 0xcb, 0xbf, 0xb6, 0x13, 0x1b, 0x9a, 0xe6, 0xb8, - 0x39, 0x04, 0x87, 0x89, 0x7a, 0x54, 0x42, 0x7d, 0xde, 0xa3, 0x6b, - 0x59, 0x89, 0x1f, 0x32, 0x3c, 0x37, 0x1d, 0x21, 0xee, 0x83, 0xbd, - 0x77, 0xab, 0x98, 0x3c, 0xa1, 0x3d, 0x29, 0xf8, 0xc2, 0xee, 0x28, - 0xca, 0x82, 0x80, 0x18, 0x3a, 0x87, 0x09, 0x4a, 0x6f, 0xc1, 0x8d, - 0x5e, 0xd9, 0xbe, 0x2d, 0x61, 0x8a, 0xdf, 0x19, 0x2b, 0x08, 0xd4, - 0x45, 0x45, 0xcc, 0x72, 0x8d, 0xc2, 0x43, 0x3b, 0x74, 0xc9, 0xe8, - 0x14, 0xad, 0xe9, 0xf4, 0x88, 0x29, 0x10, 0x57, 0x2e, 0x47, 0xbe, - 0xd8, 0x73, 0x37, 0x4d, 0x1b, 0xfe, 0x29, 0x61, 0x14, 0x04, 0x79, - 0x45, 0x89, 0x13, 0x22, 0x6f, 0xad, 0x29, 0xba, 0x6a, 0x17, 0xb9, - 0x0e, 0x87, 0xbd, 0x72, 0xc4, 0xa3, 0x3e, 0x91, 0xd7, 0x93, 0xbe, - 0x7b, 0x73, 0x14, 0xe8, 0xf3, 0x21, 0xc4, 0x03, 0x21, 0x7f, 0xb6, - 0xad, 0xa2, 0x9b, 0x07, 0xee, 0xff, 0x28, 0x5c, 0xa7, 0xd9, 0xba, - 0xec, 0xb4, 0x0f, 0xe7, 0xa8, 0xcb, 0x48, 0xc3, 0xa2, 0x39, 0x66, - 0x51, 0xf8, 0xb1, 0x0d, 0x4f, 0x40, 0xa2, 0x38, 0xd7, 0x84, 0x31, - 0xff, 0x5f, 0x3b, 0xf2, 0x73, 0x9d, 0x31, 0x1b, 0xf7, 0xad, 0x5c, - 0x8c, 0x0d, 0x1b, 0xdd, 0x33, 0x5b, 0x35, 0xcb, 0x22, 0x1a, 0x13, - 0x5c, 0x43, 0xda, 0x58, 0x7b, 0x9a, 0x83, 0x27, 0x4e, 0xbd, 0xc0, - 0x56, 0x78, 0x65, 0x23, 0x3a, 0x03, 0xad, 0x2e, 0x37, 0xda, 0xa0, - 0x97, 0x33, 0x7c, 0x82, 0xaa, 0x62, 0xd3, 0x61, 0x6b, 0xc1, 0xfb, - 0x3b, 0xdc, 0x72, 0x9b, 0xb1, 0x84, 0xcf, 0xc8, 0xb4, 0x6d, 0x87, - 0x2b, 0xdd, 0x0f, 0x3e, 0x8a, 0xd8, 0x00, 0x21, 0xc9, 0xc8, 0x33, - 0x21, 0xb3, 0xe6, 0x81, 0xa9, 0x8f, 0x65, 0x49, 0x4c, 0x1f, 0xbb, - 0x53, 0xbc, 0xb8, 0x56, 0x47, 0x22, 0x8b, 0x6e, 0x3c, 0x6f, 0x2d, - 0x19, 0x9b, 0x88, 0x55, 0x24, 0x67, 0x8c, 0x3a, 0xc7, 0xb1, 0xa7, - 0x9e, 0xfd, 0x45, 0x48, 0x25, 0x4b, 0xbe, 0x30, 0x49, 0xbc, 0x26, - 0x89, 0xc4, 0xed, 0xf4, 0x76, 0xae, 0x12, 0x7b, 0xed, 0x2b, 0xc8, - 0x0b, 0x36, 0xad, 0xb7, 0xe3, 0x66, 0x55, 0xc2, 0x84, 0x2f, 0x5c, - 0x7f, 0xcb, 0x2f, 0x6b, 0xfe, 0x3e, 0x0c, 0x4b, 0x6c, 0xf7, 0xdc, - 0x41, 0xce, 0xc9, 0x57, 0x1a, 0x00, 0x67, 0xa6, 0x46, 0x45, 0x26, - 0x3f, 0x8d, 0x79, 0x89, 0x04, 0x1d, 0xa9, 0x66, 0xa6, 0xfb, 0x21, - 0xb7, 0x71, 0x80, 0x3b, 0x04, 0x3c, 0x97, 0xa8, 0x48, 0x34, 0x32, - 0x02, 0x5d, 0x4f, 0xbe, 0x82, 0xab, 0x3b, 0x44, 0x73, 0x0a, 0xbe, - 0xa6, 0x00, 0x79, 0x3c, 0x18, 0x7b, 0x3f, 0xb0, 0x9e, 0x27, 0x3f, - 0x79, 0x90, 0x20, 0x61, 0xce, 0xc7, 0x91, 0x6e, 0xd5, 0x58, 0xb6, - 0xd6, 0x7f, 0xb3, 0x00, 0x28, 0xa3, 0x2f, 0x92, 0xa7, 0x14, 0x72, - 0xc0, 0xfa, 0x6f, 0x27, 0x37, 0x8a, 0x59, 0x15, 0x3f, 0x6d, 0x4e, - 0x44, 0xd1, 0x42, 0x62, 0xef, 0x77, 0xa7, 0x58, 0xc2, 0x11, 0x12, - 0x5e, 0x0a, 0x1b, 0x0c, 0x98, 0xb4, 0x6b, 0xc4, 0xae, 0xcd, 0x4b, - 0xbc, 0x22, 0x8f, 0x1e, 0x62, 0x1b, 0xfe, 0x91, 0x1f, 0xee, 0x6a, - 0x59, 0x59, 0x16, 0x2b, 0x04, 0xc1, 0x5c, 0x34, 0x2c, 0x6f, 0xd1, - 0x8d, 0xf1, 0x4e, 0xde, 0xaa, 0xcb, 0xf5, 0x98, 0x0f, 0xe7, 0x36, - 0x64, 0x46, 0xdc, 0xdc, 0x0c, 0x18, 0x99, 0xd2, 0xe1, 0x0a, 0x6f, - 0x67, 0xad, 0x05, 0x3d, 0x7b, 0x48, 0x4e, 0xf5, 0x2a, 0xbf, 0x35, - 0xbd, 0xa4, 0xd1, 0x81, 0xc9, 0x73, 0xe3, 0x75, 0x81, 0x65, 0x29, - 0x53, 0x94, 0x6d, 0xf3, 0xbb, 0x4a, 0x82, 0x70, 0xa9, 0xca, 0x70, - 0xe2, 0x2c, 0x21, 0x33, 0x84, 0xde, 0x62, 0x3c, 0x07, 0x1d, 0xd1, - 0xd3, 0x05, 0x20, 0xa8, 0x2f, 0x13, 0xc0, 0x31, 0xef, 0x79, 0x96, - 0x06, 0x67, 0x64, 0x1c, 0x05, 0xda, 0xa2, 0xa0, 0x55, 0xd2, 0x95, - 0x11, 0x20, 0xf8, 0x29, 0x10, 0xa9, 0x23, 0x86, 0xf2, 0x59, 0x82, - 0xba, 0x84, 0x85, 0xaa, 0xed, 0x65, 0x64, 0x6e, 0x17, 0x74, 0x62, - 0x9f, 0x33, 0x99, 0x7f, 0xa4, 0x37, 0x73, 0x3e, 0x73, 0x4d, 0xe6, - 0x45, 0xa2, 0x6d, 0x59, 0x02, 0x25, 0x3f, 0x0a, 0xde, 0xe3, 0x59, - 0x2a, 0xc0, 0x00, 0xb1, 0x49, 0xce, 0xb7, 0x20, 0xcf, 0x5f, 0x2a, - 0x84, 0x12, 0x25, 0x12, 0x93, 0x74, 0x52, 0x8d, 0x00, 0xe7, 0xbd, - 0x79, 0x27, 0xd8, 0xe0, 0xa9, 0xca, 0x31, 0xb1, 0x36, 0x13, 0x2c, - 0xbd, 0x6c, 0x7f, 0x35, 0x16, 0xf8, 0x0d, 0x18, 0xec, 0xbb, 0x98, - 0xb8, 0x0c, 0x25, 0x12, 0x70, 0x78, 0xac, 0x3c, 0xdd, 0x7a, 0x9f, - 0xe7, 0x31, 0x5e, 0x70, 0x9f, 0xa4, 0xb5, 0xa8, 0x75, 0x16, 0x82, - 0x56, 0x03, 0xb6, 0xec, 0x47, 0x42, 0x63, 0xac, 0x29, 0x95, 0x45, - 0x4e, 0x92, 0xc7, 0x4f, 0xfc, 0xaa, 0x86, 0xac, 0x61, 0xff, 0xbe, - 0xe5, 0xd4, 0x94, 0x76, 0xab, 0x03, 0x8d, 0xfb, 0xbb, 0x57, 0x0e, - 0x2c, 0xbc, 0x50, 0x39, 0x7f, 0x9b, 0x5f, 0x6f, 0xe5, 0x9b, 0x82, - 0x4a, 0x08, 0xb9, 0x83, 0xde, 0xe6, 0x79, 0xaa, 0xa4, 0x19, 0x74, - 0x77, 0x73, 0x74, 0x0c, 0x19, 0x4a, 0xc4, 0x21, 0x61, 0x96, 0x43, - 0x76, 0xf4, 0xa3, 0xbd, 0xd0, 0x73, 0x84, 0x99, 0x75, 0xa6, 0x8c, - 0x92, 0x52, 0x96, 0xdb, 0xec, 0x40, 0x06, 0x79, 0x9c, 0x9a, 0xfe, - 0xfb, 0x41, 0x90, 0xc8, 0xb5, 0x75, 0xba, 0xcc, 0x0f, 0xf8, 0x1c, - 0xa3, 0x0b, 0xa5, 0x34, 0x1c, 0xbd, 0x8c, 0x91, 0x43, 0x15, 0x33, - 0xed, 0xfe, 0xde, 0x79, 0xdd, 0x16, 0x9b, 0x6b, 0x01, 0x61, 0x97, - 0x71, 0x09, 0x9e, 0x09, 0x6a, 0xc1, 0xb9, 0x96, 0xc8, 0xbd, 0x60, - 0x6e, 0xfe, 0x00, 0xfc, 0xc0, 0x31, 0xca, 0x0c, 0x46, 0xa8, 0xc6, - 0x3b, 0x93, 0x7b, 0x6b, 0xd4, 0x3a, 0x33, 0xba, 0xcb, 0x36, 0xf3, - 0xb5, 0x88, 0xb7, 0x97, 0xdc, 0xc1, 0x94, 0x08, 0xdf, 0xda, 0x7e, - 0xc8, 0xfc, 0xf4, 0x83, 0xf8, 0x95, 0x59, 0xc5, 0xcc, 0xac, 0x74, - 0x6a, 0x23, 0x64, 0x0a, 0xf1, 0xda, 0x5e, 0x72, 0xed, 0x0a, 0x93, - 0xe7, 0xf4, 0x9c, 0x3d, 0xd5, 0xae, 0x25, 0x7f, 0x73, 0x5c, 0xf2, - 0x1d, 0x18, 0x21, 0xf9, 0x6d, 0xf9, 0x97, 0xde, 0x9c, 0xb2, 0x77, - 0x81, 0xdb, 0x02, 0x6a, 0xfb, 0xa3, 0x46, 0xcf, 0xcc, 0xfa, 0xd2, - 0xcd, 0xf1, 0x4e, 0x43, 0x97, 0x9d, 0x20, 0x50, 0xf4, 0xa7, 0x42, - 0xcf, 0xb9, 0x1f, 0x48, 0x92, 0x21, 0x2a, 0x41, 0xc7, 0x58, 0xc2, - 0x8b, 0x79, 0x48, 0x44, 0x8c, 0x99, 0x27, 0xf3, 0x5d, 0x28, 0xd3, - 0x9d, 0xde, 0x34, 0x8a, 0x77, 0xcf, 0x44, 0x14, 0x47, 0xeb, 0xa3, - 0xdb, 0xc0, 0x98, 0xd5, 0xb0, 0x9b, 0xaa, 0x66, 0x4a, 0x13, 0x54, - 0xef, 0xf2, 0x1a, 0x71, 0x6a, 0x88, 0x4d, 0xef, 0x68, 0x5b, 0xe5, - 0xc2, 0xea, 0xcb, 0x6d, 0x49, 0x75, 0x32, 0x76, 0x0d, 0x01, 0xd1, - 0x4d, 0x8b, 0xe1, 0x2d, 0x39, 0x37, 0xfb, 0x4f, 0xe7, 0xf1, 0x4f, - 0x2a, 0xb4, 0xcf, 0x26, 0xed, 0xdc, 0xfa, 0x24, 0x22, 0xdb, 0x0a, - 0x9c, 0xa6, 0x16, 0x74, 0xf9, 0xff, 0xa0, 0xbf, 0x50, 0x42, 0x9e, - 0xee, 0x56, 0xa9, 0x41, 0x20, 0x56, 0x22, 0x18, 0x8d, 0xe1, 0xeb, - 0xa9, 0x1f, 0xfd, 0xd7, 0x15, 0xcd, 0xdf, 0x5f, 0xe6, 0xbf, 0x6a, - 0xef, 0x99, 0xf6, 0x42, 0x1b, 0xbf, 0x75, 0x20, 0xef, 0xd7, 0x87, - 0x40, 0x10, 0xc6, 0xff, 0x9f, 0x6a, 0x52, 0xa0, 0xa3, 0xf2, 0xdc, - 0x3a, 0x9a, 0xb9, 0x6b, 0x7e, 0x35, 0xdc, 0x91, 0xbf, 0x7e, 0xe1, - 0xf6, 0x5a, 0x11, 0xd0, 0x85, 0xac, 0xdd, 0x25, 0x21, 0x01, 0x9d, - 0x23, 0x0c, 0x13, 0xfe, 0x0c, 0x1e, 0x36, 0x5c, 0x95, 0x2b, 0xd3, - 0x9e, 0x8c, 0x51, 0xf0, 0x3e, 0x40, 0x9d, 0xce, 0x07, 0x8d, 0xf7, - 0x9a, 0x49, 0x32, 0x84, 0x30, 0xbe, 0xed, 0x73, 0x38, 0x0d, 0x3c, - 0x45, 0x29, 0xc0, 0x35, 0xe5, 0x11, 0x9d, 0x56, 0xe8, 0xc2, 0xa8, - 0xc6, 0x88, 0x37, 0xd4, 0x67, 0x1e, 0x18, 0xd0, 0x26, 0x8e, 0x08, - 0xd8, 0x04, 0x3c, 0xe6, 0xcb, 0x47, 0xaf, 0x29, 0xb6, 0x7e, 0x89, - 0xf9, 0xd4, 0x7b, 0x97, 0x5d, 0x40, 0xd4, 0xe4, 0xa9, 0x7c, 0xc1, - 0x6c, 0x1c, 0x4d, 0x70, 0x27, 0x78, 0x75, 0x10, 0x6a, 0x4f, 0x29, - 0x86, 0x6d, 0xe2, 0x55, 0x61, 0x1d, 0x7e, 0x2b, 0x97, 0x0f, 0xd0, - 0xe4, 0xc9, 0xc2, 0x68, 0x32, 0x11, 0x65, 0x34, 0x53, 0xa5, 0x74, - 0xa5, 0x3c, 0xcf, 0xdd, 0x81, 0xce, 0x0d, 0xa3, 0x68, 0x0f, 0x8a, - 0x2a, 0x77, 0x7d, 0xeb, 0xe3, 0x8e, 0x3b, 0x16, 0x4e, 0x87, 0x38, - 0xa5, 0x68, 0x52, 0x64, 0xa9, 0x8e, 0xb7, 0xde, 0xdf, 0xba, 0x5f, - 0xca, 0x93, 0x4f, 0x1a, 0x29, 0xa0, 0xa1, 0xf9, 0x0c, 0x97, 0x0b, - 0xf5, 0xc1, 0x3c, 0x49, 0x99, 0xb8, 0x39, 0x38, 0x54, 0xf2, 0xee, - 0x88, 0xce, 0x9c, 0x2c, 0x61, 0x6e, 0xa7, 0xc0, 0x0b, 0x1a, 0xdb, - 0x65, 0x7e, 0x9c, 0x8f, 0x1d, 0xb7, 0xe4, 0x98, 0x81, 0x0d, 0xe2, - 0x9d, 0x74, 0x46, 0x56, 0xa0, 0x59, 0xf4, 0xc8, 0x6e, 0x09, 0xd9, - 0x06, 0xaf, 0x26, 0x02, 0x03, 0x7f, 0x21, 0x7f, 0xd3, 0x52, 0x4c, - 0x51, 0x69, 0x86, 0x48, 0x16, 0xdd, 0x04, 0xe4, 0x5e, 0xe5, 0xd0, - 0xec, 0x62, 0x0b, 0x4a, 0x21, 0x1d, 0x01, 0x46, 0x3a, 0x01, 0x38, - 0x49, 0x05, 0x43, 0x4b, 0x67, 0x08, 0x28, 0x54, 0xfc, 0x61, 0x48, - 0xe2, 0xe1, 0x91, 0x9a, 0x96, 0x94, 0x21, 0x6a, 0xfc, 0x2b, 0x78, - 0xa2, 0x03, 0x7f, 0xdb, 0x83, 0x23, 0x47, 0x8f, 0xc2, 0x80, 0x61, - 0x38, 0x84, 0xff, 0x1b, 0xe3, 0xb1, 0x69, 0xfe, 0x0b, 0x32, 0xcc, - 0xa1, 0xfa, 0x90, 0x66, 0xb1, 0x07, 0x04, 0x7a, 0x1a, 0x2f, 0x17, - 0x3e, 0x0e, 0x9c, 0x34, 0x4f, 0xaf, 0x8f, 0x82, 0xbe, 0x5f, 0x75, - 0x13, 0xb4, 0x79, 0x78, 0xcb, 0x54, 0x84, 0x17, 0x57, 0x74, 0x67, - 0x8b, 0x4f, 0xc7, 0x4c, 0x56, 0xff, 0x66, 0x28, 0x5c, 0xc9, 0x21, - 0xfe, 0x0a, 0x6e, 0xb3, 0x07, 0xd5, 0x62, 0x5b, 0xfd, 0x1a, 0xf8, - 0x50, 0x30, 0x74, 0x8f, 0xc3, 0x23, 0xb8, 0xa9, 0x1d, 0x5f, 0x89, - 0x8b, 0xb9, 0xe4, 0xcd, 0x3f, 0x19, 0xcd, 0x16, 0xd8, 0xee, 0x82, - 0x26, 0x93, 0x73, 0xba, 0x99, 0x1c, 0x1c, 0xea, 0xca, 0x16, 0x04, - 0x60, 0x28, 0x6e, 0xa2, 0x5d, 0x9b, 0x40, 0x04, 0x2b, 0xcb, 0x04, - 0x5e, 0xdc, 0x0c, 0xdb, 0xc6, 0x82, 0x61, 0x05, 0x0b, 0x27, 0x02, - 0xc4, 0x34, 0xdc, 0x14, 0x93, 0xd7, 0x30, 0xa5, 0x67, 0x9f, 0x65, - 0x9c, 0x52, 0xa1, 0x63, 0x51, 0x80, 0x3a, 0x28, 0xd1, 0x15, 0xf3, - 0xdf, 0x3b, 0x2b, 0xe1, 0xe5, 0x4b, 0xb8, 0xef, 0x53, 0x44, 0x0f, - 0x8a, 0xa1, 0x58, 0xcf, 0x0e, 0x1f, 0x75, 0xa8, 0xcf, 0x63, 0xbb, - 0x58, 0xc9, 0x81, 0x21, 0xe5, 0xf4, 0x2f, 0xd5, 0x79, 0x81, 0x84, - 0xb6, 0xb0, 0x34, 0x52, 0x76, 0x79, 0x8f, 0x1a, 0x88, 0x98, 0xe3, - 0x77, 0xf7, 0x86, 0x20, 0xd7, 0x53, 0x2f, 0x23, 0xdc, 0xa6, 0x3a, - 0x39, 0x97, 0x93, 0x34, 0x67, 0xe3, 0x33, 0xda, 0x99, 0xc0, 0x91, - 0xa4, 0xd0, 0x56, 0x44, 0x70, 0xbc, 0x00, 0x88, 0x30, 0x43, 0x51, - 0x39, 0x28, 0x14, 0x5b, 0xa9, 0x3c, 0x3c, 0x5e, 0x8f, 0x7e, 0xfa, - 0x95, 0x72, 0xb2, 0x11, 0xb0, 0x0d, 0x41, 0x16, 0x88, 0xdc, 0x3d, - 0x14, 0x86, 0x99, 0x67, 0xd4, 0x3d, 0x7b, 0xf9, 0x0b, 0xde, 0x98, - 0xcb, 0x15, 0xb4, 0xba, 0xb3, 0x37, 0xab, 0xe2, 0x54, 0x58, 0xc8, - 0x0c, 0x77, 0xe3, 0xa8, 0x44, 0x49, 0x71, 0xa1, 0x4a, 0x43, 0xe1, - 0x79, 0xf0, 0x20, 0x8f, 0xc2, 0x1e, 0xd2, 0xa4, 0x50, 0x70, 0xaf, - 0x23, 0x10, 0xf0, 0x0a, 0xb7, 0xae, 0x31, 0x37, 0x3f, 0x00, 0x75, - 0xdd, 0xc5, 0xc7, 0x86, 0xf9, 0x03, 0xa8, 0x4d, 0x24, 0x85, 0x98, - 0x96, 0xcc, 0x98, 0xee, 0xa1, 0x67, 0xfe, 0xfe, 0x69, 0x56, 0x71, - 0x89, 0x25, 0x52, 0x00, 0x70, 0x2e, 0x60, 0x92, 0x3b, 0x97, 0xe6, - 0xf3, 0x48, 0x61, 0x4f, 0xf1, 0x1a, 0x40, 0xb4, 0x1b, 0xd9, 0xed, - 0xce, 0xf9, 0xc6, 0x18, 0x58, 0xfd, 0xea, 0x9d, 0xc2, 0x12, 0x0f, - 0x4d, 0xd2, 0xfb, 0x60, 0x2f, 0x36, 0xfa, 0x46, 0xaa, 0x5c, 0xbd, - 0x3d, 0xd8, 0x6e, 0x00, 0x51, 0xd2, 0x30, 0xde, 0xe5, 0x25, 0xce, - 0x43, 0xd5, 0xb3, 0x9c, 0x91, 0xec, 0x7f, 0xe2, 0x99, 0x9f, 0xdc, - 0xd4, 0x01, 0xa4, 0xa5, 0x29, 0x88, 0x18, 0x17, 0x42, 0x40, 0x54, - 0x19, 0x13, 0x83, 0xe7, 0x7e, 0x96, 0x3d, 0x17, 0x61, 0xb6, 0x84, - 0x00, 0xac, 0xc3, 0xed, 0xeb, 0xa6, 0xb7, 0x01, 0x0f, 0x33, 0xa1, - 0x1a, 0x26, 0x03, 0x9a, 0x67, 0xee, 0xf6, 0xf2, 0x69, 0x21, 0xd8, - 0x31, 0x1a, 0xeb, 0x1e, 0xfe, 0x2a, 0xfb, 0x59, 0x02, 0x21, 0x58, - 0x50, 0xa3, 0xfb, 0x05, 0xa3, 0x1f, 0x6f, 0x38, 0x99, 0xac, 0x32, - 0xc3, 0x6b, 0x5c, 0x39, 0x5b, 0x05, 0xe3, 0x7f, 0x67, 0xa4, 0xe4, - 0xe5, 0x67, 0x70, 0x5f, 0xaf, 0x6c, 0x7b, 0xfb, 0x35, 0x56, 0xaf, - 0xa5, 0x21, 0xf0, 0x24, 0xc3, 0x31, 0xe0, 0xf8, 0xb6, 0x8f, 0x61, - 0xc5, 0x66, 0x68, 0x2c, 0xaa, 0x65, 0xe0, 0xc8, 0x24, 0xcc, 0xdf, - 0x35, 0xa9, 0xbe, 0x88, 0x0b, 0x8e, 0x04, 0x4e, 0x46, 0x62, 0x23, - 0x07, 0xef, 0xec, 0xab, 0x37, 0x31, 0x67, 0x47, 0xfc, 0x56, 0xaf, - 0xcf, 0x7a, 0x50, 0xcb, 0x81, 0xfe, 0xa6, 0xe7, 0x1c, 0xd4, 0xef, - 0x2c, 0x5b, 0x7f, 0x39, 0x85, 0x69, 0x93, 0x05, 0x58, 0xff, 0x35, - 0x47, 0x84, 0xdb, 0x04, 0x9b, 0xa4, 0x22, 0x64, 0x7f, 0x5d, 0x92, - 0xc8, 0x06, 0x38, 0x7f, 0x30, 0x39, 0xa9, 0x44, 0xc4, 0xf0, 0xf1, - 0x72, 0xce, 0xe6, 0xc9, 0x5c, 0x15, 0x98, 0x47, 0x17, 0xb7, 0xca, - 0xf5, 0xa0, 0x47, 0xfb, 0x4a, 0xd6, 0x73, 0xef, 0x54, 0xfc, 0x0d, - 0xb7, 0x6a, 0x9c, 0x78, 0xbf, 0xaa, 0x8d, 0x12, 0xa2, 0x15, 0xa9, - 0xab, 0x7d, 0xfd, 0x3a, 0x1b, 0xce, 0x62, 0x8a, 0x20, 0xf3, 0x8d, - 0x26, 0x55, 0xae, 0x2b, 0x46, 0x24, 0x35, 0x75, 0x50, 0x85, 0x70, - 0x78, 0x27, 0xcf, 0xb2, 0x55, 0xc5, 0x2a, 0x77, 0xa7, 0x9a, 0x73, - 0xd6, 0xae, 0x24, 0xc1, 0x51, 0x11, 0xae, 0xe8, 0x51, 0x96, 0xe9, - 0x4a, 0xf4, 0xb1, 0x6b, 0xd5, 0xb0, 0x81, 0xf1, 0x8e, 0xc1, 0x3e, - 0x05, 0x6d, 0x58, 0xed, 0x8a, 0x35, 0x50, 0x83, 0x5d, 0xa9, 0xa2, - 0x19, 0x3e, 0x0f, 0x92, 0x67, 0xe9, 0x5f, 0x64, 0xe1, 0x88, 0x87, - 0xcd, 0x98, 0x79, 0x12, 0xc9, 0x9c, 0xaa, 0xa0, 0x27, 0x83, 0x2a, - 0xaa, 0x6e, 0xff, 0x7a, 0x09, 0x49, 0x27, 0xf5, 0x92, 0x40, 0xeb, - 0x3f, 0x70, 0x48, 0xf7, 0x19, 0xe7, 0x33, 0x74, 0xcd, 0x23, 0x52, - 0xaa, 0x0b, 0x0f, 0x59, 0x70, 0x3e, 0x6f, 0xec, 0x46, 0xcd, 0xfe, - 0x8a, 0xfe, 0xb9, 0xcb, 0xbe, 0x72, 0xe6, 0x43, 0xb6, 0x0e, 0x2c, - 0x84, 0x31, 0x22, 0x72, 0x3b, 0x32, 0x25, 0x23, 0x10, 0x1f, 0x00, - 0xa7, 0xa5, 0xaf, 0x17, 0x31, 0x40, 0xa8, 0x8c, 0x7b, 0xfe, 0x5e, - 0x35, 0x0a, 0x70, 0xb1, 0xac, 0x3f, 0xc0, 0x74, 0xfa, 0xa5, 0x10, - 0x17, 0x9a, 0x7e, 0xfd, 0x3d, 0x5a, 0xfc, 0xdc, 0xff, 0xb0, 0x3b, - 0x91, 0xdd, 0x98, 0xaf, 0x45, 0xf6, 0x53, 0xf0, 0x61, 0x49, 0x03, - 0x80, 0x1d, 0x95, 0xa9, 0x4c, 0x34, 0x2b, 0x97, 0x3c, 0x6a, 0x6b, - 0x04, 0x5c, 0x82, 0x91, 0xa1, 0xd8, 0xa1, 0x6f, 0x9c, 0x16, 0x3f, - 0x32, 0xba, 0xd4, 0xb7, 0x1d, 0x02, 0x2b, 0x98, 0x31, 0xbc, 0xc7, - 0xc7, 0xd5, 0xed, 0x43, 0x60, 0x41, 0x6a, 0x6a, 0x30, 0xfe, 0x1c, - 0x62, 0x14, 0x62, 0x2c, 0x3a, 0xb4, 0xca, 0x31, 0xd1, 0x35, 0x05, - 0xde, 0x9a, 0xd3, 0xa3, 0x1c, 0xe8, 0x2d, 0x00, 0x8e, 0x0f, 0x17, - 0x04, 0xb3, 0xbb, 0x04, 0x09, 0x1a, 0x08, 0x5c, 0x87, 0x3a, 0xc4, - 0xa8, 0xb3, 0x7d, 0xc6, 0x95, 0xff, 0xb3, 0x36, 0x71, 0xd8, 0xb2, - 0x69, 0xcb, 0xfa, 0xdd, 0xc4, 0xbb, 0x1b, 0x15, 0xd9, 0x10, 0x3a, - 0x5f, 0xa2, 0x45, 0x3e, 0xe0, 0xd8, 0x71, 0x78, 0xaf, 0x74, 0x4b, - 0x5a, 0x19, 0xb2, 0xa7, 0x97, 0xb3, 0x9f, 0xe1, 0x2b, 0x86, 0x87, - 0x5b, 0x49, 0x6b, 0x0b, 0xa1, 0xe9, 0xce, 0xdb, 0x74, 0xb4, 0xd0, - 0xc7, 0x15, 0x47, 0xe2, 0x81, 0x3b, 0xd4, 0x69, 0x09, 0x58, 0xf0, - 0x71, 0xde, 0x0d, 0x29, 0xbc, 0x34, 0x8b, 0xb6, 0xe8, 0xe0, 0x52, - 0x4b, 0xb5, 0x5b, 0xa9, 0xa8, 0x45, 0xda, 0x2a, 0xbd, 0xf8, 0x52, - 0x57, 0xfc, 0x2b, 0xeb, 0xb6, 0x47, 0x24, 0x75, 0x69, 0x9b, 0x1c, - 0xa0, 0xd7, 0xf3, 0x26, 0x47, 0x2e, 0xf7, 0x83, 0xef, 0x47, 0x27, - 0x06, 0xa4, 0xfa, 0x0d, 0x0a, 0x17, 0xa3, 0x15, 0x98, 0xd6, 0xfd, - 0x4c, 0xd9, 0xc1, 0x2d, 0xdb, 0xca, 0xe4, 0x1f, 0x55, 0x44, 0xa8, - 0xfe, 0xa5, 0x37, 0x5f, 0x4f, 0x00, 0xf9, 0xb9, 0x8d, 0x6a, 0x84, - 0x7b, 0x55, 0x15, 0x8d, 0xec, 0x9c, 0x03, 0xae, 0xb1, 0x0f, 0x0e, - 0x5c, 0x7e, 0x74, 0x79, 0x73, 0x01, 0x71, 0x75, 0xcf, 0xd7, 0x3b, - 0x83, 0xf6, 0x0f, 0xf3, 0xc1, 0x4d, 0x8b, 0xf7, 0xa4, 0xfd, 0xf9, - 0x03, 0x1b, 0xf0, 0x42, 0xfc, 0xc7, 0xf5, 0xdd, 0xab, 0x12, 0x68, - 0xac, 0x14, 0xd6, 0x44, 0x73, 0x37, 0xd6, 0x95, 0x06, 0x6c, 0x72, - 0xb5, 0xf4, 0x6d, 0x8b, 0x0c, 0x73, 0x64, 0x7c, 0x18, 0x7b, 0xfd, - 0x9b, 0x04, 0x50, 0x1f, 0xbf, 0x57, 0x72, 0x32, 0xb6, 0x08, 0xa1, - 0xac, 0xd0, 0x9e, 0xb5, 0xcb, 0x52, 0xec, 0x98, 0x2b, 0x41, 0xbd, - 0xdd, 0x55, 0x9d, 0x90, 0x0c, 0xca, 0x8f, 0xb0, 0x5a, 0xd6, 0x46, - 0x9f, 0x07, 0x4b, 0x3d, 0x1e, 0x6d, 0x96, 0xda, 0x26, 0xd6, 0xb7, - 0xfa, 0x86, 0x59, 0xf0, 0xb0, 0x5e, 0x93, 0xe1, 0xe4, 0x39, 0x9d, - 0xd7, 0x90, 0xec, 0x50, 0x16, 0x26, 0x88, 0x4c, 0xe5, 0xed, 0xc9, - 0x49, 0xe2, 0x6f, 0x16, 0xa7, 0x90, 0x37, 0xca, 0x00, 0x58, 0xe6, - 0x48, 0x34, 0x74, 0x94, 0x45, 0xda, 0xe8, 0x9b, 0x9c, 0xcd, 0x24, - 0xbe, 0x1e, 0xec, 0x38, 0x38, 0x93, 0x9d, 0xf0, 0x65, 0x24, 0x52, - 0x79, 0x3b, 0x58, 0xf6, 0x91, 0xe3, 0x31, 0x90, 0x05, 0x83, 0x29, - 0x5d, 0x85, 0x56, 0x03, 0x5b, 0xc7, 0x6c, 0xae, 0x7d, 0x1f, 0xd4, - 0x50, 0x1d, 0x1d, 0x50, 0x84, 0xdc, 0x41, 0x2f, 0x7b, 0xcd, 0x91, - 0x3d, 0xbe, 0x83, 0xbe, 0xef, 0xe7, 0xd8, 0x9f, 0xe6, 0x4f, 0xb4, - 0x0e, 0x70, 0xdf, 0x42, 0x39, 0xe2, 0xa7, 0xce, 0xbb, 0x41, 0xc8, - 0xe9, 0x31, 0xf9, 0xe9, 0x0c, 0x3a, 0x27, 0x23, 0x5b, 0xe8, 0xb8, - 0xf6, 0xff, 0xa4, 0x78, 0x3e, 0x1a, 0x9a, 0x4f, 0xcb, 0xd2, 0x83, - 0xeb, 0x09, 0x84, 0x32, 0xae, 0xea, 0x35, 0xaf, 0x98, 0xcd, 0x70, - 0x28, 0x0d, 0x9a, 0xe8, 0x06, 0x49, 0xc1, 0xa4, 0xfa, 0xe4, 0xaf, - 0x03, 0x46, 0x16, 0x7e, 0x45, 0x17, 0x2c, 0x7e, 0x4c, 0x06, 0x02, - 0xd1, 0x3d, 0x4d, 0xc4, 0x65, 0xb8, 0x68, 0xf3, 0x2e, 0x45, 0xc0, - 0x4a, 0x7d, 0x54, 0xd1, 0xd4, 0xd4, 0xfc, 0xbe, 0xcd, 0xf1, 0xae, - 0x1d, 0x53, 0x79, 0xb1, 0x3e, 0x61, 0x4f, 0x2b, 0x4b, 0xb4, 0x9b, - 0x06, 0x60, 0x02, 0x6e, 0xa6, 0xe1, 0x27, 0xd6, 0xa2, 0x92, 0xab, - 0x11, 0x1e, 0xc5, 0xdd, 0x0d, 0xa1, 0x38, 0x42, 0x2e, 0xb4, 0xbc, - 0xea, 0x3d, 0x03, 0xbd, 0x6c, 0x92, 0x48, 0x1d, 0x93, 0xcb, 0x4d, - 0xa9, 0x34, 0x34, 0x82, 0xec, 0xf8, 0xcb, 0xbd, 0x5b, 0x2a, 0xea, - 0x44, 0xd9, 0x6b, 0x89, 0xd1, 0xda, 0x9e, 0x3d, 0xeb, 0xd5, 0x64, - 0xf7, 0x5d, 0xf7, 0xc4, 0x12, 0x13, 0x34, 0x43, 0x75, 0x91, 0x4b, - 0x41, 0xb1, 0x1c, 0x14, 0x36, 0x87, 0xea, 0xf2, 0x0f, 0x83, 0xbb, - 0x8e, 0x63, 0x1f, 0x47, 0x19, 0x45, 0xc4, 0x23, 0x0d, 0x75, 0xcb, - 0x5b, 0x1b, 0x9b, 0xa1, 0xf4, 0x65, 0x38, 0x6e, 0x1a, 0x0c, 0x3e, - 0xdf, 0xf6, 0xf3, 0xda, 0x2a, 0x90, 0x98, 0xf7, 0xce, 0xf4, 0x86, - 0x68, 0x16, 0x3c, 0xca, 0x05, 0x6b, 0xa3, 0x9d, 0x11, 0x51, 0x18, - 0x21, 0x6b, 0x10, 0x99, 0xc7, 0x27, 0x6d, 0xc4, 0xa1, 0xe2, 0x19, - 0x00, 0xd0, 0xf3, 0xa4, 0x39, 0x46, 0x12, 0x37, 0x08, 0xbf, 0x6c, - 0x92, 0x04, 0x2c, 0x3e, 0x38, 0xfe, 0x3f, 0xf2, 0x08, 0xee, 0x44, - 0x6a, 0x42, 0x06, 0xf8, 0x8a, 0x35, 0xa3, 0x17, 0x54, 0xc3, 0x92, - 0x1e, 0xb8, 0xad, 0x8a, 0x29, 0x16, 0x1b, 0x82, 0x49, 0x07, 0x93, - 0x48, 0xfc, 0xcd, 0xa3, 0x37, 0xa1, 0x61, 0x33, 0x81, 0x2d, 0x0a, - 0x1c, 0xcc, 0xeb, 0xa8, 0xe9, 0x82, 0x05, 0x7c, 0x95, 0x54, 0xa9, - 0xd5, 0x5c, 0xed, 0x4a, 0x8b, 0xf4, 0x78, 0xe6, 0x04, 0x37, 0x89, - 0xc2, 0x1d, 0x41, 0x4f, 0x6c, 0x66, 0xea, 0xa8, 0xaa, 0xfe, 0x9d, - 0x76, 0xd9, 0xbc, 0x7e, 0xca, 0x7f, 0xea, 0x2b, 0x7a, 0x07, 0x43, - 0x4a, 0x26, 0x5f, 0x01, 0xdb, 0x27, 0x1d, 0x3f, 0x9a, 0x39, 0xbe, - 0x3f, 0x93, 0x4f, 0x48, 0xa4, 0x2d, 0xb4, 0x0c, 0xc3, 0x01, 0x1d, - 0x9f, 0xf5, 0x0e, 0x53, 0x11, 0xcc, 0xae, 0x00, 0xf1, 0x27, 0xfe, - 0xdf, 0x41, 0xd8, 0x9d, 0xec, 0x24, 0x16, 0x58, 0xa8, 0x95, 0x97, - 0x97, 0x18, 0xd2, 0x66, 0xb7, 0x51, 0xff, 0x52, 0x60, 0x83, 0x1e, - 0xc4, 0xa1, 0xdb, 0x7b, 0x21, 0xfb, 0x72, 0xc9, 0xaf, 0x61, 0x3b, - 0xdf, 0x01, 0xc8, 0x86, 0x7c, 0xb3, 0x6c, 0x2f, 0xf3, 0xd5, 0x0b, - 0x7f, 0x84, 0x91, 0x50, 0xd3, 0x4c, 0x5d, 0x62, 0xf3, 0x68, 0xc2, - 0x86, 0xb1, 0xcc, 0x81, 0xfb, 0xbf, 0x28, 0x0e, 0xef, 0xb4, 0x76, - 0xda, 0xa4, 0x3f, 0x16, 0x25, 0xb3, 0x03, 0x0f, 0x46, 0xc2, 0x32, - 0xd3, 0x8b, 0x34, 0x3d, 0x1f, 0x89, 0x7e, 0x3d, 0x6a, 0x8a, 0xe2, - 0xb2, 0x0d, 0x9c, 0x8c, 0xca, 0x59, 0x1f, 0x3c, 0x1a, 0xfe, 0x67, - 0x76, 0xeb, 0xd7, 0xe6, 0xbe, 0xd2, 0xab, 0xfd, 0xda, 0xe4, 0x49, - 0xfe, 0x68, 0x18, 0xf3, 0x91, 0x65, 0x7e, 0x7a, 0x44, 0x63, 0xfd, - 0x50, 0xe7, 0x8c, 0xdd, 0xa8, 0xfd, 0x95, 0xc7, 0xb5, 0x93, 0xee, - 0x03, 0x10, 0xb6, 0xa3, 0xa9, 0x22, 0xe6, 0xd9, 0x92, 0xf9, 0x58, - 0x98, 0xc3, 0x92, 0xc9, 0xc7, 0x14, 0x7b, 0x96, 0x6a, 0x73, 0xe7, - 0xc7, 0xf0, 0x0c, 0x23, 0xd5, 0xa4, 0x2b, 0x41, 0x15, 0xcb, 0x01, - 0x44, 0x63, 0x79, 0xd9, 0xa6, 0x4d, 0xfe, 0x6c, 0xc0, 0x9d, 0xaa, - 0xe8, 0xa6, 0xfc, 0x03, 0xed, 0xdb, 0xa3, 0xc5, 0x65, 0x5f, 0x67, - 0xf9, 0x94, 0x35, 0xad, 0x9b, 0xe3, 0xc2, 0x4e, 0x64, 0xa0, 0xae, - 0xf0, 0x95, 0x5b, 0xe5, 0xec, 0x8d, 0x04, 0x9c, 0xc1, 0x93, 0x10, - 0xde, 0x9b, 0x76, 0xe1, 0xf6, 0x3c, 0x66, 0xc5, 0xe8, 0x8c, 0xfa, - 0x03, 0x6f, 0x01, 0xa1, 0x9b, 0xd3, 0xa5, 0x1c, 0xec, 0xf1, 0x4c, - 0xc0, 0x92, 0xaa, 0x7c, 0x96, 0x96, 0xc3, 0x34, 0xd4, 0xf8, 0x79, - 0xb2, 0x35, 0xe1, 0x7a, 0xd6, 0xac, 0x0c, 0x24, 0xd8, 0x95, 0xa6, - 0x5f, 0xbb, 0x2f, 0x8d, 0x15, 0x43, 0x75, 0x0f, 0x8c, 0x87, 0x49, - 0xaf, 0xde, 0xad, 0x63, 0xe7, 0x45, 0x7d, 0xb3, 0x23, 0x20, 0x08, - 0xca, 0xd6, 0xe2, 0xeb, 0xb8, 0xa7, 0x7f, 0x46, 0xa9, 0x46, 0x84, - 0xd7, 0xa8, 0x0d, 0x0d, 0x65, 0x40, 0xfa, 0xcc, 0x55, 0xb0, 0x1e, - 0xa7, 0x12, 0x22, 0x49, 0xf7, 0x0e, 0x25, 0x6a, 0xf8, 0xc2, 0xc0, - 0x97, 0x48, 0xa5, 0x03, 0xdd, 0xc3, 0x09, 0x26, 0x67, 0x15, 0xbd, - 0xd4, 0x0e, 0x7f, 0x78, 0xf6, 0x60, 0x0d, 0xf3, 0x23, 0x3c, 0x25, - 0xc0, 0x1d, 0xa7, 0x45, 0x3d, 0x40, 0x80, 0x80, 0x5d, 0xe4, 0xd4, - 0xda, 0x92, 0x91, 0xc7, 0x68, 0x58, 0x72, 0xb2, 0x45, 0xd5, 0x41, - 0x1c, 0x47, 0x04, 0x01, 0x86, 0xa3, 0x55, 0xf6, 0xa8, 0xc8, 0x82, - 0x0d, 0xe1, 0x42, 0xf7, 0x01, 0xa0, 0x8f, 0x43, 0x9d, 0x6a, 0xf1, - 0x72, 0x75, 0xd0, 0xed, 0x44, 0xf8, 0x68, 0x89, 0xf0, 0x78, 0xbd, - 0x8c, 0x50, 0x00, 0x16, 0x6a, 0xa8, 0x57, 0x80, 0xea, 0x59, 0x04, - 0x01, 0x64, 0xeb, 0x5c, 0x93, 0x1c, 0xb3, 0x53, 0x03, 0x15, 0x57, - 0xcd, 0xfa, 0x24, 0x36, 0x29, 0x22, 0xa7, 0xa8, 0x37, 0x13, 0x34, - 0x4a, 0xd1, 0x82, 0xb6, 0x87, 0x15, 0xf8, 0x64, 0x5f, 0x9c, 0x64, - 0xfe, 0xf5, 0x5a, 0xb3, 0x53, 0xea, 0x0d, 0x2f, 0xcb, 0x03, 0xfd, - 0x0d, 0x3f, 0x05, 0x0f, 0xcf, 0x6f, 0xe2, 0x38, 0x1c, 0x25, 0xa3, - 0xa9, 0x83, 0x3d, 0x01, 0xda, 0x38, 0xbe, 0x16, 0x36, 0xb2, 0xa5, - 0x61, 0x9d, 0x32, 0x24, 0x9d, 0x16, 0x92, 0x55, 0xe7, 0x09, 0x7c, - 0x0a, 0x9f, 0xdb, 0xb0, 0xdd, 0x47, 0x09, 0xb4, 0x4b, 0x07, 0x2c, - 0x70, 0x3f, 0xcf, 0x53, 0x11, 0x08, 0x3b, 0x89, 0xc8, 0xbe, 0x7a, - 0xaf, 0x83, 0x3a, 0x9d, 0x1b, 0x51, 0xfa, 0x3a, 0xb0, 0xb7, 0xa2, - 0x59, 0x39, 0x7b, 0x71, 0x36, 0x55, 0x75, 0x28, 0x0a, 0xce, 0x5c, - 0x76, 0x8c, 0x0c, 0x00, 0xd6, 0xa7, 0x45, 0x34, 0xdd, 0x4c, 0xea, - 0x4d, 0x3e, 0x3f, 0xf8, 0x09, 0x5f, 0xbb, 0x71, 0x72, 0xe9, 0x70, - 0xa6, 0xa9, 0xd7, 0x7e, 0xa2, 0xd6, 0x1a, 0xd9, 0xdd, 0xe4, 0x48, - 0xe4, 0xec, 0x56, 0x14, 0x2d, 0xf0, 0x56, 0x20, 0x38, 0x49, 0x61, - 0x83, 0xd3, 0xa9, 0xcc, 0x7e, 0x78, 0x16, 0xd5, 0x9b, 0xad, 0x4b, - 0xaf, 0x08, 0x85, 0x9c, 0xf8, 0xe2, 0x56, 0x59, 0x91, 0x50, 0xda, - 0xd5, 0x2e, 0x05, 0x8a, 0xd5, 0xb9, 0x10, 0xf3, 0x65, 0xaa, 0x7f, - 0xbe, 0xbd, 0x31, 0x64, 0xe8, 0xfd, 0xf9, 0xae, 0x09, 0x7a, 0x7c, - 0x6e, 0x8a, 0x5b, 0x11, 0xe8, 0xbe, 0x74, 0x26, 0x24, 0xf9, 0x9d, - 0xe1, 0xc5, 0xc2, 0x0e, 0x22, 0x97, 0xb2, 0x5b, 0xce, 0x7f, 0xe5, - 0xba, 0xc0, 0xc9, 0x69, 0xac, 0xfd, 0xa1, 0x5d, 0x2f, 0x16, 0x33, - 0xe6, 0x9b, 0x48, 0xe7, 0xa5, 0x44, 0x87, 0xa8, 0x4a, 0x1f, 0xe0, - 0x82, 0xdb, 0xb8, 0x74, 0x3f, 0x21, 0x1d, 0x14, 0x1e, 0xba, 0xe2, - 0x4b, 0xa8, 0xc7, 0xcf, 0x5f, 0xe9, 0xd1, 0x60, 0xe9, 0x5c, 0x5f, - 0x54, 0x4c, 0xbc, 0xa8, 0x04, 0x28, 0xe5, 0xd0, 0xfe, 0xb2, 0x44, - 0xff, 0x46, 0x78, 0xf8, 0x65, 0x7c, 0xda, 0xb3, 0xe9, 0xf2, 0x02, - 0x94, 0x98, 0x66, 0xa3, 0xcb, 0x7b, 0xbf, 0x4d, 0x9e, 0x79, 0x39, - 0xce, 0x5b, 0x30, 0x10, 0xc9, 0xa4, 0xd0, 0x18, 0xf1, 0xb8, 0x6d, - 0xde, 0x98, 0x85, 0xed, 0xc9, 0xbc, 0x3d, 0x63, 0xb2, 0x4a, 0x4f, - 0xb5, 0xb9, 0x40, 0xfb, 0x3e, 0x78, 0x93, 0xd6, 0xec, 0x37, 0x2c, - 0x58, 0x51, 0x6e, 0xbe, 0xdf, 0x05, 0xe2, 0x16, 0x52, 0xe6, 0x51, - 0x7b, 0xac, 0x7c, 0x44, 0xba, 0xe4, 0xcc, 0x23, 0x25, 0xdd, 0x56, - 0xcb, 0x11, 0x96, 0x9f, 0x2f, 0x29, 0xf6, 0xc3, 0x17, 0xd9, 0x8d, - 0xf4, 0x6e, 0x0d, 0xd7, 0x17, 0x81, 0x00, 0x9c, 0x24, 0xbc, 0xbc, - 0x58, 0x3b, 0x9e, 0x95, 0xe2, 0x11, 0x0d, 0xa8, 0x1e, 0x6d, 0x58, - 0x00, 0x36, 0x75, 0xf8, 0x8b, 0xbe, 0xef, 0x65, 0xa4, 0x5d, 0x6f, - 0x6d, 0x45, 0x7c, 0x5f, 0xb6, 0x9e, 0x63, 0x13, 0x3f, 0xe5, 0x4e, - 0x19, 0x7c, 0x9b, 0x12, 0xa8, 0x74, 0x0e, 0x15, 0x07, 0x91, 0xe2, - 0x72, 0xca, 0x23, 0x4f, 0x58, 0x91, 0x65, 0x03, 0x51, 0xa5, 0xdb, - 0xb9, 0x0b, 0xc3, 0xe7, 0x55, 0x8a, 0x32, 0x5b, 0xfd, 0x57, 0xa1, - 0x01, 0xe2, 0x80, 0xbe, 0xae, 0xbf, 0x7a, 0x91, 0x9c, 0xec, 0x81, - 0x77, 0x6b, 0xa2, 0xf6, 0x29, 0xdd, 0xf4, 0x12, 0x3c, 0x7e, 0x24, - 0xfe, 0xfb, 0xae, 0xf7, 0xa4, 0x8a, 0x4c, 0x36, 0xd6, 0x96, 0x35, - 0x15, 0xa4, 0x3c, 0x74, 0x35, 0x89, 0xc8, 0x5e, 0xfa, 0xc9, 0x6d, - 0xcd, 0xd0, 0x08, 0x8d, 0x70, 0x2b, 0x69, 0xb4, 0xf2, 0x76, 0x0b, - 0x91, 0x3b, 0xda, 0x10, 0x23, 0xea, 0xfa, 0xb1, 0x8e, 0x90, 0xa1, - 0x6f, 0x21, 0xbb, 0x6b, 0xaa, 0x18, 0x8a, 0xa0, 0xdb, 0x25, 0xfa, - 0xb1, 0xec, 0x81, 0xfd, 0x8b, 0x86, 0xeb, 0xfb, 0xc8, 0x2b, 0xdc, - 0x64, 0xe3, 0x20, 0xb2, 0x8b, 0x46, 0x0b, 0x6f, 0x49, 0x38, 0xee, - 0xb8, 0x59, 0xc6, 0x33, 0x7b, 0x78, 0xc0, 0x1a, 0xba, 0x2a, 0xcc, - 0xf9, 0xc8, 0x25, 0x4e, 0x35, 0xe0, 0xba, 0x2c, 0x94, 0x08, 0x8b, - 0x52, 0x98, 0x6f, 0x45, 0x1e, 0xbf, 0xed, 0xc6, 0x0a, 0xfd, 0xe6, - 0x14, 0x5c, 0x04, 0x66, 0x7c, 0x31, 0x0f, 0x2c, 0x63, 0x24, 0x10, - 0xdb, 0x58, 0xdf, 0x62, 0x65, 0x04, 0x80, 0x01, 0x14, 0x02, 0x00, - 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0d, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0d, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0d, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0d, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x0d, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x0d, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x0d, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, - 0x30, 0x30, 0x30, 0x0d, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x74, 0x6f, - 0x6d, 0x61, 0x72, 0x6b, 0x0a, 0x80, 0x03, -}; - -const int default_font_size = sizeof(default_font); diff --git a/pandaapp/src/indexify/default_font.h b/pandaapp/src/indexify/default_font.h deleted file mode 100644 index 7cebddb5df..0000000000 --- a/pandaapp/src/indexify/default_font.h +++ /dev/null @@ -1,22 +0,0 @@ -// Filename: default_font.h -// Created by: drose (04Apr02) -// -//////////////////////////////////////////////////////////////////// -/// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#ifndef DEFAULT_FONT_H -#define DEFAULT_FONT_H - -extern const unsigned char default_font[]; -extern const int default_font_size; - -#endif - diff --git a/pandaapp/src/indexify/default_index_icons.cxx b/pandaapp/src/indexify/default_index_icons.cxx deleted file mode 100644 index aeb41d281e..0000000000 --- a/pandaapp/src/indexify/default_index_icons.cxx +++ /dev/null @@ -1,297 +0,0 @@ -// Filename: default_index_icons.cxx -// Created by: drose (04Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "default_index_icons.h" - -// This file was generated from left.png, right.png, up.png, -// movie.png, and sound.png; it provides data for default icons if the -// -i parameter is supplied on the command line. - -const char *default_left_icon_filename = "left.png"; -const char *default_right_icon_filename = "right.png"; -const char *default_up_icon_filename = "up.png"; -const char *default_movie_icon_filename = "movie.png"; -const char *default_sound_icon_filename = "sound.png"; - -/* - -Use this series of commands to regenerate the tables: - -bin2c -n default_left_icon left.png >> default_index_icons.cxx -bin2c -n default_right_icon right.png >> default_index_icons.cxx -bin2c -n default_up_icon up.png >> default_index_icons.cxx -bin2c -n default_movie_icon movie.png >> default_index_icons.cxx -bin2c -n default_sound_icon sound.png >> default_index_icons.cxx - -*/ - -/* - * This table was generated by the command: - * - * bin2c -n default_left_icon left.png - */ - -const unsigned char default_left_icon[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, - 0x00, 0x1e, 0x08, 0x03, 0x00, 0x00, 0x00, 0x0c, 0xee, 0x5e, 0x90, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x2d, 0x50, 0x4c, - 0x54, 0x45, 0xeb, 0xed, 0xee, 0xdd, 0xe1, 0xe3, 0xcf, 0xd4, 0xd7, - 0xc2, 0xc9, 0xcd, 0xb5, 0xbd, 0xc2, 0xae, 0xb7, 0xbc, 0xa7, 0xb0, - 0xb6, 0x99, 0xa4, 0xab, 0x8c, 0x98, 0xa0, 0x7e, 0x8c, 0x95, 0x77, - 0x86, 0x8f, 0x6c, 0x7a, 0x83, 0x60, 0x6c, 0x74, 0x55, 0x60, 0x67, - 0x4f, 0x5a, 0x60, 0x44, 0x10, 0xa7, 0xee, 0x00, 0x00, 0x01, 0x96, - 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x7d, 0x93, 0xdd, 0x92, 0xec, - 0x20, 0x08, 0x84, 0x47, 0x7e, 0x04, 0xd4, 0xe4, 0xfd, 0x1f, 0xf7, - 0x74, 0xe3, 0x9c, 0xaa, 0xbd, 0xd8, 0x5a, 0x2f, 0x66, 0x12, 0x3f, - 0x81, 0xb6, 0x21, 0x9f, 0xcf, 0x2f, 0x4b, 0xe4, 0xfb, 0x70, 0x7e, - 0xa3, 0x9f, 0x31, 0xee, 0xff, 0x24, 0x56, 0x15, 0x8b, 0xa9, 0x63, - 0x08, 0x96, 0xe9, 0xf8, 0x0c, 0x35, 0x9f, 0xa6, 0xa2, 0xb5, 0x89, - 0x45, 0x67, 0xba, 0xca, 0x10, 0x33, 0x73, 0x13, 0x9c, 0x53, 0x2e, - 0xb3, 0x45, 0x6c, 0x86, 0x27, 0x1c, 0xc6, 0x29, 0x47, 0x26, 0xe2, - 0x7e, 0x33, 0xad, 0x02, 0x8e, 0x00, 0x9d, 0xd3, 0xb8, 0x21, 0x0c, - 0x14, 0x3b, 0xce, 0x42, 0xa3, 0x16, 0x05, 0x4c, 0x77, 0xc7, 0x19, - 0x60, 0x63, 0xca, 0xb9, 0x9f, 0x07, 0x69, 0x20, 0x26, 0xd7, 0x95, - 0xa6, 0xea, 0xdc, 0x40, 0x65, 0xf3, 0x7a, 0xdf, 0xe7, 0xa0, 0x1e, - 0xb4, 0xcc, 0x6c, 0x69, 0x54, 0x3c, 0xad, 0x57, 0x3e, 0x58, 0xa7, - 0xb1, 0x68, 0x54, 0x47, 0xb3, 0xa4, 0xff, 0x80, 0x7b, 0xb7, 0x46, - 0xcd, 0xfc, 0x62, 0xe4, 0x45, 0x81, 0xf3, 0x36, 0x5c, 0x6b, 0x07, - 0x6f, 0xe6, 0x19, 0xc4, 0x14, 0x84, 0x3b, 0xd5, 0x83, 0xa2, 0x7b, - 0xef, 0xca, 0x5c, 0xd1, 0x2a, 0xcf, 0xba, 0xf7, 0x86, 0xde, 0x42, - 0xda, 0xf7, 0x41, 0x64, 0x55, 0x56, 0x39, 0xb2, 0x89, 0x1e, 0x9a, - 0xea, 0x6e, 0x1a, 0xcc, 0x4b, 0x0c, 0x08, 0xba, 0x9c, 0x29, 0x75, - 0x37, 0x06, 0x7d, 0xbb, 0xea, 0x73, 0x16, 0x28, 0x70, 0xb5, 0x91, - 0xd6, 0xd1, 0xbc, 0x17, 0xac, 0xa0, 0x60, 0x64, 0x66, 0x74, 0x26, - 0x5d, 0xd6, 0x9b, 0x9c, 0x1d, 0x10, 0x49, 0x62, 0x42, 0xe2, 0x0a, - 0x52, 0x59, 0xed, 0x1a, 0xcc, 0x62, 0xae, 0xd8, 0x0c, 0xcf, 0x3e, - 0x10, 0x74, 0xf2, 0xde, 0xdb, 0x33, 0xd9, 0x14, 0x38, 0x57, 0x67, - 0xdf, 0xec, 0x3b, 0x18, 0xe0, 0xbb, 0x5b, 0x12, 0xc0, 0xd7, 0xd9, - 0x80, 0xe8, 0x95, 0x51, 0x3b, 0x69, 0xe2, 0xad, 0xad, 0x16, 0x41, - 0xda, 0xdd, 0x44, 0x85, 0x8a, 0x2c, 0x36, 0xd1, 0xa4, 0x1b, 0x0a, - 0xbf, 0x1d, 0xed, 0x61, 0x13, 0xc4, 0xdc, 0x29, 0x3c, 0x31, 0x4d, - 0xae, 0x63, 0x4e, 0x46, 0x63, 0xb0, 0xe4, 0x36, 0x5b, 0x67, 0xc0, - 0xfb, 0xeb, 0x1a, 0x42, 0x26, 0x3d, 0x97, 0x89, 0xdc, 0x18, 0x17, - 0x12, 0x4e, 0x05, 0x86, 0x6a, 0xb9, 0xd0, 0xd5, 0x6c, 0x5b, 0xa8, - 0x0b, 0xd9, 0x48, 0xfa, 0xc7, 0xfe, 0xcf, 0xe5, 0x6a, 0x7c, 0x27, - 0x8c, 0x9b, 0x82, 0xa1, 0x31, 0xef, 0xa9, 0x1e, 0xa8, 0xb9, 0xf7, - 0xd7, 0xd4, 0x56, 0xae, 0x2d, 0xa0, 0xa7, 0xb2, 0xa5, 0x7e, 0x3d, - 0xff, 0x33, 0x7a, 0xf6, 0x45, 0xe1, 0xdc, 0x84, 0x3a, 0x98, 0xb6, - 0xcf, 0xc2, 0x0b, 0xac, 0xa1, 0x03, 0xf8, 0xcc, 0xce, 0x69, 0xa3, - 0x89, 0xc9, 0xd1, 0x9a, 0xc0, 0x73, 0x9e, 0x8d, 0xad, 0x7f, 0xbd, - 0xcf, 0x11, 0xe9, 0xc6, 0x04, 0xc1, 0x3d, 0x00, 0x00, 0x00, 0x00, - 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 -}; - -const int default_left_icon_len = 536; - - -/* - * This table was generated by the command: - * - * bin2c -n default_right_icon right.png - */ - -const unsigned char default_right_icon[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, - 0x00, 0x1e, 0x08, 0x03, 0x00, 0x00, 0x00, 0x0c, 0xee, 0x5e, 0x90, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x2d, 0x50, 0x4c, - 0x54, 0x45, 0xec, 0xee, 0xef, 0xd8, 0xdc, 0xdf, 0xca, 0xd0, 0xd3, - 0xc3, 0xc9, 0xcd, 0xae, 0xb7, 0xbc, 0xa8, 0xb1, 0xb7, 0x99, 0xa4, - 0xab, 0x93, 0x9f, 0xa6, 0x86, 0x93, 0x9b, 0x77, 0x86, 0x8f, 0x71, - 0x80, 0x89, 0x60, 0x6c, 0x74, 0x5b, 0x67, 0x6e, 0x50, 0x5b, 0x61, - 0x45, 0x4e, 0x53, 0xeb, 0x64, 0x46, 0x0c, 0x00, 0x00, 0x01, 0x8c, - 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6d, 0x92, 0x59, 0x6e, 0xc3, - 0x30, 0x0c, 0x44, 0x2d, 0x71, 0x95, 0x94, 0xf4, 0xfe, 0xc7, 0xed, - 0xcc, 0xc8, 0x40, 0x7f, 0x4a, 0x04, 0x89, 0xc3, 0xc7, 0x65, 0x4c, - 0xf2, 0x79, 0xfe, 0xb1, 0x39, 0xde, 0x87, 0xf3, 0xfc, 0x6b, 0x2f, - 0x0e, 0xe2, 0x69, 0xd3, 0x6c, 0xce, 0x31, 0xf8, 0xc1, 0xef, 0x33, - 0x3c, 0x33, 0xc3, 0xe7, 0x58, 0x1b, 0x18, 0xc8, 0x33, 0x8c, 0x6c, - 0x20, 0x14, 0x99, 0xd3, 0x3d, 0x1c, 0x6e, 0x61, 0x64, 0x44, 0x05, - 0x53, 0xdd, 0xcd, 0x6d, 0xa8, 0xde, 0x44, 0x45, 0x5b, 0x0d, 0x0c, - 0xa7, 0x79, 0x7d, 0x62, 0x98, 0x52, 0xc6, 0x20, 0x1e, 0xc2, 0x0b, - 0x38, 0x13, 0xbc, 0x7f, 0xbe, 0x1b, 0x71, 0x72, 0x8f, 0x71, 0x45, - 0x8c, 0x22, 0x8e, 0x70, 0xf7, 0xf5, 0xf3, 0xfd, 0x7c, 0xda, 0x21, - 0x03, 0x32, 0x81, 0xf9, 0xfd, 0x44, 0xdf, 0xde, 0xd3, 0xfa, 0xfb, - 0x39, 0xb0, 0x36, 0xbe, 0x86, 0x5d, 0x8d, 0x23, 0x97, 0x94, 0xa3, - 0x56, 0x01, 0xef, 0x7d, 0xce, 0x4e, 0x89, 0x12, 0xb6, 0x62, 0xb6, - 0xa2, 0xf3, 0x0b, 0x4a, 0x3b, 0xcb, 0xe9, 0xa0, 0x78, 0xeb, 0x7c, - 0x31, 0xb2, 0xcf, 0x5e, 0xb2, 0x7d, 0xca, 0x5c, 0x21, 0x7e, 0x54, - 0x9c, 0x73, 0xe9, 0xef, 0x21, 0xeb, 0x06, 0xdf, 0xbb, 0x9d, 0x6f, - 0xe1, 0xe7, 0xdc, 0x6c, 0xb3, 0x22, 0x86, 0xbf, 0x5a, 0x05, 0x76, - 0x72, 0x04, 0xfb, 0xdc, 0xb1, 0xcc, 0x99, 0xc4, 0x50, 0x5e, 0x85, - 0x02, 0x94, 0x90, 0xc8, 0x39, 0x17, 0x73, 0xac, 0x12, 0xbe, 0xbb, - 0x6f, 0x7e, 0xb3, 0xf9, 0xc5, 0x9a, 0x91, 0x13, 0x93, 0xca, 0x5c, - 0xe2, 0xa6, 0x86, 0xaa, 0x55, 0x09, 0xaf, 0x0b, 0xcb, 0x4c, 0x0d, - 0x67, 0xd5, 0xa3, 0xf5, 0xf9, 0xed, 0xbd, 0x29, 0x9d, 0x4d, 0x45, - 0xcd, 0x36, 0xb3, 0xbd, 0x2a, 0xa1, 0x9c, 0xaf, 0x8d, 0xfc, 0xd0, - 0xfa, 0x5d, 0x31, 0xea, 0x1d, 0x59, 0xe9, 0xf9, 0x01, 0x5a, 0x2b, - 0xe1, 0xc4, 0x34, 0x71, 0x2b, 0xec, 0xdd, 0x4b, 0xc5, 0x33, 0x2d, - 0x0e, 0x87, 0x31, 0x4d, 0x58, 0x3f, 0x38, 0x8c, 0x08, 0x4a, 0xa3, - 0x0b, 0xd2, 0x96, 0xf1, 0x5e, 0x5c, 0x1b, 0x9a, 0xce, 0x5b, 0x8b, - 0x54, 0x36, 0x1e, 0xe3, 0x68, 0x4e, 0x91, 0x1c, 0x02, 0x37, 0xcc, - 0x2a, 0xa5, 0x4b, 0x8d, 0xc4, 0x7c, 0x43, 0x04, 0x97, 0x83, 0xd6, - 0xda, 0x18, 0x2f, 0xf5, 0x1e, 0xb2, 0xaa, 0x22, 0x68, 0x28, 0x92, - 0x17, 0x39, 0x74, 0x6b, 0xfb, 0xbd, 0xd4, 0xa1, 0x6a, 0x8a, 0x82, - 0xaa, 0x0c, 0x1e, 0xbb, 0x79, 0xfc, 0x0d, 0xf5, 0x35, 0xd2, 0x08, - 0x5d, 0x1b, 0x12, 0x98, 0x1d, 0x7b, 0x65, 0x61, 0x53, 0x19, 0x68, - 0xcf, 0x75, 0x9f, 0x85, 0x3f, 0xa9, 0xb5, 0x43, 0xf9, 0xd1, 0x1a, - 0xab, 0x89, 0xc9, 0x79, 0x6f, 0x78, 0x6e, 0xac, 0x2f, 0xe3, 0x17, - 0x29, 0xef, 0x0f, 0xde, 0x36, 0xeb, 0x43, 0xec, 0x00, 0x00, 0x00, - 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 -}; - -const int default_right_icon_len = 526; - - -/* - * This table was generated by the command: - * - * bin2c -n default_up_icon up.png - */ - -const unsigned char default_up_icon[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, - 0x00, 0x1e, 0x08, 0x03, 0x00, 0x00, 0x00, 0x0c, 0xee, 0x5e, 0x90, - 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, 0x00, 0x00, 0xb1, - 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x2d, 0x50, 0x4c, - 0x54, 0x45, 0xeb, 0xed, 0xee, 0xdd, 0xe1, 0xe3, 0xcf, 0xd4, 0xd7, - 0xc9, 0xcf, 0xd2, 0xc2, 0xc9, 0xcd, 0xb4, 0xbc, 0xc1, 0xad, 0xb6, - 0xbb, 0x98, 0xa3, 0xaa, 0x92, 0x9e, 0xa5, 0x7d, 0x8b, 0x94, 0x70, - 0x7f, 0x88, 0x65, 0x72, 0x7a, 0x5f, 0x6b, 0x73, 0x54, 0x5f, 0x66, - 0x4a, 0x53, 0x59, 0xac, 0xfc, 0xc3, 0x4d, 0x00, 0x00, 0x01, 0xa3, - 0x49, 0x44, 0x41, 0x54, 0x78, 0xda, 0x6d, 0x53, 0x59, 0x96, 0xc3, - 0x30, 0x08, 0x8b, 0x59, 0xbd, 0x90, 0xdc, 0xff, 0xb8, 0x23, 0xe1, - 0x7e, 0x0e, 0xaf, 0x75, 0x5a, 0x8b, 0x45, 0x02, 0xf2, 0x3c, 0xff, - 0x98, 0xc8, 0xef, 0x47, 0xfd, 0x87, 0x3e, 0x63, 0xdc, 0x67, 0x10, - 0x16, 0x53, 0x33, 0x15, 0x19, 0xfc, 0xa8, 0x8c, 0x21, 0x9e, 0x99, - 0xe1, 0x22, 0xeb, 0x00, 0x06, 0xe4, 0x19, 0x86, 0x6b, 0x98, 0xeb, - 0x78, 0x86, 0x7a, 0x84, 0x9b, 0xe8, 0xde, 0x80, 0x55, 0x34, 0x66, - 0x20, 0x4c, 0xdc, 0x1d, 0x41, 0xf0, 0x33, 0x55, 0x35, 0xf7, 0xb5, - 0x00, 0xbb, 0x9b, 0x7f, 0xdf, 0xf7, 0xbe, 0x6f, 0x1f, 0x3f, 0x13, - 0x73, 0x5b, 0x8c, 0xce, 0xf4, 0x86, 0xeb, 0x7d, 0xeb, 0x9c, 0x2a, - 0x1c, 0x78, 0xa0, 0xd0, 0x98, 0x84, 0x03, 0x46, 0xf8, 0xb4, 0x11, - 0xdc, 0xfb, 0x1c, 0xd3, 0x31, 0x62, 0xb2, 0x36, 0x8a, 0x5b, 0x04, - 0xf8, 0xa3, 0xb2, 0x3b, 0x1e, 0x26, 0xa2, 0xe0, 0x20, 0xc9, 0xda, - 0xd6, 0x8c, 0x89, 0xc0, 0x20, 0xb1, 0x71, 0xc0, 0x62, 0x93, 0xd1, - 0x66, 0x70, 0xb0, 0x0b, 0xaf, 0xa9, 0x74, 0x71, 0xf8, 0x10, 0xce, - 0x1f, 0x0c, 0xa5, 0x06, 0xc0, 0xab, 0x80, 0x41, 0x68, 0xe0, 0x52, - 0xa3, 0x48, 0x8d, 0xbe, 0xe8, 0x83, 0x22, 0xc3, 0x79, 0x6b, 0xb1, - 0x81, 0x2c, 0x05, 0xf7, 0xaa, 0xab, 0x1b, 0x2d, 0x00, 0xec, 0x1b, - 0xea, 0xaa, 0x39, 0xe2, 0x3f, 0x52, 0x9e, 0x6a, 0x61, 0xde, 0x74, - 0xd4, 0x5b, 0xdd, 0x62, 0x2a, 0x04, 0x20, 0xfd, 0x85, 0x1d, 0xca, - 0x40, 0xc4, 0xd7, 0xf7, 0x15, 0x34, 0xa3, 0x4b, 0x24, 0xd3, 0x4c, - 0x7a, 0xba, 0x72, 0xa5, 0x31, 0x78, 0xc3, 0xbc, 0xd3, 0x83, 0x5b, - 0x8f, 0x04, 0x53, 0xec, 0x60, 0x56, 0xde, 0x7b, 0xad, 0x3d, 0xc9, - 0x05, 0xfa, 0xa5, 0x75, 0xa3, 0x96, 0x33, 0xd7, 0xc7, 0x9e, 0xaf, - 0x35, 0xd7, 0xbe, 0xc4, 0xcc, 0x3a, 0x3a, 0xe6, 0x44, 0x39, 0x87, - 0x28, 0x54, 0x5e, 0xc4, 0x17, 0x96, 0x81, 0x62, 0xba, 0x76, 0x24, - 0x60, 0x4b, 0x8e, 0x6b, 0x13, 0x9b, 0x73, 0xcf, 0xe8, 0xee, 0xf7, - 0x40, 0x15, 0xbb, 0x63, 0x52, 0x28, 0x7c, 0x43, 0x67, 0x22, 0x3d, - 0xa6, 0xe8, 0x12, 0xd1, 0xbb, 0x16, 0x21, 0xf3, 0x25, 0x3c, 0xe9, - 0x00, 0x43, 0x76, 0xb4, 0x71, 0x04, 0x7b, 0xae, 0xcc, 0xf4, 0x36, - 0xbc, 0x20, 0xab, 0xe1, 0x0d, 0x18, 0xeb, 0xd0, 0xba, 0x23, 0xcd, - 0x79, 0x09, 0x82, 0x7d, 0x70, 0x3f, 0x8c, 0x5d, 0xde, 0x0d, 0x73, - 0xfc, 0xb8, 0x4b, 0x8c, 0xb8, 0x0f, 0xca, 0xea, 0xbd, 0x3c, 0xa4, - 0xc6, 0x8e, 0xb2, 0xe9, 0xb8, 0x94, 0x0e, 0x4b, 0x94, 0x1d, 0x03, - 0x8c, 0xea, 0xfc, 0x9a, 0xaa, 0xfc, 0x2a, 0x3b, 0x6d, 0xdc, 0xf1, - 0x7e, 0x21, 0x6e, 0x74, 0xec, 0x95, 0x13, 0x7c, 0x49, 0x36, 0xc1, - 0x1c, 0xea, 0xf1, 0x27, 0xc9, 0x72, 0xe5, 0x83, 0xc5, 0xad, 0x16, - 0x43, 0x98, 0x78, 0xd5, 0xc6, 0x2b, 0x14, 0xf3, 0x1c, 0x5c, 0xfd, - 0x01, 0x56, 0x35, 0x13, 0x9e, 0xbd, 0x4e, 0x62, 0x4e, 0x00, 0x00, - 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 -}; - -const int default_up_icon_len = 549; - - -/* - * This table was generated by the command: - * - * bin2c -n default_movie_icon movie.png - */ - -const unsigned char default_movie_icon[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, - 0x00, 0x16, 0x04, 0x03, 0x00, 0x00, 0x00, 0x32, 0x6f, 0xa1, 0x35, - 0x00, 0x00, 0x00, 0x15, 0x50, 0x4c, 0x54, 0x45, 0xcc, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xcc, 0xcc, 0xcc, 0x99, 0x99, 0x99, 0x66, 0x66, - 0x66, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 0x89, 0x10, 0x3a, 0x6d, - 0x00, 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, 0x06, 0x61, 0x66, - 0xb8, 0x7d, 0x00, 0x00, 0x00, 0x39, 0x49, 0x44, 0x41, 0x54, 0x78, - 0xda, 0x63, 0x48, 0x83, 0x82, 0x04, 0x06, 0x86, 0x24, 0x35, 0x30, - 0x4b, 0x29, 0x15, 0xc4, 0x74, 0x01, 0x02, 0x31, 0x10, 0x33, 0x2d, - 0xcd, 0xd9, 0xd8, 0xd8, 0x58, 0x2c, 0x0d, 0x2c, 0x0a, 0x66, 0x2a, - 0xa1, 0x32, 0x89, 0x50, 0x20, 0x08, 0x04, 0x50, 0x05, 0xf4, 0xb5, - 0x02, 0xce, 0x64, 0x0d, 0x85, 0x02, 0x06, 0x00, 0x66, 0x25, 0x34, - 0xea, 0x21, 0xc4, 0xeb, 0x5e, 0x00, 0x00, 0x00, 0x56, 0x74, 0x45, - 0x58, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x54, - 0x68, 0x69, 0x73, 0x20, 0x61, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, - 0x69, 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x20, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x20, - 0x4b, 0x65, 0x76, 0x69, 0x6e, 0x20, 0x48, 0x75, 0x67, 0x68, 0x65, - 0x73, 0x2c, 0x20, 0x6b, 0x65, 0x76, 0x69, 0x6e, 0x68, 0x40, 0x65, - 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6d, 0x2c, 0x20, 0x53, 0x65, 0x70, - 0x74, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x20, 0x31, 0x39, 0x39, 0x35, - 0x4c, 0xe8, 0xf4, 0xc4, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, - 0x44, 0xae, 0x42, 0x60, 0x82 -}; - -const int default_movie_icon_len = 258; - - -/* - * This table was generated by the command: - * - * bin2c -n default_sound_icon sound.png - */ - -const unsigned char default_sound_icon[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, - 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, - 0x00, 0x16, 0x04, 0x03, 0x00, 0x00, 0x00, 0x32, 0x6f, 0xa1, 0x35, - 0x00, 0x00, 0x00, 0x18, 0x50, 0x4c, 0x54, 0x45, 0xcc, 0xff, 0xff, - 0xff, 0x33, 0x33, 0xff, 0xff, 0xff, 0xcc, 0xcc, 0xcc, 0x99, 0x99, - 0x99, 0x66, 0x00, 0x00, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 0xfd, - 0xef, 0xcf, 0xe1, 0x00, 0x00, 0x00, 0x01, 0x62, 0x4b, 0x47, 0x44, - 0x07, 0x16, 0x61, 0x88, 0xeb, 0x00, 0x00, 0x00, 0x6a, 0x49, 0x44, - 0x41, 0x54, 0x78, 0xda, 0x63, 0x60, 0xc0, 0x0d, 0x12, 0x18, 0x18, - 0x05, 0x20, 0x2c, 0xf6, 0x02, 0x41, 0x06, 0x41, 0x08, 0xb3, 0xa4, - 0x80, 0x51, 0x00, 0x22, 0xcc, 0xee, 0x54, 0xc0, 0x20, 0x08, 0x61, - 0x96, 0x28, 0x15, 0x08, 0x30, 0x02, 0x55, 0xb0, 0x97, 0x97, 0x3b, - 0x29, 0x15, 0x00, 0x05, 0x03, 0x19, 0x4a, 0x5c, 0x5c, 0x94, 0x80, - 0x4c, 0x56, 0x10, 0x53, 0x09, 0x08, 0x0a, 0x02, 0x89, 0x63, 0xa6, - 0xa4, 0x24, 0x41, 0xb5, 0x01, 0x0d, 0x33, 0x83, 0x1a, 0xc6, 0x90, - 0x96, 0x56, 0x9c, 0x04, 0xb1, 0x02, 0x08, 0xd2, 0xcd, 0xe0, 0x16, - 0xb3, 0x15, 0x83, 0x9c, 0x03, 0x71, 0x59, 0x3a, 0xc2, 0x91, 0x6c, - 0x08, 0xa7, 0x63, 0x00, 0x00, 0xac, 0x1b, 0x1b, 0xa7, 0x07, 0x45, - 0x3c, 0x76, 0x00, 0x00, 0x00, 0x56, 0x74, 0x45, 0x58, 0x74, 0x43, - 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x00, 0x54, 0x68, 0x69, 0x73, - 0x20, 0x61, 0x72, 0x74, 0x20, 0x69, 0x73, 0x20, 0x69, 0x6e, 0x20, - 0x74, 0x68, 0x65, 0x20, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x20, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x20, 0x4b, 0x65, 0x76, - 0x69, 0x6e, 0x20, 0x48, 0x75, 0x67, 0x68, 0x65, 0x73, 0x2c, 0x20, - 0x6b, 0x65, 0x76, 0x69, 0x6e, 0x68, 0x40, 0x65, 0x69, 0x74, 0x2e, - 0x63, 0x6f, 0x6d, 0x2c, 0x20, 0x53, 0x65, 0x70, 0x74, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x20, 0x31, 0x39, 0x39, 0x35, 0x4c, 0xe8, 0xf4, - 0xc4, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, - 0x60, 0x82 -}; - -const int default_sound_icon_len = 310; - diff --git a/pandaapp/src/indexify/default_index_icons.h b/pandaapp/src/indexify/default_index_icons.h deleted file mode 100644 index 23aad07026..0000000000 --- a/pandaapp/src/indexify/default_index_icons.h +++ /dev/null @@ -1,36 +0,0 @@ -// Filename: default_index_icons.h -// Created by: drose (04Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#ifndef DEFAULT_INDEX_ICONS_H -#define DEFAULT_INDEX_ICONS_H - -extern const char *default_left_icon_filename; -extern const char *default_right_icon_filename; -extern const char *default_up_icon_filename; -extern const char *default_movie_icon_filename; -extern const char *default_sound_icon_filename; - -extern const unsigned char default_left_icon[]; -extern const int default_left_icon_len; -extern const unsigned char default_right_icon[]; -extern const int default_right_icon_len; -extern const unsigned char default_up_icon[]; -extern const int default_up_icon_len; -extern const unsigned char default_movie_icon[]; -extern const int default_movie_icon_len; -extern const unsigned char default_sound_icon[]; -extern const int default_sound_icon_len; - -#endif - diff --git a/pandaapp/src/indexify/fontSamples.cxx b/pandaapp/src/indexify/fontSamples.cxx deleted file mode 100644 index d65900b4ea..0000000000 --- a/pandaapp/src/indexify/fontSamples.cxx +++ /dev/null @@ -1,264 +0,0 @@ -// Filename: fontSamples.cxx -// Created by: drose (03Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "fontSamples.h" -#include "pnmTextMaker.h" -#include "default_font.h" -#include "pnmImage.h" -#include "pnotify.h" - -#include - -#ifdef WIN32_VC -#define snprintf _snprintf -#endif - -//////////////////////////////////////////////////////////////////// -// Function: FontSamples::Constructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -FontSamples:: -FontSamples() { - clear_runlines(); - add_runline("[opts] fontname [fontname ...]"); - - set_program_description - ("Generates one or more image files with one line of text from " - "each of several given font files, as a font sample sheet."); - - add_option - ("t", "text", 0, - "Specifies the sample text to render using each font.", - &FontSamples::dispatch_string, NULL, &_sample_text); - - add_option - ("sh", "height", 0, - "Specifies the pixel height of each sample.", - &FontSamples::dispatch_int, NULL, &_sample_height); - - add_option - ("nf", "filename", 0, - "Specifies the filename of the font to be used to write each font's " - "name.", - &FontSamples::dispatch_filename, NULL, &_name_font_filename); - - add_option - ("nh", "height", 0, - "Specifies the pixel height of each font's name.", - &FontSamples::dispatch_int, NULL, &_name_height); - - add_option - ("fontaa", "factor", 0, - "Specifies a scale factor to apply to the fonts " - "for the purpose of antialiasing the fonts a " - "little better than FreeType can do by itself. The letters are " - "generated large and then scaled to their proper size. Normally this " - "should be a number in the range 3 to 4 for best effect.", - &FontSamples::dispatch_double, NULL, &_font_aa_factor); - - add_option - ("space", "y", 0, - "Specifies the vertical space in pixels between font samples.", - &FontSamples::dispatch_int, NULL, &_vert_space); - - add_option - ("image", "x, y", 0, - "Specifies the width and height in pixels of the resulting image(s).", - &FontSamples::dispatch_int_pair, NULL, &_image_width); - - add_option - ("o", "filename", 50, - "Specify the filename(s) to which the resulting image file will " - "be written. This should contain the string '%d' which will be " - "filled in with the index number of the particular frame.", - &FontSamples::dispatch_string, NULL, &_output_filename); - - _sample_text = "The quick brown fox jumped over the lazy dog's back."; - _sample_height = 14; - _name_height = 10; - _font_aa_factor = 4.0; - _vert_space = 10; - _image_width = 600; - _image_height = 600; - _output_filename = "samples-%d.jpg"; - _name_text_maker = (PNMTextMaker *)NULL; -} - -//////////////////////////////////////////////////////////////////// -// Function: FontSamples::Destructor -// Access: Public, Virtual -// Description: -//////////////////////////////////////////////////////////////////// -FontSamples:: -~FontSamples() { - if (_name_text_maker != (PNMTextMaker *)NULL) { - delete _name_text_maker; - } -} - -//////////////////////////////////////////////////////////////////// -// Function: FontSamples::handle_args -// Access: Protected, Virtual -// Description: Does something with the additional arguments on the -// command line (after all the -options have been -// parsed). Returns true if the arguments are good, -// false otherwise. -//////////////////////////////////////////////////////////////////// -bool FontSamples:: -handle_args(ProgramBase::Args &args) { - if (args.empty()) { - nout << "You must specify the font filenames on the command line.\n"; - return false; - } - - Args::const_iterator ai; - for (ai = args.begin(); ai != args.end(); ++ai) { - Filename filename = Filename::from_os_specific(*ai); - filename.standardize(); - if (filename.exists()) { - _font_filenames.push_back(filename); - - } else { - nout << filename << " does not exist.\n"; - return false; - } - } - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: FontSamples::post_command_line -// Access: Protected, Virtual -// Description: This is called after the command line has been -// completely processed, and it gives the program a -// chance to do some last-minute processing and -// validation of the options and arguments. It should -// return true if everything is fine, false if there is -// an error. -//////////////////////////////////////////////////////////////////// -bool FontSamples:: -post_command_line() { - if (_font_filenames.empty()) { - nout << "No font filenames.\n"; - return false; - } - - if (_name_height != 0) { - if (!_name_font_filename.empty()) { - _name_text_maker = new PNMTextMaker(_name_font_filename, 0); - if (!_name_text_maker->is_valid()) { - delete _name_text_maker; - _name_text_maker = (PNMTextMaker *)NULL; - } - } - - if (_name_text_maker == (PNMTextMaker *)NULL) { - _name_text_maker = new PNMTextMaker((const char *)default_font, - default_font_size, 0); - if (!_name_text_maker->is_valid()) { - nout << "Unable to open default font.\n"; - delete _name_text_maker; - _name_text_maker = (PNMTextMaker *)NULL; - } - } - } - - if (_name_text_maker != (PNMTextMaker *)NULL) { - _name_text_maker->set_scale_factor(_font_aa_factor); - _name_text_maker->set_pixel_size(_name_height); - } else { - _name_height = 0; - } - - return ProgramBase::post_command_line(); -} - -//////////////////////////////////////////////////////////////////// -// Function: FontSamples::run -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -void FontSamples:: -run() { - int output_index = 1; - PNMImage output_image(_image_width, _image_height, 1); - static const int output_filename_size = 1024; - char output_filename[output_filename_size]; - - bool all_ok = true; - - output_image.fill(1, 1, 1); - int y = _vert_space; - - int vert_per_font = - _sample_height + _name_height + _vert_space; - - Filenames::iterator fi; - for (fi = _font_filenames.begin(); fi != _font_filenames.end(); ++fi) { - if (y > _image_height - vert_per_font) { - // Write out the current image. - snprintf(output_filename, output_filename_size, - _output_filename.c_str(), output_index); - nout << "Writing " << output_filename << "\n"; - if (!output_image.write(output_filename)) { - nout << "Unable to write to " << output_filename << "\n"; - exit(1); - } - output_index++; - output_image.fill(1, 1, 1); - y = _vert_space; - } - const Filename &filename = (*fi); - PNMTextMaker *text_maker = new PNMTextMaker(filename, 0); - if (!text_maker->is_valid()) { - all_ok = false; - } else { - text_maker->set_scale_factor(_font_aa_factor); - text_maker->set_pixel_size(_sample_height); - text_maker->generate_into(_sample_text, output_image, - 16, y + _sample_height); - if (_name_text_maker != (PNMTextMaker *)NULL) { - string desc = filename.get_basename() + ": " + text_maker->get_name(); - _name_text_maker->generate_into(desc, output_image, - 16, y + _sample_height + _name_height); - } - } - - y += vert_per_font; - delete text_maker; - } - - snprintf(output_filename, output_filename_size, - _output_filename.c_str(), output_index); - nout << "Writing " << output_filename << "\n"; - if (!output_image.write(output_filename)) { - nout << "Unable to write to " << output_filename << "\n"; - exit(1); - } - - if (!all_ok) { - nout << "Problem loading fonts.\n"; - exit(1); - } -} - - -int main(int argc, char *argv[]) { - FontSamples prog; - prog.parse_command_line(argc, argv); - prog.run(); - return 0; -} diff --git a/pandaapp/src/indexify/fontSamples.h b/pandaapp/src/indexify/fontSamples.h deleted file mode 100644 index e7371156d1..0000000000 --- a/pandaapp/src/indexify/fontSamples.h +++ /dev/null @@ -1,59 +0,0 @@ -// Filename: indexify.h -// Created by: drose (07Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#ifndef FONTSAMPLES_H -#define FONTSAMPLES_H - -#include "pandatoolbase.h" - -#include "programBase.h" -#include "filename.h" -#include "pvector.h" - -class PNMTextMaker; - -//////////////////////////////////////////////////////////////////// -// Class : FontSamples -// Description : A program to generate one or more image files showing -// samples of various fonts. -//////////////////////////////////////////////////////////////////// -class FontSamples : public ProgramBase { -public: - FontSamples(); - virtual ~FontSamples(); - -protected: - virtual bool handle_args(Args &args); - virtual bool post_command_line(); - -public: - void run(); - - string _sample_text; - int _sample_height; - int _name_height; - Filename _name_font_filename; - double _font_aa_factor; - int _vert_space; - int _image_width; - int _image_height; - string _output_filename; - - typedef pvector Filenames; - Filenames _font_filenames; - - PNMTextMaker *_name_text_maker; -}; - -#endif diff --git a/pandaapp/src/indexify/indexImage.cxx b/pandaapp/src/indexify/indexImage.cxx deleted file mode 100644 index 78cf829419..0000000000 --- a/pandaapp/src/indexify/indexImage.cxx +++ /dev/null @@ -1,918 +0,0 @@ -// Filename: indexImage.cxx -// Created by: drose (03Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "indexImage.h" -#include "rollDirectory.h" -#include "photo.h" -#include "pnmTextMaker.h" -#include "indexParameters.h" -#include "pnmImage.h" -#include "pnmReader.h" - -#include "string_utils.h" - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::Constructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -IndexImage:: -IndexImage(RollDirectory *dir, int index) : - _dir(dir), - _index(index) -{ - _name = _dir->get_basename() + "_" + format_string(index + 1); - _index_x_size = 0; - _index_y_size = 0; -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::Destructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -IndexImage:: -~IndexImage() { -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::add_photo -// Access: Public -// Description: Adds the nth photo in the roll to the index image. -// Returns true if the photo is added, or false if there -// was no more room. -//////////////////////////////////////////////////////////////////// -bool IndexImage:: -add_photo(int photo_index) { - int count = _photos.size(); - if (count >= max_thumbs) { - return false; - } - - int yi = count / thumb_count_x; - int xi = count - (yi * thumb_count_x); - - int x = thumb_x_space + xi * (thumb_width + thumb_x_space); - int y = thumb_y_space + yi * (thumb_height + thumb_caption_height + thumb_y_space); - - PhotoInfo pinfo; - pinfo._photo_index = photo_index; - pinfo._x_place = x; - pinfo._y_place = y; - _photos.push_back(pinfo); - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::generate_images -// Access: Public -// Description: Computes the thumbnail image file and writes it to -// the indicated directory; generates all reduced images -// associated with these photos into the appropriate -// subdirectory. Returns true on success, false on -// failure. -//////////////////////////////////////////////////////////////////// -bool IndexImage:: -generate_images(const Filename &archive_dir, PNMTextMaker *text_maker) { - int count = _photos.size(); - int num_rows = (count + thumb_count_x - 1) / thumb_count_x; - int actual_index_height = thumb_y_space + num_rows * (thumb_height + thumb_caption_height + thumb_y_space); - - PNMImage index_image; - - Filename thumbnail_dir(archive_dir, "thumbs"); - Filename output_filename(thumbnail_dir, _name); - output_filename.set_extension("jpg"); - - Photos::const_iterator pi; - - // First, scan the image files to see if we can avoid regenerating - // the index image. - bool generate_index_image = true; - if (!dummy_mode && !force_regenerate && output_filename.exists()) { - // Maybe we don't need to renegerate the index. - generate_index_image = false; - - const Filename &newest_contributing_filename = - _dir->get_newest_contributing_filename(); - if (!newest_contributing_filename.empty()) { - generate_index_image = - (output_filename.compare_timestamps(newest_contributing_filename) < 0); - } - - for (pi = _photos.begin(); - pi != _photos.end() && !generate_index_image; - ++pi) { - const PhotoInfo &pinfo = (*pi); - Photo *photo = _dir->get_photo(pinfo._photo_index); - Filename photo_filename(_dir->get_dir(), photo->get_basename()); - - // If any of the source photos are newer than the index image, - // we must regenerate it. - generate_index_image = - (output_filename.compare_timestamps(photo_filename) < 0); - } - } - - // If we don't need to regenerate the index, we do need to at least - // scan the header. - if (!generate_index_image) { - if (index_image.read_header(output_filename)) { - if (index_image.get_x_size() != actual_index_width || - index_image.get_y_size() != actual_index_height) { - // If the index exists but is the wrong size, we'd better - // regenerate it. - generate_index_image = true; - } - - } else { - // If we couldn't even read the header, we'd better regenerate it - // after all. - nout << "Couldn't read " << output_filename << "; regenerating.\n"; - generate_index_image = true; - } - } - - if (generate_index_image) { - index_image.clear(actual_index_width, actual_index_height); - index_image.fill(1.0, 1.0, 1.0); - } - - // Now go back through and read whichever images are necessary, or - // just read the headers if we can get away with it. - for (pi = _photos.begin(); pi != _photos.end(); ++pi) { - const PhotoInfo &pinfo = (*pi); - Photo *photo = _dir->get_photo(pinfo._photo_index); - PNMImage reduced_image; - if (!make_reduced_image(photo, reduced_image, generate_index_image, false)) { - return false; - } - - if (generate_index_image) { - // Generate a thumbnail image for the photo. - PNMImage thumbnail_image; - compute_reduction(reduced_image, thumbnail_image, - thumb_interior_width, thumb_interior_height); - - if (dummy_mode) { - draw_box(thumbnail_image); - } else { - thumbnail_image.quick_filter_from(reduced_image); - } - // Center the thumbnail image within its box. - int x_center = (thumb_width - thumbnail_image.get_x_size()) / 2; - int y_center = (thumb_height - thumbnail_image.get_y_size()) / 2; - - if (draw_frames) { - draw_frame(index_image, - pinfo._x_place, pinfo._y_place, - thumb_width, thumb_height, - pinfo._x_place + x_center, pinfo._y_place + y_center, - thumbnail_image.get_x_size(), thumbnail_image.get_y_size()); - } - - thumbnail_image.set_color_type(index_image.get_color_type()); - index_image.copy_sub_image(thumbnail_image, - pinfo._x_place + x_center, - pinfo._y_place + y_center); - - if (text_maker != (PNMTextMaker *)NULL) { - int label_x = pinfo._x_place + thumb_width / 2; - int label_y = pinfo._y_place + thumb_height + thumb_caption_height; - - int width = - text_maker->generate_into(photo->get_frame_number(), index_image, - label_x, label_y); - if (photo->_has_movie && get_movie_icon().is_valid()) { - const PNMImage &movie_icon_image = get_movie_icon(); - int icon_x = label_x - width / 2 - movie_icon_image.get_x_size(); - int icon_y = label_y - movie_icon_image.get_y_size(); - - index_image.blend_sub_image(movie_icon_image, icon_x, icon_y); - } else if (photo->_has_sound && get_sound_icon().is_valid()) { - const PNMImage &sound_icon_image = get_sound_icon(); - int icon_x = label_x - width / 2 - sound_icon_image.get_x_size(); - int icon_y = label_y - sound_icon_image.get_y_size(); - - index_image.blend_sub_image(sound_icon_image, icon_x, icon_y); - } - } - } - } - - if (generate_index_image) { - nout << "Writing " << output_filename << "\n"; - output_filename.make_dir(); - if (!index_image.write(output_filename)) { - nout << "Unable to write.\n"; - return false; - } - } - - _index_x_size = index_image.get_x_size(); - _index_y_size = index_image.get_y_size(); - _index_basename = output_filename.get_basename(); - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::make_reduced_image -// Access: Public -// Description: Copies the full-sized image to the reduced image -// folder, if necessary. -//////////////////////////////////////////////////////////////////// -bool IndexImage:: -make_reduced_image(Photo *photo, PNMImage &reduced_image, - bool generate_index_image, bool force_reduced) { - Filename reduced_dir(archive_dir, "reduced/" + _dir->get_basename()); - - Filename photo_filename(_dir->get_dir(), photo->get_basename()); - Filename reduced_filename(reduced_dir, photo->get_basename()); - photo_filename.standardize(); - reduced_filename.standardize(); - - if (!dummy_mode && photo_filename != reduced_filename && - (force_regenerate || - reduced_filename.compare_timestamps(photo_filename) < 0)) { - // If the reduced filename does not exist or is older than the - // source filename, we must read the complete source filename to - // generate the reduced image. - PNMImage photo_image; - PNMReader *reader = photo_image.make_reader(photo_filename); - if (reader == (PNMReader *)NULL) { - nout << "Unable to read " << photo_filename << ".\n"; - return false; - } - photo_image.copy_header_from(*reader); - - photo->_full_x_size = photo_image.get_x_size(); - photo->_full_y_size = photo_image.get_y_size(); - - // Generate a reduced image for the photo. - compute_reduction(photo_image, reduced_image, - reduced_width, reduced_height); - - photo->_reduced_x_size = reduced_image.get_x_size(); - photo->_reduced_y_size = reduced_image.get_y_size(); - - // Only bother making a reduced version if it would actually be - // smaller than the original. - if (photo->_reduced_x_size < photo->_full_x_size || - photo->_reduced_y_size < photo->_full_y_size) { - nout << "Reading " << photo_filename << "\n"; - if (!photo_image.read(reader)) { - nout << "Unable to read.\n"; - return false; - } - reader = NULL; - - reduced_image.quick_filter_from(photo_image); - reduced_filename.make_dir(); - nout << "Writing " << reduced_filename << "\n"; - if (!reduced_image.write(reduced_filename)) { - nout << "Unable to write.\n"; - delete reader; - return false; - } - photo->_has_reduced = true; - - } else if (force_reduced) { - // Even though the reduced image would not be smaller, copy it - // anyway when force_reduced is true. - photo_filename.set_binary(); - if (!copy_file(photo_filename, reduced_dir)) { - return false; - } - - } else { - // We're not making a reduced version. But maybe we still - // need to read the original so we can make a thumbnail. - reduced_filename = photo_filename; - reduced_image.copy_header_from(photo_image); - - if (!dummy_mode && generate_index_image) { - nout << "Reading " << photo_filename << "\n"; - if (!reduced_image.read(reader)) { - nout << "Unable to read image.\n"; - return false; - } - reader = NULL; - } - } - if (reader != (PNMReader *)NULL) { - delete reader; - } - - } else { - // If the reduced image already exists and is newer than the - // source image, use it. - - if (!force_reduced) { - // We still read the image header to determine its size. - PNMImageHeader photo_image; - if (!photo_image.read_header(photo_filename)) { - nout << "Unable to read " << photo_filename << "\n"; - return false; - } - - photo->_full_x_size = photo_image.get_x_size(); - photo->_full_y_size = photo_image.get_y_size(); - photo->_has_reduced = true; - - if (dummy_mode) { - // In dummy mode, we may or may not actually have a reduced - // image. In either case, ignore the file and compute its - // appropriate size from the source image. - compute_reduction(photo_image, reduced_image, reduced_width, reduced_height); - photo->_reduced_x_size = reduced_image.get_x_size(); - photo->_reduced_y_size = reduced_image.get_y_size(); - - } else if (generate_index_image) { - // Now read the reduced image from disk, so we can put it on - // the index image. - nout << "Reading " << reduced_filename << "\n"; - - if (!reduced_image.read(reduced_filename)) { - nout << "Unable to read.\n"; - return false; - } - - photo->_reduced_x_size = reduced_image.get_x_size(); - photo->_reduced_y_size = reduced_image.get_y_size(); - - } else { - // If we're not generating an index image, we don't even need - // the reduced image--just scan its header to get its size. - if (!reduced_image.read_header(reduced_filename)) { - nout << "Unable to read " << reduced_filename << "\n"; - return false; - } - photo->_reduced_x_size = reduced_image.get_x_size(); - photo->_reduced_y_size = reduced_image.get_y_size(); - } - } - } - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::generate_html -// Access: Public -// Description: Generates all HTML files associated with reduced -// images into the appropriate subdirectory, and -// generates root-level HTML code to access the -// thumbnails on the index image into the indicated -// stream. -//////////////////////////////////////////////////////////////////// -bool IndexImage:: -generate_html(ostream &root_html, const Filename &archive_dir, - const Filename &roll_dir_root) { - root_html - << "\n" - << "\n" - << "
\n"; - - Filename html_dir(archive_dir, "html"); - - Photos::const_iterator pi; - for (pi = _photos.begin(); pi != _photos.end(); ++pi) { - const PhotoInfo &pinfo = (*pi); - int photo_index = pinfo._photo_index; - Photo *photo = _dir->get_photo(pinfo._photo_index); - Filename html_relname(_dir->get_basename(), photo->get_basename()); - html_relname.set_extension("htm"); - - Filename html_filename(html_dir, html_relname); - html_filename.make_dir(); - html_filename.set_text(); - ofstream reduced_html; - if (!html_filename.open_write(reduced_html)) { - nout << "Unable to write to " << html_filename << "\n"; - return false; - } - if (!generate_reduced_html(reduced_html, photo, photo_index, - pi - _photos.begin(), roll_dir_root)) { - return false; - } - - root_html - << " \n"; - } - - root_html - << "
\n"; - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::copy_reduced -// Access: Public -// Description: Copies key files from the full directory into the -// reduced directory. -//////////////////////////////////////////////////////////////////// -bool IndexImage:: -copy_reduced(const Filename &archive_dir) { - Photos::const_iterator pi; - for (pi = _photos.begin(); pi != _photos.end(); ++pi) { - const PhotoInfo &pinfo = (*pi); - int photo_index = pinfo._photo_index; - Photo *photo = _dir->get_photo(photo_index); - - // Make sure we have a "reduced" image. - PNMImage reduced_image; - if (!make_reduced_image(photo, reduced_image, false, true)) { - return false; - } - - if (photo->_has_movie) { - // Also copy the movie file to the reduced directory, even - // though it's not reduced in any way--but there's no way - // (presently) to reduce a movie file. - Filename movie_filename(_dir->get_dir(), photo->get_movie()); - if (movie_filename.exists()) { - movie_filename.set_binary(); - Filename reduced_dir(archive_dir, "reduced/" + _dir->get_basename()); - if (!copy_file(movie_filename, reduced_dir)) { - return false; - } - } - } - - if (photo->_has_sound) { - // Also copy the sound clip to the reduced directory. - Filename sound_filename(_dir->get_dir(), photo->get_sound()); - if (sound_filename.exists()) { - sound_filename.set_binary(); - Filename reduced_dir(archive_dir, "reduced/" + _dir->get_basename()); - if (!copy_file(sound_filename, reduced_dir)) { - return false; - } - } - } - } - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::output -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -void IndexImage:: -output(ostream &out) const { - out << _name; -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::write -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -void IndexImage:: -write(ostream &out, int indent_level) const { - indent(out, indent_level) - << _name << "\n"; - Photos::const_iterator pi; - for (pi = _photos.begin(); pi != _photos.end(); ++pi) { - const PhotoInfo &pinfo = (*pi); - indent(out, indent_level + 2) - << *_dir->get_photo(pinfo._photo_index) << "\n"; - } -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::generate_reduced_html -// Access: Public -// Description: Generates HTML code for rendering the indicated -// reduced-image photo into the given ostream. -//////////////////////////////////////////////////////////////////// -bool IndexImage:: -generate_reduced_html(ostream &html, Photo *photo, int photo_index, int pi, - const Filename &roll_dir_root) { - Filename full_dir; - if (roll_dir_root.empty()) { - full_dir = Filename("../..", _dir->get_dir()); - } else { - compose_href("../..", roll_dir_root, _dir->get_basename()); - } - Filename full(full_dir, photo->get_basename()); - Filename movie(full_dir, photo->get_movie()); - Filename sound(full_dir, photo->get_sound()); - - Filename reduced_dir("../../reduced", _dir->get_basename()); - Filename reduced(reduced_dir, photo->get_basename()); - if (!photo->_has_reduced) { - reduced_dir = full_dir; - reduced = full; - } - - string up_href = "../" + _dir->get_basename() + ".htm#" + _name; - - Filename prev_photo_filename; - Filename next_photo_filename; - - if (pi != 0) { - // If this is not the first photo on the index, "back" will take - // us to the previous photo on the same index. - Photo *prev_photo = _dir->get_photo(_photos[pi - 1]._photo_index); - prev_photo_filename = Filename(prev_photo->get_basename()); - prev_photo_filename.set_extension("htm"); - - } else { - // If this is the first photo on the index, "back" will take us to - // the last photo on the previous index. Or even to the last - // photo on the previous roll. - RollDirectory *roll_dir = _dir; - int index = _index - 1; - while (index < 0 && roll_dir->_prev != (RollDirectory *)NULL) { - roll_dir = roll_dir->_prev; - index = roll_dir->get_num_index_images() - 1; - } - - if (index >= 0) { - IndexImage *prev_index = roll_dir->get_index_image(index); - nassertr(!prev_index->_photos.empty(), false); - Photo *prev_photo = - roll_dir->get_photo(prev_index->_photos.back()._photo_index); - Filename other_dir("..", roll_dir->get_basename()); - prev_photo_filename = Filename(other_dir, prev_photo->get_basename()); - prev_photo_filename.set_extension("htm"); - } - } - - if (pi + 1 < (int)_photos.size()) { - // If this is not the last photo, "next" will take us to the next - // photo on the same index. - Photo *next_photo = _dir->get_photo(_photos[pi + 1]._photo_index); - next_photo_filename = Filename(next_photo->get_basename()); - next_photo_filename.set_extension("htm"); - - } else { - // If this is the last photo on the index, "next" will take us to - // the first photo on the next index. Or even to the first photo - // on the next roll. - - RollDirectory *roll_dir = _dir; - int index = _index + 1; - while (index >= roll_dir->get_num_index_images() && - roll_dir->_next != (RollDirectory *)NULL) { - roll_dir = roll_dir->_next; - index = 0; - } - - if (index < roll_dir->get_num_index_images()) { - IndexImage *next_index = roll_dir->get_index_image(index); - nassertr(!next_index->_photos.empty(), false); - Photo *next_photo = - roll_dir->get_photo(next_index->_photos.front()._photo_index); - Filename other_dir("..", roll_dir->get_basename()); - next_photo_filename = Filename(other_dir, next_photo->get_basename()); - next_photo_filename.set_extension("htm"); - } - } - - html - << "\n" - << "\n" - << "" << photo->get_name() << " (" << photo_index + 1 << " of " - << _dir->get_num_photos() << " on " << _dir->get_basename() - << ")\n" - << "\n" - << "\n" - << "

" << photo->get_name() << " (" << photo_index + 1 << " of " - << _dir->get_num_photos() << ")

"; - - generate_nav_buttons(html, prev_photo_filename, next_photo_filename, - up_href); - - if (photo->_has_cm) { - // If a comment file for the photo exists, insert its contents - // here, right above the photo. - Filename cm_filename(_dir->get_dir(), photo->get_cm()); - if (!RollDirectory::insert_html_comment(html, cm_filename)) { - return false; - } - } - - html - << "

" - << "\""get_name() - << "\">

\n"; - - if (!omit_full_links && photo->_has_reduced) { - html - << "

View full size image (" - << photo->_full_x_size << " x " << photo->_full_y_size << ")

\n"; - } - - if (photo->_has_movie) { - html << "

"; - if (!movie_icon.empty()) { - // Show the movie icon if we got one. - Filename movie_icon_href = compose_href("../..", movie_icon); - html << "\"\""; - } - - // Determine the size of the file. - streampos size = 0; - ifstream stream; - Filename movie_filename(_dir->get_dir(), photo->get_movie()); - movie_filename.set_binary(); - if (movie_filename.open_read(stream)) { - // Seek to the end and get the stream position there. - stream.seekg(0, ios::end); - size = stream.tellg(); - } - - static const streampos MB = 1024 * 1024; - static const streampos GB = 1024 * 1024 * 1024; - string size_units; - double size_float = size; - - if (size > GB) { - size_units = "GB"; - size_float = (double)size / (double)GB; - } else if (size > MB) { - size_units = "MB"; - size_float = (double)size / (double)MB; - } - - if (size_units.empty()) { - html - << "Play movie

\n"; - } else { - char buffer[128]; - sprintf(buffer, "%.1f", size_float); - html - << "Play movie (" - << buffer << " " << size_units << ")

\n"; - } - } - - if (photo->_has_sound) { - html << "

"; - if (!sound_icon.empty()) { - // Show the sound icon if we got one. - Filename sound_icon_href = compose_href("../..", sound_icon); - html << "\"\""; - } - - // Determine the size of the file. - streampos size = 0; - ifstream stream; - Filename sound_filename(_dir->get_dir(), photo->get_sound()); - sound_filename.set_binary(); - if (sound_filename.open_read(stream)) { - // Seek to the end and get the stream position there. - stream.seekg(0, ios::end); - size = stream.tellg(); - } - - static const streampos MB = 1024 * 1024; - static const streampos GB = 1024 * 1024 * 1024; - string size_units; - double size_float = size; - - if (size > GB) { - size_units = "GB"; - size_float = (double)size / (double)GB; - } else if (size > MB) { - size_units = "MB"; - size_float = (double)size / (double)MB; - } - - if (size_units.empty()) { - html - << "Play sound clip

\n"; - } else { - char buffer[128]; - sprintf(buffer, "%.1f", size_float); - html - << "Play sound clip (" - << buffer << " " << size_units << ")

\n"; - } - } - - generate_nav_buttons(html, prev_photo_filename, next_photo_filename, - up_href); - - html - << "\n" - << "\n"; - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::generate_nav_buttons -// Access: Private -// Description: Outputs the HTML code to generate the next, prev, -// up buttons when viewing each reduced image. -//////////////////////////////////////////////////////////////////// -void IndexImage:: -generate_nav_buttons(ostream &html, const Filename &prev_photo_filename, - const Filename &next_photo_filename, - const string &up_href) { - html << "

\n"; - - bool first_icons = false; - if (!prev_icon.empty() && !next_icon.empty()) { - first_icons = true; - // Use icons to go forward and back. - Filename prev_icon_href = compose_href("../..", prev_icon); - if (prev_photo_filename.empty()) { - html << "\"No\n"; - } else { - html << "\"previous\"\n"; - } - - Filename next_icon_href = compose_href("../..", next_icon); - if (next_photo_filename.empty()) { - html << "\"No\n"; - } else { - html << "\"next\"\n"; - } - - } else { - // No prev/next icons; use text to go forward and back. - if (prev_photo_filename.empty()) { - html << "(This is the first photo.)\n"; - } else { - html << "Back to previous photo\n"; - } - - if (next_photo_filename.empty()) { - html << "
(This is the last photo.)\n"; - } else { - html << "
On to next photo\n"; - } - } - - if (!up_href.empty()) { - if (!up_icon.empty()) { - // Use an icon to go up. - if (!first_icons) { - html << "
"; - } else { - html << "   "; - } - Filename up_icon_href = compose_href("../..", up_icon); - html << "\"return\n"; - } else { - // No up icon; use text to go up. - html << "
Return to index\n"; - } - } - html << "

\n"; -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::compute_reduction -// Access: Private, Static -// Description: Computes the amount by which the source image must be -// scaled to fit within the indicated box, and clears -// the dest_image to the computed size. -//////////////////////////////////////////////////////////////////// -void IndexImage:: -compute_reduction(const PNMImageHeader &source_image, PNMImage &dest_image, - int x_size, int y_size) { - double x_scale = (double)x_size / (double)source_image.get_x_size(); - double y_scale = (double)y_size / (double)source_image.get_y_size(); - double scale = min(x_scale, y_scale); - - // Don't ever enlarge an image to fit the rectangle; if the image is - // smaller than the rectangle, just leave it small. - scale = min(scale, 1.0); - - int new_x_size = (int)(source_image.get_x_size() * scale + 0.5); - int new_y_size = (int)(source_image.get_y_size() * scale + 0.5); - - dest_image.clear(new_x_size, new_y_size, - source_image.get_num_channels(), - source_image.get_maxval()); -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::draw_box -// Access: Private, Static -// Description: Called in dummy mode to draw a little box in black -// around the border of the empty thumbnail image. -//////////////////////////////////////////////////////////////////// -void IndexImage:: -draw_box(PNMImage &image) { - // First, fill it in white. - image.fill(1, 1, 1); - - if (!draw_frames) { - // Now make the border pixel black. We only need to do this if we - // aren't drawing frames, since the frames will reveal the shape - // of the image too. - int x_size = image.get_x_size(); - int y_size = image.get_y_size(); - for (int xi = 0; xi < x_size; xi++) { - image.set_xel(xi, 0, 0, 0, 0); - image.set_xel(xi, y_size - 1, 0, 0, 0); - } - - for (int yi = 1; yi < y_size - 1; yi++) { - image.set_xel(0, yi, 0, 0, 0); - image.set_xel(x_size - 1, yi, 0, 0, 0); - } - } -} - -//////////////////////////////////////////////////////////////////// -// Function: IndexImage::draw_frame -// Access: Private, Static -// Description: Called in draw_frames mode to draw a slide mount in -// gray on the index image before drawing the thumbnail -// image in the center. -//////////////////////////////////////////////////////////////////// -void IndexImage:: -draw_frame(PNMImage &image, - int frame_left, int frame_top, int frame_width, int frame_height, - int hole_left, int hole_top, int hole_width, int hole_height) { - // Gray levels. - static const RGBColord mid(0.5, 0.5, 0.5); - static const RGBColord light(0.7, 0.7, 0.7); - static const RGBColord lighter(0.9, 0.9, 0.9); - static const RGBColord dark(0.3, 0.3, 0.3); - static const RGBColord darker(0.1, 0.1, 0.1); - - // First, fill in the whole rectangle in gray. - int xi, yi; - for (yi = 0; yi < frame_height; yi++) { - for (xi = 0; xi < frame_width; xi++) { - image.set_xel(xi + frame_left, yi + frame_top, mid); - } - } - - // Now draw the bevel. - for (xi = 0; xi < frame_outer_bevel; xi++) { - for (yi = xi; yi < frame_height - xi; yi++) { - // Left edge. - image.set_xel(xi + frame_left, yi + frame_top, light); - // Right edge. - image.set_xel(frame_width - 1 - xi + frame_left, yi + frame_top, dark); - } - } - for (yi = 0; yi < frame_outer_bevel; yi++) { - for (xi = yi; xi < frame_width - yi; xi++) { - // Top edge. - image.set_xel(xi + frame_left, yi + frame_top, lighter); - // Bottom edge. - image.set_xel(xi + frame_left, frame_height - 1 - yi + frame_top, darker); - } - } - - // Interior bevel. - for (xi = -1; xi >= -frame_inner_bevel; xi--) { - for (yi = xi; yi < hole_height - xi; yi++) { - // Left edge. - image.set_xel(xi + hole_left, yi + hole_top, dark); - // Right edge. - image.set_xel(hole_width - 1 - xi + hole_left, yi + hole_top, light); - } - } - for (yi = -1; yi >= -frame_inner_bevel; yi--) { - for (xi = yi; xi < hole_width - yi; xi++) { - // Top edge. - image.set_xel(xi + hole_left, yi + hole_top, darker); - // Bottom edge. - image.set_xel(xi + hole_left, hole_height - 1 - yi + hole_top, lighter); - } - } - - // We don't have to cut out the hole, since the thumbnail image will - // do that when it is placed. -} diff --git a/pandaapp/src/indexify/indexImage.h b/pandaapp/src/indexify/indexImage.h deleted file mode 100644 index 87b208c1e8..0000000000 --- a/pandaapp/src/indexify/indexImage.h +++ /dev/null @@ -1,96 +0,0 @@ -// Filename: indexImage.h -// Created by: drose (03Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#ifndef INDEXIMAGE_H -#define INDEXIMAGE_H - -#include "pandatoolbase.h" - -#include "filename.h" -#include "pvector.h" - -class RollDirectory; -class Photo; -class PNMTextMaker; -class PNMImage; -class PNMImageHeader; - -//////////////////////////////////////////////////////////////////// -// Class : IndexImage -// Description : An aggregate image containing several thumbnails, one -// for each of several photos. A roll directory will -// collect its photos into one or more IndexImages. -//////////////////////////////////////////////////////////////////// -class IndexImage { -public: - IndexImage(RollDirectory *dir, int index); - ~IndexImage(); - - bool add_photo(int index); - bool generate_images(const Filename &archive_dir, PNMTextMaker *text_maker); - bool make_reduced_image(Photo *photo, PNMImage &reduced_image, - bool generate_index_image, bool force_reduced); - - bool generate_html(ostream &root_html, const Filename &archive_dir, - const Filename &roll_dir_root); - - bool copy_reduced(const Filename &archive_dir); - - void output(ostream &out) const; - void write(ostream &out, int indent_level) const; - -private: - bool generate_reduced_html(ostream &html, Photo *photo, int photo_index, - int pi, const Filename &roll_dir_root); - void generate_nav_buttons(ostream &html, const Filename &prev_photo_filename, - const Filename &next_photo_filename, - const string &up_href); - - static void compute_reduction(const PNMImageHeader &source_image, - PNMImage &dest_image, - int x_size, int y_size); - static void draw_box(PNMImage &image); - - static void draw_frame(PNMImage &image, - int frame_left, int frame_top, - int frame_width, int frame_height, - int hole_left, int hole_top, - int hole_width, int hole_height); - -private: - RollDirectory *_dir; - int _index; - string _name; - - class PhotoInfo { - public: - int _photo_index; - int _x_place; - int _y_place; - }; - - typedef pvector Photos; - Photos _photos; - - int _index_x_size; - int _index_y_size; - string _index_basename; -}; - -INLINE ostream &operator << (ostream &out, const IndexImage &d) { - d.output(out); - return out; -} - -#endif diff --git a/pandaapp/src/indexify/indexParameters.cxx b/pandaapp/src/indexify/indexParameters.cxx deleted file mode 100644 index 88d7022eb9..0000000000 --- a/pandaapp/src/indexify/indexParameters.cxx +++ /dev/null @@ -1,296 +0,0 @@ -// Filename: indexParameters.cxx -// Created by: drose (04Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "indexParameters.h" - -// User parameters -int max_index_size_array[2] = { 700, 700 }; -int thumb_size_array[2] = { 150, 150 }; - -int thumb_caption_height = 12; -int caption_font_size = 12; - -int thumb_space_array[2] = { 12, 12 }; - -double frame_reduction_factor = 0.75; -int frame_outer_bevel = 2; -int frame_inner_bevel = 1; - -int reduced_size_array[2] = { 800, 700 }; - -Filename archive_dir; - -Filename prev_icon; -Filename next_icon; -Filename up_icon; -Filename movie_icon; -Filename sound_icon; - -//////////////////////////////////////////////////////////////////// -// Function: get_movie_icon -// Description: Reads the movie icon filename and returns it as an -// image, if possible. Returns a valid image if -// successful, an invalid one otherwise. -//////////////////////////////////////////////////////////////////// -const PNMImage & -get_movie_icon() { - static PNMImage movie_icon_image; - static bool got_image = false; - - if (!got_image) { - if (!movie_icon.empty()) { - Filename icon_filename(archive_dir, movie_icon); - nout << "Reading " << icon_filename << "\n"; - movie_icon_image.read(icon_filename); - } - got_image = true; - } - - return movie_icon_image; -} - -//////////////////////////////////////////////////////////////////// -// Function: get_sound_icon -// Description: Reads the sound icon filename and returns it as an -// image, if possible. Returns a valid image if -// successful, an invalid one otherwise. -//////////////////////////////////////////////////////////////////// -const PNMImage & -get_sound_icon() { - static PNMImage sound_icon_image; - static bool got_image = false; - - if (!got_image) { - if (!sound_icon.empty()) { - Filename icon_filename(archive_dir, sound_icon); - nout << "Reading " << icon_filename << "\n"; - sound_icon_image.read(icon_filename); - } - got_image = true; - } - - return sound_icon_image; -} - -bool force_regenerate = false; -bool format_rose = false; -bool sort_date = false; -bool dummy_mode = false; -bool draw_frames = false; -bool omit_roll_headers = false; -DSearchPath cm_search; -bool omit_full_links = false; -bool omit_complete = false; -bool caption_frame_numbers = false; - - -// Computed parameters -int thumb_count_x; -int thumb_count_y; -int max_thumbs; -int actual_index_width; - -int thumb_interior_width; -int thumb_interior_height; - -//////////////////////////////////////////////////////////////////// -// Function: finalize_parameters -// Description: This is called after all user parameters have been -// changed, to do whatever computations are required for -// the other parameters that are based on the user -// parameters. -//////////////////////////////////////////////////////////////////// -void -finalize_parameters() { - thumb_count_x = - (max_index_width - thumb_x_space) / (thumb_width + thumb_x_space); - thumb_count_y = - (max_index_height - thumb_y_space) / (thumb_height + thumb_caption_height + thumb_y_space); - - max_thumbs = thumb_count_x * thumb_count_y; - - actual_index_width = thumb_x_space + thumb_count_x * (thumb_width + thumb_x_space); - - if (draw_frames) { - thumb_interior_width = (int)(thumb_width * frame_reduction_factor + 0.5); - thumb_interior_height = (int)(thumb_height * frame_reduction_factor + 0.5); - } else { - thumb_interior_width = thumb_width; - thumb_interior_height = thumb_height; - } -} - -//////////////////////////////////////////////////////////////////// -// Function: compose_href -// Description: Combines a user-supplied prefix with a relative -// directory to generate the appropriate href to the -// file. -// -// rel_dir is the relative path to archive_dir. -// user_prefix is the string the user indicated as the -// relative or absolute path to the file's parent -// directory from archive_dir. basename is the name -// of the file, or empty if the filename is part of -// user_prefix. -//////////////////////////////////////////////////////////////////// -Filename -compose_href(const Filename &rel_dir, const Filename &user_prefix, - const Filename &basename) { - Filename result; - - if (user_prefix.empty()) { - result = rel_dir; - - } else { - // Check to see if the user prefix begins with a URL designator, - // like http:// or ftp://. - size_t ui = 0; - while (ui < user_prefix.length() && isalpha(user_prefix[ui])) { - ui++; - } - bool is_url = (user_prefix.get_fullpath().substr(ui, 3) == "://"); - - if (!is_url && user_prefix.is_local()) { - Filename rel_user_dir(rel_dir, user_prefix); - result = rel_user_dir; - result.standardize(); - - } else { - result = user_prefix; - } - } - - if (basename.empty()) { - return result; - } else { - return Filename(result, basename); - } -} - -//////////////////////////////////////////////////////////////////// -// Function: escape_html -// Description: Returns the input string with all invalid characters -// for HTML code replaced by their HTML equivalents. -//////////////////////////////////////////////////////////////////// -string -escape_html(const string &input) { - static const struct { - const char *name; - int code; - } tokens[] = { - { "amp", '&' }, { "lt", '<' }, { "gt", '>' }, { "quot", '"' }, - { "nbsp", 160 }, - - { "iexcl", 161 }, { "cent", 162 }, { "pound", 163 }, { "curren", 164 }, - { "yen", 165 }, { "brvbar", 166 }, { "brkbar", 166 }, { "sect", 167 }, - { "uml", 168 }, { "die", 168 }, { "copy", 169 }, { "ordf", 170 }, - { "laquo", 171 }, { "not", 172 }, { "shy", 173 }, { "reg", 174 }, - { "macr", 175 }, { "hibar", 175 }, { "deg", 176 }, { "plusmn", 177 }, - { "sup2", 178 }, { "sup3", 179 }, { "acute", 180 }, { "micro", 181 }, - { "para", 182 }, { "middot", 183 }, { "cedil", 184 }, { "sup1", 185 }, - { "ordm", 186 }, { "raquo", 187 }, { "frac14", 188 }, { "frac12", 189 }, - { "frac34", 190 }, { "iquest", 191 }, { "Agrave", 192 }, { "Aacute", 193 }, - { "Acirc", 194 }, { "Atilde", 195 }, { "Auml", 196 }, { "Aring", 197 }, - { "AElig", 198 }, { "Ccedil", 199 }, { "Egrave", 200 }, { "Eacute", 201 }, - { "Ecirc", 202 }, { "Euml", 203 }, { "Igrave", 204 }, { "Iacute", 205 }, - { "Icirc", 206 }, { "Iuml", 207 }, { "ETH", 208 }, { "Dstrok", 208 }, - { "Ntilde", 209 }, { "Ograve", 210 }, { "Oacute", 211 }, { "Ocirc", 212 }, - { "Otilde", 213 }, { "Ouml", 214 }, { "times", 215 }, { "Oslash", 216 }, - { "Ugrave", 217 }, { "Uacute", 218 }, { "Ucirc", 219 }, { "Uuml", 220 }, - { "Yacute", 221 }, { "THORN", 222 }, { "szlig", 223 }, { "agrave", 224 }, - { "aacute", 225 }, { "acirc", 226 }, { "atilde", 227 }, { "auml", 228 }, - { "aring", 229 }, { "aelig", 230 }, { "ccedil", 231 }, { "egrave", 232 }, - { "eacute", 233 }, { "ecirc", 234 }, { "euml", 235 }, { "igrave", 236 }, - { "iacute", 237 }, { "icirc", 238 }, { "iuml", 239 }, { "eth", 240 }, - { "ntilde", 241 }, { "ograve", 242 }, { "oacute", 243 }, { "ocirc", 244 }, - { "otilde", 245 }, { "ouml", 246 }, { "divide", 247 }, { "oslash", 248 }, - { "ugrave", 249 }, { "uacute", 250 }, { "ucirc", 251 }, { "uuml", 252 }, - { "yacute", 253 }, { "thorn", 254 }, { "yuml", 255 }, - - { NULL, 0 }, - }; - - string result; - for (string::const_iterator ii = input.begin(); - ii != input.end(); - ++ii) { - int code = (unsigned char)(*ii); - bool found_match = false; - for (int i = 0; !found_match && tokens[i].name != NULL; i++) { - if (code == tokens[i].code) { - result += '&'; - result += tokens[i].name; - result += ';'; - found_match = true; - } - } - - if (!found_match) { - result += (*ii); - } - } - - return result; -} - -//////////////////////////////////////////////////////////////////// -// Function: copy_file -// Description: Copies a file into the named directory, if it does -// not already exist there. Returns true if -// successful, false otherwise. -//////////////////////////////////////////////////////////////////// -bool -copy_file(const Filename &source_file, const Filename &dest_dir) { - Filename dest_file = source_file; - dest_file.set_dirname(dest_dir); - - if (dest_file.exists()) { - return true; - } - - if (!source_file.exists()) { - return false; - } - -#if defined(HAVE_UNISTD_H) && !defined(WIN32) - // Try to make a hard link. - string os_source_file = source_file.to_os_specific(); - string os_dest_file = dest_file.to_os_specific(); - if (link(os_source_file.c_str(), os_dest_file.c_str()) == 0) { - cerr << "Linked " << source_file << " to " << dest_file << "\n"; - return true; - } -#endif - - ifstream in; - if (!source_file.open_read(in)) { - cerr << "Unable to read " << source_file << "\n"; - return false; - } - ofstream out; - if (!dest_file.open_write(out)) { - cerr << "Unable to write " << dest_file << "\n"; - return false; - } - - cerr << "Copying " << source_file << " to " << dest_file << "\n"; - - int c = in.get(); - while (in && !in.eof()) { - out.put(c); - c = in.get(); - } - - return in.eof(); -} diff --git a/pandaapp/src/indexify/indexParameters.h b/pandaapp/src/indexify/indexParameters.h deleted file mode 100644 index 1cf74ad53c..0000000000 --- a/pandaapp/src/indexify/indexParameters.h +++ /dev/null @@ -1,154 +0,0 @@ -// Filename: indexParameters.h -// Created by: drose (04Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#ifndef INDEXPARAMETERS_H -#define INDEXPARAMETERS_H - -#include "pandatoolbase.h" - -#include "filename.h" -#include "dSearchPath.h" -#include "pnmImage.h" - -// Some of these constants may be modified by command-line parameters -// from the user. - -// The maximum size of the index image. It will shrink vertically to -// fit the images it contains, and it will shrink horizontally to fit -// a complete row of images (even if it does not contain a complete -// row). It will never be larger than this. -extern int max_index_size_array[2]; -#define max_index_width (max_index_size_array[0]) -#define max_index_height (max_index_size_array[1]) - -// The size of the individual thumbnail images, including the frames -// (if present). Thumbnail images are scaled to fit within this box. -extern int thumb_size_array[2]; -#define thumb_width (thumb_size_array[0]) -#define thumb_height (thumb_size_array[1]) - -// The total number of pixels reserved for the caption under each -// thumbnail image. This is the caption_font_size plus whatever -// spacing should be included between the caption and the image. -extern int thumb_caption_height; - -// The size in pixels of the caption font. This depends on the point -// size of the font as reported by FreeType, so the actual height of -// the letters might be slightly lower or higher than this, depending -// on the font. -extern int caption_font_size; - -// The amount of space, in pixels, between each two neighboring -// thumbnail images, and around the overall index image. -extern int thumb_space_array[2]; -#define thumb_x_space (thumb_space_array[0]) -#define thumb_y_space (thumb_space_array[1]) - -// The ratio by which the thumbnail images are reduced further when -// frames are drawn, to allow room for a frame that resembles a slide -// mount. -extern double frame_reduction_factor; - -// The number of pixels of thickness to draw for the frames' outer -// bevels and inner bevels, respectively. -extern int frame_outer_bevel; -extern int frame_inner_bevel; - -// The size of the reduced images on the individual image pages. The -// source image will be scaled to fit within this rectangle. -extern int reduced_size_array[2]; -#define reduced_width (reduced_size_array[0]) -#define reduced_height (reduced_size_array[1]) - -// The directory at the root of the output hierarchy (or as specified -// by -a on the command line). -extern Filename archive_dir; - -// The filenames (or URLS) to the icon images for navigating the -// individual image pages. -extern Filename prev_icon; -extern Filename next_icon; -extern Filename up_icon; -extern Filename movie_icon; -extern Filename sound_icon; - -const PNMImage &get_movie_icon(); -const PNMImage &get_sound_icon(); - -// True to regenerate every image, whether it appears to need it or -// not. -extern bool force_regenerate; - -// True to use the Rose formatting convention for roll directory names. -extern bool format_rose; - -// True to sort roll directory names by date. Useful only with -r. -extern bool sort_date; - -// True to place dummy thumbnails instead of loading actual images. -extern bool dummy_mode; - -// True to draw frames (slide mounts) around each thumbnail image. -extern bool draw_frames; - -// True to avoid introducing each roll directory on the index page -// with its own little header. This also ignored the roll.cm file if -// it exists. -extern bool omit_roll_headers; -extern DSearchPath cm_search; - -// True to omit links to the full-size source images. -extern bool omit_full_links; - -// True to omit complete.htm -extern bool omit_complete; - -// True to caption photos with just a frame number instead of the -// whole image basename. This only works if the photo image filenames -// consist of the roll directory name concatenated with a frame number. -extern bool caption_frame_numbers; - - -void finalize_parameters(); - - - -// The following parameters are all computed based on the above. - -// The number of thumbnail images that fit across an index image, -// horizontally and vertically. -extern int thumb_count_x; -extern int thumb_count_y; - -// The total number of thumbnail images within each index image. -extern int max_thumbs; - -// The number of pixels wide each index image will actually be, based -// on thumb_count_x. -extern int actual_index_width; - -// The actual size of the rectangle each thumbnail image must be -// scaled into, accounting for the presence of a frame. -extern int thumb_interior_width; -extern int thumb_interior_height; - -Filename compose_href(const Filename &rel_dir, const Filename &user_prefix, - const Filename &basename = Filename()); - -string escape_html(const string &input); -bool copy_file(const Filename &source_file, const Filename &dest_dir); - -#endif - - diff --git a/pandaapp/src/indexify/indexify.cxx b/pandaapp/src/indexify/indexify.cxx deleted file mode 100644 index 88460773ae..0000000000 --- a/pandaapp/src/indexify/indexify.cxx +++ /dev/null @@ -1,738 +0,0 @@ -// Filename: indexify.cxx -// Created by: drose (03Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "indexify.h" -#include "rollDirectory.h" -#include "pnotify.h" -#include "pnmTextMaker.h" -#include "default_font.h" -#include "default_index_icons.h" -#include "indexParameters.h" -#include "string_utils.h" - -#include - -//////////////////////////////////////////////////////////////////// -// Function: Indexify::Constructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -Indexify:: -Indexify() { - clear_runlines(); - add_runline("[opts] roll1-dir roll2-dir [roll3-dir ...]"); - add_runline("[opts] full/*"); - - set_program_description - ("This program reads a collection of directories containing photo " - "archives (typically JPEG files), and will generate a number of " - "thumbnail images and a series of HTML pages to browse them. It is " - "especially useful in preparation for burning the photo archives to " - "CD.\n\n" - - "A number of directories is named on the command line; each " - "directory must contain a number of image files, and all directories " - "should be within the same parent directory. Each directory is " - "considered a \"roll\", which may or may not correspond to a physical " - "roll of film, and the photos within each directory are grouped " - "correspondingly on the generated HTML pages. One common special case " - "is in which all the roll directories are found in the subdirectory " - "named \"full\" (e.g., the second example above) or \"reduced\". This " - "keeps the root directory nice and clean.\n\n" - - "If a file exists by the same name as an image file but with the " - "extension \"cm\", that file is taken to be a HTML comment about that " - "particular image and is inserted the HTML page for that image. " - "Similarly, if there is a file within a roll directory with the same " - "name as the directory itself (but with the extension \"cm\"), that file " - "is inserted into the front page to introduce that particular roll. " - "Finally, a file with the name of the directory, but with the extension " - "\"ds\" may contain a brief one-line description of the directory, for " - "the toplevel index page.\n\n" - - "Normally, all image files with the specified extension (normally " - "\"jpg\") within a roll directory are included in the index, and sorted " - "into alphabetical (or numerical) order. If you wish to specify a " - "different order, or use only a subset of the images in a directory, " - "create a file in the roll directory with the same name as the " - "directory itself, and the extension \"ls\". This file should " - "simply list the filenames (with or without extension) within the " - "roll directory in the order they should be listed. If the ls " - "file exists but is empty, it indicates that the files should be " - "listed in reverse order, as from a camera that loads its film " - "upside-down."); - - add_option - ("t", "title", 0, - "Specifies the title to give to the front HTML page.", - &Indexify::dispatch_string, NULL, &_front_title); - - add_option - ("a", "archive-dir", 0, - "Write the generated files to the indicated directory, instead of " - "the directory above roll1-dir.", - &Indexify::dispatch_filename, NULL, &archive_dir); - - add_option - ("r", "relative-dir", 0, - "When -a is specified to place the generated html files in a directory " - "other than the default, you may need " - "to specify how the html files will address the roll directories. This " - "parameter specifies the relative path to the directory above the roll " - "directories, from the directory named by -a.", - &Indexify::dispatch_filename, NULL, &_roll_dir_root); - - add_option - ("f", "", 0, - "Forces the regeneration of all reduced and thumbnail images, even if " - "image files already exist that seem to be newer than the source " - "image files.", - &Indexify::dispatch_none, &force_regenerate); - - add_option - ("r", "", 0, - "Specifies that roll directory names are encoded using the Rose " - "convention of six digits: mmyyss, where mm and yy are the month and " - "year, and ss is a sequence number of the roll within the month. This " - "name will be reformatted to m-yy/s for output.", - &Indexify::dispatch_none, &format_rose); - - add_option - ("s", "", 0, - "When used in conjunction with -r, requests sorting of the roll " - "directory names by date.", - &Indexify::dispatch_none, &sort_date); - - add_option - ("d", "", 0, - "Run in \"dummy\" mode; don't load any images, but instead just " - "draw an empty box indicating where the thumbnails will be.", - &Indexify::dispatch_none, &dummy_mode); - - add_option - ("slide", "", 0, - "Draw a frame, like a slide mount, around each thumbnail image.", - &Indexify::dispatch_none, &draw_frames); - - add_option - ("pe", "extension", 0, - "Specifies the filename extension (without a leading dot) to identify " - "photo files within the roll directories. This is normally jpg.", - &Indexify::dispatch_string, NULL, &_photo_extension); - - add_option - ("me", "extension", 0, - "Specifies the filename extension (without a leading dot) to identify " - "movie files within the roll directories. This is normally mov. If " - "a file exists with the same name as a given photo but with this " - "extension, it is taken to be a movie associated with the photo, and " - "a link will be generated to play the movie.", - &Indexify::dispatch_string, NULL, &_movie_extension); - - add_option - ("se", "extension", 0, - "Specifies the filename extension (without a leading dot) to identify " - "sound files within the roll directories. This is normally mp3. If " - "a file exists with the same name as a given photo but with this " - "extension, it is taken to be a sound clip associated with the photo, " - "and a link will be generated to play the clip.", - &Indexify::dispatch_string, NULL, &_sound_extension); - - add_option - ("i", "", 0, - "Indicates that default navigation icon images should be generated " - "into a directory called \"icons\" which will be created within the " - "directory named by -a. This is meaningful only if -iprev, -inext, " - "-iup, -imovie, and -isound are not explicitly specified.", - &Indexify::dispatch_none, &_generate_icons); - - add_option - ("omit-rh", "", 0, - "Omits roll headers introducing each roll directory, including any " - "headers defined in roll.cm files.", - &Indexify::dispatch_none, &omit_roll_headers); - - add_option - ("cmdir", "director", 0, - "Searches in the named directory for .cm files before searching within " - "the source archive. This option may be repeated.", - &Indexify::dispatch_search_path, NULL, &cm_search); - - add_option - ("omit-full", "", 0, - "Omits links to the full-size images.", - &Indexify::dispatch_none, &omit_full_links); - - add_option - ("omit-complete", "", 0, - "Omits the complete.htm index file that lists all thumbnails at once.", - &Indexify::dispatch_none, &omit_complete); - - add_option - ("caption", "size[,spacing]", 0, - "Specifies the font size in pixels of the thumbnail captions. If the " - "optional spacing parameter is included, it is the number of pixels " - "below each thumbnail that the caption should be placed. Specify " - "-caption 0 to disable thumbnail captions.", - &Indexify::dispatch_caption, NULL); - - add_option - ("fnum", "", 0, - "Writes the frame number of each thumbnail image into the caption " - "on the index page, instead of the image filename. This only works " - "if the photo image filenames consist of the roll directory name " - "concatenated with a frame number.", - &Indexify::dispatch_none, &caption_frame_numbers); - - add_option - ("font", "fontname", 0, - "Specifies the filename of the font to use to generate the thumbnail " - "captions.", - &Indexify::dispatch_filename, NULL, &_font_filename); - - add_option - ("fontaa", "factor", 0, - "Specifies a scale factor to apply to the fonts used for captioning " - "when generating text for the purpose of antialiasing the fonts a " - "little better than FreeType can do by itself. The letters are " - "generated large and then scaled to their proper size. Normally this " - "should be a number in the range 3 to 4 for best effect.", - &Indexify::dispatch_double, NULL, &_font_aa_factor); - - add_option - ("thumb", "x,y", 0, - "Specifies the size in pixels of the thumbnail images.", - &Indexify::dispatch_int_pair, NULL, &thumb_width); - - add_option - ("reduced", "x,y", 0, - "Specifies the size in pixels of reduced images (images presented after " - "the first click on a thumbnail).", - &Indexify::dispatch_int_pair, NULL, &reduced_width); - - add_option - ("space", "x,y", 0, - "Specifies the x,y spacing between thumbnail images, in pixels.", - &Indexify::dispatch_int_pair, NULL, &thumb_x_space); - - add_option - ("index", "x,y", 0, - "Specifies the size in pixels of the index images (the images that " - "contain an index of thumbnails).", - &Indexify::dispatch_int_pair, NULL, &max_index_width); - - add_option - ("iprev", "filename", 0, - "Specifies the relative pathname from the archive directory (or " - "absolute pathname) to the \"previous\" icon.", - &Indexify::dispatch_filename, NULL, &prev_icon); - - add_option - ("inext", "filename", 0, - "Specifies the relative pathname from the archive directory (or " - "absolute pathname) to the \"next\" icon.", - &Indexify::dispatch_filename, NULL, &next_icon); - - add_option - ("iup", "filename", 0, - "Specifies the relative pathname from the archive directory (or " - "absolute pathname) to the \"up\" icon.", - &Indexify::dispatch_filename, NULL, &up_icon); - - add_option - ("imovie", "filename", 0, - "Specifies the relative pathname from the archive directory (or " - "absolute pathname) to the \"movie\" icon. This is used only if " - "there are one or more movie files found in the directory.", - &Indexify::dispatch_filename, NULL, &movie_icon); - - add_option - ("isound", "filename", 0, - "Specifies the relative pathname from the archive directory (or " - "absolute pathname) to the \"sound\" icon. This is used only if " - "there are one or more sound files found in the directory.", - &Indexify::dispatch_filename, NULL, &sound_icon); - - add_option - ("copyreduced", "", 0, - "Instead of generating index files, copy key files (such as " - "*.cm, *.ds) from the full image directory into the reduced " - "image directory, so that the full image directory may be removed " - "for generating a reduced-size archive.", - &Indexify::dispatch_none, &_copy_reduced); - - _photo_extension = "jpg"; - _movie_extension = "mov"; - _sound_extension = "mp3"; - _text_maker = (PNMTextMaker *)NULL; - _font_aa_factor = 4.0; -} - -//////////////////////////////////////////////////////////////////// -// Function: Indexify::Destructor -// Access: Public, Virtual -// Description: -//////////////////////////////////////////////////////////////////// -Indexify:: -~Indexify() { - RollDirs::iterator di; - for (di = _roll_dirs.begin(); di != _roll_dirs.end(); ++di) { - RollDirectory *roll_dir = (*di); - delete roll_dir; - } - - if (_text_maker != (PNMTextMaker *)NULL) { - delete _text_maker; - } -} - -//////////////////////////////////////////////////////////////////// -// Function: Indexify::handle_args -// Access: Protected, Virtual -// Description: Does something with the additional arguments on the -// command line (after all the -options have been -// parsed). Returns true if the arguments are good, -// false otherwise. -//////////////////////////////////////////////////////////////////// -bool Indexify:: -handle_args(ProgramBase::Args &args) { - if (args.empty()) { - nout << "You must specify the roll directories containing archive photos on the command line.\n"; - return false; - } - - Args::const_iterator ai; - for (ai = args.begin(); ai != args.end(); ++ai) { - Filename filename = Filename::from_os_specific(*ai); - filename.standardize(); - if (filename.is_directory()) { - string basename = filename.get_basename(); - if (basename == "icons" || basename == "html" || - basename == "reduced" || basename == "thumbs") { - nout << "Ignoring " << filename << "; indexify-generated directory.\n"; - - } else { - RollDirectory *roll_dir = new RollDirectory(filename); - _roll_dirs.push_back(roll_dir); - } - - } else if (filename.exists()) { - nout << "Ignoring " << filename << "; not a directory.\n"; - - } else { - nout << filename << " does not exist.\n"; - return false; - } - } - - return true; -} - -class SortRollDirs { -public: - bool operator () (const RollDirectory *a, const RollDirectory *b) const { - return a->sort_date_before(*b); - } -}; - -//////////////////////////////////////////////////////////////////// -// Function: Indexify::post_command_line -// Access: Protected, Virtual -// Description: This is called after the command line has been -// completely processed, and it gives the program a -// chance to do some last-minute processing and -// validation of the options and arguments. It should -// return true if everything is fine, false if there is -// an error. -//////////////////////////////////////////////////////////////////// -bool Indexify:: -post_command_line() { - if (_roll_dirs.empty()) { - nout << "No roll directories.\n"; - return false; - } - - if (archive_dir.empty()) { - // Choose a default archive directory, above the first roll directory. - archive_dir = _roll_dirs.front()->get_dir().get_dirname(); - string parent_dirname = archive_dir.get_basename(); - if (parent_dirname == "full" || parent_dirname == "reduced") { - // As a special case, if the subdirectory name is "full" or - // "reduced", use the directory above that. - archive_dir = archive_dir.get_dirname(); - } - if (archive_dir.empty()) { - archive_dir = "."; - } - } - archive_dir.standardize(); - - if (!_roll_dir_root.empty()) { - _roll_dir_root.standardize(); - } - - // Sort the roll directories, if specified. - if (format_rose && sort_date) { - sort(_roll_dirs.begin(), _roll_dirs.end(), SortRollDirs()); - } - - // Update the next/prev pointers in each roll directory so we can - // browse from one to the other. - RollDirectory *prev_roll_dir = (RollDirectory *)NULL; - RollDirs::iterator di; - for (di = _roll_dirs.begin(); di != _roll_dirs.end(); ++di) { - RollDirectory *roll_dir = (*di); - if (prev_roll_dir != (RollDirectory *)NULL) { - roll_dir->_prev = prev_roll_dir; - prev_roll_dir->_next = roll_dir; - } - prev_roll_dir = roll_dir; - } - - if (_front_title.empty()) { - // Supply a default title. - if (_roll_dirs.size() == 1) { - _front_title = _roll_dirs.front()->get_name(); - } else { - _front_title = _roll_dirs.front()->get_name() + " through " + _roll_dirs.back()->get_name(); - } - } - - if (caption_font_size != 0) { - if (!_font_filename.empty()) { - _text_maker = new PNMTextMaker(_font_filename, 0); - if (!_text_maker->is_valid()) { - delete _text_maker; - _text_maker = (PNMTextMaker *)NULL; - } - } - - if (_text_maker == (PNMTextMaker *)NULL) { - _text_maker = new PNMTextMaker((const char *)default_font, - default_font_size, 0); - if (!_text_maker->is_valid()) { - nout << "Unable to open default font.\n"; - delete _text_maker; - _text_maker = (PNMTextMaker *)NULL; - } - } - - if (_text_maker != (PNMTextMaker *)NULL) { - _text_maker->set_scale_factor(_font_aa_factor); - _text_maker->set_pixel_size(caption_font_size); - _text_maker->set_align(PNMTextMaker::A_center); - } - } - - if (_generate_icons) { - if (prev_icon.empty()) { - prev_icon = Filename("icons", default_left_icon_filename); - Filename icon_filename(archive_dir, prev_icon); - - if (force_regenerate || !icon_filename.exists()) { - nout << "Generating " << icon_filename << "\n"; - icon_filename.make_dir(); - icon_filename.set_binary(); - - ofstream output; - if (!icon_filename.open_write(output)) { - nout << "Unable to write to " << icon_filename << "\n"; - exit(1); - } - output.write((const char *)default_left_icon, default_left_icon_len); - } - } - if (next_icon.empty()) { - next_icon = Filename("icons", default_right_icon_filename); - Filename icon_filename(archive_dir, next_icon); - if (force_regenerate || !icon_filename.exists()) { - nout << "Generating " << icon_filename << "\n"; - icon_filename.make_dir(); - icon_filename.set_binary(); - - ofstream output; - if (!icon_filename.open_write(output)) { - nout << "Unable to write to " << icon_filename << "\n"; - exit(1); - } - output.write((const char *)default_right_icon, default_right_icon_len); - } - } - if (up_icon.empty()) { - up_icon = Filename("icons", default_up_icon_filename); - Filename icon_filename(archive_dir, up_icon); - if (force_regenerate || !icon_filename.exists()) { - nout << "Generating " << icon_filename << "\n"; - icon_filename.make_dir(); - icon_filename.set_binary(); - - ofstream output; - if (!icon_filename.open_write(output)) { - nout << "Unable to write to " << icon_filename << "\n"; - exit(1); - } - output.write((const char *)default_up_icon, default_up_icon_len); - } - } - if (movie_icon.empty()) { - movie_icon = Filename("icons", default_movie_icon_filename); - Filename icon_filename(archive_dir, movie_icon); - if (force_regenerate || !icon_filename.exists()) { - nout << "Generating " << icon_filename << "\n"; - icon_filename.make_dir(); - icon_filename.set_binary(); - - ofstream output; - if (!icon_filename.open_write(output)) { - nout << "Unable to write to " << icon_filename << "\n"; - exit(1); - } - output.write((const char *)default_movie_icon, default_movie_icon_len); - } - } - if (sound_icon.empty()) { - sound_icon = Filename("icons", default_sound_icon_filename); - Filename icon_filename(archive_dir, sound_icon); - if (force_regenerate || !icon_filename.exists()) { - nout << "Generating " << icon_filename << "\n"; - icon_filename.make_dir(); - icon_filename.set_binary(); - - ofstream output; - if (!icon_filename.open_write(output)) { - nout << "Unable to write to " << icon_filename << "\n"; - exit(1); - } - output.write((const char *)default_sound_icon, default_sound_icon_len); - } - } - } - - finalize_parameters(); - - - return ProgramBase::post_command_line(); -} - - -//////////////////////////////////////////////////////////////////// -// Function: Indexify::dispatch_caption -// Access: Protected, Static -// Description: Dispatch function for the -caption parameter, which -// takes either one or two numbers separated by a comma, -// representing the caption font size and the optional -// pixel spacing of the caption under the image. -//////////////////////////////////////////////////////////////////// -bool Indexify:: -dispatch_caption(const string &opt, const string &arg, void *) { - vector_string words; - tokenize(arg, words, ","); - - int caption_spacing = 0; - - bool okflag = false; - if (words.size() == 1) { - okflag = - string_to_int(words[0], caption_font_size); - - } else if (words.size() == 2) { - okflag = - string_to_int(words[0], caption_font_size) && - string_to_int(words[1], caption_spacing); - } - - if (!okflag) { - nout << "-" << opt - << " requires one or two integers separated by a comma.\n"; - return false; - } - - thumb_caption_height = caption_font_size + caption_spacing; - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: Indexify::run -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -void Indexify:: -run() { - bool all_ok = true; - - RollDirs::iterator di; - for (di = _roll_dirs.begin(); di != _roll_dirs.end(); ++di) { - RollDirectory *roll_dir = (*di); - if (!roll_dir->scan(_photo_extension, _movie_extension, _sound_extension)) { - nout << "Unable to read " << *roll_dir << "\n"; - all_ok = false; - } - roll_dir->collect_index_images(); - } - - if (!all_ok) { - exit(1); - } - - if (_copy_reduced) { - do_copy_reduced(); - } else { - do_generate_images(); - } -} - -//////////////////////////////////////////////////////////////////// -// Function: Indexify::do_generate_images -// Access: Public -// Description: The main work function. Generates all of the reduced -// images and the html code. -//////////////////////////////////////////////////////////////////// -void Indexify:: -do_generate_images() { - // First, generate all the images. - RollDirs::iterator di; - for (di = _roll_dirs.begin(); di != _roll_dirs.end(); ++di) { - RollDirectory *roll_dir = (*di); - if (!roll_dir->generate_images(archive_dir, _text_maker)) { - nout << "Failure.\n"; - exit(1); - } - } - - // Then go back and generate the HTML. - for (di = _roll_dirs.begin(); di != _roll_dirs.end(); ++di) { - RollDirectory *roll_dir = (*di); - if (!roll_dir->generate_html(archive_dir, _roll_dir_root)) { - nout << "Failure.\n"; - exit(1); - } - } - - if (!omit_complete) { - // Generate the complete index that browses all the roll directories - // at once. - Filename complete_filename(archive_dir, "html/complete.htm"); - nout << "Generating " << complete_filename << "\n"; - complete_filename.set_text(); - ofstream complete_html; - if (!complete_filename.open_write(complete_html)) { - nout << "Unable to write to " << complete_filename << "\n"; - exit(1); - } - - complete_html - << "\n" - << "\n" - << "" << _front_title << "\n" - << "\n" - << "\n" - << "

" << _front_title << "

\n"; - - for (di = _roll_dirs.begin(); di != _roll_dirs.end(); ++di) { - RollDirectory *roll_dir = (*di); - complete_html - << roll_dir->get_comment_html() - << roll_dir->get_index_html(); - } - - complete_html << "

\n"; - if (!up_icon.empty()) { - // Use an icon to go up. - Filename up_icon_href = compose_href("..", up_icon); - complete_html - << "\"return\n"; - } else { - // No up icon; use text to go up. - complete_html - << "
Return to index\n"; - } - complete_html << "

\n"; - - complete_html - << "\n" - << "\n"; - } - - // And finally, generate the index HTML file that sits on the top of - // all of this. - Filename index_filename(archive_dir, "index.htm"); - nout << "Generating " << index_filename << "\n"; - index_filename.set_text(); - ofstream index_html; - if (!index_filename.open_write(index_html)) { - nout << "Unable to write to " << index_filename << "\n"; - exit(1); - } - - index_html - << "\n" - << "\n" - << "" << _front_title << "\n" - << "\n" - << "\n" - << "

" << _front_title << "

\n" - << "\n"; - - if (!omit_complete) { - index_html - << "(complete archive)\n"; - } - - index_html - << "\n" - << "\n"; -} - -//////////////////////////////////////////////////////////////////// -// Function: Indexify::do_copy_reduced -// Access: Public -// Description: The main work function in -copyreduced mode. Simply -// copies key files from the full directory to the -// reduced directory. -//////////////////////////////////////////////////////////////////// -void Indexify:: -do_copy_reduced() { - RollDirs::iterator di; - for (di = _roll_dirs.begin(); di != _roll_dirs.end(); ++di) { - RollDirectory *roll_dir = (*di); - if (!roll_dir->copy_reduced(archive_dir)) { - nout << "Failure.\n"; - exit(1); - } - } -} - - -int main(int argc, char *argv[]) { - Indexify prog; - prog.parse_command_line(argc, argv); - prog.run(); - return 0; -} diff --git a/pandaapp/src/indexify/indexify.h b/pandaapp/src/indexify/indexify.h deleted file mode 100644 index 49a980ef1e..0000000000 --- a/pandaapp/src/indexify/indexify.h +++ /dev/null @@ -1,66 +0,0 @@ -// Filename: indexify.h -// Created by: drose (03Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#ifndef INDEXIFY_H -#define INDEXIFY_H - -#include "pandatoolbase.h" - -#include "programBase.h" -#include "filename.h" -#include "pvector.h" - -class RollDirectory; -class PNMTextMaker; - -//////////////////////////////////////////////////////////////////// -// Class : Indexify -// Description : A program to generate a series of thumbnail images -// and HTML pages to view a number of image files in an -// archive directory, before writing the archive to a -// permanent medium like a CD. -//////////////////////////////////////////////////////////////////// -class Indexify : public ProgramBase { -public: - Indexify(); - virtual ~Indexify(); - -protected: - virtual bool handle_args(Args &args); - virtual bool post_command_line(); - - static bool dispatch_caption(const string &opt, const string &arg, void *var); - -public: - void run(); - void do_generate_images(); - void do_copy_reduced(); - - string _front_title; - Filename _roll_dir_root; - string _photo_extension; - string _movie_extension; - string _sound_extension; - Filename _font_filename; - bool _generate_icons; - double _font_aa_factor; - bool _copy_reduced; - - typedef pvector RollDirs; - RollDirs _roll_dirs; - - PNMTextMaker *_text_maker; -}; - -#endif diff --git a/pandaapp/src/indexify/left.png b/pandaapp/src/indexify/left.png deleted file mode 100755 index 3b72aca091eb3696bd6f5f0852901b669d94f29e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmV+z0_XjSP)+SB{;p5NL*TTuowY|cwx4fsYwwa`>jF_N)jFoqWk8FB_U~F_% zU}sNSU_=n7?f?J*mPtfGRCwBbliiZ+AP9s3<$cMDRnmneY@&&7ASDFk=D_?7p$OQWM*_GUDlhN9S})kLgETiS?wCk zVy@T>&pr@z^4{As*%UZeXW#5Q7~s2G62RBlfasM`J89yrtrkJr-9&|oEH=@k8w$T2 z?O_wd+$lUUO|D~3Mq{w#Hd|-F`|BD)COwyl+!z-UP6dW)xzN>YTc``!NczYA&*f@- zCybkdp)v2N9;mtZ*VI<7Eug2erG7pCGkW$#;oO8en6}Tt3#_37_{`2}qlwAUn!t0O ajjeyZ&k^ay1i?K30000hxUrnS(hGeCiZC4lwIR;F_)ysb=Z3~8z+uN05GjsqGJR^l2_;+&tGo0?a` z5R#EutdLk#q5z~a^At)lQWXkHlX5bX6;kqZ6EpMl6ueW*fD#_1=^3fTIttk!UWP+z qW{F;Mey)x}aB4wGYHm_$k%FP6rK!)0FGqkjFnGH9xvXz+nhT z4*+985DaLo6Tku>01SpG#`q5qNF@{q0)xU8ZhKV#1W^DC1tVeKV?baC6oA2%5E!J| zR&{HX9?nlgQ{U!L#POWs_6{v0*Ih(^MdC)qumI#AtboD-LtzS+Ax2RV1cv?K`(9Q- zih*v0si|B0Y2pqQx9hFF29y=qU;T&EM2<}an+NdR_g6X=4LX-nF2XA$*r&E( zEO}}G676*%gLSK~ivHKc&NE}L*>V{;OIru=q#$_aNC_=ZKhi;hc(=jrQ&v~HXycHw`QA9R)y$6$>CU{?k0o7e(a$_=!%;=M@{zbtnXZp3f^_K?^Om4O;;7Z2seyMZr z53_?WYJi*6u^@7%*Zc;U*>kjR5l=Tx9&eEKx8?XTx^ z@6-R@akZ|HQ59IanvZq0U8V+GN^7of4Oz8gM`*pdazB%s5%_!UAJ$#lqI)>9TULI9 zfST9AR@UrHEc^utoF z%xkA+a8riwAQ`PXlr1YFR64YtZ>Rg*9L=p^V2_?m69mK<6AfImi=4`Nb>b7w(=LOV zCwwxbA9_z~&&GzGC-d9tv)B}6j-eOI3ySI1pCJwVwBG21Z`A3IGFjcZFZuZOfBr~~tchBJOLDZP zdh?(c@n8=O1BwifXGg=XBpKm?sDY%g(2gFp$!Z!%Rr6fN zAd9=^D}~q1{OGS3=V#C@B|YP1Ui4gQIdv*jz-O?d(Z2}$7#DsmpigL{)u$cUY;U|r zZG!K#(o5Z?3g79HfwEv)Y(eHV$a zf>WJHH>jHvAkx%(I?r&^1@+|IQp@cUUA@lW#1e^lTQcVF1{GAEWf7vE1yh`>csmZl z5^>TG9Gm~XD@I%)oBrI(N|Fy^`wkvUA8v{7d`&U+$F=M1xn}+-9*3JUu`u14RJyqJ zu1aPssddW?HZNw=;qg05g51=m9+H43OME=yZ&2mtojk08&#O0Pc^MVP#*7hOX+uJ7 zWnW60%P;PF@Gb>gKSP)GAEUNjJI?jOkNSRj%S_8exZt3Wz{tF`&2;PPk^A>F(}R+k zkH{&X#b0Tn?1#tmJe`8 zMO6Q?T3IkJ;(N!9ZsU+Wxc3z{&7a7@S(#`pl9YPRQy$HC>~ zR*G4)Lu{jR{z?IN7}I&v^?pBPcf)*NpZM9~rTK4x=K4j>#deF*^GVl*Sw7DqrP3q2 zBSxv}!SnGcQG*M8_xE@(eakIb{1=|ky5Y#fr&Ckp2ln}2nHM&vN<&XI?zyxnaFX78 zX`2y>{4|92Uf06YQWa;>FiLPLWujO;p1QX%;>QOnTFpNY8F7*a)9*D(bb?E^M~9v} zE$OYd=eqVvwT#IJ$Wi;_eca*%A2lXf$Zs5?NNuP##sgqTQwhROx|PGw<^|jPAd@%yiVZ zRjH+%EoJDCEvbZxyr{v%q)p+CW7`IVR(rYJ(MaK>_2zpIOAKM&#IEP6Y?uXEe74xs z==9Gt?OhpPeZHA(G+w&v9{W z2&(|eHR{v|dNPS=$ad_QH6OoCZ3+`Fu-ci0fn6*3fgPzcL0tphH~2zYh(#|xddbY! zZf~5O`=8wLVqOlCht_(IXvbrGtD}so;*Aqf9fYX8&3=tWf4(Vc=t7e|n&5+wKN<$D Gjr<#n)q5)d diff --git a/pandaapp/src/indexify/photo.cxx b/pandaapp/src/indexify/photo.cxx deleted file mode 100644 index 0375358f4f..0000000000 --- a/pandaapp/src/indexify/photo.cxx +++ /dev/null @@ -1,182 +0,0 @@ -// Filename: photo.cxx -// Created by: drose (03Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "photo.h" -#include "indexParameters.h" -#include "rollDirectory.h" - -static const char * const standard_movie_extensions[] = { - "mov", "avi", "mpg", "mp4", NULL -}; - -static const char * const standard_sound_extensions[] = { - "mp3", "wav", "ogg", NULL -}; - - - -//////////////////////////////////////////////////////////////////// -// Function: Photo::Constructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -Photo:: -Photo(RollDirectory *dir, const Filename &basename, - const string &movie_extension, const string &sound_extension) : - _dir(dir), - _basename(basename) -{ - _name = _basename.get_basename_wo_extension(); - _frame_number = _name; - if (caption_frame_numbers) { - const string &dirname = _dir->get_basename(); - - // If the initial prefix of the filename is the same as the roll - // directory, lop it off when caption_frame_numbers is in effect. - if (_frame_number.substr(0, dirname.length()) == dirname) { - _frame_number = _frame_number.substr(dirname.length()); - while (_frame_number.length() > 1 && _frame_number[0] == '0') { - _frame_number = _frame_number.substr(1); - } - } - } - - _full_x_size = 0; - _full_y_size = 0; - _reduced_x_size = 0; - _reduced_y_size = 0; - _has_reduced = false; - - _has_movie = false; - Filename movie_filename(_dir->get_dir(), _basename); - movie_filename.set_extension(movie_extension); - if (movie_filename.exists()) { - _movie = movie_filename.get_basename(); - _has_movie = true; - - } else { - const char * const *ext; - for (ext = standard_movie_extensions; *ext != NULL; ++ext) { - movie_filename.set_extension(*ext); - if (movie_filename.exists()) { - _movie = movie_filename.get_basename(); - _has_movie = true; - } - } - } - - _has_sound = false; - Filename sound_filename(_dir->get_dir(), _basename); - sound_filename.set_extension(sound_extension); - if (sound_filename.exists()) { - _sound = sound_filename.get_basename(); - _has_sound = true; - - } else { - const char * const *ext; - for (ext = standard_sound_extensions; *ext != NULL; ++ext) { - sound_filename.set_extension(*ext); - if (sound_filename.exists()) { - _sound = sound_filename.get_basename(); - _has_sound = true; - } - } - } - - _has_cm = false; - Filename cm_filename(_dir->get_dir(), _basename); - cm_filename.set_extension("cm"); - if (cm_filename.exists()) { - _cm = cm_filename.get_basename(); - _has_cm = true; - } -} - -//////////////////////////////////////////////////////////////////// -// Function: Photo::get_basename -// Access: Public -// Description: Returns the filename of the photo within its roll -// directory. -//////////////////////////////////////////////////////////////////// -const Filename &Photo:: -get_basename() const { - return _basename; -} - -//////////////////////////////////////////////////////////////////// -// Function: Photo::get_movie -// Access: Public -// Description: Returns the filename of the movie associated with the -// photo, if any. -//////////////////////////////////////////////////////////////////// -const Filename &Photo:: -get_movie() const { - return _movie; -} - -//////////////////////////////////////////////////////////////////// -// Function: Photo::get_sound -// Access: Public -// Description: Returns the filename of the sound clip associated -// with the photo, if any. -//////////////////////////////////////////////////////////////////// -const Filename &Photo:: -get_sound() const { - return _sound; -} - -//////////////////////////////////////////////////////////////////// -// Function: Photo::get_cm -// Access: Public -// Description: Returns the filename of the comment file associated -// with the photo, if any. -//////////////////////////////////////////////////////////////////// -const Filename &Photo:: -get_cm() const { - return _cm; -} - -//////////////////////////////////////////////////////////////////// -// Function: Photo::get_name -// Access: Public -// Description: Returns the name of the photo without its filename -// extension. -//////////////////////////////////////////////////////////////////// -const string &Photo:: -get_name() const { - return _name; -} - -//////////////////////////////////////////////////////////////////// -// Function: Photo::get_frame_number -// Access: Public -// Description: Returns the string describing the photo within the -// roll directory. This is usually the same string -// reported by get_name(), but it may be just the frame -// number if caption_frame_numbers is in effect. -//////////////////////////////////////////////////////////////////// -const string &Photo:: -get_frame_number() const { - return _frame_number; -} - -//////////////////////////////////////////////////////////////////// -// Function: Photo::output -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -void Photo:: -output(ostream &out) const { - out << _basename; -} diff --git a/pandaapp/src/indexify/photo.h b/pandaapp/src/indexify/photo.h deleted file mode 100644 index 6c7486dd35..0000000000 --- a/pandaapp/src/indexify/photo.h +++ /dev/null @@ -1,67 +0,0 @@ -// Filename: photo.h -// Created by: drose (03Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#ifndef PHOTO_H -#define PHOTO_H - -#include "pandatoolbase.h" - -#include "filename.h" - -class RollDirectory; - -//////////////////////////////////////////////////////////////////// -// Class : Photo -// Description : A single photo image within a roll directory. -//////////////////////////////////////////////////////////////////// -class Photo { -public: - Photo(RollDirectory *dir, const Filename &basename, - const string &movie_extension, const string &sound_extension); - - const Filename &get_basename() const; - const Filename &get_movie() const; - const Filename &get_sound() const; - const Filename &get_cm() const; - const string &get_name() const; - const string &get_frame_number() const; - - void output(ostream &out) const; - -public: - int _full_x_size; - int _full_y_size; - int _reduced_x_size; - int _reduced_y_size; - bool _has_reduced; - bool _has_movie; - bool _has_sound; - bool _has_cm; - -private: - RollDirectory *_dir; - Filename _basename; - Filename _movie; - Filename _sound; - Filename _cm; - string _name; - string _frame_number; -}; - -INLINE ostream &operator << (ostream &out, const Photo &p) { - p.output(out); - return out; -} - -#endif diff --git a/pandaapp/src/indexify/right.png b/pandaapp/src/indexify/right.png deleted file mode 100755 index a3b41b62652b87524610b07b48b4b6fe6ec178ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 526 zcmV+p0`dKcP)Sai$UuKe1c}4PWlZvU{;@gU zhx7bvFAm~q(`?Q$_`&ZpJTt@RSQ{9~GmLB?6q(aK9ByG`L;u`#G>SzJ^_mBbSt; zRsrvQ&Q6IEwqmxT^9xEl%juwa>wGb?&t9^9%3L9SRGf3^?;-03-@Bb};pg0Jvm%DS zS_O7;1pC~v%$dYcUWEdbkjOa~bF31+yKjE8`Nf)%6O+nZ;--eGRSB;P%S;Vt)uZ+K z?Y$|TO-0Q%v%M;zoUe`i(E435>K$3>`2kuh;lwm?E9~7%#WO7qhcQi9KRApCN}~(X zmhoO(8=B5ri&Qoq<7iHi90E7YDy2(}#C$^pmxI>Y7%%l6vZ^9zD3TXBbZh&))S+sM zf~pK2yLtQ#^)=E6T^kaZ9eZVAQyFN_b)SVlskKA-(Hg6X$$4*hZmcik7b))#-Ztw) Q>;M1&07*qoM6N<$f(Oa;jsO4v diff --git a/pandaapp/src/indexify/rollDirectory.cxx b/pandaapp/src/indexify/rollDirectory.cxx deleted file mode 100644 index 0dc1307be9..0000000000 --- a/pandaapp/src/indexify/rollDirectory.cxx +++ /dev/null @@ -1,878 +0,0 @@ -// Filename: rollDirectory.cxx -// Created by: drose (03Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "rollDirectory.h" -#include "photo.h" -#include "indexImage.h" -#include "indent.h" -#include "pnotify.h" -#include "string_utils.h" -#include "indexParameters.h" - -#include -#include - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::Constructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -RollDirectory:: -RollDirectory(const Filename &dir) : - _dir(dir) -{ - _prev = (RollDirectory *)NULL; - _next = (RollDirectory *)NULL; - - _basename = _dir.get_basename(); - if (format_rose) { - _name = format_basename(_basename); - } else { - _name = _basename; - } - - _got_ds_file = false; - _got_ls_file = false; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::Destructor -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -RollDirectory:: -~RollDirectory() { - IndexImages::iterator ii; - for (ii = _index_images.begin(); ii != _index_images.end(); ++ii) { - IndexImage *index_image = (*ii); - delete index_image; - } - - Photos::iterator pi; - for (pi = _photos.begin(); pi != _photos.end(); ++pi) { - Photo *photo = (*pi); - delete photo; - } -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_dir -// Access: Public -// Description: Returns the filename of the directory. -//////////////////////////////////////////////////////////////////// -const Filename &RollDirectory:: -get_dir() const { - return _dir; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_basename -// Access: Public -// Description: Returns the base name of the directory. -//////////////////////////////////////////////////////////////////// -const string &RollDirectory:: -get_basename() const { - return _basename; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_name -// Access: Public -// Description: Returns the formatted name of the directory. This is -// often the same as the basename, but if -r is -// specified on the command line it might be a somewhat -// different, reformatted name. In any case, it is the -// name of the roll as it should be presented to the -// user. -//////////////////////////////////////////////////////////////////// -const string &RollDirectory:: -get_name() const { - return _name; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_desc -// Access: Public -// Description: Returns the one-line description for the directory. -//////////////////////////////////////////////////////////////////// -const string &RollDirectory:: -get_desc() const { - return _desc; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::scan -// Access: Public -// Description: Scans the directory for all the listed photos. -//////////////////////////////////////////////////////////////////// -bool RollDirectory:: -scan(const string &photo_extension, const string &movie_extension, - const string &sound_extension) { - bool reverse_order = false; - bool explicit_list = false; - - // Check for a .ds file, which contains a one-line description of - // the contents of the directory. - _ds_filename = Filename(_basename); - _ds_filename.set_extension("ds"); - if (cm_search.is_empty() || !_ds_filename.resolve_filename(cm_search)) { - // If the ds file isn't found along the search path specified - // via -cmdir on the command line, then look for it in the - // appropriate source directory. - _ds_filename = Filename(_dir, _ds_filename); - } - if (_ds_filename.exists()) { - _got_ds_file = true; - _ds_filename.set_text(); - ifstream ds; - if (!_ds_filename.open_read(ds)) { - nout << "Could not read " << _ds_filename << "\n"; - } else { - // Get the words out one at a time and put just one space - // between them. - string word; - ds >> word; - while (!ds.eof() && !ds.fail()) { - if (!_desc.empty()) { - _desc += ' '; - } - _desc += word; - word = string(); - ds >> word; - } - if (!word.empty()) { - if (!_desc.empty()) { - _desc += ' '; - } - _desc += word; - } - } - } - - // Check for an .ls file in the roll directory, which may give an - // explicit ordering, or if empty, it specifies reverse ordering. - _ls_filename = Filename(_dir, _basename); - _ls_filename.set_extension("ls"); - if (_ls_filename.exists()) { - _got_ls_file = true; - add_contributing_filename(_ls_filename); - _ls_filename.set_text(); - ifstream ls; - if (!_ls_filename.open_read(ls)) { - nout << "Could not read " << _ls_filename << "\n"; - } else { - bool any_words = false; - string word; - ls >> word; - while (!ls.eof() && !ls.fail()) { - any_words = true; - Filename try_filename(_dir, word); - if (!try_filename.exists()) { - try_filename = Filename(_dir, word + "." + photo_extension); - } - if (!try_filename.exists()) { - try_filename = Filename(_dir, _basename + word + "." + photo_extension); - } - if (!try_filename.exists()) { - try_filename = Filename(_dir, _basename + "0" + word + "." + photo_extension); - } - if (try_filename.exists()) { - add_photo(try_filename.get_basename(), movie_extension, - sound_extension); - } else { - nout << "Frame " << word << " not found in " << _name << "\n"; - } - ls >> word; - } - - if (!any_words) { - // An empty .ls file just means reverse the order. - reverse_order = true; - } else { - // A non-empty .ls file has listed all the files we need; no - // need to scan the directory. - explicit_list = true; - } - } - } - - if (!explicit_list) { - vector_string contents; - - if (!_dir.scan_directory(contents)) { - nout << "Could not read " << _dir << "\n"; - return false; - } - - // We want to sort the filenames in our own way, so that - // underscore is deemed to fall before anything else. This allows - // the underscore, the only non-alphnumeric character we can have - // in a filename for an iso9660 image, to stand for "before 0". - sort(contents.begin(), contents.end(), compare_filenames); - - if (reverse_order) { - reverse(contents.begin(), contents.end()); - } - - vector_string::iterator ci; - for (ci = contents.begin(); ci != contents.end(); ++ci) { - Filename basename = (*ci); - if (basename.get_extension() == photo_extension) { - add_photo(basename, movie_extension, sound_extension); - } - } - } - - if (_photos.empty()) { - nout << _dir << " contains no photos.\n"; - // This is not an error, just a notice. - } - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::collect_index_images -// Access: Public -// Description: Groups the photos into one or more IndexImages. -//////////////////////////////////////////////////////////////////// -void RollDirectory:: -collect_index_images() { - // Don't call this twice. - nassertv(_index_images.empty()); - - if (is_empty()) { - return; - } - - IndexImage *index_image = new IndexImage(this, _index_images.size()); - _index_images.push_back(index_image); - - size_t i; - for (i = 0; i < _photos.size(); i++) { - if (!index_image->add_photo(i)) { - // Oops, that one's full. - index_image = new IndexImage(this, _index_images.size()); - _index_images.push_back(index_image); - bool result = index_image->add_photo(i); - nassertv(result); - } - } -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::sort_date_before -// Access: Public -// Description: Returns true if the given directory name should sort -// before the other one, assuming the Rose naming -// convention of mmyyss is in place. -//////////////////////////////////////////////////////////////////// -bool RollDirectory:: -sort_date_before(const RollDirectory &other) const { - if (_name == _basename && other._name == other._basename) { - // If Rose naming convention is not in place in either case, sort - // alphabetically. - return _basename < other._basename; - - } else if (_name == _basename) { - // If Rose naming convention is in place on this one and not the - // other, it sorts first. - return true; - - } else if (other._name == other._basename) { - // And vice-versa. - return false; - - } else { - // Rose naming convention holds. Sort based on year first. Years - // above 90 are deemed to belong to the previous century. - string yy = _basename.substr(2, 2); - string other_yy = other._basename.substr(2, 2); - int year = atoi(yy.c_str()); - int other_year = atoi(other_yy.c_str()); - if (year < 90) { - year += 100; - } - if (other_year < 90) { - other_year += 100; - } - if (year != other_year) { - return year < other_year; - } - - // After year, sort alphabetically. - return _basename < other._basename; - } -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_newest_contributing_filename -// Access: Public -// Description: Returns the Filename with the newest timestamp that -// contributes to the contents of the index images in -// this directory, if any (other than the images -// themselves). This is used by the IndexImage code to -// determine if it needs to regenerate the index image. -//////////////////////////////////////////////////////////////////// -const Filename &RollDirectory:: -get_newest_contributing_filename() const { - return _newest_contributing_filename; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::is_empty -// Access: Public -// Description: Returns true if the directory is empty (has no -// photos). -//////////////////////////////////////////////////////////////////// -bool RollDirectory:: -is_empty() const { - return _photos.empty(); -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_num_photos -// Access: Public -// Description: Returns the number of photos in the roll. -//////////////////////////////////////////////////////////////////// -int RollDirectory:: -get_num_photos() const { - return _photos.size(); -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_photo -// Access: Public -// Description: Returns the nth photo in the roll. -//////////////////////////////////////////////////////////////////// -Photo *RollDirectory:: -get_photo(int n) const { - nassertr(n >= 0 && n < (int)_photos.size(), NULL); - return _photos[n]; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_num_index_images -// Access: Public -// Description: Returns the number of index images in the roll. -//////////////////////////////////////////////////////////////////// -int RollDirectory:: -get_num_index_images() const { - return _index_images.size(); -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_index_image -// Access: Public -// Description: Returns the nth index image in the roll. -//////////////////////////////////////////////////////////////////// -IndexImage *RollDirectory:: -get_index_image(int n) const { - nassertr(n >= 0 && n < (int)_index_images.size(), NULL); - return _index_images[n]; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::generate_images -// Access: Public -// Description: Generates image files appropriate to this directory -// to the indicated archive dir. Returns true on -// success, false on failure. -//////////////////////////////////////////////////////////////////// -bool RollDirectory:: -generate_images(const Filename &archive_dir, PNMTextMaker *text_maker) { - if (is_empty()) { - return true; - } - nassertr(!_index_images.empty(), false); - - IndexImages::iterator ii; - for (ii = _index_images.begin(); ii != _index_images.end(); ++ii) { - IndexImage *index_image = (*ii); - if (!index_image->generate_images(archive_dir, text_maker)) { - return false; - } - } - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::generate_html -// Access: Public -// Description: Generates all appropriate HTML files for this -// directory, and generate the appropriate HTML code -// into the html strings (retrieved by -// get_comment_html() and get_index_html()). -//////////////////////////////////////////////////////////////////// -bool RollDirectory:: -generate_html(const Filename &archive_dir, const Filename &roll_dir_root) { - if (is_empty()) { - return true; - } - nassertr(!_index_images.empty(), false); - - ostringstream comment_strm; - comment_strm - << "\n"; - - if (!omit_roll_headers) { - Filename cm_filename(_basename); - cm_filename.set_extension("cm"); - if (cm_search.is_empty() || !cm_filename.resolve_filename(cm_search)) { - // If the cm file isn't found along the search path specified - // via -cmdir on the command line, then look for it in the - // appropriate source directory. - cm_filename = Filename(_dir, cm_filename); - } - - if (cm_filename.exists()) { - // If the comment file for the roll exists, insert its contents - // here instead of the generic header. - if (!insert_html_comment(comment_strm, cm_filename)) { - return false; - } - - } else { - comment_strm - << "

" << _name << "

\n"; - if (!_desc.empty()) { - comment_strm << "

" << escape_html(_desc) << ".

\n"; - } - } - } - _comment_html = comment_strm.str(); - - Filename html_dir(archive_dir, "html"); - nout << "Generating " << Filename(html_dir, _basename) << "/*\n"; - - ostringstream index_strm; - index_strm << "

\n"; - IndexImages::iterator ii; - for (ii = _index_images.begin(); ii != _index_images.end(); ++ii) { - IndexImage *index_image = (*ii); - if (!index_image->generate_html(index_strm, archive_dir, roll_dir_root)) { - return false; - } - } - index_strm << "

\n"; - _index_html = index_strm.str(); - - // Also generate the index html for this directory. - Filename html_filename(html_dir, _basename); - html_filename.set_extension("htm"); - nout << "Generating " << html_filename << "\n"; - html_filename.set_text(); - ofstream index_html; - if (!html_filename.open_write(index_html)) { - nout << "Unable to write to " << html_filename << "\n"; - exit(1); - } - - string up_href = "../index.htm#" + _basename; - - Filename prev_roll_filename; - Filename next_roll_filename; - - if (_prev != (RollDirectory *)NULL) { - prev_roll_filename = _prev->_basename; - prev_roll_filename.set_extension("htm"); - } - if (_next != (RollDirectory *)NULL) { - next_roll_filename = _next->_basename; - next_roll_filename.set_extension("htm"); - } - - index_html - << "\n" - << "\n"; - if (_desc.empty()) { - index_html - << "" << _name << "\n"; - } else { - index_html - << "" << _name << " " << escape_html(_desc) << "\n"; - } - index_html - << "\n" - << "\n" - << get_comment_html(); - - generate_nav_buttons(index_html, prev_roll_filename, next_roll_filename, - up_href); - index_html << get_index_html(); - generate_nav_buttons(index_html, prev_roll_filename, next_roll_filename, - up_href); - - if (!omit_complete) { - index_html - << "
(complete archive)\n"; - } - - index_html - << "\n" - << "\n"; - - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_comment_html -// Access: Public -// Description: Returns the HTML text that describes this directory's -// index. This is set when generate_html() returns -// true. -// -// This text may be inserted into the middle of a HTML -// page to include the imagemap that references each of -// the images in this directory. -//////////////////////////////////////////////////////////////////// -const string &RollDirectory:: -get_comment_html() const { - return _comment_html; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::get_index_html -// Access: Public -// Description: Returns the HTML text that describes this directory's -// index. This is set when generate_html() returns -// true. -// -// This text may be inserted into the middle of a HTML -// page to include the imagemap that references each of -// the images in this directory. -//////////////////////////////////////////////////////////////////// -const string &RollDirectory:: -get_index_html() const { - return _index_html; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::copy_reduced -// Access: Public -// Description: Copies key files from the full directory into the -// reduced directory. -//////////////////////////////////////////////////////////////////// -bool RollDirectory:: -copy_reduced(const Filename &archive_dir) { - if (is_empty()) { - return true; - } - nassertr(!_index_images.empty(), false); - - Filename reduced_dir(archive_dir, "reduced/" + _dir.get_basename()); - - if (!reduced_dir.exists()) { - cerr << "Ignoring " << reduced_dir << "; does not exist.\n"; - return true; - } - - if (_got_ds_file) { - if (!copy_file(_ds_filename, reduced_dir)) { - return false; - } - } - - if (_got_ls_file) { - if (!copy_file(_ls_filename, reduced_dir)) { - return false; - } - } - - IndexImages::iterator ii; - for (ii = _index_images.begin(); ii != _index_images.end(); ++ii) { - IndexImage *index_image = (*ii); - if (!index_image->copy_reduced(archive_dir)) { - return false; - } - } - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::output -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -void RollDirectory:: -output(ostream &out) const { - out << _name; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::write -// Access: Public -// Description: -//////////////////////////////////////////////////////////////////// -void RollDirectory:: -write(ostream &out, int indent_level) const { - indent(out, indent_level) - << _dir << "\n"; - - if (!_index_images.empty()) { - // If we have any index images, output those. - IndexImages::const_iterator ii; - for (ii = _index_images.begin(); ii != _index_images.end(); ++ii) { - const IndexImage *index_image = (*ii); - index_image->write(out, indent_level + 2); - } - - } else { - // Otherwise, just output the photos. - Photos::const_iterator pi; - for (pi = _photos.begin(); pi != _photos.end(); ++pi) { - const Photo *photo = (*pi); - indent(out, indent_level + 2) - << *photo << "\n"; - } - } -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::insert_html_comment -// Access: Public, Static -// Description: Reads the indicated comment file and inserts its -// contents (after the header) within the indicated -// ostream at the current point. -//////////////////////////////////////////////////////////////////// -bool RollDirectory:: -insert_html_comment(ostream &html, Filename cm_filename) { - cm_filename.set_text(); - ifstream cm; - if (!cm_filename.open_read(cm)) { - nout << "Unable to read " << cm_filename << "\n"; - return false; - } - - // First, scan through the file looking for or . - string line; - getline(cm, line); - while (!cm.eof() && !cm.fail()) { - string lower = downcase(line); - size_t body = lower.find(""); - if (body != string::npos) { - return insert_html_comment_body(html, cm); - } - getline(cm, line); - } - - // We didn't find it. Insert the whole file. - cm.clear(); - cm.seekg(0); - int ch = cm.get(); - while (ch != EOF) { - html.put(ch); - ch = cm.get(); - } - - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::add_photo -// Access: Private -// Description: Adds the photo with the indicated basename to the -// list. -//////////////////////////////////////////////////////////////////// -void RollDirectory:: -add_photo(const Filename &basename, const string &movie_extension, - const string &sound_extension) { - Photo *photo = new Photo(this, basename, movie_extension, sound_extension); - _photos.push_back(photo); -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::add_contributing_filename -// Access: Private -// Description: Specifies an additional filename that contributes to -// the index image. -//////////////////////////////////////////////////////////////////// -void RollDirectory:: -add_contributing_filename(const Filename &filename) { - if (_newest_contributing_filename.empty() || - _newest_contributing_filename.compare_timestamps(filename) < 0) { - _newest_contributing_filename = filename; - } -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::insert_html_comment_body -// Access: Private, Static -// Description: Copies from the comment file up until the next -// , or until the end of file. -//////////////////////////////////////////////////////////////////// -bool RollDirectory:: -insert_html_comment_body(ostream &html, istream &cm) { - string line; - getline(cm, line); - while (!cm.eof() && !cm.fail()) { - string lower = downcase(line); - size_t body = lower.find(""); - if (body != string::npos) { - // Here's the end; we're done. - return true; - } - html << line << "\n"; - getline(cm, line); - } - - // Reached end of file; good enough. - return true; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::format_basename -// Access: Private, Static -// Description: Reformats the roll directory into a user-friendly -// name based on its encoded directory name. -//////////////////////////////////////////////////////////////////// -string RollDirectory:: -format_basename(const string &basename) { - if (basename.length() <= 4) { - return basename; - } - - // The first two characters must be alphanumeric. - if (!isalnum(basename[0]) || !isalnum(basename[1])) { - return basename; - } - - // The next two characters must be digits. - if (!isdigit(basename[2]) || !isdigit(basename[3])) { - return basename; - } - - // If the first two were digits as well as being alphanumeric, then - // we have mm-yy/sequence. Otherwise, we just have xxyy/sequence. - bool mm_is_month = (isdigit(basename[0]) && isdigit(basename[1])); - - string mm = basename.substr(0, 2); - string yy = basename.substr(2, 2); - string ss = basename.substr(4); - - if (mm_is_month && mm[0] == '0') { - mm = mm[1]; - } - while (ss.length() > 1 && ss[0] == '0') { - ss = ss.substr(1); - } - - if (mm_is_month) { - return mm + "-" + yy + "/" + ss; - } else { - return mm + yy + "/" + ss; - } -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::generate_nav_buttons -// Access: Private, Static -// Description: Outputs the HTML code to generate the next, prev, -// up buttons when viewing each reduced image. -//////////////////////////////////////////////////////////////////// -void RollDirectory:: -generate_nav_buttons(ostream &html, const Filename &prev_roll_filename, - const Filename &next_roll_filename, - const string &up_href) { - html << "

\n"; - - bool first_icons = false; - if (!prev_icon.empty() && !next_icon.empty()) { - first_icons = true; - // Use icons to go forward and back. - Filename prev_icon_href = compose_href("..", prev_icon); - if (prev_roll_filename.empty()) { - html << "\"No\n"; - } else { - html << "\"previous\"\n"; - } - - Filename next_icon_href = compose_href("..", next_icon); - if (next_roll_filename.empty()) { - html << "\"No\n"; - } else { - html << "\"next\"\n"; - } - - } else { - // No prev/next icons; use text to go forward and back. - if (prev_roll_filename.empty()) { - html << "(This is the first roll.)\n"; - } else { - html << "Back to previous roll\n"; - } - - if (next_roll_filename.empty()) { - html << "
(This is the last roll.)\n"; - } else { - html << "
On to next roll\n"; - } - } - - if (!up_href.empty()) { - if (!up_icon.empty()) { - // Use an icon to go up. - if (!first_icons) { - html << "
"; - } else { - html << "   "; - } - Filename up_icon_href = compose_href("..", up_icon); - html << "\"return\n"; - } else { - // No up icon; use text to go up. - html << "
Return to index\n"; - } - } - html << "

\n"; -} - -//////////////////////////////////////////////////////////////////// -// Function: RollDirectory::compare_filenames -// Access: Private, Static -// Description: Returns true if filename a sorts before filename b, -// false otherwise. -//////////////////////////////////////////////////////////////////// -bool RollDirectory:: -compare_filenames(const string &a, const string &b) { - size_t i = 0; - size_t min_length = min(a.length(), b.length()); - while (i < min_length) { - char achar = a[i]; - char bchar = b[i]; - if (achar != bchar) { - if (achar == '_') { - return true; - } else if (bchar == '_') { - return false; - } else { - return achar < bchar; - } - } - ++i; - } - - return a.length() < b.length(); -} - diff --git a/pandaapp/src/indexify/rollDirectory.h b/pandaapp/src/indexify/rollDirectory.h deleted file mode 100644 index 83f52b618c..0000000000 --- a/pandaapp/src/indexify/rollDirectory.h +++ /dev/null @@ -1,112 +0,0 @@ -// Filename: rollDirectory.h -// Created by: drose (03Apr02) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#ifndef ROLLDIRECTORY_H -#define ROLLDIRECTORY_H - -#include "pandatoolbase.h" - -#include "filename.h" -#include "pvector.h" - -class Photo; -class IndexImage; -class PNMTextMaker; - -//////////////////////////////////////////////////////////////////// -// Class : RollDirectory -// Description : A representation of a single directory containing one -// or more photos. -//////////////////////////////////////////////////////////////////// -class RollDirectory { -public: - RollDirectory(const Filename &dir); - ~RollDirectory(); - - const Filename &get_dir() const; - const string &get_basename() const; - const string &get_name() const; - const string &get_desc() const; - bool scan(const string &photo_extension, const string &movie_extension, - const string &sound_extension); - void collect_index_images(); - - bool sort_date_before(const RollDirectory &other) const; - - const Filename &get_newest_contributing_filename() const; - - bool is_empty() const; - int get_num_photos() const; - Photo *get_photo(int n) const; - - int get_num_index_images() const; - IndexImage *get_index_image(int n) const; - - bool generate_images(const Filename &archive_dir, PNMTextMaker *text_maker); - bool generate_html(const Filename &archive_dir, - const Filename &roll_dir_root); - const string &get_comment_html() const; - const string &get_index_html() const; - - bool copy_reduced(const Filename &archive_dir); - - void output(ostream &out) const; - void write(ostream &out, int indent_level) const; - - static bool insert_html_comment(ostream &html, Filename cm_filename); - -private: - void add_photo(const Filename &basename, const string &movie_extension, - const string &sound_extension); - void add_contributing_filename(const Filename &filename); - static bool insert_html_comment_body(ostream &html, istream &cm); - static string format_basename(const string &basename); - void generate_nav_buttons(ostream &html, - const Filename &prev_roll_filename, - const Filename &next_roll_filename, - const string &up_href); - static bool compare_filenames(const string &a, const string &b); - -public: - RollDirectory *_prev; - RollDirectory *_next; - -private: - Filename _dir; - string _basename; - string _name; - string _desc; - typedef pvector Photos; - Photos _photos; - - bool _got_ds_file; - Filename _ds_filename; - bool _got_ls_file; - Filename _ls_filename; - - Filename _newest_contributing_filename; - - typedef pvector IndexImages; - IndexImages _index_images; - - string _comment_html; - string _index_html; -}; - -INLINE ostream &operator << (ostream &out, const RollDirectory &d) { - d.output(out); - return out; -} - -#endif diff --git a/pandaapp/src/indexify/sound.png b/pandaapp/src/indexify/sound.png deleted file mode 100644 index 7a766be6cc8038c54605beca648425afa090b17a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz0!VDyh@)w!{DTx4|5Z5#R|Nl2O1`=n^oS8Xu zW*P&7v9U2w^6&fe4}lb8lDE4HyI5k!Yal1f)5S5Q;#P9P0bU^q304K2Z%mGCjvSkp zGz2mzop~2>K!GE1nuaKc0aNIP>C>$>MHyI`CB0%|rZo732?TR;a4~fzFI%GGxRsID zxLNAhglS=OST-_oTsr$eY_n+d9OlAEt3wlWIF=_fFszZ5Ue4}nQwFp(ti&~<#5q4V zH#M(>AtWQSSRt{fL;*-;<|&k9q$(7YCgo%%E2QM-CT8a8DR`%r0VO<2(=$?wbriBe uybOob%o4ri{9GM{;M9VW)ZC=hA_YTBOH-d0UycB6VDNPHb6Mw<&;$S_1!QFa diff --git a/pandaapp/src/indexify/up.png b/pandaapp/src/indexify/up.png deleted file mode 100755 index d371bbf92b4394403fc01a25f256b0c210a620b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 549 zcmV+=0^0qFP)+SB{;p5NL*U8V)!pY6Fyuq!uyO^V@lAfh~izpbac%aajgabzSv=Q9<9MdskvNnoa1o)$}J02#Y;2_D` z){Ke3AhB`4Vw2HkaIg!nsdRDp5Y8VAr3S#OfI(>BQlm(XzUYG@!+C45fh-00s;e6< z0PGv;syX66Ql4sI-gMMk-C`;PApM0M%0R@|_Z2jwOC-}wdb)C@F?hqg(}P=&1XJu_ zR^EH9J;??7rFEm0GuOwSuQk`c#LPN6=0rJ%C{$j=7nXryx^^UBOO9(3n{&_T?)N|y zyJJ!)d_!jb*Rq#*VV-xRee{lpO<%>in9j{3<(b-0^-PZglLG6MRWF!5r%GC&_Z< ngT<{DLzsBg#w!%_99;bYRy7lzy-s3I00000NkvXXu0mjfx9S0$ diff --git a/pandaapp/src/pandaappbase/Sources.pp b/pandaapp/src/pandaappbase/Sources.pp deleted file mode 100644 index e742c83336..0000000000 --- a/pandaapp/src/pandaappbase/Sources.pp +++ /dev/null @@ -1,10 +0,0 @@ -#begin ss_lib_target - #define TARGET pandaappbase - - #define SOURCES \ - pandaappbase.cxx pandaappbase.h pandaappsymbols.h - - #define INSTALL_HEADERS \ - pandaappbase.h pandaappsymbols.h - -#end ss_lib_target diff --git a/pandaapp/src/pandaappbase/pandaappbase.cxx b/pandaapp/src/pandaappbase/pandaappbase.cxx deleted file mode 100644 index 5a58f3b627..0000000000 --- a/pandaapp/src/pandaappbase/pandaappbase.cxx +++ /dev/null @@ -1,15 +0,0 @@ -// Filename: pandaappbase.cxx -// Created by: drose (15Sep00) -// -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -#include "pandaappbase.h" diff --git a/pandaapp/src/pandaappbase/pandaappbase.h b/pandaapp/src/pandaappbase/pandaappbase.h deleted file mode 100644 index d3a7e687ff..0000000000 --- a/pandaapp/src/pandaappbase/pandaappbase.h +++ /dev/null @@ -1,25 +0,0 @@ -// Filename: pandaappbase.h -// Created by: drose (12Sep00) -//////////////////////////////////////////////////////////////////// -// -// PANDA 3D SOFTWARE -// Copyright (c) Carnegie Mellon University. All rights reserved. -// -// All use of this software is subject to the terms of the revised BSD -// license. You should have received a copy of this license along -// with this source code in a file named "LICENSE." -// -//////////////////////////////////////////////////////////////////// - -/* This file is included at the beginning of every header file and/or - C or C++ file. It must be compilable for C as well as C++ files, - so no C++-specific code or syntax can be put here. */ - -#ifndef PANDAAPPBASE_H -#define PANDAAPPBASE_H - -#include "pandatoolbase.h" -#include "pandaappsymbols.h" - -#endif - diff --git a/pandaapp/src/pandaappbase/pandaappsymbols.h b/pandaapp/src/pandaappbase/pandaappsymbols.h deleted file mode 100644 index 8ea8cd759b..0000000000 --- a/pandaapp/src/pandaappbase/pandaappsymbols.h +++ /dev/null @@ -1,26 +0,0 @@ -/* Filename: pandaappsymbols.h - * Created by: drose (26Apr01) - * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * - * PANDA 3D SOFTWARE - * Copyright (c) Carnegie Mellon University. All rights reserved. - * - * All use of this software is subject to the terms of the revised BSD - * license. You should have received a copy of this license along - * with this source code in a file named "LICENSE." - * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -#ifndef PANDAAPPSYMBOLS_H -#define PANDAAPPSYMBOLS_H - -/* See dtoolsymbols.h for a rant on the purpose of this file. */ - -#if defined(WIN32_VC) && !defined(CPPPARSER) && !defined(LINK_ALL_STATIC) - -#else /* !WIN32_VC */ - -#endif /* WIN32_VC */ - -#endif