diff options
Diffstat (limited to 'module')
89 files changed, 143 insertions, 50088 deletions
diff --git a/module/Makefile.in b/module/Makefile.in index f59f04479..78e48147a 100644 --- a/module/Makefile.in +++ b/module/Makefile.in @@ -6,8 +6,21 @@ subdir-m += zfs subdir-m += zpios modules: - # Make the exported SPL symbols available to these modules. - cp @SPL_OBJ@/@SPL_SYMBOLS@ . + @# Make the exported SPL symbols available to these modules. + @# They may be in the root of SPL_OBJ when building against + @# installed devel headers, or they may be in the module + @# subdirectory when building against the spl source tree. + @if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \ + /bin/cp @SPL_OBJ@/@SPL_SYMBOLS@ .; \ + elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \ + /bin/cp @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \ + else \ + echo -e "\n" \ + "*** Missing spl symbols ensure you have built the spl:\n" \ + "*** - @SPL_OBJ@/@SPL_SYMBOLS@, or\n" \ + "*** - @SPL_OBJ@/module/@SPL_SYMBOLS@\n"; \ + exit 1; \ + fi $(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` @KERNELMAKE_PARAMS@ $@ clean: @@ -17,36 +30,21 @@ clean: if [ -f Module.markers ]; then $(RM) Module.markers; fi modules_install: - # Install the kernel modules + @# Install the kernel modules $(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \ INSTALL_MOD_PATH=$(DESTDIR) \ INSTALL_MOD_DIR=addon/zfs $@ - find ${DESTDIR}/lib/modules/ -name 'modules.*' | xargs ${RM} - sysmap=${DESTDIR}/boot/System.map-@LINUX_VERSION@; \ + find $(DESTDIR)/lib/modules/ -name 'modules.*' | xargs $(RM) + sysmap=$(DESTDIR)/boot/System.map-@LINUX_VERSION@; \ if [ -f $$sysmap ]; then \ depmod -ae -F $$sysmap @LINUX_VERSION@; \ fi - # Install the required headers in to the kernel source - destname=zfs-@ZFS_META_VERSION@/@LINUX_VERSION@; \ - instdest=$(DESTDIR)/usr/src/$$destname; \ - (find . -mindepth 3 -name '*.h' | xargs -Ihdr sh -c \ - "DEST=hdr && install -D hdr $$instdest/\$${DEST#*/*/*/}") || exit 1 modules_uninstall: - # Uninstall the kernel modules - $(RM) -R ${DESTDIR}/lib/modules/@LINUX_VERSION@/addon/zfs - # Uninstall the required headers from the kernel source - destname=zfs-@ZFS_META_VERSION@/@LINUX_VERSION@; \ - instdest=$(DESTDIR)/usr/src/$$destname; \ - $(RM) -R $$instdest + @# Uninstall the kernel modules + $(RM) -R $(DESTDIR)/lib/modules/@LINUX_VERSION@/addon/zfs distdir: - distfiles=`find . -name '*.c' -o -name '*.h'`; \ - for distfile in $$distfiles; do \ - distpath=`dirname $$distdir/$$distfile`; \ - (/bin/mkdir -p $$distpath && \ - /bin/cp $$distfile $$distdir/$$distfile) || exit 1; \ - done distclean maintainer-clean: clean install: modules_install diff --git a/module/avl/Makefile.in b/module/avl/Makefile.in index 941de20f4..efa414883 100644 --- a/module/avl/Makefile.in +++ b/module/avl/Makefile.in @@ -1,8 +1,10 @@ MODULE := zavl -EXTRA_CFLAGS = -I@MODDIR@/avl/include -EXTRA_CFLAGS += @KERNELCPPFLAGS@ +EXTRA_CFLAGS = @KERNELCPPFLAGS@ +EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h +EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h +EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@ -obj-m := ${MODULE}.o +obj-m := $(MODULE).o -${MODULE}-objs += avl.o +$(MODULE)-objs += @top_srcdir@/module/avl/avl.o diff --git a/module/avl/include/sys/avl.h b/module/avl/include/sys/avl.h deleted file mode 100644 index ba305c908..000000000 --- a/module/avl/include/sys/avl.h +++ /dev/null @@ -1,309 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _AVL_H -#define _AVL_H - -/* - * This is a private header file. Applications should not directly include - * this file. - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#include <sys/types.h> -#include <sys/avl_impl.h> - -/* - * This is a generic implemenatation of AVL trees for use in the Solaris kernel. - * The interfaces provide an efficient way of implementing an ordered set of - * data structures. - * - * AVL trees provide an alternative to using an ordered linked list. Using AVL - * trees will usually be faster, however they requires more storage. An ordered - * linked list in general requires 2 pointers in each data structure. The - * AVL tree implementation uses 3 pointers. The following chart gives the - * approximate performance of operations with the different approaches: - * - * Operation Link List AVL tree - * --------- -------- -------- - * lookup O(n) O(log(n)) - * - * insert 1 node constant constant - * - * delete 1 node constant between constant and O(log(n)) - * - * delete all nodes O(n) O(n) - * - * visit the next - * or prev node constant between constant and O(log(n)) - * - * - * The data structure nodes are anchored at an "avl_tree_t" (the equivalent - * of a list header) and the individual nodes will have a field of - * type "avl_node_t" (corresponding to list pointers). - * - * The type "avl_index_t" is used to indicate a position in the list for - * certain calls. - * - * The usage scenario is generally: - * - * 1. Create the list/tree with: avl_create() - * - * followed by any mixture of: - * - * 2a. Insert nodes with: avl_add(), or avl_find() and avl_insert() - * - * 2b. Visited elements with: - * avl_first() - returns the lowest valued node - * avl_last() - returns the highest valued node - * AVL_NEXT() - given a node go to next higher one - * AVL_PREV() - given a node go to previous lower one - * - * 2c. Find the node with the closest value either less than or greater - * than a given value with avl_nearest(). - * - * 2d. Remove individual nodes from the list/tree with avl_remove(). - * - * and finally when the list is being destroyed - * - * 3. Use avl_destroy_nodes() to quickly process/free up any remaining nodes. - * Note that once you use avl_destroy_nodes(), you can no longer - * use any routine except avl_destroy_nodes() and avl_destoy(). - * - * 4. Use avl_destroy() to destroy the AVL tree itself. - * - * Any locking for multiple thread access is up to the user to provide, just - * as is needed for any linked list implementation. - */ - - -/* - * Type used for the root of the AVL tree. - */ -typedef struct avl_tree avl_tree_t; - -/* - * The data nodes in the AVL tree must have a field of this type. - */ -typedef struct avl_node avl_node_t; - -/* - * An opaque type used to locate a position in the tree where a node - * would be inserted. - */ -typedef uintptr_t avl_index_t; - - -/* - * Direction constants used for avl_nearest(). - */ -#define AVL_BEFORE (0) -#define AVL_AFTER (1) - - -/* - * Prototypes - * - * Where not otherwise mentioned, "void *" arguments are a pointer to the - * user data structure which must contain a field of type avl_node_t. - * - * Also assume the user data structures looks like: - * stuct my_type { - * ... - * avl_node_t my_link; - * ... - * }; - */ - -/* - * Initialize an AVL tree. Arguments are: - * - * tree - the tree to be initialized - * compar - function to compare two nodes, it must return exactly: -1, 0, or +1 - * -1 for <, 0 for ==, and +1 for > - * size - the value of sizeof(struct my_type) - * offset - the value of OFFSETOF(struct my_type, my_link) - */ -extern void avl_create(avl_tree_t *tree, - int (*compar) (const void *, const void *), size_t size, size_t offset); - - -/* - * Find a node with a matching value in the tree. Returns the matching node - * found. If not found, it returns NULL and then if "where" is not NULL it sets - * "where" for use with avl_insert() or avl_nearest(). - * - * node - node that has the value being looked for - * where - position for use with avl_nearest() or avl_insert(), may be NULL - */ -extern void *avl_find(avl_tree_t *tree, const void *node, avl_index_t *where); - -/* - * Insert a node into the tree. - * - * node - the node to insert - * where - position as returned from avl_find() - */ -extern void avl_insert(avl_tree_t *tree, void *node, avl_index_t where); - -/* - * Insert "new_data" in "tree" in the given "direction" either after - * or before the data "here". - * - * This might be usefull for avl clients caching recently accessed - * data to avoid doing avl_find() again for insertion. - * - * new_data - new data to insert - * here - existing node in "tree" - * direction - either AVL_AFTER or AVL_BEFORE the data "here". - */ -extern void avl_insert_here(avl_tree_t *tree, void *new_data, void *here, - int direction); - - -/* - * Return the first or last valued node in the tree. Will return NULL - * if the tree is empty. - * - */ -extern void *avl_first(avl_tree_t *tree); -extern void *avl_last(avl_tree_t *tree); - - -/* - * Return the next or previous valued node in the tree. - * AVL_NEXT() will return NULL if at the last node. - * AVL_PREV() will return NULL if at the first node. - * - * node - the node from which the next or previous node is found - */ -#define AVL_NEXT(tree, node) avl_walk(tree, node, AVL_AFTER) -#define AVL_PREV(tree, node) avl_walk(tree, node, AVL_BEFORE) - - -/* - * Find the node with the nearest value either greater or less than - * the value from a previous avl_find(). Returns the node or NULL if - * there isn't a matching one. - * - * where - position as returned from avl_find() - * direction - either AVL_BEFORE or AVL_AFTER - * - * EXAMPLE get the greatest node that is less than a given value: - * - * avl_tree_t *tree; - * struct my_data look_for_value = {....}; - * struct my_data *node; - * struct my_data *less; - * avl_index_t where; - * - * node = avl_find(tree, &look_for_value, &where); - * if (node != NULL) - * less = AVL_PREV(tree, node); - * else - * less = avl_nearest(tree, where, AVL_BEFORE); - */ -extern void *avl_nearest(avl_tree_t *tree, avl_index_t where, int direction); - - -/* - * Add a single node to the tree. - * The node must not be in the tree, and it must not - * compare equal to any other node already in the tree. - * - * node - the node to add - */ -extern void avl_add(avl_tree_t *tree, void *node); - - -/* - * Remove a single node from the tree. The node must be in the tree. - * - * node - the node to remove - */ -extern void avl_remove(avl_tree_t *tree, void *node); - -/* - * Reinsert a node only if its order has changed relative to its nearest - * neighbors. To optimize performance avl_update_lt() checks only the previous - * node and avl_update_gt() checks only the next node. Use avl_update_lt() and - * avl_update_gt() only if you know the direction in which the order of the - * node may change. - */ -extern boolean_t avl_update(avl_tree_t *, void *); -extern boolean_t avl_update_lt(avl_tree_t *, void *); -extern boolean_t avl_update_gt(avl_tree_t *, void *); - -/* - * Return the number of nodes in the tree - */ -extern ulong_t avl_numnodes(avl_tree_t *tree); - -/* - * Return B_TRUE if there are zero nodes in the tree, B_FALSE otherwise. - */ -extern boolean_t avl_is_empty(avl_tree_t *tree); - -/* - * Used to destroy any remaining nodes in a tree. The cookie argument should - * be initialized to NULL before the first call. Returns a node that has been - * removed from the tree and may be free()'d. Returns NULL when the tree is - * empty. - * - * Once you call avl_destroy_nodes(), you can only continuing calling it and - * finally avl_destroy(). No other AVL routines will be valid. - * - * cookie - a "void *" used to save state between calls to avl_destroy_nodes() - * - * EXAMPLE: - * avl_tree_t *tree; - * struct my_data *node; - * void *cookie; - * - * cookie = NULL; - * while ((node = avl_destroy_nodes(tree, &cookie)) != NULL) - * free(node); - * avl_destroy(tree); - */ -extern void *avl_destroy_nodes(avl_tree_t *tree, void **cookie); - - -/* - * Final destroy of an AVL tree. Arguments are: - * - * tree - the empty tree to destroy - */ -extern void avl_destroy(avl_tree_t *tree); - - - -#ifdef __cplusplus -} -#endif - -#endif /* _AVL_H */ diff --git a/module/avl/include/sys/avl_impl.h b/module/avl/include/sys/avl_impl.h deleted file mode 100644 index fddf76906..000000000 --- a/module/avl/include/sys/avl_impl.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _AVL_IMPL_H -#define _AVL_IMPL_H - - - -/* - * This is a private header file. Applications should not directly include - * this file. - */ - -#include <sys/types.h> - -#ifdef __cplusplus -extern "C" { -#endif - - -/* - * generic AVL tree implementation for kernel use - * - * There are 5 pieces of information stored for each node in an AVL tree - * - * pointer to less than child - * pointer to greater than child - * a pointer to the parent of this node - * an indication [0/1] of which child I am of my parent - * a "balance" (-1, 0, +1) indicating which child tree is taller - * - * Since they only need 3 bits, the last two fields are packed into the - * bottom bits of the parent pointer on 64 bit machines to save on space. - */ - -#ifndef _LP64 - -struct avl_node { - struct avl_node *avl_child[2]; /* left/right children */ - struct avl_node *avl_parent; /* this node's parent */ - unsigned short avl_child_index; /* my index in parent's avl_child[] */ - short avl_balance; /* balance value: -1, 0, +1 */ -}; - -#define AVL_XPARENT(n) ((n)->avl_parent) -#define AVL_SETPARENT(n, p) ((n)->avl_parent = (p)) - -#define AVL_XCHILD(n) ((n)->avl_child_index) -#define AVL_SETCHILD(n, c) ((n)->avl_child_index = (unsigned short)(c)) - -#define AVL_XBALANCE(n) ((n)->avl_balance) -#define AVL_SETBALANCE(n, b) ((n)->avl_balance = (short)(b)) - -#else /* _LP64 */ - -/* - * for 64 bit machines, avl_pcb contains parent pointer, balance and child_index - * values packed in the following manner: - * - * |63 3| 2 |1 0 | - * |-------------------------------------|-----------------|-------------| - * | avl_parent hi order bits | avl_child_index | avl_balance | - * | | | + 1 | - * |-------------------------------------|-----------------|-------------| - * - */ -struct avl_node { - struct avl_node *avl_child[2]; /* left/right children nodes */ - uintptr_t avl_pcb; /* parent, child_index, balance */ -}; - -/* - * macros to extract/set fields in avl_pcb - * - * pointer to the parent of the current node is the high order bits - */ -#define AVL_XPARENT(n) ((struct avl_node *)((n)->avl_pcb & ~7)) -#define AVL_SETPARENT(n, p) \ - ((n)->avl_pcb = (((n)->avl_pcb & 7) | (uintptr_t)(p))) - -/* - * index of this node in its parent's avl_child[]: bit #2 - */ -#define AVL_XCHILD(n) (((n)->avl_pcb >> 2) & 1) -#define AVL_SETCHILD(n, c) \ - ((n)->avl_pcb = (uintptr_t)(((n)->avl_pcb & ~4) | ((c) << 2))) - -/* - * balance indication for a node, lowest 2 bits. A valid balance is - * -1, 0, or +1, and is encoded by adding 1 to the value to get the - * unsigned values of 0, 1, 2. - */ -#define AVL_XBALANCE(n) ((int)(((n)->avl_pcb & 3) - 1)) -#define AVL_SETBALANCE(n, b) \ - ((n)->avl_pcb = (uintptr_t)((((n)->avl_pcb & ~3) | ((b) + 1)))) - -#endif /* _LP64 */ - - - -/* - * switch between a node and data pointer for a given tree - * the value of "o" is tree->avl_offset - */ -#define AVL_NODE2DATA(n, o) ((void *)((uintptr_t)(n) - (o))) -#define AVL_DATA2NODE(d, o) ((struct avl_node *)((uintptr_t)(d) + (o))) - - - -/* - * macros used to create/access an avl_index_t - */ -#define AVL_INDEX2NODE(x) ((avl_node_t *)((x) & ~1)) -#define AVL_INDEX2CHILD(x) ((x) & 1) -#define AVL_MKINDEX(n, c) ((avl_index_t)(n) | (c)) - - -/* - * The tree structure. The fields avl_root, avl_compar, and avl_offset come - * first since they are needed for avl_find(). We want them to fit into - * a single 64 byte cache line to make avl_find() as fast as possible. - */ -struct avl_tree { - struct avl_node *avl_root; /* root node in tree */ - int (*avl_compar)(const void *, const void *); - size_t avl_offset; /* offsetof(type, avl_link_t field) */ - ulong_t avl_numnodes; /* number of nodes in the tree */ - size_t avl_size; /* sizeof user type struct */ -}; - - -/* - * This will only by used via AVL_NEXT() or AVL_PREV() - */ -extern void *avl_walk(struct avl_tree *, void *, int); - -#ifdef __cplusplus -} -#endif - -#endif /* _AVL_IMPL_H */ diff --git a/module/nvpair/Makefile.in b/module/nvpair/Makefile.in index 3f643e724..71c748e5f 100644 --- a/module/nvpair/Makefile.in +++ b/module/nvpair/Makefile.in @@ -1,10 +1,12 @@ MODULE := znvpair -EXTRA_CFLAGS = -I@MODDIR@/nvpair/include -EXTRA_CFLAGS += @KERNELCPPFLAGS@ +EXTRA_CFLAGS = @KERNELCPPFLAGS@ +EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h +EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h +EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@ -obj-m := ${MODULE}.o +obj-m := $(MODULE).o -${MODULE}-objs += nvpair.o -${MODULE}-objs += nvpair_alloc_spl.o -${MODULE}-objs += nvpair_alloc_fixed.o +$(MODULE)-objs += @top_srcdir@/module/nvpair/nvpair.o +$(MODULE)-objs += @top_srcdir@/module/nvpair/nvpair_alloc_spl.o +$(MODULE)-objs += @top_srcdir@/module/nvpair/nvpair_alloc_fixed.o diff --git a/module/nvpair/include/sys/nvpair.h b/module/nvpair/include/sys/nvpair.h deleted file mode 100644 index 30ff4e066..000000000 --- a/module/nvpair/include/sys/nvpair.h +++ /dev/null @@ -1,281 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_NVPAIR_H -#define _SYS_NVPAIR_H - -#include <sys/types.h> -#include <sys/errno.h> -#include <sys/va_list.h> - -#if defined(_KERNEL) && !defined(_BOOT) -#include <sys/kmem.h> -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum { - DATA_TYPE_UNKNOWN = 0, - DATA_TYPE_BOOLEAN, - DATA_TYPE_BYTE, - DATA_TYPE_INT16, - DATA_TYPE_UINT16, - DATA_TYPE_INT32, - DATA_TYPE_UINT32, - DATA_TYPE_INT64, - DATA_TYPE_UINT64, - DATA_TYPE_STRING, - DATA_TYPE_BYTE_ARRAY, - DATA_TYPE_INT16_ARRAY, - DATA_TYPE_UINT16_ARRAY, - DATA_TYPE_INT32_ARRAY, - DATA_TYPE_UINT32_ARRAY, - DATA_TYPE_INT64_ARRAY, - DATA_TYPE_UINT64_ARRAY, - DATA_TYPE_STRING_ARRAY, - DATA_TYPE_HRTIME, - DATA_TYPE_NVLIST, - DATA_TYPE_NVLIST_ARRAY, - DATA_TYPE_BOOLEAN_VALUE, - DATA_TYPE_INT8, - DATA_TYPE_UINT8, - DATA_TYPE_BOOLEAN_ARRAY, - DATA_TYPE_INT8_ARRAY, -#if !defined(_KERNEL) - DATA_TYPE_UINT8_ARRAY, - DATA_TYPE_DOUBLE -#else - DATA_TYPE_UINT8_ARRAY -#endif -} data_type_t; - -typedef struct nvpair { - int32_t nvp_size; /* size of this nvpair */ - int16_t nvp_name_sz; /* length of name string */ - int16_t nvp_reserve; /* not used */ - int32_t nvp_value_elem; /* number of elements for array types */ - data_type_t nvp_type; /* type of value */ - /* name string */ - /* aligned ptr array for string arrays */ - /* aligned array of data for value */ -} nvpair_t; - -/* nvlist header */ -typedef struct nvlist { - int32_t nvl_version; - uint32_t nvl_nvflag; /* persistent flags */ - uint64_t nvl_priv; /* ptr to private data if not packed */ - uint32_t nvl_flag; - int32_t nvl_pad; /* currently not used, for alignment */ -} nvlist_t; - -/* nvp implementation version */ -#define NV_VERSION 0 - -/* nvlist pack encoding */ -#define NV_ENCODE_NATIVE 0 -#define NV_ENCODE_XDR 1 - -/* nvlist persistent unique name flags, stored in nvl_nvflags */ -#define NV_UNIQUE_NAME 0x1 -#define NV_UNIQUE_NAME_TYPE 0x2 - -/* nvlist lookup pairs related flags */ -#define NV_FLAG_NOENTOK 0x1 - -/* convenience macros */ -#define NV_ALIGN(x) (((ulong_t)(x) + 7ul) & ~7ul) -#define NV_ALIGN4(x) (((x) + 3) & ~3) - -#define NVP_SIZE(nvp) ((nvp)->nvp_size) -#define NVP_NAME(nvp) ((char *)(nvp) + sizeof (nvpair_t)) -#define NVP_TYPE(nvp) ((nvp)->nvp_type) -#define NVP_NELEM(nvp) ((nvp)->nvp_value_elem) -#define NVP_VALUE(nvp) ((char *)(nvp) + NV_ALIGN(sizeof (nvpair_t) \ - + (nvp)->nvp_name_sz)) - -#define NVL_VERSION(nvl) ((nvl)->nvl_version) -#define NVL_SIZE(nvl) ((nvl)->nvl_size) -#define NVL_FLAG(nvl) ((nvl)->nvl_flag) - -/* NV allocator framework */ -typedef struct nv_alloc_ops nv_alloc_ops_t; - -typedef struct nv_alloc { - const nv_alloc_ops_t *nva_ops; - void *nva_arg; -} nv_alloc_t; - -struct nv_alloc_ops { - int (*nv_ao_init)(nv_alloc_t *, __va_list); - void (*nv_ao_fini)(nv_alloc_t *); - void *(*nv_ao_alloc)(nv_alloc_t *, size_t); - void (*nv_ao_free)(nv_alloc_t *, void *, size_t); - void (*nv_ao_reset)(nv_alloc_t *); -}; - -extern const nv_alloc_ops_t *nv_fixed_ops; -extern nv_alloc_t *nv_alloc_nosleep; - -#if defined(_KERNEL) && !defined(_BOOT) -extern nv_alloc_t *nv_alloc_sleep; -#endif - -int nv_alloc_init(nv_alloc_t *, const nv_alloc_ops_t *, /* args */ ...); -void nv_alloc_reset(nv_alloc_t *); -void nv_alloc_fini(nv_alloc_t *); - -/* list management */ -int nvlist_alloc(nvlist_t **, uint_t, int); -void nvlist_free(nvlist_t *); -int nvlist_size(nvlist_t *, size_t *, int); -int nvlist_pack(nvlist_t *, char **, size_t *, int, int); -int nvlist_unpack(char *, size_t, nvlist_t **, int); -int nvlist_dup(nvlist_t *, nvlist_t **, int); -int nvlist_merge(nvlist_t *, nvlist_t *, int); - -uint_t nvlist_nvflag(nvlist_t *); - -int nvlist_xalloc(nvlist_t **, uint_t, nv_alloc_t *); -int nvlist_xpack(nvlist_t *, char **, size_t *, int, nv_alloc_t *); -int nvlist_xunpack(char *, size_t, nvlist_t **, nv_alloc_t *); -int nvlist_xdup(nvlist_t *, nvlist_t **, nv_alloc_t *); -nv_alloc_t *nvlist_lookup_nv_alloc(nvlist_t *); - -int nvlist_add_nvpair(nvlist_t *, nvpair_t *); -int nvlist_add_boolean(nvlist_t *, const char *); -int nvlist_add_boolean_value(nvlist_t *, const char *, boolean_t); -int nvlist_add_byte(nvlist_t *, const char *, uchar_t); -int nvlist_add_int8(nvlist_t *, const char *, int8_t); -int nvlist_add_uint8(nvlist_t *, const char *, uint8_t); -int nvlist_add_int16(nvlist_t *, const char *, int16_t); -int nvlist_add_uint16(nvlist_t *, const char *, uint16_t); -int nvlist_add_int32(nvlist_t *, const char *, int32_t); -int nvlist_add_uint32(nvlist_t *, const char *, uint32_t); -int nvlist_add_int64(nvlist_t *, const char *, int64_t); -int nvlist_add_uint64(nvlist_t *, const char *, uint64_t); -int nvlist_add_string(nvlist_t *, const char *, const char *); -int nvlist_add_nvlist(nvlist_t *, const char *, nvlist_t *); -int nvlist_add_boolean_array(nvlist_t *, const char *, boolean_t *, uint_t); -int nvlist_add_byte_array(nvlist_t *, const char *, uchar_t *, uint_t); -int nvlist_add_int8_array(nvlist_t *, const char *, int8_t *, uint_t); -int nvlist_add_uint8_array(nvlist_t *, const char *, uint8_t *, uint_t); -int nvlist_add_int16_array(nvlist_t *, const char *, int16_t *, uint_t); -int nvlist_add_uint16_array(nvlist_t *, const char *, uint16_t *, uint_t); -int nvlist_add_int32_array(nvlist_t *, const char *, int32_t *, uint_t); -int nvlist_add_uint32_array(nvlist_t *, const char *, uint32_t *, uint_t); -int nvlist_add_int64_array(nvlist_t *, const char *, int64_t *, uint_t); -int nvlist_add_uint64_array(nvlist_t *, const char *, uint64_t *, uint_t); -int nvlist_add_string_array(nvlist_t *, const char *, char *const *, uint_t); -int nvlist_add_nvlist_array(nvlist_t *, const char *, nvlist_t **, uint_t); -int nvlist_add_hrtime(nvlist_t *, const char *, hrtime_t); -#if !defined(_KERNEL) -int nvlist_add_double(nvlist_t *, const char *, double); -#endif - -int nvlist_remove(nvlist_t *, const char *, data_type_t); -int nvlist_remove_all(nvlist_t *, const char *); -int nvlist_remove_nvpair(nvlist_t *, nvpair_t *); - -int nvlist_lookup_boolean(nvlist_t *, const char *); -int nvlist_lookup_boolean_value(nvlist_t *, const char *, boolean_t *); -int nvlist_lookup_byte(nvlist_t *, const char *, uchar_t *); -int nvlist_lookup_int8(nvlist_t *, const char *, int8_t *); -int nvlist_lookup_uint8(nvlist_t *, const char *, uint8_t *); -int nvlist_lookup_int16(nvlist_t *, const char *, int16_t *); -int nvlist_lookup_uint16(nvlist_t *, const char *, uint16_t *); -int nvlist_lookup_int32(nvlist_t *, const char *, int32_t *); -int nvlist_lookup_uint32(nvlist_t *, const char *, uint32_t *); -int nvlist_lookup_int64(nvlist_t *, const char *, int64_t *); -int nvlist_lookup_uint64(nvlist_t *, const char *, uint64_t *); -int nvlist_lookup_string(nvlist_t *, const char *, char **); -int nvlist_lookup_nvlist(nvlist_t *, const char *, nvlist_t **); -int nvlist_lookup_boolean_array(nvlist_t *, const char *, - boolean_t **, uint_t *); -int nvlist_lookup_byte_array(nvlist_t *, const char *, uchar_t **, uint_t *); -int nvlist_lookup_int8_array(nvlist_t *, const char *, int8_t **, uint_t *); -int nvlist_lookup_uint8_array(nvlist_t *, const char *, uint8_t **, uint_t *); -int nvlist_lookup_int16_array(nvlist_t *, const char *, int16_t **, uint_t *); -int nvlist_lookup_uint16_array(nvlist_t *, const char *, uint16_t **, uint_t *); -int nvlist_lookup_int32_array(nvlist_t *, const char *, int32_t **, uint_t *); -int nvlist_lookup_uint32_array(nvlist_t *, const char *, uint32_t **, uint_t *); -int nvlist_lookup_int64_array(nvlist_t *, const char *, int64_t **, uint_t *); -int nvlist_lookup_uint64_array(nvlist_t *, const char *, uint64_t **, uint_t *); -int nvlist_lookup_string_array(nvlist_t *, const char *, char ***, uint_t *); -int nvlist_lookup_nvlist_array(nvlist_t *, const char *, - nvlist_t ***, uint_t *); -int nvlist_lookup_hrtime(nvlist_t *, const char *, hrtime_t *); -int nvlist_lookup_pairs(nvlist_t *, int, ...); -#if !defined(_KERNEL) -int nvlist_lookup_double(nvlist_t *, const char *, double *); -#endif - -int nvlist_lookup_nvpair(nvlist_t *, const char *, nvpair_t **); -int nvlist_lookup_nvpair_embedded_index(nvlist_t *, const char *, nvpair_t **, - int *, char **); -boolean_t nvlist_exists(nvlist_t *, const char *); -boolean_t nvlist_empty(nvlist_t *); - -/* processing nvpair */ -nvpair_t *nvlist_next_nvpair(nvlist_t *, nvpair_t *); -nvpair_t *nvlist_prev_nvpair(nvlist_t *, nvpair_t *); -char *nvpair_name(nvpair_t *); -data_type_t nvpair_type(nvpair_t *); -int nvpair_type_is_array(nvpair_t *); -int nvpair_value_boolean_value(nvpair_t *, boolean_t *); -int nvpair_value_byte(nvpair_t *, uchar_t *); -int nvpair_value_int8(nvpair_t *, int8_t *); -int nvpair_value_uint8(nvpair_t *, uint8_t *); -int nvpair_value_int16(nvpair_t *, int16_t *); -int nvpair_value_uint16(nvpair_t *, uint16_t *); -int nvpair_value_int32(nvpair_t *, int32_t *); -int nvpair_value_uint32(nvpair_t *, uint32_t *); -int nvpair_value_int64(nvpair_t *, int64_t *); -int nvpair_value_uint64(nvpair_t *, uint64_t *); -int nvpair_value_string(nvpair_t *, char **); -int nvpair_value_nvlist(nvpair_t *, nvlist_t **); -int nvpair_value_boolean_array(nvpair_t *, boolean_t **, uint_t *); -int nvpair_value_byte_array(nvpair_t *, uchar_t **, uint_t *); -int nvpair_value_int8_array(nvpair_t *, int8_t **, uint_t *); -int nvpair_value_uint8_array(nvpair_t *, uint8_t **, uint_t *); -int nvpair_value_int16_array(nvpair_t *, int16_t **, uint_t *); -int nvpair_value_uint16_array(nvpair_t *, uint16_t **, uint_t *); -int nvpair_value_int32_array(nvpair_t *, int32_t **, uint_t *); -int nvpair_value_uint32_array(nvpair_t *, uint32_t **, uint_t *); -int nvpair_value_int64_array(nvpair_t *, int64_t **, uint_t *); -int nvpair_value_uint64_array(nvpair_t *, uint64_t **, uint_t *); -int nvpair_value_string_array(nvpair_t *, char ***, uint_t *); -int nvpair_value_nvlist_array(nvpair_t *, nvlist_t ***, uint_t *); -int nvpair_value_hrtime(nvpair_t *, hrtime_t *); -#if !defined(_KERNEL) -int nvpair_value_double(nvpair_t *, double *); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_NVPAIR_H */ diff --git a/module/nvpair/include/sys/nvpair_impl.h b/module/nvpair/include/sys/nvpair_impl.h deleted file mode 100644 index b851ddd54..000000000 --- a/module/nvpair/include/sys/nvpair_impl.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2004 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _NVPAIR_IMPL_H -#define _NVPAIR_IMPL_H - - - -#ifdef __cplusplus -extern "C" { -#endif - -#include <sys/nvpair.h> - -/* - * The structures here provided for information and debugging purposes only - * may be changed in the future. - */ - -/* - * implementation linked list for pre-packed data - */ -typedef struct i_nvp i_nvp_t; - -struct i_nvp { - union { - uint64_t _nvi_align; /* ensure alignment */ - struct { - i_nvp_t *_nvi_next; /* pointer to next nvpair */ - i_nvp_t *_nvi_prev; /* pointer to prev nvpair */ - } _nvi; - } _nvi_un; - nvpair_t nvi_nvp; /* nvpair */ -}; -#define nvi_next _nvi_un._nvi._nvi_next -#define nvi_prev _nvi_un._nvi._nvi_prev - -typedef struct { - i_nvp_t *nvp_list; /* linked list of nvpairs */ - i_nvp_t *nvp_last; /* last nvpair */ - i_nvp_t *nvp_curr; /* current walker nvpair */ - nv_alloc_t *nvp_nva; /* pluggable allocator */ - uint32_t nvp_stat; /* internal state */ -} nvpriv_t; - -#ifdef __cplusplus -} -#endif - -#endif /* _NVPAIR_IMPL_H */ diff --git a/module/unicode/Makefile.in b/module/unicode/Makefile.in index 1a78fe0b5..14a46b270 100644 --- a/module/unicode/Makefile.in +++ b/module/unicode/Makefile.in @@ -1,9 +1,11 @@ MODULE := zunicode -EXTRA_CFLAGS = -I@MODDIR@/unicode/include -EXTRA_CFLAGS += @KERNELCPPFLAGS@ +EXTRA_CFLAGS = @KERNELCPPFLAGS@ +EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h +EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h +EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@ -obj-m := ${MODULE}.o +obj-m := $(MODULE).o -${MODULE}-objs += u8_textprep.o -${MODULE}-objs += uconv.o +$(MODULE)-objs += @top_srcdir@/module/unicode/u8_textprep.o +$(MODULE)-objs += @top_srcdir@/module/unicode/uconv.o diff --git a/module/unicode/include/sys/u8_textprep.h b/module/unicode/include/sys/u8_textprep.h deleted file mode 100644 index f8b5bed6e..000000000 --- a/module/unicode/include/sys/u8_textprep.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_U8_TEXTPREP_H -#define _SYS_U8_TEXTPREP_H - - - -#include <sys/isa_defs.h> -#include <sys/types.h> -#include <sys/errno.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Unicode encoding conversion functions and their macros. - */ -#define UCONV_IN_BIG_ENDIAN 0x0001 -#define UCONV_OUT_BIG_ENDIAN 0x0002 -#define UCONV_IN_SYSTEM_ENDIAN 0x0004 -#define UCONV_OUT_SYSTEM_ENDIAN 0x0008 -#define UCONV_IN_LITTLE_ENDIAN 0x0010 -#define UCONV_OUT_LITTLE_ENDIAN 0x0020 -#define UCONV_IGNORE_NULL 0x0040 -#define UCONV_IN_ACCEPT_BOM 0x0080 -#define UCONV_OUT_EMIT_BOM 0x0100 - -extern int uconv_u16tou32(const uint16_t *, size_t *, uint32_t *, size_t *, - int); -extern int uconv_u16tou8(const uint16_t *, size_t *, uchar_t *, size_t *, int); -extern int uconv_u32tou16(const uint32_t *, size_t *, uint16_t *, size_t *, - int); -extern int uconv_u32tou8(const uint32_t *, size_t *, uchar_t *, size_t *, int); -extern int uconv_u8tou16(const uchar_t *, size_t *, uint16_t *, size_t *, int); -extern int uconv_u8tou32(const uchar_t *, size_t *, uint32_t *, size_t *, int); - -/* - * UTF-8 text preparation functions and their macros. - * - * Among the macros defined, U8_CANON_DECOMP, U8_COMPAT_DECOMP, and - * U8_CANON_COMP are not public interfaces and must not be used directly - * at the flag input argument. - */ -#define U8_STRCMP_CS (0x00000001) -#define U8_STRCMP_CI_UPPER (0x00000002) -#define U8_STRCMP_CI_LOWER (0x00000004) - -#define U8_CANON_DECOMP (0x00000010) -#define U8_COMPAT_DECOMP (0x00000020) -#define U8_CANON_COMP (0x00000040) - -#define U8_STRCMP_NFD (U8_CANON_DECOMP) -#define U8_STRCMP_NFC (U8_CANON_DECOMP | U8_CANON_COMP) -#define U8_STRCMP_NFKD (U8_COMPAT_DECOMP) -#define U8_STRCMP_NFKC (U8_COMPAT_DECOMP | U8_CANON_COMP) - -#define U8_TEXTPREP_TOUPPER (U8_STRCMP_CI_UPPER) -#define U8_TEXTPREP_TOLOWER (U8_STRCMP_CI_LOWER) - -#define U8_TEXTPREP_NFD (U8_STRCMP_NFD) -#define U8_TEXTPREP_NFC (U8_STRCMP_NFC) -#define U8_TEXTPREP_NFKD (U8_STRCMP_NFKD) -#define U8_TEXTPREP_NFKC (U8_STRCMP_NFKC) - -#define U8_TEXTPREP_IGNORE_NULL (0x00010000) -#define U8_TEXTPREP_IGNORE_INVALID (0x00020000) -#define U8_TEXTPREP_NOWAIT (0x00040000) - -#define U8_UNICODE_320 (0) -#define U8_UNICODE_500 (1) -#define U8_UNICODE_LATEST (U8_UNICODE_500) - -#define U8_VALIDATE_ENTIRE (0x00100000) -#define U8_VALIDATE_CHECK_ADDITIONAL (0x00200000) -#define U8_VALIDATE_UCS2_RANGE (0x00400000) - -#define U8_ILLEGAL_CHAR (-1) -#define U8_OUT_OF_RANGE_CHAR (-2) - -extern int u8_validate(char *, size_t, char **, int, int *); -extern int u8_strcmp(const char *, const char *, size_t, int, size_t, int *); -extern size_t u8_textprep_str(char *, size_t *, char *, size_t *, int, size_t, - int *); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_U8_TEXTPREP_H */ diff --git a/module/unicode/include/sys/u8_textprep_data.h b/module/unicode/include/sys/u8_textprep_data.h deleted file mode 100644 index 03f71f26c..000000000 --- a/module/unicode/include/sys/u8_textprep_data.h +++ /dev/null @@ -1,35376 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ -/* - * COPYRIGHT AND PERMISSION NOTICE - * - * Copyright (c) 1991-2006 Unicode, Inc. All rights reserved. Distributed under - * the Terms of Use in http://www.unicode.org/copyright.html. - * - * Permission is hereby granted, free of charge, to any person obtaining - * a copy of the Unicode data files and any associated documentation (the - * "Data Files") or Unicode software and any associated documentation (the - * "Software") to deal in the Data Files or Software without restriction, - * including without limitation the rights to use, copy, modify, merge, - * publish, distribute, and/or sell copies of the Data Files or Software, and - * to permit persons to whom the Data Files or Software are furnished to do so, - * provided that (a) the above copyright notice(s) and this permission notice - * appear with all copies of the Data Files or Software, (b) both the above - * copyright notice(s) and this permission notice appear in associated - * documentation, and (c) there is clear notice in each modified Data File or - * in the Software as well as in the documentation associated with the Data - * File(s) or Software that the data or software has been modified. - * - * THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY - * KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF - * THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS - * INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR - * CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE - * OF THE DATA FILES OR SOFTWARE. - * - * Except as contained in this notice, the name of a copyright holder shall not - * be used in advertising or otherwise to promote the sale, use or other - * dealings in these Data Files or Software without prior written authorization - * of the copyright holder. - * - * Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be - * registered in some jurisdictions. All other trademarks and registered - * trademarks mentioned herein are the property of their respective owners. - */ -/* - * This file has been modified by Sun Microsystems, Inc. - */ - -#ifndef _SYS_U8_TEXTPREP_DATA_H -#define _SYS_U8_TEXTPREP_DATA_H - - - -#include <sys/types.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * To get to the combining class data, composition mappings, decomposition - * mappings, and case conversion mappings of Unicode, the data structures - * formulated and their meanings are like the following: - * - * Each UTF-8 character is seen as a 4-byte entity so that U+0061 (or 0x61 in - * UTF-8) would be seen as 0x00 0x00 0x00 0x61. Similarly, U+1D15E would be - * 0xF0 0x9D 0x85 0x9E in UTF-8. - * - * The first byte (MSB) value is an index to the b1_tbl, such as - * u8_common_b1_tbl and u8_composition_b1_tbl tables. A b1_tbl has - * indices to b2_tbl tables that have indices to b3_tbl. Each b3_tbl has - * either indices to b4_tbl or indices to b4_tbl and base values for - * displacement calculations later by using the u8_displacement_t type at - * below. Each b4_tbl table then has indices to the final tables. - * - * As an example, if we have a character with code value of U+1D15E which is - * 0xF0 0x9D 0x85 0x9E in UTF-8, the target decomposition character bytes - * that will be mapped by the mapping procedure would be the ones between - * the start_index and the end_index computed as like the following: - * - * b2_tbl_id = u8_common_b1_tbl[0][0xF0]; - * b3_tbl_id = u8_decomp_b2_tbl[0][b2_tbl_id][0x9D]; - * b4_tbl_id = u8_decomp_b3_tbl[0][b3_tbl_id][0x85].tbl_id; - * b4_base = u8_decomp_b3_tbl[0][b3_tbl_id][0x85].base; - * if (b4_tbl_id >= 0x8000) { - * b4_tbl_id -= 0x8000; - * start_index = u8_decomp_b4_16bit_tbl[0][b4_tbl_id][0x9E]; - * end_index = u8_decomp_b4_16bit_tbl[0][b4_tbl_id][0x9E + 1]; - * } else { - * start_index = u8_decomp_b4_tbl[0][b4_tbl_id][0x9E]; - * end_index = u8_decomp_b4_tbl[0][b4_tbl_id][0x9E + 1]; - * } - * - * The start_index and the end_index can be used to retrieve the bytes - * possibly of multiple UTF-8 characters from the final tables. - * - * The "[0]" at the above indicates this is for Unicode Version 3.2.0 data - * as of today. Consequently, the "[1]" indicates another Unicode version - * data and it is Unicode 5.0.0 as of today. - * - * The mapping procedures and the data structures are more or less similar or - * alike among different mappings. You might want to read the u8_textprep.c - * for specific details. - * - * The tool programs created and used to generate the tables in this file are - * saved at PSARC/2007/149/materials/ as tools.tar.gz file. - */ - -/* The following is a component type for the b4_tbl vectors. */ -typedef struct { - uint16_t tbl_id; - uint16_t base; -} u8_displacement_t; - -/* - * The U8_TBL_ELEMENT_NOT_DEF macro indicates a byte that is not defined or - * used. The U8_TBL_ELEMENT_FILLER indicates the end of a UTF-8 character at - * the final tables. - */ -#define U8_TBL_ELEMENT_NOT_DEF (0xff) -#define N_ U8_TBL_ELEMENT_NOT_DEF - -#define U8_TBL_ELEMENT_FILLER (0xf7) -#define FIL_ U8_TBL_ELEMENT_FILLER - -/* - * The common b1_tbl for combining class, decompositions, tolower, and - * toupper case conversion mappings. - */ -static const uchar_t u8_common_b1_tbl[2][256] = { - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 1, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 1, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, -}; - -static const uchar_t u8_combining_class_b2_tbl[2][2][256] = { - { - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 1, 2, 3, 4, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, 5, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, 6, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - - }, - { - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 1, 2, 3, 4, N_, N_, N_, N_, - N_, N_, 5, N_, N_, N_, N_, 6, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 7, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, 8, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - - }, - -}; - -static const uchar_t u8_combining_class_b3_tbl[2][9][256] = { - { - { /* Third byte table 0. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, 0, 1, N_, N_, - N_, N_, 2, N_, N_, N_, 3, 4, - N_, 5, N_, 6, 7, 8, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 1. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, N_, 19, - N_, 20, N_, 21, N_, 22, N_, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 2. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 32, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, 33, N_, N_, 34, - N_, N_, 35, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 3. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, 36, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 4. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 37, N_, 38, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 5. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, 39, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 40, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 6. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, 41, 42, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 7. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 8. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - }, - { - { /* Third byte table 0. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, 0, 1, N_, N_, - N_, N_, 2, N_, N_, N_, 3, 4, - 5, 6, N_, 7, 8, 9, N_, 10, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 1. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, N_, 21, - N_, 22, 23, 24, N_, 25, N_, 26, - 27, 28, 29, 30, 31, 32, 33, 34, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 2. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 35, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, 36, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, 37, N_, N_, 38, - N_, N_, 39, N_, 40, N_, N_, N_, - 41, N_, N_, N_, 42, 43, N_, N_, - N_, N_, N_, N_, N_, N_, N_, 44, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 3. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, 45, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 4. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 46, N_, 47, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 5. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 48, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 6. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, 49, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 50, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 7. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 51, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { /* Third byte table 8. */ - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, 52, 53, N_, - N_, 54, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - }, -}; - -/* - * Unlike other b4_tbl, the b4_tbl for combining class data has - * the combining class values not indices to the final tables. - */ -static const uchar_t u8_combining_class_b4_tbl[2][55][256] = { - { - { /* Fourth byte table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 232, 220, 220, - 220, 220, 232, 216, 220, 220, 220, 220, - 220, 202, 202, 220, 220, 220, 220, 202, - 202, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 1, 1, 1, 1, - 1, 220, 220, 220, 220, 230, 230, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 230, 230, 230, 240, 230, 220, - 220, 220, 230, 230, 230, 220, 220, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 234, 234, 233, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 230, 230, 230, 230, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 230, 230, 230, 230, 220, 230, - 230, 230, 222, 220, 230, 230, 230, 230, - 230, 230, 0, 220, 220, 220, 220, 220, - 230, 230, 220, 230, 230, 222, 228, 230, - 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 0, 20, 21, 22, 0, 23, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 24, 25, 0, 230, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 34, 230, 230, 220, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 230, 230, - 230, 230, 230, 230, 230, 0, 0, 230, - 230, 230, 230, 220, 230, 0, 0, 230, - 230, 0, 220, 230, 230, 220, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 36, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 220, 230, 230, 220, 230, 230, 220, - 220, 220, 230, 220, 220, 230, 220, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 220, 230, 220, 230, 220, 230, - 220, 230, 230, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 230, 220, 230, 230, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 84, 91, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 103, 103, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 107, 107, 107, 107, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 118, 118, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 122, 122, 122, 122, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 220, 220, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 220, 0, 220, - 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 129, 130, 0, 132, 0, 0, 0, - 0, 0, 130, 130, 130, 130, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 30. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 130, 0, 230, 230, 9, 0, 230, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 31. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 220, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 32. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 0, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 33. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 34. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 35. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 36. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 1, 1, 230, 230, 230, 230, - 1, 1, 1, 230, 230, 0, 0, 0, - 0, 230, 0, 0, 0, 1, 1, 230, - 220, 230, 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 37. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 218, 228, 232, 222, 224, 224, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 38. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 39. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 40. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 230, 230, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 41. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 216, 216, 1, - 1, 1, 0, 0, 0, 226, 216, 216, - 216, 216, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 220, 220, 220, 220, 220, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 42. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 220, 220, 220, 0, 0, 230, 230, 230, - 230, 230, 220, 220, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 230, 230, 230, 230, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 43. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 44. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 45. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 46. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 47. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 48. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 49. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 50. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 51. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 52. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 53. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 54. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - }, - { - { /* Fourth byte table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 232, 220, 220, - 220, 220, 232, 216, 220, 220, 220, 220, - 220, 202, 202, 220, 220, 220, 220, 202, - 202, 220, 220, 220, 220, 220, 220, 220, - 220, 220, 220, 220, 1, 1, 1, 1, - 1, 220, 220, 220, 220, 230, 230, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 230, 230, 230, 240, 230, 220, - 220, 220, 230, 230, 230, 220, 220, 0, - 230, 230, 230, 220, 220, 220, 220, 230, - 232, 220, 220, 230, 233, 234, 234, 233, - 234, 234, 233, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 230, 230, 230, 230, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 220, 230, 230, 230, 230, 220, 230, - 230, 230, 222, 220, 230, 230, 230, 230, - 230, 230, 220, 220, 220, 220, 220, 220, - 230, 230, 220, 230, 230, 222, 228, 230, - 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 19, 20, 21, 22, 0, 23, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 24, 25, 0, 230, 220, 0, 18, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 230, 230, 230, 230, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 27, 28, 29, 30, 31, - 32, 33, 34, 230, 230, 220, 220, 230, - 230, 230, 230, 230, 220, 230, 230, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 35, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 230, 230, - 230, 230, 230, 230, 230, 0, 0, 230, - 230, 230, 230, 220, 230, 0, 0, 230, - 230, 0, 220, 230, 230, 220, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 36, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 220, 230, 230, 220, 230, 230, 220, - 220, 220, 230, 220, 220, 230, 220, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 220, 230, 220, 230, 220, 230, - 220, 230, 230, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 230, 230, 230, 230, 230, - 230, 230, 220, 230, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 230, 220, 230, 230, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 84, 91, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 103, 103, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 107, 107, 107, 107, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 118, 118, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 30. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 122, 122, 122, 122, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 31. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 220, 220, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 220, 0, 220, - 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 32. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 129, 130, 0, 132, 0, 0, 0, - 0, 0, 130, 130, 130, 130, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 33. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 130, 0, 230, 230, 9, 0, 230, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 34. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 220, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 35. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 0, 9, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 36. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 37. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 38. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 230, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 39. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 228, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 40. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 222, 230, 220, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 41. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 230, - 220, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 42. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 43. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 230, 220, 230, 230, 230, - 230, 230, 230, 230, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 44. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 220, 230, 230, 230, 230, 230, - 230, 230, 220, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 230, 220, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 45. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 1, 1, 230, 230, 230, 230, - 1, 1, 1, 230, 230, 0, 0, 0, - 0, 230, 0, 0, 0, 1, 1, 230, - 220, 230, 1, 1, 220, 220, 220, 220, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 46. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 218, 228, 232, 222, 224, 224, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 47. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 48. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 49. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 26, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 50. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 230, 230, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 51. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 220, 0, 230, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 230, 1, 220, 0, 0, 0, 0, 9, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 52. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 216, 216, 1, - 1, 1, 0, 0, 0, 226, 216, 216, - 216, 216, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 220, 220, 220, 220, 220, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 53. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 220, 220, 220, 0, 0, 230, 230, 230, - 230, 230, 220, 220, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 230, 230, 230, 230, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - { /* Fourth byte table 54. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 230, 230, 230, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }, - }, -}; - -static const uchar_t u8_composition_b1_tbl[2][256] = { - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, -}; - -static const uchar_t u8_composition_b2_tbl[2][1][256] = { - { - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 1, 2, 3, 4, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - - }, - { - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 1, 2, 3, 4, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - - }, - -}; - -static const u8_displacement_t u8_composition_b3_tbl[2][5][256] = { - { - { /* Third byte table 0. */ - { 0x8000, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 0, 2470 }, - { 0x8001, 2491 }, { 1, 2871 }, { 2, 2959 }, - { 3, 3061 }, { 4, 3212 }, { 5, 3226 }, - { N_, 0 }, { 6, 3270 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 0x8002, 3277 }, - { 7, 3774 }, { 8, 3949 }, { 9, 4198 }, - { N_, 0 }, { 10, 4265 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 11, 4293 }, { 12, 4312 }, { N_, 0 }, - { 13, 4326 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 1. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 14, 4347 }, - { N_, 0 }, { N_, 0 }, { 15, 4374 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 16, 4391 }, - { 17, 4416 }, { 18, 4425 }, { N_, 0 }, - { 19, 4451 }, { 20, 4460 }, { 21, 4469 }, - { N_, 0 }, { 22, 4503 }, { N_, 0 }, - { 23, 4529 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 2. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 24, 4563 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 25, 4572 }, { 26, 4588 }, - { 27, 4620 }, { 28, 4666 }, { 0x8003, 4682 }, - { 0x8004, 5254 }, { 29, 5616 }, { 30, 5646 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 3. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 31, 5684 }, - { 32, 5708 }, { 33, 5732 }, { 34, 5780 }, - { 35, 5900 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 4. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 36, 6012 }, { 37, 6241 }, { 38, 6358 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - }, - { - { /* Third byte table 0. */ - { 0x8000, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 0, 2470 }, - { 0x8001, 2491 }, { 1, 2871 }, { 2, 2959 }, - { 3, 3061 }, { 4, 3212 }, { 5, 3226 }, - { N_, 0 }, { 6, 3270 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 0x8002, 3277 }, - { 7, 3774 }, { 8, 3949 }, { 9, 4198 }, - { N_, 0 }, { 10, 4265 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 11, 4293 }, { 12, 4312 }, { N_, 0 }, - { 13, 4326 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 1. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 14, 4347 }, - { N_, 0 }, { N_, 0 }, { 15, 4374 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 16, 4391 }, - { 17, 4416 }, { 18, 4425 }, { N_, 0 }, - { 19, 4451 }, { 20, 4460 }, { 21, 4469 }, - { N_, 0 }, { 22, 4503 }, { N_, 0 }, - { 23, 4529 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 2. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 24, 4563 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 25, 4572 }, { 26, 4662 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 27, 4671 }, { 28, 4687 }, - { 29, 4719 }, { 30, 4765 }, { 0x8003, 4781 }, - { 0x8004, 5353 }, { 31, 5715 }, { 32, 5745 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 3. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 33, 5783 }, - { 34, 5807 }, { 35, 5831 }, { 36, 5879 }, - { 37, 5999 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 4. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 38, 6111 }, { 39, 6340 }, { 40, 6457 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - }, -}; - -static const uchar_t u8_composition_b4_tbl[2][41][257] = { - { - { /* Fourth byte table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 29, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 73, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, - }, - { /* Fourth byte table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 15, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 38, 46, 46, 46, 46, - 46, 54, 62, 62, 62, 62, 62, 62, - 62, 70, 78, 86, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, - }, - { /* Fourth byte table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 36, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 108, 144, 144, 144, 144, 144, 144, 144, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, - }, - { /* Fourth byte table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, - }, - { /* Fourth byte table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 14, 22, 30, 30, 30, 30, 30, 37, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, - }, - { /* Fourth byte table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, - }, - { /* Fourth byte table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 15, 15, 70, 70, - 70, 70, 112, 133, 154, 154, 154, 162, - 162, 162, 162, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, - }, - { /* Fourth byte table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 20, 20, 20, 27, 27, 46, 59, - 66, 91, 91, 98, 98, 98, 98, 105, - 105, 105, 105, 105, 130, 130, 130, 130, - 137, 137, 137, 137, 144, 144, 151, 151, - 151, 164, 164, 164, 171, 171, 190, 203, - 210, 235, 235, 242, 242, 242, 242, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, - }, - { /* Fourth byte table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 25, 25, 25, - 32, 32, 32, 32, 39, 39, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 53, - 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 60, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, - }, - { /* Fourth byte table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 21, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, - }, - { /* Fourth byte table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, - }, - { /* Fourth byte table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, - }, - { /* Fourth byte table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 14, 14, 14, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 9, 9, 9, 9, 9, 9, - 9, 18, 18, 18, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, - }, - { /* Fourth byte table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, - }, - { /* Fourth byte table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, - }, - { /* Fourth byte table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, - }, - { /* Fourth byte table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, - }, - { /* Fourth byte table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, - }, - { /* Fourth byte table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, - }, - { /* Fourth byte table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 25, - 25, 25, 25, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, - }, - { /* Fourth byte table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, - }, - { /* Fourth byte table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 25, 25, 25, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, - }, - { /* Fourth byte table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, - }, - { /* Fourth byte table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, - }, - { /* Fourth byte table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 16, 16, 16, 16, - 16, 16, 16, 24, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, - }, - { /* Fourth byte table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 38, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, - }, - { /* Fourth byte table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, - }, - { /* Fourth byte table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, - }, - { /* Fourth byte table 30. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 16, - 16, 16, 16, 16, 16, 16, 16, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, - }, - { /* Fourth byte table 31. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 8, 16, 16, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, - }, - { /* Fourth byte table 32. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 8, 16, 16, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, - }, - { /* Fourth byte table 33. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 8, 8, 8, - 8, 16, 16, 16, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 32, 32, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, - }, - { /* Fourth byte table 34. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 8, 16, 16, - 16, 24, 24, 24, 24, 24, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 40, 40, 40, 48, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 64, 72, 72, 72, 80, - 88, 88, 88, 96, 104, 112, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, - }, - { /* Fourth byte table 35. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 16, 16, 16, 24, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 40, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 56, 56, 56, 56, 56, - 56, 64, 72, 72, 80, 80, 80, 80, - 80, 80, 80, 88, 96, 104, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, - }, - { /* Fourth byte table 36. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9, - 9, 9, 9, 9, 18, 18, 27, 27, - 36, 36, 45, 45, 54, 54, 63, 63, - 72, 72, 81, 81, 90, 90, 99, 99, - 108, 108, 117, 117, 117, 126, 126, 135, - 135, 144, 144, 144, 144, 144, 144, 144, - 161, 161, 161, 178, 178, 178, 195, 195, - 195, 212, 212, 212, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, - }, - { /* Fourth byte table 37. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 18, - 18, 18, 18, 18, 27, 27, 36, 36, - 45, 45, 54, 54, 63, 63, 72, 72, - 81, 81, 90, 90, 99, 99, 108, 108, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, - }, - { /* Fourth byte table 38. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 9, 18, 18, 27, - 27, 36, 36, 36, 36, 36, 36, 36, - 53, 53, 53, 70, 70, 70, 87, 87, - 87, 104, 104, 104, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, - 130, 139, 148, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, - }, - { /* Fourth byte table 39. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 40. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - }, - { - { /* Fourth byte table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 29, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 73, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, - }, - { /* Fourth byte table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 15, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 38, 46, 46, 46, 46, - 46, 54, 62, 62, 62, 62, 62, 62, - 62, 70, 78, 86, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, - 94, 94, 94, 94, 94, 94, 94, 94, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, 102, 102, 102, 102, 102, 102, 102, - 102, - }, - { /* Fourth byte table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 36, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 108, 144, 144, 144, 144, 144, 144, 144, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, 151, 151, 151, 151, 151, 151, 151, - 151, - }, - { /* Fourth byte table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, - }, - { /* Fourth byte table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 14, 22, 30, 30, 30, 30, 30, 37, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, - }, - { /* Fourth byte table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, - }, - { /* Fourth byte table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 15, 15, 15, 15, 70, 70, - 70, 70, 112, 133, 154, 154, 154, 162, - 162, 162, 162, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, - }, - { /* Fourth byte table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 20, 20, 20, 27, 27, 46, 59, - 66, 91, 91, 98, 98, 98, 98, 105, - 105, 105, 105, 105, 130, 130, 130, 130, - 137, 137, 137, 137, 144, 144, 151, 151, - 151, 164, 164, 164, 171, 171, 190, 203, - 210, 235, 235, 242, 242, 242, 242, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, 249, 249, 249, 249, 249, 249, 249, - 249, - }, - { /* Fourth byte table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 25, 25, 25, 25, - 32, 32, 32, 32, 39, 39, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 53, - 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 60, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, - }, - { /* Fourth byte table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 21, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, - }, - { /* Fourth byte table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, - }, - { /* Fourth byte table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, - }, - { /* Fourth byte table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 14, 14, 14, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 9, 9, 9, 9, 9, 9, - 9, 18, 18, 18, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, - }, - { /* Fourth byte table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, - }, - { /* Fourth byte table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, - }, - { /* Fourth byte table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, - }, - { /* Fourth byte table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, - }, - { /* Fourth byte table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, - }, - { /* Fourth byte table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, - }, - { /* Fourth byte table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 25, - 25, 25, 25, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, - }, - { /* Fourth byte table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 17, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, - }, - { /* Fourth byte table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 25, 25, 25, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 34, 34, - 34, - }, - { /* Fourth byte table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, - }, - { /* Fourth byte table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 9, - 18, 18, 27, 27, 36, 36, 45, 45, - 45, 45, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 63, 63, 72, 72, 81, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, - }, - { /* Fourth byte table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, - }, - { /* Fourth byte table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, - }, - { /* Fourth byte table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 16, 16, 16, 16, - 16, 16, 16, 24, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, - }, - { /* Fourth byte table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 38, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, - }, - { /* Fourth byte table 30. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, - }, - { /* Fourth byte table 31. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, - }, - { /* Fourth byte table 32. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 16, - 16, 16, 16, 16, 16, 16, 16, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, - }, - { /* Fourth byte table 33. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 8, 16, 16, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, - }, - { /* Fourth byte table 34. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 8, 16, 16, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, - }, - { /* Fourth byte table 35. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 8, 8, 8, - 8, 16, 16, 16, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 32, 32, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, - }, - { /* Fourth byte table 36. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 8, 16, 16, - 16, 24, 24, 24, 24, 24, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 40, 40, 40, 48, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 64, 72, 72, 72, 80, - 88, 88, 88, 96, 104, 112, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 120, 120, 120, 120, 120, - 120, - }, - { /* Fourth byte table 37. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 16, 16, 16, 24, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 40, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 56, 56, 56, 56, 56, - 56, 64, 72, 72, 80, 80, 80, 80, - 80, 80, 80, 88, 96, 104, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, - }, - { /* Fourth byte table 38. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9, - 9, 9, 9, 9, 18, 18, 27, 27, - 36, 36, 45, 45, 54, 54, 63, 63, - 72, 72, 81, 81, 90, 90, 99, 99, - 108, 108, 117, 117, 117, 126, 126, 135, - 135, 144, 144, 144, 144, 144, 144, 144, - 161, 161, 161, 178, 178, 178, 195, 195, - 195, 212, 212, 212, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, 229, 229, 229, 229, 229, 229, 229, - 229, - }, - { /* Fourth byte table 39. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 18, - 18, 18, 18, 18, 27, 27, 36, 36, - 45, 45, 54, 54, 63, 63, 72, 72, - 81, 81, 90, 90, 99, 99, 108, 108, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, - 117, - }, - { /* Fourth byte table 40. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 9, 18, 18, 27, - 27, 36, 36, 36, 36, 36, 36, 36, - 53, 53, 53, 70, 70, 70, 87, 87, - 87, 104, 104, 104, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, - 121, 121, 121, 121, 121, 121, 121, 121, - 130, 139, 148, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 166, 166, 166, 166, 166, - 166, - }, - }, -}; - -static const uint16_t u8_composition_b4_16bit_tbl[2][5][257] = { - { - { /* Fourth byte 16-bit table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 16, 24, - 24, 24, 124, 146, 177, 219, 327, 335, - 379, 427, 521, 528, 562, 602, 624, 683, - 782, 797, 797, 849, 894, 941, 1061, 1076, - 1118, 1133, 1193, 1233, 1233, 1233, 1233, 1233, - 1233, 1233, 1333, 1355, 1386, 1428, 1536, 1544, - 1588, 1643, 1731, 1744, 1778, 1818, 1840, 1899, - 1998, 2013, 2013, 2065, 2110, 2164, 2284, 2299, - 2348, 2363, 2430, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, - }, - { /* Fourth byte 16-bit table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 29, 29, 36, 43, 56, - 64, 64, 64, 93, 93, 93, 93, 93, - 101, 101, 101, 101, 101, 130, 151, 158, - 158, 165, 165, 165, 165, 190, 190, 190, - 190, 190, 190, 219, 219, 226, 233, 246, - 254, 254, 254, 283, 283, 283, 283, 283, - 291, 291, 291, 291, 291, 320, 341, 348, - 348, 355, 355, 355, 355, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, - }, - { /* Fourth byte 16-bit table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 49, 49, 49, 77, 77, - 112, 112, 160, 160, 160, 160, 160, 160, - 188, 188, 196, 196, 196, 196, 237, 237, - 237, 237, 272, 272, 272, 280, 280, 288, - 288, 288, 344, 344, 344, 344, 372, 372, - 414, 414, 469, 469, 469, 469, 469, 469, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, - }, - { /* Fourth byte 16-bit table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 58, 66, 74, 82, 90, 98, - 106, 135, 164, 172, 180, 188, 196, 204, - 212, 227, 242, 242, 242, 242, 242, 242, - 242, 257, 272, 272, 272, 272, 272, 272, - 272, 301, 330, 338, 346, 354, 362, 370, - 378, 407, 436, 444, 452, 460, 468, 476, - 484, 506, 528, 528, 528, 528, 528, 528, - 528, 550, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, - }, - { /* Fourth byte 16-bit table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 30, 30, 30, 30, 30, 30, - 30, 45, 60, 60, 60, 60, 60, 60, - 60, 82, 104, 104, 104, 104, 104, 104, - 104, 104, 126, 126, 126, 126, 126, 126, - 126, 155, 184, 192, 200, 208, 216, 224, - 232, 261, 290, 298, 306, 314, 322, 330, - 338, 346, 346, 346, 346, 354, 354, 354, - 354, 354, 354, 354, 354, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, - }, - }, - { - { /* Fourth byte 16-bit table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 16, 24, - 24, 24, 124, 146, 177, 219, 327, 335, - 379, 427, 521, 528, 562, 602, 624, 683, - 782, 797, 797, 849, 894, 941, 1061, 1076, - 1118, 1133, 1193, 1233, 1233, 1233, 1233, 1233, - 1233, 1233, 1333, 1355, 1386, 1428, 1536, 1544, - 1588, 1643, 1731, 1744, 1778, 1818, 1840, 1899, - 1998, 2013, 2013, 2065, 2110, 2164, 2284, 2299, - 2348, 2363, 2430, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, 2470, 2470, 2470, 2470, 2470, 2470, 2470, - 2470, - }, - { /* Fourth byte 16-bit table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 29, 29, 36, 43, 56, - 64, 64, 64, 93, 93, 93, 93, 93, - 101, 101, 101, 101, 101, 130, 151, 158, - 158, 165, 165, 165, 165, 190, 190, 190, - 190, 190, 190, 219, 219, 226, 233, 246, - 254, 254, 254, 283, 283, 283, 283, 283, - 291, 291, 291, 291, 291, 320, 341, 348, - 348, 355, 355, 355, 355, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, 380, 380, 380, 380, 380, 380, 380, - 380, - }, - { /* Fourth byte 16-bit table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 49, 49, 49, 49, 77, 77, - 112, 112, 160, 160, 160, 160, 160, 160, - 188, 188, 196, 196, 196, 196, 237, 237, - 237, 237, 272, 272, 272, 280, 280, 288, - 288, 288, 344, 344, 344, 344, 372, 372, - 414, 414, 469, 469, 469, 469, 469, 469, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, - 497, - }, - { /* Fourth byte 16-bit table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 29, 58, 66, 74, 82, 90, 98, - 106, 135, 164, 172, 180, 188, 196, 204, - 212, 227, 242, 242, 242, 242, 242, 242, - 242, 257, 272, 272, 272, 272, 272, 272, - 272, 301, 330, 338, 346, 354, 362, 370, - 378, 407, 436, 444, 452, 460, 468, 476, - 484, 506, 528, 528, 528, 528, 528, 528, - 528, 550, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, 572, 572, 572, 572, 572, 572, 572, - 572, - }, - { /* Fourth byte 16-bit table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 30, 30, 30, 30, 30, 30, - 30, 45, 60, 60, 60, 60, 60, 60, - 60, 82, 104, 104, 104, 104, 104, 104, - 104, 104, 126, 126, 126, 126, 126, 126, - 126, 155, 184, 192, 200, 208, 216, 224, - 232, 261, 290, 298, 306, 314, 322, 330, - 338, 346, 346, 346, 346, 354, 354, 354, - 354, 354, 354, 354, 354, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, 362, 362, 362, 362, 362, 362, 362, - 362, - }, - }, -}; - -static const uchar_t u8_composition_final_tbl[2][6623] = { - { - 0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAE, FIL_, - 0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xA0, FIL_, - 0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAF, FIL_, - 0x10, 0xCC, 0x86, FIL_, 0xC4, 0x82, FIL_, 0xCC, - 0x87, FIL_, 0xC8, 0xA6, FIL_, 0xCC, 0x8F, FIL_, - 0xC8, 0x80, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x82, - FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x81, FIL_, 0xCC, - 0x80, FIL_, 0xC3, 0x80, FIL_, 0xCC, 0x83, FIL_, - 0xC3, 0x83, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, - 0xA0, FIL_, 0xCC, 0xA5, FIL_, 0xE1, 0xB8, 0x80, - FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x82, FIL_, 0xCC, - 0x84, FIL_, 0xC4, 0x80, FIL_, 0xCC, 0x88, FIL_, - 0xC3, 0x84, FIL_, 0xCC, 0x8A, FIL_, 0xC3, 0x85, - FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x84, FIL_, 0xCC, - 0x89, FIL_, 0xE1, 0xBA, 0xA2, FIL_, 0xCC, 0x8C, - FIL_, 0xC7, 0x8D, FIL_, 0x03, 0xCC, 0x87, FIL_, - 0xE1, 0xB8, 0x82, FIL_, 0xCC, 0xB1, FIL_, 0xE1, - 0xB8, 0x86, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, - 0x84, FIL_, 0x05, 0xCC, 0xA7, FIL_, 0xC3, 0x87, - FIL_, 0xCC, 0x81, FIL_, 0xC4, 0x86, FIL_, 0xCC, - 0x8C, FIL_, 0xC4, 0x8C, FIL_, 0xCC, 0x87, FIL_, - 0xC4, 0x8A, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0x88, - FIL_, 0x06, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0x8E, - FIL_, 0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0x90, FIL_, - 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x92, FIL_, 0xCC, - 0x87, FIL_, 0xE1, 0xB8, 0x8A, FIL_, 0xCC, 0x8C, - FIL_, 0xC4, 0x8E, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xB8, 0x8C, FIL_, 0x11, 0xCC, 0x80, FIL_, 0xC3, - 0x88, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x89, FIL_, - 0xCC, 0x82, FIL_, 0xC3, 0x8A, FIL_, 0xCC, 0x88, - FIL_, 0xC3, 0x8B, FIL_, 0xCC, 0xA7, FIL_, 0xC8, - 0xA8, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x86, FIL_, - 0xCC, 0x8F, FIL_, 0xC8, 0x84, FIL_, 0xCC, 0x89, - FIL_, 0xE1, 0xBA, 0xBA, FIL_, 0xCC, 0xB0, FIL_, - 0xE1, 0xB8, 0x9A, FIL_, 0xCC, 0xAD, FIL_, 0xE1, - 0xB8, 0x98, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBA, - 0xBC, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0xB8, - FIL_, 0xCC, 0x84, FIL_, 0xC4, 0x92, FIL_, 0xCC, - 0x86, FIL_, 0xC4, 0x94, FIL_, 0xCC, 0x87, FIL_, - 0xC4, 0x96, FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x98, - FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x9A, FIL_, 0x01, - 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9E, FIL_, 0x07, - 0xCC, 0x8C, FIL_, 0xC7, 0xA6, FIL_, 0xCC, 0x87, - FIL_, 0xC4, 0xA0, FIL_, 0xCC, 0x84, FIL_, 0xE1, - 0xB8, 0xA0, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0x9C, - FIL_, 0xCC, 0x81, FIL_, 0xC7, 0xB4, FIL_, 0xCC, - 0xA7, FIL_, 0xC4, 0xA2, FIL_, 0xCC, 0x86, FIL_, - 0xC4, 0x9E, FIL_, 0x07, 0xCC, 0xAE, FIL_, 0xE1, - 0xB8, 0xAA, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB8, - 0xA2, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA6, - FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0xA4, FIL_, - 0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0xA8, FIL_, 0xCC, - 0x8C, FIL_, 0xC8, 0x9E, FIL_, 0xCC, 0x82, FIL_, - 0xC4, 0xA4, FIL_, 0x0F, 0xCC, 0x84, FIL_, 0xC4, - 0xAA, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x8C, FIL_, - 0xCC, 0xA8, FIL_, 0xC4, 0xAE, FIL_, 0xCC, 0x83, - FIL_, 0xC4, 0xA8, FIL_, 0xCC, 0x88, FIL_, 0xC3, - 0x8F, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x8D, FIL_, - 0xCC, 0x8F, FIL_, 0xC8, 0x88, FIL_, 0xCC, 0x86, - FIL_, 0xC4, 0xAC, FIL_, 0xCC, 0x91, FIL_, 0xC8, - 0x8A, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x8F, FIL_, - 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x88, FIL_, 0xCC, - 0x87, FIL_, 0xC4, 0xB0, FIL_, 0xCC, 0xA3, FIL_, - 0xE1, 0xBB, 0x8A, FIL_, 0xCC, 0xB0, FIL_, 0xE1, - 0xB8, 0xAC, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x8E, - FIL_, 0x01, 0xCC, 0x82, FIL_, 0xC4, 0xB4, FIL_, - 0x05, 0xCC, 0x8C, FIL_, 0xC7, 0xA8, FIL_, 0xCC, - 0xB1, FIL_, 0xE1, 0xB8, 0xB4, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xB8, 0xB0, FIL_, 0xCC, 0xA7, FIL_, - 0xC4, 0xB6, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, - 0xB2, FIL_, 0x06, 0xCC, 0xA7, FIL_, 0xC4, 0xBB, - FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0xBD, FIL_, 0xCC, - 0xB1, FIL_, 0xE1, 0xB8, 0xBA, FIL_, 0xCC, 0xA3, - FIL_, 0xE1, 0xB8, 0xB6, FIL_, 0xCC, 0xAD, FIL_, - 0xE1, 0xB8, 0xBC, FIL_, 0xCC, 0x81, FIL_, 0xC4, - 0xB9, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xB8, - 0xBE, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x82, - FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x80, FIL_, - 0x09, 0xCC, 0x80, FIL_, 0xC7, 0xB8, FIL_, 0xCC, - 0xAD, FIL_, 0xE1, 0xB9, 0x8A, FIL_, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0x84, FIL_, 0xCC, 0xB1, FIL_, - 0xE1, 0xB9, 0x88, FIL_, 0xCC, 0x83, FIL_, 0xC3, - 0x91, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x86, - FIL_, 0xCC, 0x81, FIL_, 0xC5, 0x83, FIL_, 0xCC, - 0xA7, FIL_, 0xC5, 0x85, FIL_, 0xCC, 0x8C, FIL_, - 0xC5, 0x87, FIL_, 0x10, 0xCC, 0xA8, FIL_, 0xC7, - 0xAA, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x8E, FIL_, - 0xCC, 0x80, FIL_, 0xC3, 0x92, FIL_, 0xCC, 0x9B, - FIL_, 0xC6, 0xA0, FIL_, 0xCC, 0x8F, FIL_, 0xC8, - 0x8C, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x93, FIL_, - 0xCC, 0x87, FIL_, 0xC8, 0xAE, FIL_, 0xCC, 0x8C, - FIL_, 0xC7, 0x91, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xBB, 0x8C, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x94, - FIL_, 0xCC, 0x84, FIL_, 0xC5, 0x8C, FIL_, 0xCC, - 0x83, FIL_, 0xC3, 0x95, FIL_, 0xCC, 0x86, FIL_, - 0xC5, 0x8E, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x96, - FIL_, 0xCC, 0x8B, FIL_, 0xC5, 0x90, FIL_, 0xCC, - 0x89, FIL_, 0xE1, 0xBB, 0x8E, FIL_, 0x02, 0xCC, - 0x87, FIL_, 0xE1, 0xB9, 0x96, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xB9, 0x94, FIL_, 0x08, 0xCC, 0x91, - FIL_, 0xC8, 0x92, FIL_, 0xCC, 0xA7, FIL_, 0xC5, - 0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0x98, FIL_, - 0xCC, 0xB1, FIL_, 0xE1, 0xB9, 0x9E, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xB9, 0x9A, FIL_, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0x98, FIL_, 0xCC, 0x81, FIL_, - 0xC5, 0x94, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x90, - FIL_, 0x07, 0xCC, 0x81, FIL_, 0xC5, 0x9A, FIL_, - 0xCC, 0x82, FIL_, 0xC5, 0x9C, FIL_, 0xCC, 0xA7, - FIL_, 0xC5, 0x9E, FIL_, 0xCC, 0x8C, FIL_, 0xC5, - 0xA0, FIL_, 0xCC, 0xA6, FIL_, 0xC8, 0x98, FIL_, - 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA0, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xB9, 0xA2, FIL_, 0x07, 0xCC, - 0x8C, FIL_, 0xC5, 0xA4, FIL_, 0xCC, 0xB1, FIL_, - 0xE1, 0xB9, 0xAE, FIL_, 0xCC, 0xA6, FIL_, 0xC8, - 0x9A, FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0xA2, FIL_, - 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xAA, FIL_, 0xCC, - 0xAD, FIL_, 0xE1, 0xB9, 0xB0, FIL_, 0xCC, 0xA3, - FIL_, 0xE1, 0xB9, 0xAC, FIL_, 0x13, 0xCC, 0xA8, - FIL_, 0xC5, 0xB2, FIL_, 0xCC, 0x83, FIL_, 0xC5, - 0xA8, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0xAA, FIL_, - 0xCC, 0x81, FIL_, 0xC3, 0x9A, FIL_, 0xCC, 0x86, - FIL_, 0xC5, 0xAC, FIL_, 0xCC, 0x8A, FIL_, 0xC5, - 0xAE, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x99, FIL_, - 0xCC, 0x91, FIL_, 0xC8, 0x96, FIL_, 0xCC, 0x8B, - FIL_, 0xC5, 0xB0, FIL_, 0xCC, 0xA4, FIL_, 0xE1, - 0xB9, 0xB2, FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB9, - 0xB4, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x94, FIL_, - 0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB6, FIL_, 0xCC, - 0x9B, FIL_, 0xC6, 0xAF, FIL_, 0xCC, 0x82, FIL_, - 0xC3, 0x9B, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x9C, - FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x93, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xBB, 0xA4, FIL_, 0xCC, 0x89, - FIL_, 0xE1, 0xBB, 0xA6, FIL_, 0x02, 0xCC, 0x83, - FIL_, 0xE1, 0xB9, 0xBC, FIL_, 0xCC, 0xA3, FIL_, - 0xE1, 0xB9, 0xBE, FIL_, 0x06, 0xCC, 0x82, FIL_, - 0xC5, 0xB4, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xBA, - 0x84, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xBA, 0x86, - FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x88, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0x82, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBA, 0x80, FIL_, 0x02, 0xCC, - 0x87, FIL_, 0xE1, 0xBA, 0x8A, FIL_, 0xCC, 0x88, - FIL_, 0xE1, 0xBA, 0x8C, FIL_, 0x09, 0xCC, 0x89, - FIL_, 0xE1, 0xBB, 0xB6, FIL_, 0xCC, 0x87, FIL_, - 0xE1, 0xBA, 0x8E, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xBB, 0xB4, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x9D, - FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xB2, FIL_, 0xCC, - 0x82, FIL_, 0xC5, 0xB6, FIL_, 0xCC, 0x88, FIL_, - 0xC5, 0xB8, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB, - 0xB2, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xB8, - FIL_, 0x06, 0xCC, 0x87, FIL_, 0xC5, 0xBB, FIL_, - 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x92, FIL_, 0xCC, - 0x8C, FIL_, 0xC5, 0xBD, FIL_, 0xCC, 0xB1, FIL_, - 0xE1, 0xBA, 0x94, FIL_, 0xCC, 0x82, FIL_, 0xE1, - 0xBA, 0x90, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0xB9, - FIL_, 0x10, 0xCC, 0x8C, FIL_, 0xC7, 0x8E, FIL_, - 0xCC, 0x8F, FIL_, 0xC8, 0x81, FIL_, 0xCC, 0xA8, - FIL_, 0xC4, 0x85, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xBA, 0xA1, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x83, - FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA3, FIL_, - 0xCC, 0x84, FIL_, 0xC4, 0x81, FIL_, 0xCC, 0x91, - FIL_, 0xC8, 0x83, FIL_, 0xCC, 0x8A, FIL_, 0xC3, - 0xA5, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0xA4, FIL_, - 0xCC, 0x83, FIL_, 0xC3, 0xA3, FIL_, 0xCC, 0x82, - FIL_, 0xC3, 0xA2, FIL_, 0xCC, 0x81, FIL_, 0xC3, - 0xA1, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xA0, FIL_, - 0xCC, 0x87, FIL_, 0xC8, 0xA7, FIL_, 0xCC, 0xA5, - FIL_, 0xE1, 0xB8, 0x81, FIL_, 0x03, 0xCC, 0xB1, - FIL_, 0xE1, 0xB8, 0x87, FIL_, 0xCC, 0xA3, FIL_, - 0xE1, 0xB8, 0x85, FIL_, 0xCC, 0x87, FIL_, 0xE1, - 0xB8, 0x83, FIL_, 0x05, 0xCC, 0x87, FIL_, 0xC4, - 0x8B, FIL_, 0xCC, 0xA7, FIL_, 0xC3, 0xA7, FIL_, - 0xCC, 0x82, FIL_, 0xC4, 0x89, FIL_, 0xCC, 0x8C, - FIL_, 0xC4, 0x8D, FIL_, 0xCC, 0x81, FIL_, 0xC4, - 0x87, FIL_, 0x06, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, - 0x93, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x8B, - FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0x8D, FIL_, - 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0x8F, FIL_, 0xCC, - 0xA7, FIL_, 0xE1, 0xB8, 0x91, FIL_, 0xCC, 0x8C, - FIL_, 0xC4, 0x8F, FIL_, 0x11, 0xCC, 0xA8, FIL_, - 0xC4, 0x99, FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x9B, - FIL_, 0xCC, 0x87, FIL_, 0xC4, 0x97, FIL_, 0xCC, - 0x88, FIL_, 0xC3, 0xAB, FIL_, 0xCC, 0xA3, FIL_, - 0xE1, 0xBA, 0xB9, FIL_, 0xCC, 0xB0, FIL_, 0xE1, - 0xB8, 0x9B, FIL_, 0xCC, 0x84, FIL_, 0xC4, 0x93, - FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x99, FIL_, - 0xCC, 0x83, FIL_, 0xE1, 0xBA, 0xBD, FIL_, 0xCC, - 0x86, FIL_, 0xC4, 0x95, FIL_, 0xCC, 0xA7, FIL_, - 0xC8, 0xA9, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, - 0xBB, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x85, FIL_, - 0xCC, 0x81, FIL_, 0xC3, 0xA9, FIL_, 0xCC, 0x91, - FIL_, 0xC8, 0x87, FIL_, 0xCC, 0x80, FIL_, 0xC3, - 0xA8, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xAA, FIL_, - 0x01, 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9F, FIL_, - 0x07, 0xCC, 0x86, FIL_, 0xC4, 0x9F, FIL_, 0xCC, - 0xA7, FIL_, 0xC4, 0xA3, FIL_, 0xCC, 0x81, FIL_, - 0xC7, 0xB5, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0x9D, - FIL_, 0xCC, 0x87, FIL_, 0xC4, 0xA1, FIL_, 0xCC, - 0x8C, FIL_, 0xC7, 0xA7, FIL_, 0xCC, 0x84, FIL_, - 0xE1, 0xB8, 0xA1, FIL_, 0x08, 0xCC, 0x8C, FIL_, - 0xC8, 0x9F, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0xA5, - FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA7, FIL_, - 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0xA3, FIL_, 0xCC, - 0xB1, FIL_, 0xE1, 0xBA, 0x96, FIL_, 0xCC, 0xA3, - FIL_, 0xE1, 0xB8, 0xA5, FIL_, 0xCC, 0xA7, FIL_, - 0xE1, 0xB8, 0xA9, FIL_, 0xCC, 0xAE, FIL_, 0xE1, - 0xB8, 0xAB, FIL_, 0x0E, 0xCC, 0x81, FIL_, 0xC3, - 0xAD, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xAC, FIL_, - 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0x8B, FIL_, 0xCC, - 0x8C, FIL_, 0xC7, 0x90, FIL_, 0xCC, 0x89, FIL_, - 0xE1, 0xBB, 0x89, FIL_, 0xCC, 0x91, FIL_, 0xC8, - 0x8B, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x89, FIL_, - 0xCC, 0x82, FIL_, 0xC3, 0xAE, FIL_, 0xCC, 0xB0, - FIL_, 0xE1, 0xB8, 0xAD, FIL_, 0xCC, 0xA8, FIL_, - 0xC4, 0xAF, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0xAD, - FIL_, 0xCC, 0x84, FIL_, 0xC4, 0xAB, FIL_, 0xCC, - 0x83, FIL_, 0xC4, 0xA9, FIL_, 0xCC, 0x88, FIL_, - 0xC3, 0xAF, FIL_, 0x02, 0xCC, 0x82, FIL_, 0xC4, - 0xB5, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0xB0, FIL_, - 0x05, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0xB3, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xB1, FIL_, 0xCC, - 0xA7, FIL_, 0xC4, 0xB7, FIL_, 0xCC, 0x8C, FIL_, - 0xC7, 0xA9, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, - 0xB5, FIL_, 0x06, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, - 0xB7, FIL_, 0xCC, 0x81, FIL_, 0xC4, 0xBA, FIL_, - 0xCC, 0xA7, FIL_, 0xC4, 0xBC, FIL_, 0xCC, 0x8C, - FIL_, 0xC4, 0xBE, FIL_, 0xCC, 0xB1, FIL_, 0xE1, - 0xB8, 0xBB, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, - 0xBD, FIL_, 0x03, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, - 0x83, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xBF, - FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x81, FIL_, - 0x09, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x87, FIL_, - 0xCC, 0x83, FIL_, 0xC3, 0xB1, FIL_, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0x85, FIL_, 0xCC, 0xB1, FIL_, - 0xE1, 0xB9, 0x89, FIL_, 0xCC, 0x81, FIL_, 0xC5, - 0x84, FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x86, FIL_, - 0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0x8B, FIL_, 0xCC, - 0x8C, FIL_, 0xC5, 0x88, FIL_, 0xCC, 0x80, FIL_, - 0xC7, 0xB9, FIL_, 0x10, 0xCC, 0x89, FIL_, 0xE1, - 0xBB, 0x8F, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0xB3, - FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xB2, FIL_, 0xCC, - 0x87, FIL_, 0xC8, 0xAF, FIL_, 0xCC, 0x8F, FIL_, - 0xC8, 0x8D, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, - 0x8D, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0x8D, FIL_, - 0xCC, 0x8C, FIL_, 0xC7, 0x92, FIL_, 0xCC, 0x86, - FIL_, 0xC5, 0x8F, FIL_, 0xCC, 0x8B, FIL_, 0xC5, - 0x91, FIL_, 0xCC, 0x9B, FIL_, 0xC6, 0xA1, FIL_, - 0xCC, 0x91, FIL_, 0xC8, 0x8F, FIL_, 0xCC, 0xA8, - FIL_, 0xC7, 0xAB, FIL_, 0xCC, 0x88, FIL_, 0xC3, - 0xB6, FIL_, 0xCC, 0x83, FIL_, 0xC3, 0xB5, FIL_, - 0xCC, 0x82, FIL_, 0xC3, 0xB4, FIL_, 0x02, 0xCC, - 0x87, FIL_, 0xE1, 0xB9, 0x97, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xB9, 0x95, FIL_, 0x08, 0xCC, 0xB1, - FIL_, 0xE1, 0xB9, 0x9F, FIL_, 0xCC, 0x87, FIL_, - 0xE1, 0xB9, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC5, - 0x95, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x91, FIL_, - 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x9B, FIL_, 0xCC, - 0x8C, FIL_, 0xC5, 0x99, FIL_, 0xCC, 0x91, FIL_, - 0xC8, 0x93, FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x97, - FIL_, 0x07, 0xCC, 0xA6, FIL_, 0xC8, 0x99, FIL_, - 0xCC, 0x8C, FIL_, 0xC5, 0xA1, FIL_, 0xCC, 0x81, - FIL_, 0xC5, 0x9B, FIL_, 0xCC, 0x87, FIL_, 0xE1, - 0xB9, 0xA1, FIL_, 0xCC, 0x82, FIL_, 0xC5, 0x9D, - FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x9F, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xB9, 0xA3, FIL_, 0x08, 0xCC, - 0x88, FIL_, 0xE1, 0xBA, 0x97, FIL_, 0xCC, 0xAD, - FIL_, 0xE1, 0xB9, 0xB1, FIL_, 0xCC, 0xB1, FIL_, - 0xE1, 0xB9, 0xAF, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xB9, 0xAD, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0xA5, - FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0xA3, FIL_, 0xCC, - 0x87, FIL_, 0xE1, 0xB9, 0xAB, FIL_, 0xCC, 0xA6, - FIL_, 0xC8, 0x9B, FIL_, 0x13, 0xCC, 0x81, FIL_, - 0xC3, 0xBA, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x97, - FIL_, 0xCC, 0x83, FIL_, 0xC5, 0xA9, FIL_, 0xCC, - 0x8F, FIL_, 0xC8, 0x95, FIL_, 0xCC, 0xA8, FIL_, - 0xC5, 0xB3, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xBB, - FIL_, 0xCC, 0x88, FIL_, 0xC3, 0xBC, FIL_, 0xCC, - 0x80, FIL_, 0xC3, 0xB9, FIL_, 0xCC, 0xA3, FIL_, - 0xE1, 0xBB, 0xA5, FIL_, 0xCC, 0xA4, FIL_, 0xE1, - 0xB9, 0xB3, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, - 0xA7, FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB9, 0xB5, - FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB7, FIL_, - 0xCC, 0x9B, FIL_, 0xC6, 0xB0, FIL_, 0xCC, 0x84, - FIL_, 0xC5, 0xAB, FIL_, 0xCC, 0x8B, FIL_, 0xC5, - 0xB1, FIL_, 0xCC, 0x86, FIL_, 0xC5, 0xAD, FIL_, - 0xCC, 0x8C, FIL_, 0xC7, 0x94, FIL_, 0xCC, 0x8A, - FIL_, 0xC5, 0xAF, FIL_, 0x02, 0xCC, 0x83, FIL_, - 0xE1, 0xB9, 0xBD, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xB9, 0xBF, FIL_, 0x07, 0xCC, 0x82, FIL_, 0xC5, - 0xB5, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0x81, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0x83, FIL_, - 0xCC, 0x88, FIL_, 0xE1, 0xBA, 0x85, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xBA, 0x89, FIL_, 0xCC, 0x87, - FIL_, 0xE1, 0xBA, 0x87, FIL_, 0xCC, 0x8A, FIL_, - 0xE1, 0xBA, 0x98, FIL_, 0x02, 0xCC, 0x87, FIL_, - 0xE1, 0xBA, 0x8B, FIL_, 0xCC, 0x88, FIL_, 0xE1, - 0xBA, 0x8D, FIL_, 0x0A, 0xCC, 0x87, FIL_, 0xE1, - 0xBA, 0x8F, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, - 0xB9, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xB3, - FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0xB7, FIL_, - 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xB5, FIL_, 0xCC, - 0x82, FIL_, 0xC5, 0xB7, FIL_, 0xCC, 0x84, FIL_, - 0xC8, 0xB3, FIL_, 0xCC, 0x8A, FIL_, 0xE1, 0xBA, - 0x99, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0xBF, FIL_, - 0xCC, 0x81, FIL_, 0xC3, 0xBD, FIL_, 0x06, 0xCC, - 0x8C, FIL_, 0xC5, 0xBE, FIL_, 0xCC, 0x87, FIL_, - 0xC5, 0xBC, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xBA, - 0x95, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x93, - FIL_, 0xCC, 0x81, FIL_, 0xC5, 0xBA, FIL_, 0xCC, - 0x82, FIL_, 0xE1, 0xBA, 0x91, FIL_, 0x03, 0xCC, - 0x80, FIL_, 0xE1, 0xBF, 0xAD, FIL_, 0xCD, 0x82, - FIL_, 0xE1, 0xBF, 0x81, FIL_, 0xCC, 0x81, FIL_, - 0xCE, 0x85, FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1, - 0xBA, 0xA8, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBA, - 0xAA, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xA4, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xA6, FIL_, - 0x01, 0xCC, 0x84, FIL_, 0xC7, 0x9E, FIL_, 0x01, - 0xCC, 0x81, FIL_, 0xC7, 0xBA, FIL_, 0x02, 0xCC, - 0x84, FIL_, 0xC7, 0xA2, FIL_, 0xCC, 0x81, FIL_, - 0xC7, 0xBC, FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1, - 0xB8, 0x88, FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1, - 0xBA, 0xBE, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB, - 0x80, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0x84, - FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x82, FIL_, - 0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xAE, FIL_, - 0x04, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0x96, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x90, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBB, 0x92, FIL_, 0xCC, 0x89, - FIL_, 0xE1, 0xBB, 0x94, FIL_, 0x03, 0xCC, 0x84, - FIL_, 0xC8, 0xAC, FIL_, 0xCC, 0x81, FIL_, 0xE1, - 0xB9, 0x8C, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB9, - 0x8E, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAA, - FIL_, 0x01, 0xCC, 0x81, FIL_, 0xC7, 0xBE, FIL_, - 0x04, 0xCC, 0x80, FIL_, 0xC7, 0x9B, FIL_, 0xCC, - 0x84, FIL_, 0xC7, 0x95, FIL_, 0xCC, 0x8C, FIL_, - 0xC7, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC7, 0x97, - FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA9, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xA7, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xA5, FIL_, 0xCC, - 0x83, FIL_, 0xE1, 0xBA, 0xAB, FIL_, 0x01, 0xCC, - 0x84, FIL_, 0xC7, 0x9F, FIL_, 0x01, 0xCC, 0x81, - FIL_, 0xC7, 0xBB, FIL_, 0x02, 0xCC, 0x84, FIL_, - 0xC7, 0xA3, FIL_, 0xCC, 0x81, FIL_, 0xC7, 0xBD, - FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x89, - FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x83, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xBF, FIL_, - 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0x81, FIL_, 0xCC, - 0x83, FIL_, 0xE1, 0xBB, 0x85, FIL_, 0x01, 0xCC, - 0x81, FIL_, 0xE1, 0xB8, 0xAF, FIL_, 0x04, 0xCC, - 0x83, FIL_, 0xE1, 0xBB, 0x97, FIL_, 0xCC, 0x89, - FIL_, 0xE1, 0xBB, 0x95, FIL_, 0xCC, 0x80, FIL_, - 0xE1, 0xBB, 0x93, FIL_, 0xCC, 0x81, FIL_, 0xE1, - 0xBB, 0x91, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, - 0xB9, 0x8D, FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xAD, - FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB9, 0x8F, FIL_, - 0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAB, FIL_, 0x01, - 0xCC, 0x81, FIL_, 0xC7, 0xBF, FIL_, 0x04, 0xCC, - 0x81, FIL_, 0xC7, 0x98, FIL_, 0xCC, 0x84, FIL_, - 0xC7, 0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x9A, - FIL_, 0xCC, 0x80, FIL_, 0xC7, 0x9C, FIL_, 0x04, - 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xB0, FIL_, 0xCC, - 0x81, FIL_, 0xE1, 0xBA, 0xAE, FIL_, 0xCC, 0x83, - FIL_, 0xE1, 0xBA, 0xB4, FIL_, 0xCC, 0x89, FIL_, - 0xE1, 0xBA, 0xB2, FIL_, 0x04, 0xCC, 0x80, FIL_, - 0xE1, 0xBA, 0xB1, FIL_, 0xCC, 0x83, FIL_, 0xE1, - 0xBA, 0xB5, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, - 0xAF, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xB3, - FIL_, 0x02, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x96, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x94, FIL_, - 0x02, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x95, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x97, FIL_, 0x02, - 0xCC, 0x80, FIL_, 0xE1, 0xB9, 0x90, FIL_, 0xCC, - 0x81, FIL_, 0xE1, 0xB9, 0x92, FIL_, 0x02, 0xCC, - 0x80, FIL_, 0xE1, 0xB9, 0x91, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xB9, 0x93, FIL_, 0x01, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0xA4, FIL_, 0x01, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0xA5, FIL_, 0x01, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0xA6, FIL_, 0x01, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0xA7, FIL_, 0x01, 0xCC, 0x81, - FIL_, 0xE1, 0xB9, 0xB8, FIL_, 0x01, 0xCC, 0x81, - FIL_, 0xE1, 0xB9, 0xB9, FIL_, 0x01, 0xCC, 0x88, - FIL_, 0xE1, 0xB9, 0xBA, FIL_, 0x01, 0xCC, 0x88, - FIL_, 0xE1, 0xB9, 0xBB, FIL_, 0x01, 0xCC, 0x87, - FIL_, 0xE1, 0xBA, 0x9B, FIL_, 0x05, 0xCC, 0x80, - FIL_, 0xE1, 0xBB, 0x9C, FIL_, 0xCC, 0x81, FIL_, - 0xE1, 0xBB, 0x9A, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xBB, 0xA2, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, - 0xA0, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x9E, - FIL_, 0x05, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xA1, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x9B, FIL_, - 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xA3, FIL_, 0xCC, - 0x89, FIL_, 0xE1, 0xBB, 0x9F, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xBB, 0x9D, FIL_, 0x05, 0xCC, 0x83, - FIL_, 0xE1, 0xBB, 0xAE, FIL_, 0xCC, 0xA3, FIL_, - 0xE1, 0xBB, 0xB0, FIL_, 0xCC, 0x89, FIL_, 0xE1, - 0xBB, 0xAC, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB, - 0xA8, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xAA, - FIL_, 0x05, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xB1, - FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xAF, FIL_, - 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0xAD, FIL_, 0xCC, - 0x81, FIL_, 0xE1, 0xBB, 0xA9, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xBB, 0xAB, FIL_, 0x01, 0xCC, 0x8C, - FIL_, 0xC7, 0xAE, FIL_, 0x01, 0xCC, 0x84, FIL_, - 0xC7, 0xAC, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, - 0xAD, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA0, - FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA1, FIL_, - 0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9C, FIL_, - 0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9D, FIL_, - 0x01, 0xCC, 0x84, FIL_, 0xC8, 0xB0, FIL_, 0x01, - 0xCC, 0x84, FIL_, 0xC8, 0xB1, FIL_, 0x01, 0xCC, - 0x8C, FIL_, 0xC7, 0xAF, FIL_, 0x07, 0xCC, 0x93, - FIL_, 0xE1, 0xBC, 0x88, FIL_, 0xCC, 0x94, FIL_, - 0xE1, 0xBC, 0x89, FIL_, 0xCC, 0x81, FIL_, 0xCE, - 0x86, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xBC, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBE, 0xBA, FIL_, - 0xCC, 0x84, FIL_, 0xE1, 0xBE, 0xB9, FIL_, 0xCC, - 0x86, FIL_, 0xE1, 0xBE, 0xB8, FIL_, 0x04, 0xCC, - 0x81, FIL_, 0xCE, 0x88, FIL_, 0xCC, 0x94, FIL_, - 0xE1, 0xBC, 0x99, FIL_, 0xCC, 0x93, FIL_, 0xE1, - 0xBC, 0x98, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, - 0x88, FIL_, 0x05, 0xCC, 0x94, FIL_, 0xE1, 0xBC, - 0xA9, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x8A, - FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x89, FIL_, 0xCD, - 0x85, FIL_, 0xE1, 0xBF, 0x8C, FIL_, 0xCC, 0x93, - FIL_, 0xE1, 0xBC, 0xA8, FIL_, 0x07, 0xCC, 0x81, - FIL_, 0xCE, 0x8A, FIL_, 0xCC, 0x88, FIL_, 0xCE, - 0xAA, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF, 0x98, - FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xBF, 0x99, FIL_, - 0xCC, 0x93, FIL_, 0xE1, 0xBC, 0xB8, FIL_, 0xCC, - 0x94, FIL_, 0xE1, 0xBC, 0xB9, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xBF, 0x9A, FIL_, 0x04, 0xCC, 0x94, - FIL_, 0xE1, 0xBD, 0x89, FIL_, 0xCC, 0x80, FIL_, - 0xE1, 0xBF, 0xB8, FIL_, 0xCC, 0x81, FIL_, 0xCE, - 0x8C, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD, 0x88, - FIL_, 0x01, 0xCC, 0x94, FIL_, 0xE1, 0xBF, 0xAC, - FIL_, 0x06, 0xCC, 0x81, FIL_, 0xCE, 0x8E, FIL_, - 0xCC, 0x86, FIL_, 0xE1, 0xBF, 0xA8, FIL_, 0xCC, - 0x94, FIL_, 0xE1, 0xBD, 0x99, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xBF, 0xAA, FIL_, 0xCC, 0x84, FIL_, - 0xE1, 0xBF, 0xA9, FIL_, 0xCC, 0x88, FIL_, 0xCE, - 0xAB, FIL_, 0x05, 0xCC, 0x80, FIL_, 0xE1, 0xBF, - 0xBA, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x8F, FIL_, - 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xBC, FIL_, 0xCC, - 0x94, FIL_, 0xE1, 0xBD, 0xA9, FIL_, 0xCC, 0x93, - FIL_, 0xE1, 0xBD, 0xA8, FIL_, 0x01, 0xCD, 0x85, - FIL_, 0xE1, 0xBE, 0xB4, FIL_, 0x01, 0xCD, 0x85, - FIL_, 0xE1, 0xBF, 0x84, FIL_, 0x08, 0xCC, 0x81, - FIL_, 0xCE, 0xAC, FIL_, 0xCC, 0x80, FIL_, 0xE1, - 0xBD, 0xB0, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC, - 0x80, FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBC, 0x81, - FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBE, 0xB6, FIL_, - 0xCC, 0x86, FIL_, 0xE1, 0xBE, 0xB0, FIL_, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0xB3, FIL_, 0xCC, 0x84, - FIL_, 0xE1, 0xBE, 0xB1, FIL_, 0x04, 0xCC, 0x81, - FIL_, 0xCE, 0xAD, FIL_, 0xCC, 0x94, FIL_, 0xE1, - 0xBC, 0x91, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, - 0xB2, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC, 0x90, - FIL_, 0x06, 0xCC, 0x81, FIL_, 0xCE, 0xAE, FIL_, - 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xB4, FIL_, 0xCD, - 0x85, FIL_, 0xE1, 0xBF, 0x83, FIL_, 0xCD, 0x82, - FIL_, 0xE1, 0xBF, 0x86, FIL_, 0xCC, 0x94, FIL_, - 0xE1, 0xBC, 0xA1, FIL_, 0xCC, 0x93, FIL_, 0xE1, - 0xBC, 0xA0, FIL_, 0x08, 0xCD, 0x82, FIL_, 0xE1, - 0xBF, 0x96, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF, - 0x90, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC, 0xB0, - FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAF, FIL_, 0xCC, - 0x94, FIL_, 0xE1, 0xBC, 0xB1, FIL_, 0xCC, 0x84, - FIL_, 0xE1, 0xBF, 0x91, FIL_, 0xCC, 0x88, FIL_, - 0xCF, 0x8A, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, - 0xB6, FIL_, 0x04, 0xCC, 0x81, FIL_, 0xCF, 0x8C, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xB8, FIL_, - 0xCC, 0x93, FIL_, 0xE1, 0xBD, 0x80, FIL_, 0xCC, - 0x94, FIL_, 0xE1, 0xBD, 0x81, FIL_, 0x02, 0xCC, - 0x93, FIL_, 0xE1, 0xBF, 0xA4, FIL_, 0xCC, 0x94, - FIL_, 0xE1, 0xBF, 0xA5, FIL_, 0x08, 0xCC, 0x93, - FIL_, 0xE1, 0xBD, 0x90, FIL_, 0xCC, 0x94, FIL_, - 0xE1, 0xBD, 0x91, FIL_, 0xCC, 0x86, FIL_, 0xE1, - 0xBF, 0xA0, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, - 0xA6, FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xBF, 0xA1, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xBA, FIL_, - 0xCC, 0x81, FIL_, 0xCF, 0x8D, FIL_, 0xCC, 0x88, - FIL_, 0xCF, 0x8B, FIL_, 0x06, 0xCC, 0x94, FIL_, - 0xE1, 0xBD, 0xA1, FIL_, 0xCD, 0x85, FIL_, 0xE1, - 0xBF, 0xB3, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, - 0xBC, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0xB6, - FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD, 0xA0, FIL_, - 0xCC, 0x81, FIL_, 0xCF, 0x8E, FIL_, 0x03, 0xCD, - 0x82, FIL_, 0xE1, 0xBF, 0x97, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xBF, 0x92, FIL_, 0xCC, 0x81, FIL_, - 0xCE, 0x90, FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1, - 0xBF, 0xA2, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xB0, - FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0xA7, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB4, FIL_, - 0x02, 0xCC, 0x88, FIL_, 0xCF, 0x94, FIL_, 0xCC, - 0x81, FIL_, 0xCF, 0x93, FIL_, 0x01, 0xCC, 0x88, - FIL_, 0xD0, 0x87, FIL_, 0x02, 0xCC, 0x86, FIL_, - 0xD3, 0x90, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x92, - FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD0, 0x83, FIL_, - 0x03, 0xCC, 0x86, FIL_, 0xD3, 0x96, FIL_, 0xCC, - 0x80, FIL_, 0xD0, 0x80, FIL_, 0xCC, 0x88, FIL_, - 0xD0, 0x81, FIL_, 0x02, 0xCC, 0x88, FIL_, 0xD3, - 0x9C, FIL_, 0xCC, 0x86, FIL_, 0xD3, 0x81, FIL_, - 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9E, FIL_, 0x04, - 0xCC, 0x80, FIL_, 0xD0, 0x8D, FIL_, 0xCC, 0x88, - FIL_, 0xD3, 0xA4, FIL_, 0xCC, 0x86, FIL_, 0xD0, - 0x99, FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xA2, FIL_, - 0x01, 0xCC, 0x81, FIL_, 0xD0, 0x8C, FIL_, 0x01, - 0xCC, 0x88, FIL_, 0xD3, 0xA6, FIL_, 0x04, 0xCC, - 0x86, FIL_, 0xD0, 0x8E, FIL_, 0xCC, 0x8B, FIL_, - 0xD3, 0xB2, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0xB0, - FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xAE, FIL_, 0x01, - 0xCC, 0x88, FIL_, 0xD3, 0xB4, FIL_, 0x01, 0xCC, - 0x88, FIL_, 0xD3, 0xB8, FIL_, 0x01, 0xCC, 0x88, - FIL_, 0xD3, 0xAC, FIL_, 0x02, 0xCC, 0x86, FIL_, - 0xD3, 0x91, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x93, - FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD1, 0x93, FIL_, - 0x03, 0xCC, 0x80, FIL_, 0xD1, 0x90, FIL_, 0xCC, - 0x88, FIL_, 0xD1, 0x91, FIL_, 0xCC, 0x86, FIL_, - 0xD3, 0x97, FIL_, 0x02, 0xCC, 0x88, FIL_, 0xD3, - 0x9D, FIL_, 0xCC, 0x86, FIL_, 0xD3, 0x82, FIL_, - 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9F, FIL_, 0x04, - 0xCC, 0x88, FIL_, 0xD3, 0xA5, FIL_, 0xCC, 0x86, - FIL_, 0xD0, 0xB9, FIL_, 0xCC, 0x80, FIL_, 0xD1, - 0x9D, FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xA3, FIL_, - 0x01, 0xCC, 0x81, FIL_, 0xD1, 0x9C, FIL_, 0x01, - 0xCC, 0x88, FIL_, 0xD3, 0xA7, FIL_, 0x04, 0xCC, - 0x84, FIL_, 0xD3, 0xAF, FIL_, 0xCC, 0x86, FIL_, - 0xD1, 0x9E, FIL_, 0xCC, 0x8B, FIL_, 0xD3, 0xB3, - FIL_, 0xCC, 0x88, FIL_, 0xD3, 0xB1, FIL_, 0x01, - 0xCC, 0x88, FIL_, 0xD3, 0xB5, FIL_, 0x01, 0xCC, - 0x88, FIL_, 0xD3, 0xB9, FIL_, 0x01, 0xCC, 0x88, - FIL_, 0xD3, 0xAD, FIL_, 0x01, 0xCC, 0x88, FIL_, - 0xD1, 0x97, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1, - 0xB6, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1, 0xB7, - FIL_, 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9A, FIL_, - 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9B, FIL_, 0x01, - 0xCC, 0x88, FIL_, 0xD3, 0xAA, FIL_, 0x01, 0xCC, - 0x88, FIL_, 0xD3, 0xAB, FIL_, 0x03, 0xD9, 0x94, - FIL_, 0xD8, 0xA3, FIL_, 0xD9, 0x93, FIL_, 0xD8, - 0xA2, FIL_, 0xD9, 0x95, FIL_, 0xD8, 0xA5, FIL_, - 0x01, 0xD9, 0x94, FIL_, 0xD8, 0xA4, FIL_, 0x01, - 0xD9, 0x94, FIL_, 0xD8, 0xA6, FIL_, 0x01, 0xD9, - 0x94, FIL_, 0xDB, 0x82, FIL_, 0x01, 0xD9, 0x94, - FIL_, 0xDB, 0x93, FIL_, 0x01, 0xD9, 0x94, FIL_, - 0xDB, 0x80, FIL_, 0x01, 0xE0, 0xA4, 0xBC, FIL_, - 0xE0, 0xA4, 0xA9, FIL_, 0x01, 0xE0, 0xA4, 0xBC, - FIL_, 0xE0, 0xA4, 0xB1, FIL_, 0x01, 0xE0, 0xA4, - 0xBC, FIL_, 0xE0, 0xA4, 0xB4, FIL_, 0x02, 0xE0, - 0xA6, 0xBE, FIL_, 0xE0, 0xA7, 0x8B, FIL_, 0xE0, - 0xA7, 0x97, FIL_, 0xE0, 0xA7, 0x8C, FIL_, 0x03, - 0xE0, 0xAD, 0x97, FIL_, 0xE0, 0xAD, 0x8C, FIL_, - 0xE0, 0xAC, 0xBE, FIL_, 0xE0, 0xAD, 0x8B, FIL_, - 0xE0, 0xAD, 0x96, FIL_, 0xE0, 0xAD, 0x88, FIL_, - 0x01, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAE, 0x94, - FIL_, 0x02, 0xE0, 0xAE, 0xBE, FIL_, 0xE0, 0xAF, - 0x8A, FIL_, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAF, - 0x8C, FIL_, 0x01, 0xE0, 0xAE, 0xBE, FIL_, 0xE0, - 0xAF, 0x8B, FIL_, 0x01, 0xE0, 0xB1, 0x96, FIL_, - 0xE0, 0xB1, 0x88, FIL_, 0x01, 0xE0, 0xB3, 0x95, - FIL_, 0xE0, 0xB3, 0x80, FIL_, 0x03, 0xE0, 0xB3, - 0x95, FIL_, 0xE0, 0xB3, 0x87, FIL_, 0xE0, 0xB3, - 0x82, FIL_, 0xE0, 0xB3, 0x8A, FIL_, 0xE0, 0xB3, - 0x96, FIL_, 0xE0, 0xB3, 0x88, FIL_, 0x01, 0xE0, - 0xB3, 0x95, FIL_, 0xE0, 0xB3, 0x8B, FIL_, 0x02, - 0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8A, FIL_, - 0xE0, 0xB5, 0x97, FIL_, 0xE0, 0xB5, 0x8C, FIL_, - 0x01, 0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8B, - FIL_, 0x03, 0xE0, 0xB7, 0x8F, FIL_, 0xE0, 0xB7, - 0x9C, FIL_, 0xE0, 0xB7, 0x8A, FIL_, 0xE0, 0xB7, - 0x9A, FIL_, 0xE0, 0xB7, 0x9F, FIL_, 0xE0, 0xB7, - 0x9E, FIL_, 0x01, 0xE0, 0xB7, 0x8A, FIL_, 0xE0, - 0xB7, 0x9D, FIL_, 0x01, 0xE1, 0x80, 0xAE, FIL_, - 0xE1, 0x80, 0xA6, FIL_, 0x01, 0xCC, 0x84, FIL_, - 0xE1, 0xB8, 0xB8, FIL_, 0x01, 0xCC, 0x84, FIL_, - 0xE1, 0xB8, 0xB9, FIL_, 0x01, 0xCC, 0x84, FIL_, - 0xE1, 0xB9, 0x9C, FIL_, 0x01, 0xCC, 0x84, FIL_, - 0xE1, 0xB9, 0x9D, FIL_, 0x01, 0xCC, 0x87, FIL_, - 0xE1, 0xB9, 0xA8, FIL_, 0x01, 0xCC, 0x87, FIL_, - 0xE1, 0xB9, 0xA9, FIL_, 0x02, 0xCC, 0x86, FIL_, - 0xE1, 0xBA, 0xB6, FIL_, 0xCC, 0x82, FIL_, 0xE1, - 0xBA, 0xAC, FIL_, 0x02, 0xCC, 0x86, FIL_, 0xE1, - 0xBA, 0xB7, FIL_, 0xCC, 0x82, FIL_, 0xE1, 0xBA, - 0xAD, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB, - 0x86, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB, - 0x87, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB, - 0x98, FIL_, 0x01, 0xCC, 0x82, FIL_, 0xE1, 0xBB, - 0x99, FIL_, 0x04, 0xCC, 0x80, FIL_, 0xE1, 0xBC, - 0x82, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x84, - FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x80, FIL_, - 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0x86, FIL_, 0x04, - 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0x87, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBC, 0x83, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xBC, 0x85, FIL_, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x81, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x82, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x83, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x84, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x85, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x86, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x87, FIL_, 0x04, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x88, FIL_, 0xCC, 0x80, FIL_, 0xE1, - 0xBC, 0x8A, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC, - 0x8E, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x8C, - FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x8D, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x8B, FIL_, - 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0x8F, FIL_, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x89, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x8A, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x8B, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x8C, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x8D, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x8E, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x8F, FIL_, 0x02, 0xCC, - 0x80, FIL_, 0xE1, 0xBC, 0x92, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xBC, 0x94, FIL_, 0x02, 0xCC, 0x80, - FIL_, 0xE1, 0xBC, 0x93, FIL_, 0xCC, 0x81, FIL_, - 0xE1, 0xBC, 0x95, FIL_, 0x02, 0xCC, 0x80, FIL_, - 0xE1, 0xBC, 0x9A, FIL_, 0xCC, 0x81, FIL_, 0xE1, - 0xBC, 0x9C, FIL_, 0x02, 0xCC, 0x80, FIL_, 0xE1, - 0xBC, 0x9B, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, - 0x9D, FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBC, - 0xA6, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x90, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xA4, FIL_, - 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xA2, FIL_, 0x04, - 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xA3, FIL_, 0xCC, - 0x81, FIL_, 0xE1, 0xBC, 0xA5, FIL_, 0xCD, 0x82, - FIL_, 0xE1, 0xBC, 0xA7, FIL_, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x91, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x92, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x93, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x94, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x95, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x96, FIL_, 0x01, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0x97, FIL_, 0x04, 0xCD, 0x82, FIL_, - 0xE1, 0xBC, 0xAE, FIL_, 0xCC, 0x81, FIL_, 0xE1, - 0xBC, 0xAC, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, - 0x98, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xAA, - FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xAF, - FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x99, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xAD, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBC, 0xAB, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x9A, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x9B, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x9C, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x9D, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x9E, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0x9F, FIL_, 0x03, 0xCC, - 0x81, FIL_, 0xE1, 0xBC, 0xB4, FIL_, 0xCD, 0x82, - FIL_, 0xE1, 0xBC, 0xB6, FIL_, 0xCC, 0x80, FIL_, - 0xE1, 0xBC, 0xB2, FIL_, 0x03, 0xCC, 0x81, FIL_, - 0xE1, 0xBC, 0xB5, FIL_, 0xCD, 0x82, FIL_, 0xE1, - 0xBC, 0xB7, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, - 0xB3, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xBC, - 0xBC, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xBA, - FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xBE, FIL_, - 0x03, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xBB, FIL_, - 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xBF, FIL_, 0xCC, - 0x81, FIL_, 0xE1, 0xBC, 0xBD, FIL_, 0x02, 0xCC, - 0x80, FIL_, 0xE1, 0xBD, 0x82, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xBD, 0x84, FIL_, 0x02, 0xCC, 0x80, - FIL_, 0xE1, 0xBD, 0x83, FIL_, 0xCC, 0x81, FIL_, - 0xE1, 0xBD, 0x85, FIL_, 0x02, 0xCC, 0x81, FIL_, - 0xE1, 0xBD, 0x8C, FIL_, 0xCC, 0x80, FIL_, 0xE1, - 0xBD, 0x8A, FIL_, 0x02, 0xCC, 0x81, FIL_, 0xE1, - 0xBD, 0x8D, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, - 0x8B, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xBD, - 0x94, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0x96, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x92, FIL_, - 0x03, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0x97, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x95, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBD, 0x93, FIL_, 0x03, 0xCC, - 0x81, FIL_, 0xE1, 0xBD, 0x9D, FIL_, 0xCD, 0x82, - FIL_, 0xE1, 0xBD, 0x9F, FIL_, 0xCC, 0x80, FIL_, - 0xE1, 0xBD, 0x9B, FIL_, 0x04, 0xCC, 0x81, FIL_, - 0xE1, 0xBD, 0xA4, FIL_, 0xCC, 0x80, FIL_, 0xE1, - 0xBD, 0xA2, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, - 0xA6, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA0, - FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xA7, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0xA5, FIL_, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA1, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBD, 0xA3, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0xA2, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0xA3, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0xA4, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0xA5, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0xA6, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0xA7, FIL_, 0x04, 0xCC, - 0x81, FIL_, 0xE1, 0xBD, 0xAC, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xBD, 0xAA, FIL_, 0xCD, 0x82, FIL_, - 0xE1, 0xBD, 0xAE, FIL_, 0xCD, 0x85, FIL_, 0xE1, - 0xBE, 0xA8, FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1, - 0xBD, 0xAD, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, - 0xA9, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xAF, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xAB, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAA, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAB, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAC, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAD, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAE, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xAF, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xB2, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0x82, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB2, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xB7, FIL_, - 0x03, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0x8F, FIL_, - 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x8D, FIL_, 0xCC, - 0x81, FIL_, 0xE1, 0xBF, 0x8E, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBF, 0x87, FIL_, 0x01, 0xCD, - 0x85, FIL_, 0xE1, 0xBF, 0xB7, FIL_, 0x03, 0xCC, - 0x80, FIL_, 0xE1, 0xBF, 0x9D, FIL_, 0xCD, 0x82, - FIL_, 0xE1, 0xBF, 0x9F, FIL_, 0xCC, 0x81, FIL_, - 0xE1, 0xBF, 0x9E, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x86, 0x9A, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x86, 0x9B, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x86, 0xAE, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x87, 0x8D, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x87, 0x8F, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x87, 0x8E, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x88, 0x84, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x88, 0x89, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x88, 0x8C, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x88, 0xA4, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x88, 0xA6, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0x81, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0x84, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0x87, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0x89, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0xAD, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0xA2, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0xB0, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0xB1, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0xB4, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0xB5, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0xB8, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x89, 0xB9, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8A, 0x80, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8A, 0x81, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8B, 0xA0, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8B, 0xA1, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8A, 0x84, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8A, 0x85, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8A, 0x88, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8A, 0x89, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8B, 0xA2, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8B, 0xA3, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8A, 0xAC, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8A, 0xAD, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8A, 0xAE, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8A, 0xAF, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8B, 0xAA, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8B, 0xAB, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8B, 0xAC, FIL_, 0x01, 0xCC, 0xB8, FIL_, - 0xE2, 0x8B, 0xAD, FIL_, 0x01, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x82, 0x94, FIL_, 0x01, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x81, 0x8C, FIL_, 0x01, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x81, 0x8E, FIL_, 0x01, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x90, FIL_, - 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x92, - FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, - 0x94, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x81, 0x96, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x81, 0x98, FIL_, 0x01, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x81, 0x9A, FIL_, 0x01, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x81, 0x9C, FIL_, 0x01, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x81, 0x9E, FIL_, 0x01, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xA0, FIL_, - 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xA2, - FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, - 0xA5, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x81, 0xA7, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x81, 0xA9, FIL_, 0x02, 0xE3, 0x82, 0x9A, - FIL_, 0xE3, 0x81, 0xB1, FIL_, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x81, 0xB0, FIL_, 0x02, 0xE3, 0x82, - 0x9A, FIL_, 0xE3, 0x81, 0xB4, FIL_, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x81, 0xB3, FIL_, 0x02, 0xE3, - 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xB7, FIL_, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x81, 0xB6, FIL_, 0x02, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xB9, FIL_, - 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xBA, FIL_, - 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xBC, - FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xBD, - FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, - 0x9E, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x83, 0xB4, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x82, 0xAC, FIL_, 0x01, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x82, 0xAE, FIL_, 0x01, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x82, 0xB0, FIL_, 0x01, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x82, 0xB2, FIL_, 0x01, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xB4, FIL_, - 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xB6, - FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, - 0xB8, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x82, 0xBA, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x82, 0xBC, FIL_, 0x01, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x82, 0xBE, FIL_, 0x01, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x83, 0x80, FIL_, 0x01, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x83, 0x82, FIL_, 0x01, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x85, FIL_, - 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x87, - FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, - 0x89, FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x83, 0x90, FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, - 0x83, 0x91, FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x83, 0x93, FIL_, 0xE3, 0x82, 0x9A, FIL_, - 0xE3, 0x83, 0x94, FIL_, 0x02, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x83, 0x96, FIL_, 0xE3, 0x82, 0x9A, - FIL_, 0xE3, 0x83, 0x97, FIL_, 0x02, 0xE3, 0x82, - 0x9A, FIL_, 0xE3, 0x83, 0x9A, FIL_, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x83, 0x99, FIL_, 0x02, 0xE3, - 0x82, 0x9A, FIL_, 0xE3, 0x83, 0x9D, FIL_, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x83, 0x9C, FIL_, 0x01, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0xB7, FIL_, - 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0xB8, - FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, - 0xB9, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x83, 0xBA, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x83, 0xBE, FIL_, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - }, - { - 0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAE, FIL_, - 0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xA0, FIL_, - 0x01, 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAF, FIL_, - 0x10, 0xCC, 0xA5, FIL_, 0xE1, 0xB8, 0x80, FIL_, - 0xCC, 0x87, FIL_, 0xC8, 0xA6, FIL_, 0xCC, 0x83, - FIL_, 0xC3, 0x83, FIL_, 0xCC, 0x91, FIL_, 0xC8, - 0x82, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x80, FIL_, - 0xCC, 0x8A, FIL_, 0xC3, 0x85, FIL_, 0xCC, 0x88, - FIL_, 0xC3, 0x84, FIL_, 0xCC, 0x89, FIL_, 0xE1, - 0xBA, 0xA2, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, - 0xA0, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x8D, FIL_, - 0xCC, 0x80, FIL_, 0xC3, 0x80, FIL_, 0xCC, 0x81, - FIL_, 0xC3, 0x81, FIL_, 0xCC, 0x82, FIL_, 0xC3, - 0x82, FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x84, FIL_, - 0xCC, 0x86, FIL_, 0xC4, 0x82, FIL_, 0xCC, 0x84, - FIL_, 0xC4, 0x80, FIL_, 0x03, 0xCC, 0xB1, FIL_, - 0xE1, 0xB8, 0x86, FIL_, 0xCC, 0x87, FIL_, 0xE1, - 0xB8, 0x82, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, - 0x84, FIL_, 0x05, 0xCC, 0xA7, FIL_, 0xC3, 0x87, - FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x8C, FIL_, 0xCC, - 0x81, FIL_, 0xC4, 0x86, FIL_, 0xCC, 0x82, FIL_, - 0xC4, 0x88, FIL_, 0xCC, 0x87, FIL_, 0xC4, 0x8A, - FIL_, 0x06, 0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0x90, - FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x8E, FIL_, 0xCC, - 0xB1, FIL_, 0xE1, 0xB8, 0x8E, FIL_, 0xCC, 0xAD, - FIL_, 0xE1, 0xB8, 0x92, FIL_, 0xCC, 0xA3, FIL_, - 0xE1, 0xB8, 0x8C, FIL_, 0xCC, 0x87, FIL_, 0xE1, - 0xB8, 0x8A, FIL_, 0x11, 0xCC, 0x84, FIL_, 0xC4, - 0x92, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x94, FIL_, - 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0xB8, FIL_, 0xCC, - 0x91, FIL_, 0xC8, 0x86, FIL_, 0xCC, 0x82, FIL_, - 0xC3, 0x8A, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x84, - FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x98, FIL_, - 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xBA, FIL_, 0xCC, - 0xA7, FIL_, 0xC8, 0xA8, FIL_, 0xCC, 0x8C, FIL_, - 0xC4, 0x9A, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x88, - FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x98, FIL_, 0xCC, - 0x83, FIL_, 0xE1, 0xBA, 0xBC, FIL_, 0xCC, 0x87, - FIL_, 0xC4, 0x96, FIL_, 0xCC, 0x81, FIL_, 0xC3, - 0x89, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x8B, FIL_, - 0xCC, 0xB0, FIL_, 0xE1, 0xB8, 0x9A, FIL_, 0x01, - 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9E, FIL_, 0x07, - 0xCC, 0x8C, FIL_, 0xC7, 0xA6, FIL_, 0xCC, 0x86, - FIL_, 0xC4, 0x9E, FIL_, 0xCC, 0x82, FIL_, 0xC4, - 0x9C, FIL_, 0xCC, 0xA7, FIL_, 0xC4, 0xA2, FIL_, - 0xCC, 0x84, FIL_, 0xE1, 0xB8, 0xA0, FIL_, 0xCC, - 0x81, FIL_, 0xC7, 0xB4, FIL_, 0xCC, 0x87, FIL_, - 0xC4, 0xA0, FIL_, 0x07, 0xCC, 0x87, FIL_, 0xE1, - 0xB8, 0xA2, FIL_, 0xCC, 0xA7, FIL_, 0xE1, 0xB8, - 0xA8, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0xA4, FIL_, - 0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA6, FIL_, 0xCC, - 0x8C, FIL_, 0xC8, 0x9E, FIL_, 0xCC, 0xAE, FIL_, - 0xE1, 0xB8, 0xAA, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xB8, 0xA4, FIL_, 0x0F, 0xCC, 0xB0, FIL_, 0xE1, - 0xB8, 0xAC, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x8F, - FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x8C, FIL_, 0xCC, - 0x89, FIL_, 0xE1, 0xBB, 0x88, FIL_, 0xCC, 0xA3, - FIL_, 0xE1, 0xBB, 0x8A, FIL_, 0xCC, 0x91, FIL_, - 0xC8, 0x8A, FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x8F, - FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x8E, FIL_, 0xCC, - 0x81, FIL_, 0xC3, 0x8D, FIL_, 0xCC, 0x83, FIL_, - 0xC4, 0xA8, FIL_, 0xCC, 0x87, FIL_, 0xC4, 0xB0, - FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x88, FIL_, 0xCC, - 0xA8, FIL_, 0xC4, 0xAE, FIL_, 0xCC, 0x86, FIL_, - 0xC4, 0xAC, FIL_, 0xCC, 0x84, FIL_, 0xC4, 0xAA, - FIL_, 0x01, 0xCC, 0x82, FIL_, 0xC4, 0xB4, FIL_, - 0x05, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xB0, FIL_, - 0xCC, 0x8C, FIL_, 0xC7, 0xA8, FIL_, 0xCC, 0xB1, - FIL_, 0xE1, 0xB8, 0xB4, FIL_, 0xCC, 0xA7, FIL_, - 0xC4, 0xB6, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, - 0xB2, FIL_, 0x06, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, - 0xB6, FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0xBD, FIL_, - 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0xBC, FIL_, 0xCC, - 0xB1, FIL_, 0xE1, 0xB8, 0xBA, FIL_, 0xCC, 0xA7, - FIL_, 0xC4, 0xBB, FIL_, 0xCC, 0x81, FIL_, 0xC4, - 0xB9, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xB8, - 0xBE, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x80, - FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x82, FIL_, - 0x09, 0xCC, 0x83, FIL_, 0xC3, 0x91, FIL_, 0xCC, - 0x81, FIL_, 0xC5, 0x83, FIL_, 0xCC, 0xA7, FIL_, - 0xC5, 0x85, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0x87, - FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x84, FIL_, - 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x86, FIL_, 0xCC, - 0xB1, FIL_, 0xE1, 0xB9, 0x88, FIL_, 0xCC, 0xAD, - FIL_, 0xE1, 0xB9, 0x8A, FIL_, 0xCC, 0x80, FIL_, - 0xC7, 0xB8, FIL_, 0x10, 0xCC, 0x89, FIL_, 0xE1, - 0xBB, 0x8E, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0x8C, - FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x94, FIL_, 0xCC, - 0x86, FIL_, 0xC5, 0x8E, FIL_, 0xCC, 0x83, FIL_, - 0xC3, 0x95, FIL_, 0xCC, 0x8B, FIL_, 0xC5, 0x90, - FIL_, 0xCC, 0x88, FIL_, 0xC3, 0x96, FIL_, 0xCC, - 0x9B, FIL_, 0xC6, 0xA0, FIL_, 0xCC, 0x91, FIL_, - 0xC8, 0x8E, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x91, - FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x8C, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xBB, 0x8C, FIL_, 0xCC, 0x80, - FIL_, 0xC3, 0x92, FIL_, 0xCC, 0xA8, FIL_, 0xC7, - 0xAA, FIL_, 0xCC, 0x87, FIL_, 0xC8, 0xAE, FIL_, - 0xCC, 0x81, FIL_, 0xC3, 0x93, FIL_, 0x02, 0xCC, - 0x87, FIL_, 0xE1, 0xB9, 0x96, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xB9, 0x94, FIL_, 0x08, 0xCC, 0xA7, - FIL_, 0xC5, 0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC5, - 0x98, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x92, FIL_, - 0xCC, 0x8F, FIL_, 0xC8, 0x90, FIL_, 0xCC, 0x81, - FIL_, 0xC5, 0x94, FIL_, 0xCC, 0x87, FIL_, 0xE1, - 0xB9, 0x98, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB9, - 0x9E, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x9A, - FIL_, 0x07, 0xCC, 0xA6, FIL_, 0xC8, 0x98, FIL_, - 0xCC, 0x81, FIL_, 0xC5, 0x9A, FIL_, 0xCC, 0x82, - FIL_, 0xC5, 0x9C, FIL_, 0xCC, 0xA7, FIL_, 0xC5, - 0x9E, FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0xA0, FIL_, - 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA0, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xB9, 0xA2, FIL_, 0x07, 0xCC, - 0xA6, FIL_, 0xC8, 0x9A, FIL_, 0xCC, 0x87, FIL_, - 0xE1, 0xB9, 0xAA, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xB9, 0xAC, FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB9, - 0xAE, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB0, - FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0xA2, FIL_, 0xCC, - 0x8C, FIL_, 0xC5, 0xA4, FIL_, 0x13, 0xCC, 0x8A, - FIL_, 0xC5, 0xAE, FIL_, 0xCC, 0x88, FIL_, 0xC3, - 0x9C, FIL_, 0xCC, 0x8B, FIL_, 0xC5, 0xB0, FIL_, - 0xCC, 0xAD, FIL_, 0xE1, 0xB9, 0xB6, FIL_, 0xCC, - 0xA8, FIL_, 0xC5, 0xB2, FIL_, 0xCC, 0x8C, FIL_, - 0xC7, 0x93, FIL_, 0xCC, 0x80, FIL_, 0xC3, 0x99, - FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x94, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xBB, 0xA4, FIL_, 0xCC, 0xA4, - FIL_, 0xE1, 0xB9, 0xB2, FIL_, 0xCC, 0x81, FIL_, - 0xC3, 0x9A, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0x9B, - FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB9, 0xB4, FIL_, - 0xCC, 0x83, FIL_, 0xC5, 0xA8, FIL_, 0xCC, 0x89, - FIL_, 0xE1, 0xBB, 0xA6, FIL_, 0xCC, 0x84, FIL_, - 0xC5, 0xAA, FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x96, - FIL_, 0xCC, 0x86, FIL_, 0xC5, 0xAC, FIL_, 0xCC, - 0x9B, FIL_, 0xC6, 0xAF, FIL_, 0x02, 0xCC, 0xA3, - FIL_, 0xE1, 0xB9, 0xBE, FIL_, 0xCC, 0x83, FIL_, - 0xE1, 0xB9, 0xBC, FIL_, 0x06, 0xCC, 0x88, FIL_, - 0xE1, 0xBA, 0x84, FIL_, 0xCC, 0x81, FIL_, 0xE1, - 0xBA, 0x82, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, - 0x80, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x88, - FIL_, 0xCC, 0x82, FIL_, 0xC5, 0xB4, FIL_, 0xCC, - 0x87, FIL_, 0xE1, 0xBA, 0x86, FIL_, 0x02, 0xCC, - 0x88, FIL_, 0xE1, 0xBA, 0x8C, FIL_, 0xCC, 0x87, - FIL_, 0xE1, 0xBA, 0x8A, FIL_, 0x09, 0xCC, 0x89, - FIL_, 0xE1, 0xBB, 0xB6, FIL_, 0xCC, 0xA3, FIL_, - 0xE1, 0xBB, 0xB4, FIL_, 0xCC, 0x80, FIL_, 0xE1, - 0xBB, 0xB2, FIL_, 0xCC, 0x88, FIL_, 0xC5, 0xB8, - FIL_, 0xCC, 0x81, FIL_, 0xC3, 0x9D, FIL_, 0xCC, - 0x83, FIL_, 0xE1, 0xBB, 0xB8, FIL_, 0xCC, 0x87, - FIL_, 0xE1, 0xBA, 0x8E, FIL_, 0xCC, 0x84, FIL_, - 0xC8, 0xB2, FIL_, 0xCC, 0x82, FIL_, 0xC5, 0xB6, - FIL_, 0x06, 0xCC, 0x82, FIL_, 0xE1, 0xBA, 0x90, - FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0x92, FIL_, - 0xCC, 0xB1, FIL_, 0xE1, 0xBA, 0x94, FIL_, 0xCC, - 0x8C, FIL_, 0xC5, 0xBD, FIL_, 0xCC, 0x87, FIL_, - 0xC5, 0xBB, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0xB9, - FIL_, 0x10, 0xCC, 0xA3, FIL_, 0xE1, 0xBA, 0xA1, - FIL_, 0xCC, 0xA8, FIL_, 0xC4, 0x85, FIL_, 0xCC, - 0x81, FIL_, 0xC3, 0xA1, FIL_, 0xCC, 0x82, FIL_, - 0xC3, 0xA2, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, - 0xA3, FIL_, 0xCC, 0x83, FIL_, 0xC3, 0xA3, FIL_, - 0xCC, 0x8C, FIL_, 0xC7, 0x8E, FIL_, 0xCC, 0x8A, - FIL_, 0xC3, 0xA5, FIL_, 0xCC, 0x88, FIL_, 0xC3, - 0xA4, FIL_, 0xCC, 0x87, FIL_, 0xC8, 0xA7, FIL_, - 0xCC, 0x91, FIL_, 0xC8, 0x83, FIL_, 0xCC, 0xA5, - FIL_, 0xE1, 0xB8, 0x81, FIL_, 0xCC, 0x84, FIL_, - 0xC4, 0x81, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x81, - FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x83, FIL_, 0xCC, - 0x80, FIL_, 0xC3, 0xA0, FIL_, 0x03, 0xCC, 0xA3, - FIL_, 0xE1, 0xB8, 0x85, FIL_, 0xCC, 0x87, FIL_, - 0xE1, 0xB8, 0x83, FIL_, 0xCC, 0xB1, FIL_, 0xE1, - 0xB8, 0x87, FIL_, 0x05, 0xCC, 0x87, FIL_, 0xC4, - 0x8B, FIL_, 0xCC, 0x8C, FIL_, 0xC4, 0x8D, FIL_, - 0xCC, 0x82, FIL_, 0xC4, 0x89, FIL_, 0xCC, 0x81, - FIL_, 0xC4, 0x87, FIL_, 0xCC, 0xA7, FIL_, 0xC3, - 0xA7, FIL_, 0x06, 0xCC, 0x87, FIL_, 0xE1, 0xB8, - 0x8B, FIL_, 0xCC, 0xA7, FIL_, 0xE1, 0xB8, 0x91, - FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0x8F, FIL_, - 0xCC, 0xA3, FIL_, 0xE1, 0xB8, 0x8D, FIL_, 0xCC, - 0x8C, FIL_, 0xC4, 0x8F, FIL_, 0xCC, 0xAD, FIL_, - 0xE1, 0xB8, 0x93, FIL_, 0x11, 0xCC, 0x80, FIL_, - 0xC3, 0xA8, FIL_, 0xCC, 0x81, FIL_, 0xC3, 0xA9, - FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xAA, FIL_, 0xCC, - 0x88, FIL_, 0xC3, 0xAB, FIL_, 0xCC, 0x84, FIL_, - 0xC4, 0x93, FIL_, 0xCC, 0x86, FIL_, 0xC4, 0x95, - FIL_, 0xCC, 0x87, FIL_, 0xC4, 0x97, FIL_, 0xCC, - 0xA8, FIL_, 0xC4, 0x99, FIL_, 0xCC, 0x8C, FIL_, - 0xC4, 0x9B, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x85, - FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x87, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xBA, 0xB9, FIL_, 0xCC, 0xA7, - FIL_, 0xC8, 0xA9, FIL_, 0xCC, 0x83, FIL_, 0xE1, - 0xBA, 0xBD, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, - 0xBB, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0x99, - FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB8, 0x9B, FIL_, - 0x01, 0xCC, 0x87, FIL_, 0xE1, 0xB8, 0x9F, FIL_, - 0x07, 0xCC, 0x86, FIL_, 0xC4, 0x9F, FIL_, 0xCC, - 0x87, FIL_, 0xC4, 0xA1, FIL_, 0xCC, 0x82, FIL_, - 0xC4, 0x9D, FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xB8, - 0xA1, FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0xA7, FIL_, - 0xCC, 0xA7, FIL_, 0xC4, 0xA3, FIL_, 0xCC, 0x81, - FIL_, 0xC7, 0xB5, FIL_, 0x08, 0xCC, 0xA7, FIL_, - 0xE1, 0xB8, 0xA9, FIL_, 0xCC, 0xB1, FIL_, 0xE1, - 0xBA, 0x96, FIL_, 0xCC, 0x8C, FIL_, 0xC8, 0x9F, - FIL_, 0xCC, 0xAE, FIL_, 0xE1, 0xB8, 0xAB, FIL_, - 0xCC, 0x88, FIL_, 0xE1, 0xB8, 0xA7, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xB8, 0xA5, FIL_, 0xCC, 0x87, - FIL_, 0xE1, 0xB8, 0xA3, FIL_, 0xCC, 0x82, FIL_, - 0xC4, 0xA5, FIL_, 0x0E, 0xCC, 0x88, FIL_, 0xC3, - 0xAF, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x89, - FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0x8B, FIL_, - 0xCC, 0x82, FIL_, 0xC3, 0xAE, FIL_, 0xCC, 0x81, - FIL_, 0xC3, 0xAD, FIL_, 0xCC, 0x80, FIL_, 0xC3, - 0xAC, FIL_, 0xCC, 0x83, FIL_, 0xC4, 0xA9, FIL_, - 0xCC, 0x84, FIL_, 0xC4, 0xAB, FIL_, 0xCC, 0x86, - FIL_, 0xC4, 0xAD, FIL_, 0xCC, 0xA8, FIL_, 0xC4, - 0xAF, FIL_, 0xCC, 0xB0, FIL_, 0xE1, 0xB8, 0xAD, - FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x90, FIL_, 0xCC, - 0x91, FIL_, 0xC8, 0x8B, FIL_, 0xCC, 0x8F, FIL_, - 0xC8, 0x89, FIL_, 0x02, 0xCC, 0x8C, FIL_, 0xC7, - 0xB0, FIL_, 0xCC, 0x82, FIL_, 0xC4, 0xB5, FIL_, - 0x05, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0xB5, FIL_, - 0xCC, 0xA7, FIL_, 0xC4, 0xB7, FIL_, 0xCC, 0x8C, - FIL_, 0xC7, 0xA9, FIL_, 0xCC, 0x81, FIL_, 0xE1, - 0xB8, 0xB1, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, - 0xB3, FIL_, 0x06, 0xCC, 0xA3, FIL_, 0xE1, 0xB8, - 0xB7, FIL_, 0xCC, 0xAD, FIL_, 0xE1, 0xB8, 0xBD, - FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB8, 0xBB, FIL_, - 0xCC, 0xA7, FIL_, 0xC4, 0xBC, FIL_, 0xCC, 0x81, - FIL_, 0xC4, 0xBA, FIL_, 0xCC, 0x8C, FIL_, 0xC4, - 0xBE, FIL_, 0x03, 0xCC, 0x87, FIL_, 0xE1, 0xB9, - 0x81, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x83, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xBF, FIL_, - 0x09, 0xCC, 0x80, FIL_, 0xC7, 0xB9, FIL_, 0xCC, - 0xAD, FIL_, 0xE1, 0xB9, 0x8B, FIL_, 0xCC, 0x83, - FIL_, 0xC3, 0xB1, FIL_, 0xCC, 0x81, FIL_, 0xC5, - 0x84, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0x87, - FIL_, 0xCC, 0xB1, FIL_, 0xE1, 0xB9, 0x89, FIL_, - 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0x85, FIL_, 0xCC, - 0xA7, FIL_, 0xC5, 0x86, FIL_, 0xCC, 0x8C, FIL_, - 0xC5, 0x88, FIL_, 0x10, 0xCC, 0xA3, FIL_, 0xE1, - 0xBB, 0x8D, FIL_, 0xCC, 0x87, FIL_, 0xC8, 0xAF, - FIL_, 0xCC, 0x80, FIL_, 0xC3, 0xB2, FIL_, 0xCC, - 0x91, FIL_, 0xC8, 0x8F, FIL_, 0xCC, 0x89, FIL_, - 0xE1, 0xBB, 0x8F, FIL_, 0xCC, 0x88, FIL_, 0xC3, - 0xB6, FIL_, 0xCC, 0x83, FIL_, 0xC3, 0xB5, FIL_, - 0xCC, 0x81, FIL_, 0xC3, 0xB3, FIL_, 0xCC, 0x8C, - FIL_, 0xC7, 0x92, FIL_, 0xCC, 0xA8, FIL_, 0xC7, - 0xAB, FIL_, 0xCC, 0x9B, FIL_, 0xC6, 0xA1, FIL_, - 0xCC, 0x84, FIL_, 0xC5, 0x8D, FIL_, 0xCC, 0x86, - FIL_, 0xC5, 0x8F, FIL_, 0xCC, 0x8B, FIL_, 0xC5, - 0x91, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xB4, FIL_, - 0xCC, 0x8F, FIL_, 0xC8, 0x8D, FIL_, 0x02, 0xCC, - 0x87, FIL_, 0xE1, 0xB9, 0x97, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xB9, 0x95, FIL_, 0x08, 0xCC, 0x8C, - FIL_, 0xC5, 0x99, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xB9, 0x9B, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0x95, - FIL_, 0xCC, 0xA7, FIL_, 0xC5, 0x97, FIL_, 0xCC, - 0xB1, FIL_, 0xE1, 0xB9, 0x9F, FIL_, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0x99, FIL_, 0xCC, 0x91, FIL_, - 0xC8, 0x93, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x91, - FIL_, 0x07, 0xCC, 0xA7, FIL_, 0xC5, 0x9F, FIL_, - 0xCC, 0x82, FIL_, 0xC5, 0x9D, FIL_, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0xA1, FIL_, 0xCC, 0xA6, FIL_, - 0xC8, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC5, 0x9B, - FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, 0xA3, FIL_, - 0xCC, 0x8C, FIL_, 0xC5, 0xA1, FIL_, 0x08, 0xCC, - 0xA6, FIL_, 0xC8, 0x9B, FIL_, 0xCC, 0xAD, FIL_, - 0xE1, 0xB9, 0xB1, FIL_, 0xCC, 0xB1, FIL_, 0xE1, - 0xB9, 0xAF, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xB9, - 0xAD, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xAB, - FIL_, 0xCC, 0x8C, FIL_, 0xC5, 0xA5, FIL_, 0xCC, - 0xA7, FIL_, 0xC5, 0xA3, FIL_, 0xCC, 0x88, FIL_, - 0xE1, 0xBA, 0x97, FIL_, 0x13, 0xCC, 0x8A, FIL_, - 0xC5, 0xAF, FIL_, 0xCC, 0x8F, FIL_, 0xC8, 0x95, - FIL_, 0xCC, 0x8C, FIL_, 0xC7, 0x94, FIL_, 0xCC, - 0x80, FIL_, 0xC3, 0xB9, FIL_, 0xCC, 0x9B, FIL_, - 0xC6, 0xB0, FIL_, 0xCC, 0x82, FIL_, 0xC3, 0xBB, - FIL_, 0xCC, 0x81, FIL_, 0xC3, 0xBA, FIL_, 0xCC, - 0x88, FIL_, 0xC3, 0xBC, FIL_, 0xCC, 0x83, FIL_, - 0xC5, 0xA9, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, - 0xA7, FIL_, 0xCC, 0x84, FIL_, 0xC5, 0xAB, FIL_, - 0xCC, 0x86, FIL_, 0xC5, 0xAD, FIL_, 0xCC, 0xAD, - FIL_, 0xE1, 0xB9, 0xB7, FIL_, 0xCC, 0x8B, FIL_, - 0xC5, 0xB1, FIL_, 0xCC, 0xA8, FIL_, 0xC5, 0xB3, - FIL_, 0xCC, 0x91, FIL_, 0xC8, 0x97, FIL_, 0xCC, - 0xA4, FIL_, 0xE1, 0xB9, 0xB3, FIL_, 0xCC, 0xA3, - FIL_, 0xE1, 0xBB, 0xA5, FIL_, 0xCC, 0xB0, FIL_, - 0xE1, 0xB9, 0xB5, FIL_, 0x02, 0xCC, 0x83, FIL_, - 0xE1, 0xB9, 0xBD, FIL_, 0xCC, 0xA3, FIL_, 0xE1, - 0xB9, 0xBF, FIL_, 0x07, 0xCC, 0x8A, FIL_, 0xE1, - 0xBA, 0x98, FIL_, 0xCC, 0x87, FIL_, 0xE1, 0xBA, - 0x87, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0x83, - FIL_, 0xCC, 0x82, FIL_, 0xC5, 0xB5, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBA, 0x81, FIL_, 0xCC, 0xA3, - FIL_, 0xE1, 0xBA, 0x89, FIL_, 0xCC, 0x88, FIL_, - 0xE1, 0xBA, 0x85, FIL_, 0x02, 0xCC, 0x87, FIL_, - 0xE1, 0xBA, 0x8B, FIL_, 0xCC, 0x88, FIL_, 0xE1, - 0xBA, 0x8D, FIL_, 0x0A, 0xCC, 0x87, FIL_, 0xE1, - 0xBA, 0x8F, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, - 0xB5, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0xB7, - FIL_, 0xCC, 0x8A, FIL_, 0xE1, 0xBA, 0x99, FIL_, - 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xB3, FIL_, 0xCC, - 0x83, FIL_, 0xE1, 0xBB, 0xB9, FIL_, 0xCC, 0x88, - FIL_, 0xC3, 0xBF, FIL_, 0xCC, 0x81, FIL_, 0xC3, - 0xBD, FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xB3, FIL_, - 0xCC, 0x82, FIL_, 0xC5, 0xB7, FIL_, 0x06, 0xCC, - 0xB1, FIL_, 0xE1, 0xBA, 0x95, FIL_, 0xCC, 0xA3, - FIL_, 0xE1, 0xBA, 0x93, FIL_, 0xCC, 0x82, FIL_, - 0xE1, 0xBA, 0x91, FIL_, 0xCC, 0x81, FIL_, 0xC5, - 0xBA, FIL_, 0xCC, 0x87, FIL_, 0xC5, 0xBC, FIL_, - 0xCC, 0x8C, FIL_, 0xC5, 0xBE, FIL_, 0x03, 0xCC, - 0x80, FIL_, 0xE1, 0xBF, 0xAD, FIL_, 0xCD, 0x82, - FIL_, 0xE1, 0xBF, 0x81, FIL_, 0xCC, 0x81, FIL_, - 0xCE, 0x85, FIL_, 0x04, 0xCC, 0x83, FIL_, 0xE1, - 0xBA, 0xAA, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, - 0xA4, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA8, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBA, 0xA6, FIL_, - 0x01, 0xCC, 0x84, FIL_, 0xC7, 0x9E, FIL_, 0x01, - 0xCC, 0x81, FIL_, 0xC7, 0xBA, FIL_, 0x02, 0xCC, - 0x84, FIL_, 0xC7, 0xA2, FIL_, 0xCC, 0x81, FIL_, - 0xC7, 0xBC, FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1, - 0xB8, 0x88, FIL_, 0x04, 0xCC, 0x83, FIL_, 0xE1, - 0xBB, 0x84, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBB, - 0x80, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x82, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xBE, FIL_, - 0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0xAE, FIL_, - 0x04, 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x90, FIL_, - 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0x92, FIL_, 0xCC, - 0x89, FIL_, 0xE1, 0xBB, 0x94, FIL_, 0xCC, 0x83, - FIL_, 0xE1, 0xBB, 0x96, FIL_, 0x03, 0xCC, 0x84, - FIL_, 0xC8, 0xAC, FIL_, 0xCC, 0x88, FIL_, 0xE1, - 0xB9, 0x8E, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xB9, - 0x8C, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAA, - FIL_, 0x01, 0xCC, 0x81, FIL_, 0xC7, 0xBE, FIL_, - 0x04, 0xCC, 0x80, FIL_, 0xC7, 0x9B, FIL_, 0xCC, - 0x84, FIL_, 0xC7, 0x95, FIL_, 0xCC, 0x8C, FIL_, - 0xC7, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xC7, 0x97, - FIL_, 0x04, 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xA5, - FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBA, 0xAB, FIL_, - 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xA9, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBA, 0xA7, FIL_, 0x01, 0xCC, - 0x84, FIL_, 0xC7, 0x9F, FIL_, 0x01, 0xCC, 0x81, - FIL_, 0xC7, 0xBB, FIL_, 0x02, 0xCC, 0x81, FIL_, - 0xC7, 0xBD, FIL_, 0xCC, 0x84, FIL_, 0xC7, 0xA3, - FIL_, 0x01, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x89, - FIL_, 0x04, 0xCC, 0x89, FIL_, 0xE1, 0xBB, 0x83, - FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0x85, FIL_, - 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0x81, FIL_, 0xCC, - 0x81, FIL_, 0xE1, 0xBA, 0xBF, FIL_, 0x01, 0xCC, - 0x81, FIL_, 0xE1, 0xB8, 0xAF, FIL_, 0x04, 0xCC, - 0x80, FIL_, 0xE1, 0xBB, 0x93, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xBB, 0x91, FIL_, 0xCC, 0x83, FIL_, - 0xE1, 0xBB, 0x97, FIL_, 0xCC, 0x89, FIL_, 0xE1, - 0xBB, 0x95, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, - 0xB9, 0x8D, FIL_, 0xCC, 0x88, FIL_, 0xE1, 0xB9, - 0x8F, FIL_, 0xCC, 0x84, FIL_, 0xC8, 0xAD, FIL_, - 0x01, 0xCC, 0x84, FIL_, 0xC8, 0xAB, FIL_, 0x01, - 0xCC, 0x81, FIL_, 0xC7, 0xBF, FIL_, 0x04, 0xCC, - 0x8C, FIL_, 0xC7, 0x9A, FIL_, 0xCC, 0x84, FIL_, - 0xC7, 0x96, FIL_, 0xCC, 0x80, FIL_, 0xC7, 0x9C, - FIL_, 0xCC, 0x81, FIL_, 0xC7, 0x98, FIL_, 0x04, - 0xCC, 0x81, FIL_, 0xE1, 0xBA, 0xAE, FIL_, 0xCC, - 0x83, FIL_, 0xE1, 0xBA, 0xB4, FIL_, 0xCC, 0x89, - FIL_, 0xE1, 0xBA, 0xB2, FIL_, 0xCC, 0x80, FIL_, - 0xE1, 0xBA, 0xB0, FIL_, 0x04, 0xCC, 0x83, FIL_, - 0xE1, 0xBA, 0xB5, FIL_, 0xCC, 0x80, FIL_, 0xE1, - 0xBA, 0xB1, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBA, - 0xAF, FIL_, 0xCC, 0x89, FIL_, 0xE1, 0xBA, 0xB3, - FIL_, 0x02, 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x96, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x94, FIL_, - 0x02, 0xCC, 0x80, FIL_, 0xE1, 0xB8, 0x95, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xB8, 0x97, FIL_, 0x02, - 0xCC, 0x80, FIL_, 0xE1, 0xB9, 0x90, FIL_, 0xCC, - 0x81, FIL_, 0xE1, 0xB9, 0x92, FIL_, 0x02, 0xCC, - 0x81, FIL_, 0xE1, 0xB9, 0x93, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xB9, 0x91, FIL_, 0x01, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0xA4, FIL_, 0x01, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0xA5, FIL_, 0x01, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0xA6, FIL_, 0x01, 0xCC, 0x87, - FIL_, 0xE1, 0xB9, 0xA7, FIL_, 0x01, 0xCC, 0x81, - FIL_, 0xE1, 0xB9, 0xB8, FIL_, 0x01, 0xCC, 0x81, - FIL_, 0xE1, 0xB9, 0xB9, FIL_, 0x01, 0xCC, 0x88, - FIL_, 0xE1, 0xB9, 0xBA, FIL_, 0x01, 0xCC, 0x88, - FIL_, 0xE1, 0xB9, 0xBB, FIL_, 0x01, 0xCC, 0x87, - FIL_, 0xE1, 0xBA, 0x9B, FIL_, 0x05, 0xCC, 0x80, - FIL_, 0xE1, 0xBB, 0x9C, FIL_, 0xCC, 0x89, FIL_, - 0xE1, 0xBB, 0x9E, FIL_, 0xCC, 0x83, FIL_, 0xE1, - 0xBB, 0xA0, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB, - 0x9A, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xA2, - FIL_, 0x05, 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xA1, - FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xA3, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0x9B, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBB, 0x9D, FIL_, 0xCC, 0x89, - FIL_, 0xE1, 0xBB, 0x9F, FIL_, 0x05, 0xCC, 0x81, - FIL_, 0xE1, 0xBB, 0xA8, FIL_, 0xCC, 0x80, FIL_, - 0xE1, 0xBB, 0xAA, FIL_, 0xCC, 0x89, FIL_, 0xE1, - 0xBB, 0xAC, FIL_, 0xCC, 0x83, FIL_, 0xE1, 0xBB, - 0xAE, FIL_, 0xCC, 0xA3, FIL_, 0xE1, 0xBB, 0xB0, - FIL_, 0x05, 0xCC, 0x80, FIL_, 0xE1, 0xBB, 0xAB, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBB, 0xA9, FIL_, - 0xCC, 0x83, FIL_, 0xE1, 0xBB, 0xAF, FIL_, 0xCC, - 0xA3, FIL_, 0xE1, 0xBB, 0xB1, FIL_, 0xCC, 0x89, - FIL_, 0xE1, 0xBB, 0xAD, FIL_, 0x01, 0xCC, 0x8C, - FIL_, 0xC7, 0xAE, FIL_, 0x01, 0xCC, 0x84, FIL_, - 0xC7, 0xAC, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, - 0xAD, FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA0, - FIL_, 0x01, 0xCC, 0x84, FIL_, 0xC7, 0xA1, FIL_, - 0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9C, FIL_, - 0x01, 0xCC, 0x86, FIL_, 0xE1, 0xB8, 0x9D, FIL_, - 0x01, 0xCC, 0x84, FIL_, 0xC8, 0xB0, FIL_, 0x01, - 0xCC, 0x84, FIL_, 0xC8, 0xB1, FIL_, 0x01, 0xCC, - 0x8C, FIL_, 0xC7, 0xAF, FIL_, 0x07, 0xCC, 0x93, - FIL_, 0xE1, 0xBC, 0x88, FIL_, 0xCC, 0x81, FIL_, - 0xCE, 0x86, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBE, - 0xB8, FIL_, 0xCC, 0x84, FIL_, 0xE1, 0xBE, 0xB9, - FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBC, 0x89, FIL_, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xBC, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBE, 0xBA, FIL_, 0x04, 0xCC, - 0x94, FIL_, 0xE1, 0xBC, 0x99, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xBF, 0x88, FIL_, 0xCC, 0x81, FIL_, - 0xCE, 0x88, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBC, - 0x98, FIL_, 0x05, 0xCD, 0x85, FIL_, 0xE1, 0xBF, - 0x8C, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x89, FIL_, - 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x8A, FIL_, 0xCC, - 0x93, FIL_, 0xE1, 0xBC, 0xA8, FIL_, 0xCC, 0x94, - FIL_, 0xE1, 0xBC, 0xA9, FIL_, 0x07, 0xCC, 0x80, - FIL_, 0xE1, 0xBF, 0x9A, FIL_, 0xCC, 0x84, FIL_, - 0xE1, 0xBF, 0x99, FIL_, 0xCC, 0x93, FIL_, 0xE1, - 0xBC, 0xB8, FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBC, - 0xB9, FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF, 0x98, - FIL_, 0xCC, 0x81, FIL_, 0xCE, 0x8A, FIL_, 0xCC, - 0x88, FIL_, 0xCE, 0xAA, FIL_, 0x04, 0xCC, 0x81, - FIL_, 0xCE, 0x8C, FIL_, 0xCC, 0x94, FIL_, 0xE1, - 0xBD, 0x89, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD, - 0x88, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0xB8, - FIL_, 0x01, 0xCC, 0x94, FIL_, 0xE1, 0xBF, 0xAC, - FIL_, 0x06, 0xCC, 0x94, FIL_, 0xE1, 0xBD, 0x99, - FIL_, 0xCC, 0x86, FIL_, 0xE1, 0xBF, 0xA8, FIL_, - 0xCC, 0x88, FIL_, 0xCE, 0xAB, FIL_, 0xCC, 0x84, - FIL_, 0xE1, 0xBF, 0xA9, FIL_, 0xCC, 0x81, FIL_, - 0xCE, 0x8E, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, - 0xAA, FIL_, 0x05, 0xCC, 0x93, FIL_, 0xE1, 0xBD, - 0xA8, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xBC, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0xBA, FIL_, - 0xCC, 0x94, FIL_, 0xE1, 0xBD, 0xA9, FIL_, 0xCC, - 0x81, FIL_, 0xCE, 0x8F, FIL_, 0x01, 0xCD, 0x85, - FIL_, 0xE1, 0xBE, 0xB4, FIL_, 0x01, 0xCD, 0x85, - FIL_, 0xE1, 0xBF, 0x84, FIL_, 0x08, 0xCD, 0x85, - FIL_, 0xE1, 0xBE, 0xB3, FIL_, 0xCC, 0x84, FIL_, - 0xE1, 0xBE, 0xB1, FIL_, 0xCC, 0x86, FIL_, 0xE1, - 0xBE, 0xB0, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, - 0xB0, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAC, FIL_, - 0xCC, 0x94, FIL_, 0xE1, 0xBC, 0x81, FIL_, 0xCC, - 0x93, FIL_, 0xE1, 0xBC, 0x80, FIL_, 0xCD, 0x82, - FIL_, 0xE1, 0xBE, 0xB6, FIL_, 0x04, 0xCC, 0x93, - FIL_, 0xE1, 0xBC, 0x90, FIL_, 0xCC, 0x80, FIL_, - 0xE1, 0xBD, 0xB2, FIL_, 0xCC, 0x94, FIL_, 0xE1, - 0xBC, 0x91, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAD, - FIL_, 0x06, 0xCC, 0x94, FIL_, 0xE1, 0xBC, 0xA1, - FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAE, FIL_, 0xCD, - 0x85, FIL_, 0xE1, 0xBF, 0x83, FIL_, 0xCD, 0x82, - FIL_, 0xE1, 0xBF, 0x86, FIL_, 0xCC, 0x93, FIL_, - 0xE1, 0xBC, 0xA0, FIL_, 0xCC, 0x80, FIL_, 0xE1, - 0xBD, 0xB4, FIL_, 0x08, 0xCC, 0x88, FIL_, 0xCF, - 0x8A, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xAF, FIL_, - 0xCC, 0x93, FIL_, 0xE1, 0xBC, 0xB0, FIL_, 0xCC, - 0x94, FIL_, 0xE1, 0xBC, 0xB1, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xBD, 0xB6, FIL_, 0xCC, 0x86, FIL_, - 0xE1, 0xBF, 0x90, FIL_, 0xCC, 0x84, FIL_, 0xE1, - 0xBF, 0x91, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, - 0x96, FIL_, 0x04, 0xCC, 0x93, FIL_, 0xE1, 0xBD, - 0x80, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xB8, - FIL_, 0xCC, 0x94, FIL_, 0xE1, 0xBD, 0x81, FIL_, - 0xCC, 0x81, FIL_, 0xCF, 0x8C, FIL_, 0x02, 0xCC, - 0x93, FIL_, 0xE1, 0xBF, 0xA4, FIL_, 0xCC, 0x94, - FIL_, 0xE1, 0xBF, 0xA5, FIL_, 0x08, 0xCC, 0x81, - FIL_, 0xCF, 0x8D, FIL_, 0xCC, 0x94, FIL_, 0xE1, - 0xBD, 0x91, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, - 0xA6, FIL_, 0xCC, 0x88, FIL_, 0xCF, 0x8B, FIL_, - 0xCC, 0x84, FIL_, 0xE1, 0xBF, 0xA1, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBD, 0xBA, FIL_, 0xCC, 0x93, - FIL_, 0xE1, 0xBD, 0x90, FIL_, 0xCC, 0x86, FIL_, - 0xE1, 0xBF, 0xA0, FIL_, 0x06, 0xCC, 0x80, FIL_, - 0xE1, 0xBD, 0xBC, FIL_, 0xCC, 0x94, FIL_, 0xE1, - 0xBD, 0xA1, FIL_, 0xCC, 0x93, FIL_, 0xE1, 0xBD, - 0xA0, FIL_, 0xCC, 0x81, FIL_, 0xCF, 0x8E, FIL_, - 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB3, FIL_, 0xCD, - 0x82, FIL_, 0xE1, 0xBF, 0xB6, FIL_, 0x03, 0xCC, - 0x80, FIL_, 0xE1, 0xBF, 0x92, FIL_, 0xCD, 0x82, - FIL_, 0xE1, 0xBF, 0x97, FIL_, 0xCC, 0x81, FIL_, - 0xCE, 0x90, FIL_, 0x03, 0xCD, 0x82, FIL_, 0xE1, - 0xBF, 0xA7, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, - 0xA2, FIL_, 0xCC, 0x81, FIL_, 0xCE, 0xB0, FIL_, - 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB4, FIL_, - 0x02, 0xCC, 0x88, FIL_, 0xCF, 0x94, FIL_, 0xCC, - 0x81, FIL_, 0xCF, 0x93, FIL_, 0x01, 0xCC, 0x88, - FIL_, 0xD0, 0x87, FIL_, 0x02, 0xCC, 0x88, FIL_, - 0xD3, 0x92, FIL_, 0xCC, 0x86, FIL_, 0xD3, 0x90, - FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD0, 0x83, FIL_, - 0x03, 0xCC, 0x88, FIL_, 0xD0, 0x81, FIL_, 0xCC, - 0x80, FIL_, 0xD0, 0x80, FIL_, 0xCC, 0x86, FIL_, - 0xD3, 0x96, FIL_, 0x02, 0xCC, 0x86, FIL_, 0xD3, - 0x81, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x9C, FIL_, - 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9E, FIL_, 0x04, - 0xCC, 0x84, FIL_, 0xD3, 0xA2, FIL_, 0xCC, 0x88, - FIL_, 0xD3, 0xA4, FIL_, 0xCC, 0x86, FIL_, 0xD0, - 0x99, FIL_, 0xCC, 0x80, FIL_, 0xD0, 0x8D, FIL_, - 0x01, 0xCC, 0x81, FIL_, 0xD0, 0x8C, FIL_, 0x01, - 0xCC, 0x88, FIL_, 0xD3, 0xA6, FIL_, 0x04, 0xCC, - 0x8B, FIL_, 0xD3, 0xB2, FIL_, 0xCC, 0x88, FIL_, - 0xD3, 0xB0, FIL_, 0xCC, 0x86, FIL_, 0xD0, 0x8E, - FIL_, 0xCC, 0x84, FIL_, 0xD3, 0xAE, FIL_, 0x01, - 0xCC, 0x88, FIL_, 0xD3, 0xB4, FIL_, 0x01, 0xCC, - 0x88, FIL_, 0xD3, 0xB8, FIL_, 0x01, 0xCC, 0x88, - FIL_, 0xD3, 0xAC, FIL_, 0x02, 0xCC, 0x86, FIL_, - 0xD3, 0x91, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x93, - FIL_, 0x01, 0xCC, 0x81, FIL_, 0xD1, 0x93, FIL_, - 0x03, 0xCC, 0x80, FIL_, 0xD1, 0x90, FIL_, 0xCC, - 0x86, FIL_, 0xD3, 0x97, FIL_, 0xCC, 0x88, FIL_, - 0xD1, 0x91, FIL_, 0x02, 0xCC, 0x86, FIL_, 0xD3, - 0x82, FIL_, 0xCC, 0x88, FIL_, 0xD3, 0x9D, FIL_, - 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9F, FIL_, 0x04, - 0xCC, 0x86, FIL_, 0xD0, 0xB9, FIL_, 0xCC, 0x88, - FIL_, 0xD3, 0xA5, FIL_, 0xCC, 0x84, FIL_, 0xD3, - 0xA3, FIL_, 0xCC, 0x80, FIL_, 0xD1, 0x9D, FIL_, - 0x01, 0xCC, 0x81, FIL_, 0xD1, 0x9C, FIL_, 0x01, - 0xCC, 0x88, FIL_, 0xD3, 0xA7, FIL_, 0x04, 0xCC, - 0x8B, FIL_, 0xD3, 0xB3, FIL_, 0xCC, 0x84, FIL_, - 0xD3, 0xAF, FIL_, 0xCC, 0x86, FIL_, 0xD1, 0x9E, - FIL_, 0xCC, 0x88, FIL_, 0xD3, 0xB1, FIL_, 0x01, - 0xCC, 0x88, FIL_, 0xD3, 0xB5, FIL_, 0x01, 0xCC, - 0x88, FIL_, 0xD3, 0xB9, FIL_, 0x01, 0xCC, 0x88, - FIL_, 0xD3, 0xAD, FIL_, 0x01, 0xCC, 0x88, FIL_, - 0xD1, 0x97, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1, - 0xB6, FIL_, 0x01, 0xCC, 0x8F, FIL_, 0xD1, 0xB7, - FIL_, 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9A, FIL_, - 0x01, 0xCC, 0x88, FIL_, 0xD3, 0x9B, FIL_, 0x01, - 0xCC, 0x88, FIL_, 0xD3, 0xAA, FIL_, 0x01, 0xCC, - 0x88, FIL_, 0xD3, 0xAB, FIL_, 0x03, 0xD9, 0x94, - FIL_, 0xD8, 0xA3, FIL_, 0xD9, 0x95, FIL_, 0xD8, - 0xA5, FIL_, 0xD9, 0x93, FIL_, 0xD8, 0xA2, FIL_, - 0x01, 0xD9, 0x94, FIL_, 0xD8, 0xA4, FIL_, 0x01, - 0xD9, 0x94, FIL_, 0xD8, 0xA6, FIL_, 0x01, 0xD9, - 0x94, FIL_, 0xDB, 0x82, FIL_, 0x01, 0xD9, 0x94, - FIL_, 0xDB, 0x93, FIL_, 0x01, 0xD9, 0x94, FIL_, - 0xDB, 0x80, FIL_, 0x01, 0xE0, 0xA4, 0xBC, FIL_, - 0xE0, 0xA4, 0xA9, FIL_, 0x01, 0xE0, 0xA4, 0xBC, - FIL_, 0xE0, 0xA4, 0xB1, FIL_, 0x01, 0xE0, 0xA4, - 0xBC, FIL_, 0xE0, 0xA4, 0xB4, FIL_, 0x02, 0xE0, - 0xA6, 0xBE, FIL_, 0xE0, 0xA7, 0x8B, FIL_, 0xE0, - 0xA7, 0x97, FIL_, 0xE0, 0xA7, 0x8C, FIL_, 0x03, - 0xE0, 0xAD, 0x96, FIL_, 0xE0, 0xAD, 0x88, FIL_, - 0xE0, 0xAC, 0xBE, FIL_, 0xE0, 0xAD, 0x8B, FIL_, - 0xE0, 0xAD, 0x97, FIL_, 0xE0, 0xAD, 0x8C, FIL_, - 0x01, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAE, 0x94, - FIL_, 0x02, 0xE0, 0xAF, 0x97, FIL_, 0xE0, 0xAF, - 0x8C, FIL_, 0xE0, 0xAE, 0xBE, FIL_, 0xE0, 0xAF, - 0x8A, FIL_, 0x01, 0xE0, 0xAE, 0xBE, FIL_, 0xE0, - 0xAF, 0x8B, FIL_, 0x01, 0xE0, 0xB1, 0x96, FIL_, - 0xE0, 0xB1, 0x88, FIL_, 0x01, 0xE0, 0xB3, 0x95, - FIL_, 0xE0, 0xB3, 0x80, FIL_, 0x03, 0xE0, 0xB3, - 0x82, FIL_, 0xE0, 0xB3, 0x8A, FIL_, 0xE0, 0xB3, - 0x96, FIL_, 0xE0, 0xB3, 0x88, FIL_, 0xE0, 0xB3, - 0x95, FIL_, 0xE0, 0xB3, 0x87, FIL_, 0x01, 0xE0, - 0xB3, 0x95, FIL_, 0xE0, 0xB3, 0x8B, FIL_, 0x02, - 0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8A, FIL_, - 0xE0, 0xB5, 0x97, FIL_, 0xE0, 0xB5, 0x8C, FIL_, - 0x01, 0xE0, 0xB4, 0xBE, FIL_, 0xE0, 0xB5, 0x8B, - FIL_, 0x03, 0xE0, 0xB7, 0x9F, FIL_, 0xE0, 0xB7, - 0x9E, FIL_, 0xE0, 0xB7, 0x8A, FIL_, 0xE0, 0xB7, - 0x9A, FIL_, 0xE0, 0xB7, 0x8F, FIL_, 0xE0, 0xB7, - 0x9C, FIL_, 0x01, 0xE0, 0xB7, 0x8A, FIL_, 0xE0, - 0xB7, 0x9D, FIL_, 0x01, 0xE1, 0x80, 0xAE, FIL_, - 0xE1, 0x80, 0xA6, FIL_, 0x01, 0xE1, 0xAC, 0xB5, - FIL_, 0xE1, 0xAC, 0x86, FIL_, 0x01, 0xE1, 0xAC, - 0xB5, FIL_, 0xE1, 0xAC, 0x88, FIL_, 0x01, 0xE1, - 0xAC, 0xB5, FIL_, 0xE1, 0xAC, 0x8A, FIL_, 0x01, - 0xE1, 0xAC, 0xB5, FIL_, 0xE1, 0xAC, 0x8C, FIL_, - 0x01, 0xE1, 0xAC, 0xB5, FIL_, 0xE1, 0xAC, 0x8E, - FIL_, 0x01, 0xE1, 0xAC, 0xB5, FIL_, 0xE1, 0xAC, - 0x92, FIL_, 0x01, 0xE1, 0xAC, 0xB5, FIL_, 0xE1, - 0xAC, 0xBB, FIL_, 0x01, 0xE1, 0xAC, 0xB5, FIL_, - 0xE1, 0xAC, 0xBD, FIL_, 0x01, 0xE1, 0xAC, 0xB5, - FIL_, 0xE1, 0xAD, 0x80, FIL_, 0x01, 0xE1, 0xAC, - 0xB5, FIL_, 0xE1, 0xAD, 0x81, FIL_, 0x01, 0xE1, - 0xAC, 0xB5, FIL_, 0xE1, 0xAD, 0x83, FIL_, 0x01, - 0xCC, 0x84, FIL_, 0xE1, 0xB8, 0xB8, FIL_, 0x01, - 0xCC, 0x84, FIL_, 0xE1, 0xB8, 0xB9, FIL_, 0x01, - 0xCC, 0x84, FIL_, 0xE1, 0xB9, 0x9C, FIL_, 0x01, - 0xCC, 0x84, FIL_, 0xE1, 0xB9, 0x9D, FIL_, 0x01, - 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA8, FIL_, 0x01, - 0xCC, 0x87, FIL_, 0xE1, 0xB9, 0xA9, FIL_, 0x02, - 0xCC, 0x86, FIL_, 0xE1, 0xBA, 0xB6, FIL_, 0xCC, - 0x82, FIL_, 0xE1, 0xBA, 0xAC, FIL_, 0x02, 0xCC, - 0x82, FIL_, 0xE1, 0xBA, 0xAD, FIL_, 0xCC, 0x86, - FIL_, 0xE1, 0xBA, 0xB7, FIL_, 0x01, 0xCC, 0x82, - FIL_, 0xE1, 0xBB, 0x86, FIL_, 0x01, 0xCC, 0x82, - FIL_, 0xE1, 0xBB, 0x87, FIL_, 0x01, 0xCC, 0x82, - FIL_, 0xE1, 0xBB, 0x98, FIL_, 0x01, 0xCC, 0x82, - FIL_, 0xE1, 0xBB, 0x99, FIL_, 0x04, 0xCD, 0x85, - FIL_, 0xE1, 0xBE, 0x80, FIL_, 0xCD, 0x82, FIL_, - 0xE1, 0xBC, 0x86, FIL_, 0xCC, 0x80, FIL_, 0xE1, - 0xBC, 0x82, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, - 0x84, FIL_, 0x04, 0xCD, 0x82, FIL_, 0xE1, 0xBC, - 0x87, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x85, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x83, FIL_, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x81, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x82, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x83, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x84, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x85, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x86, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x87, FIL_, 0x04, - 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x8C, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBC, 0x8A, FIL_, 0xCD, 0x85, - FIL_, 0xE1, 0xBE, 0x88, FIL_, 0xCD, 0x82, FIL_, - 0xE1, 0xBC, 0x8E, FIL_, 0x04, 0xCC, 0x80, FIL_, - 0xE1, 0xBC, 0x8B, FIL_, 0xCD, 0x82, FIL_, 0xE1, - 0xBC, 0x8F, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, - 0x8D, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x89, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8A, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8B, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8C, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8D, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8E, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x8F, - FIL_, 0x02, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x92, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x94, FIL_, - 0x02, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x93, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0x95, FIL_, 0x02, - 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0x9A, FIL_, 0xCC, - 0x81, FIL_, 0xE1, 0xBC, 0x9C, FIL_, 0x02, 0xCC, - 0x80, FIL_, 0xE1, 0xBC, 0x9B, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xBC, 0x9D, FIL_, 0x04, 0xCC, 0x80, - FIL_, 0xE1, 0xBC, 0xA2, FIL_, 0xCC, 0x81, FIL_, - 0xE1, 0xBC, 0xA4, FIL_, 0xCD, 0x82, FIL_, 0xE1, - 0xBC, 0xA6, FIL_, 0xCD, 0x85, FIL_, 0xE1, 0xBE, - 0x90, FIL_, 0x04, 0xCD, 0x85, FIL_, 0xE1, 0xBE, - 0x91, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xA5, - FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xA7, FIL_, - 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xA3, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x92, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x93, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x94, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x95, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x96, FIL_, 0x01, - 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x97, FIL_, 0x04, - 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xAC, FIL_, 0xCC, - 0x80, FIL_, 0xE1, 0xBC, 0xAA, FIL_, 0xCD, 0x85, - FIL_, 0xE1, 0xBE, 0x98, FIL_, 0xCD, 0x82, FIL_, - 0xE1, 0xBC, 0xAE, FIL_, 0x04, 0xCD, 0x82, FIL_, - 0xE1, 0xBC, 0xAF, FIL_, 0xCD, 0x85, FIL_, 0xE1, - 0xBE, 0x99, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, - 0xAD, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xAB, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9A, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9B, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9C, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9D, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9E, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0x9F, - FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xB4, - FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xB2, FIL_, - 0xCD, 0x82, FIL_, 0xE1, 0xBC, 0xB6, FIL_, 0x03, - 0xCC, 0x80, FIL_, 0xE1, 0xBC, 0xB3, FIL_, 0xCD, - 0x82, FIL_, 0xE1, 0xBC, 0xB7, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xBC, 0xB5, FIL_, 0x03, 0xCC, 0x81, - FIL_, 0xE1, 0xBC, 0xBC, FIL_, 0xCC, 0x80, FIL_, - 0xE1, 0xBC, 0xBA, FIL_, 0xCD, 0x82, FIL_, 0xE1, - 0xBC, 0xBE, FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1, - 0xBC, 0xBB, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBC, - 0xBF, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBC, 0xBD, - FIL_, 0x02, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x82, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x84, FIL_, - 0x02, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x85, FIL_, - 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x83, FIL_, 0x02, - 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x8A, FIL_, 0xCC, - 0x81, FIL_, 0xE1, 0xBD, 0x8C, FIL_, 0x02, 0xCC, - 0x80, FIL_, 0xE1, 0xBD, 0x8B, FIL_, 0xCC, 0x81, - FIL_, 0xE1, 0xBD, 0x8D, FIL_, 0x03, 0xCD, 0x82, - FIL_, 0xE1, 0xBD, 0x96, FIL_, 0xCC, 0x80, FIL_, - 0xE1, 0xBD, 0x92, FIL_, 0xCC, 0x81, FIL_, 0xE1, - 0xBD, 0x94, FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1, - 0xBD, 0x93, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, - 0x97, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x95, - FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0x9B, - FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0x9F, FIL_, - 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0x9D, FIL_, 0x04, - 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xA6, FIL_, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0xA0, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xBD, 0xA2, FIL_, 0xCC, 0x81, FIL_, - 0xE1, 0xBD, 0xA4, FIL_, 0x04, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0xA1, FIL_, 0xCD, 0x82, FIL_, 0xE1, - 0xBD, 0xA7, FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, - 0xA5, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xA3, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA2, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA3, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA4, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA5, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA6, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBE, 0xA7, - FIL_, 0x04, 0xCC, 0x80, FIL_, 0xE1, 0xBD, 0xAA, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBD, 0xAC, FIL_, - 0xCD, 0x82, FIL_, 0xE1, 0xBD, 0xAE, FIL_, 0xCD, - 0x85, FIL_, 0xE1, 0xBE, 0xA8, FIL_, 0x04, 0xCD, - 0x82, FIL_, 0xE1, 0xBD, 0xAF, FIL_, 0xCC, 0x80, - FIL_, 0xE1, 0xBD, 0xAB, FIL_, 0xCD, 0x85, FIL_, - 0xE1, 0xBE, 0xA9, FIL_, 0xCC, 0x81, FIL_, 0xE1, - 0xBD, 0xAD, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, - 0xBE, 0xAA, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, - 0xBE, 0xAB, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, - 0xBE, 0xAC, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, - 0xBE, 0xAD, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, - 0xBE, 0xAE, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, - 0xBE, 0xAF, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, - 0xBE, 0xB2, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, - 0xBF, 0x82, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, - 0xBF, 0xB2, FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, - 0xBE, 0xB7, FIL_, 0x03, 0xCC, 0x81, FIL_, 0xE1, - 0xBF, 0x8E, FIL_, 0xCC, 0x80, FIL_, 0xE1, 0xBF, - 0x8D, FIL_, 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0x8F, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0x87, - FIL_, 0x01, 0xCD, 0x85, FIL_, 0xE1, 0xBF, 0xB7, - FIL_, 0x03, 0xCC, 0x80, FIL_, 0xE1, 0xBF, 0x9D, - FIL_, 0xCC, 0x81, FIL_, 0xE1, 0xBF, 0x9E, FIL_, - 0xCD, 0x82, FIL_, 0xE1, 0xBF, 0x9F, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x86, 0x9A, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x86, 0x9B, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x86, 0xAE, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x87, 0x8D, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x87, 0x8F, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x87, 0x8E, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x88, 0x84, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x88, 0x89, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x88, 0x8C, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x88, 0xA4, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x88, 0xA6, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x81, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x84, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x87, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0x89, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xAD, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xA2, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB0, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB1, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB4, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB5, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB8, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x89, 0xB9, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x80, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x81, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA0, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA1, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x84, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x85, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x88, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0x89, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA2, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xA3, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAC, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAD, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAE, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8A, 0xAF, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAA, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAB, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAC, FIL_, 0x01, - 0xCC, 0xB8, FIL_, 0xE2, 0x8B, 0xAD, FIL_, 0x01, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0x94, FIL_, - 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x8C, - FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, - 0x8E, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x81, 0x90, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x81, 0x92, FIL_, 0x01, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x81, 0x94, FIL_, 0x01, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x81, 0x96, FIL_, 0x01, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x81, 0x98, FIL_, 0x01, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x9A, FIL_, - 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0x9C, - FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, - 0x9E, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x81, 0xA0, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x81, 0xA2, FIL_, 0x01, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x81, 0xA5, FIL_, 0x01, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x81, 0xA7, FIL_, 0x01, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x81, 0xA9, FIL_, 0x02, - 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xB1, FIL_, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xB0, FIL_, - 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, 0xB3, - FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, 0xB4, - FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x81, - 0xB6, FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x81, - 0xB7, FIL_, 0x02, 0xE3, 0x82, 0x9A, FIL_, 0xE3, - 0x81, 0xBA, FIL_, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x81, 0xB9, FIL_, 0x02, 0xE3, 0x82, 0x9A, FIL_, - 0xE3, 0x81, 0xBD, FIL_, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x81, 0xBC, FIL_, 0x01, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x82, 0x9E, FIL_, 0x01, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x83, 0xB4, FIL_, 0x01, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x82, 0xAC, FIL_, 0x01, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xAE, FIL_, - 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xB0, - FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, - 0xB2, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x82, 0xB4, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x82, 0xB6, FIL_, 0x01, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x82, 0xB8, FIL_, 0x01, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x82, 0xBA, FIL_, 0x01, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x82, 0xBC, FIL_, 0x01, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x82, 0xBE, FIL_, - 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x80, - FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, - 0x82, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x83, 0x85, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x83, 0x87, FIL_, 0x01, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x83, 0x89, FIL_, 0x02, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x83, 0x90, FIL_, 0xE3, 0x82, - 0x9A, FIL_, 0xE3, 0x83, 0x91, FIL_, 0x02, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x83, 0x93, FIL_, 0xE3, - 0x82, 0x9A, FIL_, 0xE3, 0x83, 0x94, FIL_, 0x02, - 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x83, 0x97, FIL_, - 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x96, FIL_, - 0x02, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x83, 0x9A, - FIL_, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, 0x99, - FIL_, 0x02, 0xE3, 0x82, 0x99, FIL_, 0xE3, 0x83, - 0x9C, FIL_, 0xE3, 0x82, 0x9A, FIL_, 0xE3, 0x83, - 0x9D, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, 0xE3, - 0x83, 0xB7, FIL_, 0x01, 0xE3, 0x82, 0x99, FIL_, - 0xE3, 0x83, 0xB8, FIL_, 0x01, 0xE3, 0x82, 0x99, - FIL_, 0xE3, 0x83, 0xB9, FIL_, 0x01, 0xE3, 0x82, - 0x99, FIL_, 0xE3, 0x83, 0xBA, FIL_, 0x01, 0xE3, - 0x82, 0x99, FIL_, 0xE3, 0x83, 0xBE, FIL_, - }, -}; - -static const uchar_t u8_decomp_b2_tbl[2][2][256] = { - { - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 1, 2, 3, 4, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, 5, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, 6, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, 7, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - - }, - { - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 1, 2, 3, 4, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, 5, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, 6, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, 7, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - - }, - -}; - -static const u8_displacement_t u8_decomp_b3_tbl[2][8][256] = { - { - { /* Third byte table 0. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 0, 0 }, - { 1, 35 }, { 2, 247 }, { 3, 474 }, - { 4, 693 }, { 5, 709 }, { 6, 951 }, - { N_, 0 }, { 7, 1139 }, { 8, 1152 }, - { N_, 0 }, { 9, 1177 }, { 10, 1199 }, - { 11, 1295 }, { 12, 1360 }, { 13, 1405 }, - { N_, 0 }, { 14, 1450 }, { N_, 0 }, - { N_, 0 }, { 15, 1620 }, { N_, 0 }, - { 16, 1624 }, { 17, 1649 }, { N_, 0 }, - { 18, 1665 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 1. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 19, 1680 }, - { 20, 1701 }, { N_, 0 }, { 21, 1757 }, - { 22, 1792 }, { 23, 1806 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 24, 1834 }, - { 25, 1869 }, { 26, 1876 }, { N_, 0 }, - { 27, 1897 }, { N_, 0 }, { 28, 1904 }, - { N_, 0 }, { 29, 1942 }, { N_, 0 }, - { 30, 1963 }, { 31, 1994 }, { N_, 0 }, - { 32, 2000 }, { 33, 2006 }, { 34, 2018 }, - { 35, 2021 }, { 36, 2109 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 2. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 37, 2158 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 0x8000, 2165 }, { 0x8001, 2445 }, - { 0x8002, 2741 }, { 0x8003, 3029 }, { 0x8004, 3337 }, - { 0x8005, 3725 }, { 0x8006, 4053 }, { 0x8007, 4536 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 3. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 38, 4895 }, - { 39, 4964 }, { 40, 4999 }, { N_, 0 }, - { 41, 5018 }, { 42, 5098 }, { 43, 5230 }, - { 44, 5248 }, { 45, 5266 }, { 46, 5326 }, - { 47, 5410 }, { 48, 5470 }, { 49, 5518 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 50, 5526 }, { 51, 5596 }, - { 52, 5767 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 53, 5810 }, { 54, 5822 }, { N_, 0 }, - { 55, 5830 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 56, 5836 }, { 57, 5839 }, { 58, 5842 }, - { 59, 6034 }, { 60, 6226 }, { 61, 6418 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 4. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 62, 6484 }, - { 63, 6497 }, { 64, 6672 }, { 65, 6770 }, - { 66, 6923 }, { 67, 6968 }, { 68, 7160 }, - { N_, 0 }, { 0x8008, 7247 }, { 69, 7597 }, - { 70, 7773 }, { 71, 7950 }, { 0x8009, 8142 }, - { 0x800A, 8919 }, { 72, 9351 }, { 73, 9522 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 5. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 0x800B, 9743 }, - { 0x800C, 9999 }, { 0x800D, 10255 }, { 0x800E, 10511 }, - { 74, 10767 }, { 75, 10967 }, { N_, 0 }, - { N_, 0 }, { 76, 11139 }, { 77, 11303 }, - { 78, 11468 }, { 79, 11576 }, { 0x800F, 11740 }, - { 0x8010, 12006 }, { 0x8011, 12280 }, { 0x8012, 12546 }, - { 80, 12812 }, { 0x8013, 13060 }, { 0x8014, 13348 }, - { 81, 13720 }, { 82, 13898 }, { 83, 13933 }, - { 84, 14045 }, { 85, 14197 }, { 86, 14347 }, - { 87, 14410 }, { 88, 14540 }, { 89, 14729 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 6. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 90, 14829 }, { 91, 14912 }, - { 92, 14969 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 93, 14982 }, { 94, 15046 }, { 95, 15109 }, - { 96, 15163 }, { 97, 15225 }, { 98, 15282 }, - { 99, 15341 }, { 100, 15405 }, { 101, 15469 }, - { 102, 15533 }, { 103, 15597 }, { 104, 15681 }, - { 105, 15812 }, { 106, 15942 }, { 107, 16072 }, - { 108, 16202 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 7. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 0x8015, 16273 }, { 0x8016, 16536 }, - { 0x8017, 16799 }, { 0x8018, 17064 }, { 0x8019, 17329 }, - { 0x801A, 17601 }, { 0x801B, 17878 }, { 0x801C, 18147 }, - { 109, 18419 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - }, - { - { /* Third byte table 0. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 0, 0 }, - { 1, 35 }, { 2, 247 }, { 3, 474 }, - { 4, 693 }, { 5, 709 }, { 6, 951 }, - { N_, 0 }, { 7, 1139 }, { 8, 1152 }, - { N_, 0 }, { 9, 1177 }, { 10, 1199 }, - { 11, 1295 }, { 12, 1362 }, { 13, 1407 }, - { N_, 0 }, { 14, 1452 }, { N_, 0 }, - { N_, 0 }, { 15, 1622 }, { N_, 0 }, - { 16, 1626 }, { 17, 1651 }, { N_, 0 }, - { 18, 1667 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 1. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 19, 1682 }, - { 20, 1703 }, { N_, 0 }, { 21, 1759 }, - { 22, 1794 }, { 23, 1808 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 24, 1836 }, - { 25, 1871 }, { 26, 1878 }, { N_, 0 }, - { 27, 1899 }, { N_, 0 }, { 28, 1906 }, - { N_, 0 }, { 29, 1944 }, { N_, 0 }, - { 30, 1965 }, { 31, 1996 }, { N_, 0 }, - { 32, 2002 }, { 33, 2008 }, { 34, 2020 }, - { 35, 2023 }, { 36, 2111 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 2. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 37, 2160 }, - { N_, 0 }, { N_, 0 }, { 38, 2167 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 39, 2170 }, { 40, 2226 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 41, 2247 }, { 42, 2268 }, { 43, 2340 }, - { N_, 0 }, { 0x8000, 2414 }, { 0x8001, 2694 }, - { 0x8002, 2990 }, { 0x8003, 3278 }, { 0x8004, 3586 }, - { 0x8005, 3974 }, { 0x8006, 4302 }, { 0x8007, 4785 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 3. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 44, 5144 }, - { 45, 5213 }, { 46, 5248 }, { N_, 0 }, - { 47, 5273 }, { 48, 5358 }, { 49, 5490 }, - { 50, 5508 }, { 51, 5526 }, { 52, 5586 }, - { 53, 5670 }, { 54, 5730 }, { 55, 5778 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 56, 5786 }, { 57, 5856 }, - { 58, 6027 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 59, 6070 }, { 60, 6082 }, { N_, 0 }, - { 61, 6090 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 62, 6096 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 63, 6099 }, { 64, 6102 }, { 65, 6105 }, - { 66, 6297 }, { 67, 6489 }, { 68, 6681 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 4. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 69, 6747 }, - { 70, 6760 }, { 71, 6935 }, { 72, 7033 }, - { 73, 7186 }, { 74, 7231 }, { 75, 7423 }, - { N_, 0 }, { 0x8008, 7510 }, { 76, 7891 }, - { 77, 8103 }, { 78, 8280 }, { 0x8009, 8482 }, - { 0x800A, 9259 }, { 79, 9701 }, { 80, 9872 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 5. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 0x800B, 10106 }, - { 0x800C, 10362 }, { 0x800D, 10618 }, { 0x800E, 10874 }, - { 81, 11130 }, { 82, 11330 }, { 0x800F, 11566 }, - { 83, 11822 }, { 84, 11932 }, { 85, 12096 }, - { 86, 12261 }, { 87, 12369 }, { 0x8010, 12533 }, - { 0x8011, 12799 }, { 0x8012, 13073 }, { 0x8013, 13339 }, - { 88, 13605 }, { 0x8014, 13853 }, { 0x8015, 14141 }, - { 89, 14513 }, { 90, 14691 }, { 91, 14746 }, - { 92, 14860 }, { 93, 15012 }, { 94, 15162 }, - { 95, 15225 }, { 96, 15355 }, { 97, 15544 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 6. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 98, 15644 }, { 99, 15727 }, - { 100, 15784 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 101, 15797 }, { 102, 15861 }, { 103, 15924 }, - { 104, 15978 }, { 105, 16041 }, { 106, 16098 }, - { 107, 16157 }, { 108, 16221 }, { 109, 16285 }, - { 110, 16349 }, { 111, 16413 }, { 112, 16501 }, - { 113, 16632 }, { 114, 16762 }, { 115, 16892 }, - { 116, 17022 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - { /* Third byte table 7. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 0x8016, 17097 }, { 0x8017, 17360 }, - { 0x8018, 17623 }, { 0x8019, 17888 }, { 0x801A, 18153 }, - { 0x801B, 18425 }, { 0x801C, 18702 }, { 0x801D, 18971 }, - { 117, 19243 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, - }, - }, -}; - -static const uchar_t u8_decomp_b4_tbl[2][118][257] = { - { - { /* Fourth byte table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 5, 5, 5, 5, 5, - 8, 8, 8, 9, 10, 13, 15, 15, - 15, 18, 19, 20, 20, 25, 30, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, - }, - { /* Fourth byte table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 24, - 28, 32, 36, 40, 44, 48, 52, 56, - 60, 60, 64, 68, 72, 76, 80, 84, - 84, 84, 88, 92, 96, 100, 104, 104, - 104, 108, 112, 116, 120, 124, 128, 128, - 132, 136, 140, 144, 148, 152, 156, 160, - 164, 164, 168, 172, 176, 180, 184, 188, - 188, 188, 192, 196, 200, 204, 208, 208, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, - }, - { /* Fourth byte table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 64, 64, 68, 72, 76, 80, 84, - 88, 92, 96, 100, 104, 108, 112, 116, - 120, 124, 128, 132, 136, 140, 144, 144, - 144, 148, 152, 156, 160, 164, 168, 172, - 176, 180, 180, 182, 184, 188, 192, 196, - 200, 200, 204, 208, 212, 216, 220, 224, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, - }, - { /* Fourth byte table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 3, 7, 11, 15, 19, - 23, 27, 30, 30, 30, 34, 38, 42, - 46, 50, 54, 54, 54, 58, 62, 66, - 70, 74, 78, 82, 86, 90, 94, 98, - 102, 106, 110, 114, 118, 122, 126, 126, - 126, 130, 134, 138, 142, 146, 150, 154, - 158, 162, 166, 170, 174, 178, 182, 186, - 190, 194, 198, 202, 206, 210, 214, 218, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, - }, - { /* Fourth byte table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 12, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, - }, - { /* Fourth byte table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4, 8, 12, - 14, 16, 18, 20, 22, 24, 28, 32, - 36, 40, 44, 48, 52, 56, 62, 68, - 74, 80, 86, 92, 98, 104, 104, 110, - 116, 122, 128, 133, 138, 138, 138, 142, - 146, 150, 154, 158, 162, 168, 174, 179, - 184, 188, 190, 192, 194, 198, 202, 202, - 202, 206, 210, 216, 222, 227, 232, 237, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, - }, - { /* Fourth byte table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 112, 112, 116, - 120, 120, 120, 120, 120, 120, 120, 124, - 128, 132, 136, 142, 148, 154, 160, 164, - 168, 174, 180, 184, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, - }, - { /* Fourth byte table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 3, 4, 5, 7, 9, 11, - 12, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, - }, - { /* Fourth byte table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 18, - 18, 20, 21, 22, 23, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, - }, - { /* Fourth byte table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 6, 9, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 17, 17, 17, - 17, 17, 17, 20, 20, 20, 20, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, - }, - { /* Fourth byte table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 14, 19, - 22, 27, 32, 37, 37, 42, 42, 47, - 52, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 64, 69, 74, 79, 84, - 89, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 10, 15, 20, 25, - 25, 27, 29, 31, 41, 51, 53, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 57, 59, 61, 61, 63, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, - 65, - }, - { /* Fourth byte table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 10, 15, 15, 15, 15, - 20, 20, 20, 20, 20, 25, 30, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, - }, - { /* Fourth byte table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 10, 15, 15, 15, 15, - 20, 20, 20, 20, 20, 25, 30, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 40, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, - }, - { /* Fourth byte table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, - 10, 15, 20, 25, 30, 30, 30, 35, - 40, 40, 40, 45, 50, 55, 60, 65, - 70, 70, 70, 75, 80, 85, 90, 95, - 100, 100, 100, 105, 110, 115, 120, 125, - 130, 135, 140, 145, 150, 155, 160, 160, - 160, 165, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, - }, - { /* Fourth byte table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, - }, - { /* Fourth byte table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 10, 15, 20, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, - }, - { /* Fourth byte table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 8, - 12, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, - }, - { /* Fourth byte table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 5, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, - }, - { /* Fourth byte table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, - 7, 7, 14, 14, 14, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 14, 21, 28, 35, 42, 49, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, - }, - { /* Fourth byte table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 21, 28, 28, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, - }, - { /* Fourth byte table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, - }, - { /* Fourth byte table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 14, 21, 21, 21, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, - }, - { /* Fourth byte table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 7, 14, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 28, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, - }, - { /* Fourth byte table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, - }, - { /* Fourth byte table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 14, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, - }, - { /* Fourth byte table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 7, 7, 7, 7, 7, - 14, 21, 21, 28, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, - }, - { /* Fourth byte table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 14, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 30. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 14, 24, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, - }, - { /* Fourth byte table 31. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, - }, - { /* Fourth byte table 32. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, - }, - { /* Fourth byte table 33. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, - }, - { /* Fourth byte table 34. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 35. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 14, 14, - 14, 14, 14, 21, 21, 21, 21, 21, - 28, 28, 28, 28, 28, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 49, 49, 56, 63, - 72, 79, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, - }, - { /* Fourth byte table 36. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 21, 21, - 21, 21, 21, 28, 28, 28, 28, 28, - 35, 35, 35, 35, 35, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, - }, - { /* Fourth byte table 37. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, - }, - { /* Fourth byte table 38. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 21, 21, 21, 21, - 21, 21, 24, 24, 24, 24, 24, 24, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 28, 30, 33, - 33, 33, 33, 33, 33, 33, 33, 33, - 34, 34, 34, 34, 40, 49, 49, 55, - 64, 64, 64, 64, 64, 66, 66, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, - }, - { /* Fourth byte table 39. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 2, 4, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 18, 18, 18, 18, 18, 18, 18, 18, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 20, 21, 21, 21, 22, 23, 24, - 25, 26, 27, 28, 31, 32, 33, 34, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, - }, - { /* Fourth byte table 40. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 14, 15, 16, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 17, 17, 17, 17, 17, 17, 17, - 17, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, - }, - { /* Fourth byte table 41. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 7, 10, 10, 13, 16, - 18, 18, 21, 22, 23, 24, 25, 26, - 28, 29, 30, 31, 32, 32, 33, 35, - 35, 35, 36, 37, 38, 39, 40, 40, - 40, 42, 45, 47, 47, 48, 48, 51, - 51, 52, 52, 54, 58, 59, 60, 60, - 61, 62, 63, 63, 64, 65, 67, 69, - 71, 73, 74, 74, 74, 74, 76, 78, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, - 80, - }, - { /* Fourth byte table 42. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 3, 3, 3, 4, 5, - 6, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 13, 18, 23, 28, - 33, 38, 43, 48, 53, 58, 63, 68, - 72, 73, 75, 78, 80, 81, 83, 86, - 90, 92, 93, 95, 98, 99, 100, 101, - 102, 103, 105, 108, 110, 111, 113, 116, - 120, 122, 123, 125, 128, 129, 130, 131, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, - }, - { /* Fourth byte table 43. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, - }, - { /* Fourth byte table 44. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 12, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, - }, - { /* Fourth byte table 45. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 6, - 6, 6, 12, 12, 12, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 24, 24, 30, - 30, 30, 30, 30, 30, 36, 45, 45, - 51, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, - }, - { /* Fourth byte table 46. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 6, 6, 12, 12, 12, - 18, 18, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 28, 28, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 40, 44, - 48, 54, 60, 60, 60, 66, 72, 72, - 72, 78, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, - }, - { /* Fourth byte table 47. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 12, 12, 18, 24, 24, - 24, 30, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 42, 48, 54, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, - }, - { /* Fourth byte table 48. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 24, 24, 24, - 24, 24, 24, 30, 36, 42, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, - }, - { /* Fourth byte table 49. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, - }, - { /* Fourth byte table 50. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 11, 13, 15, 17, 19, 21, - 23, 25, 27, 29, 31, 34, 37, 40, - 43, 46, 49, 52, 55, 58, 62, 66, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, - }, - { /* Fourth byte table 51. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 53, 56, 59, 62, 65, 68, - 71, 74, 77, 80, 83, 86, 89, 92, - 95, 98, 101, 104, 107, 110, 113, 116, - 119, 122, 125, 128, 131, 134, 137, 140, - 143, 146, 149, 152, 155, 158, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, - }, - { /* Fourth byte table 52. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, - }, - { /* Fourth byte table 53. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, - }, - { /* Fourth byte table 54. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 5, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, - }, - { /* Fourth byte table 55. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, - }, - { /* Fourth byte table 56. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 57. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 58. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, - }, - { /* Fourth byte table 59. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, - }, - { /* Fourth byte table 60. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, - }, - { /* Fourth byte table 61. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, - }, - { /* Fourth byte table 62. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 4, - 4, 7, 10, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, - }, - { /* Fourth byte table 63. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 14, - 14, 21, 21, 28, 28, 35, 35, 42, - 42, 49, 49, 56, 56, 63, 63, 70, - 70, 77, 77, 84, 84, 84, 91, 91, - 98, 98, 105, 105, 105, 105, 105, 105, - 105, 112, 119, 119, 126, 133, 133, 140, - 147, 147, 154, 161, 161, 168, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, - }, - { /* Fourth byte table 64. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 7, - 7, 7, 7, 7, 11, 15, 15, 22, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 35, 35, 42, - 42, 49, 49, 56, 56, 63, 63, 70, - 70, 77, 77, 84, 84, 91, 91, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, - }, - { /* Fourth byte table 65. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 14, 14, 14, 21, 21, - 28, 28, 35, 35, 35, 35, 35, 35, - 35, 42, 49, 49, 56, 63, 63, 70, - 77, 77, 84, 91, 91, 98, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 112, 112, 112, - 119, 126, 133, 140, 140, 140, 140, 147, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, - }, - { /* Fourth byte table 66. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 6, 9, 12, 15, 18, - 21, 24, 27, 30, 33, 36, 39, 42, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, - }, - { /* Fourth byte table 67. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, - }, - { /* Fourth byte table 68. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 45, 45, 45, 48, 51, 54, 57, 60, - 63, 66, 69, 72, 75, 78, 81, 84, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, - }, - { /* Fourth byte table 69. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 15, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 22, 24, 26, 28, 30, 32, - 34, 36, 38, 40, 42, 44, 46, 48, - 50, 53, 56, 59, 62, 65, 68, 71, - 74, 77, 80, 83, 86, 89, 92, 98, - 104, 110, 116, 122, 128, 134, 140, 146, - 152, 158, 164, 170, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, - 176, - }, - { /* Fourth byte table 70. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 149, 151, 153, 155, 157, 159, - 161, 163, 165, 167, 169, 171, 173, 175, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, - }, - { /* Fourth byte table 71. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 41, 46, 51, 51, 51, 51, - 51, 54, 57, 60, 63, 66, 69, 72, - 75, 78, 81, 84, 87, 90, 93, 96, - 99, 102, 105, 108, 111, 114, 117, 120, - 123, 126, 129, 132, 135, 138, 141, 144, - 147, 150, 153, 156, 159, 162, 165, 168, - 171, 174, 177, 180, 183, 186, 189, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, - }, - { /* Fourth byte table 72. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 7, 9, 11, 13, 15, - 17, 20, 24, 26, 28, 31, 34, 36, - 38, 40, 43, 46, 49, 52, 55, 57, - 59, 61, 63, 65, 68, 70, 72, 74, - 77, 80, 82, 85, 88, 91, 93, 96, - 101, 107, 109, 112, 115, 118, 121, 128, - 136, 138, 140, 143, 145, 147, 149, 152, - 154, 156, 158, 160, 162, 165, 167, 169, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, - }, - { /* Fourth byte table 73. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 10, 12, 14, 16, 22, - 25, 27, 29, 31, 33, 35, 37, 39, - 41, 43, 45, 48, 50, 52, 55, 58, - 60, 64, 67, 69, 71, 73, 75, 75, - 75, 79, 83, 87, 91, 95, 99, 103, - 107, 111, 116, 121, 126, 131, 136, 141, - 146, 151, 156, 161, 166, 171, 176, 181, - 186, 191, 196, 201, 206, 211, 216, 221, - 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 221, 221, - 221, - }, - { /* Fourth byte table 74. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 56, - 56, 60, 60, 64, 64, 64, 68, 72, - 76, 80, 84, 88, 92, 96, 100, 104, - 104, 108, 108, 112, 112, 112, 116, 120, - 120, 120, 120, 124, 128, 132, 136, 136, - 136, 140, 144, 148, 152, 156, 160, 164, - 168, 172, 176, 180, 184, 188, 192, 196, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, - }, - { /* Fourth byte table 75. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, - 172, 172, 172, 172, 172, 172, 172, 172, - 172, - }, - { /* Fourth byte table 76. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 9, 12, 14, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 20, 24, 28, 32, - 36, 36, 36, 36, 36, 36, 41, 41, - 46, 48, 50, 52, 54, 56, 58, 60, - 62, 64, 65, 70, 75, 82, 89, 94, - 99, 104, 109, 114, 119, 124, 129, 134, - 134, 139, 144, 149, 154, 159, 159, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, - }, - { /* Fourth byte table 77. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 10, 15, 20, 20, 25, - 30, 35, 40, 45, 50, 55, 60, 65, - 69, 71, 73, 75, 77, 79, 81, 83, - 85, 87, 89, 91, 93, 95, 97, 99, - 101, 103, 105, 107, 109, 111, 113, 115, - 117, 119, 121, 123, 125, 127, 129, 131, - 133, 135, 137, 139, 141, 143, 145, 147, - 149, 151, 153, 155, 157, 159, 161, 163, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, - }, - { /* Fourth byte table 78. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 76, 80, 82, - 84, 86, 88, 90, 92, 94, 96, 98, - 100, 104, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, - }, - { /* Fourth byte table 79. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 4, 6, 8, - 10, 12, 14, 16, 18, 20, 24, 26, - 28, 30, 32, 34, 36, 38, 40, 42, - 44, 46, 48, 54, 60, 66, 72, 78, - 84, 90, 96, 102, 108, 114, 120, 126, - 132, 138, 144, 150, 156, 158, 160, 162, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, - }, - { /* Fourth byte table 80. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, - }, - { /* Fourth byte table 81. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 30, 36, 42, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 54, 60, 68, 76, 84, 92, 100, - 108, 116, 122, 155, 170, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, - }, - { /* Fourth byte table 82. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 5, 8, 9, 10, 11, 12, - 13, 14, 17, 20, 23, 26, 29, 32, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, - }, - { /* Fourth byte table 83. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 15, 15, - 15, 15, 18, 21, 24, 27, 28, 29, - 30, 31, 34, 35, 35, 36, 37, 38, - 39, 42, 43, 44, 45, 46, 49, 52, - 53, 54, 55, 56, 57, 58, 59, 60, - 60, 61, 62, 63, 64, 64, 64, 64, - 64, 67, 71, 74, 74, 77, 77, 80, - 84, 87, 91, 94, 98, 101, 105, 108, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, - }, - { /* Fourth byte table 84. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 6, 10, 14, 18, 22, 26, - 30, 34, 38, 42, 46, 50, 52, 54, - 56, 58, 60, 62, 64, 66, 68, 70, - 72, 74, 76, 78, 80, 82, 84, 86, - 88, 90, 92, 94, 96, 98, 100, 102, - 104, 106, 108, 110, 112, 114, 116, 118, - 120, 122, 124, 126, 128, 130, 132, 134, - 136, 138, 140, 142, 144, 146, 148, 150, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, - }, - { /* Fourth byte table 85. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 74, 76, 78, - 80, 82, 84, 86, 88, 90, 92, 94, - 96, 98, 100, 102, 104, 106, 112, 118, - 124, 130, 136, 142, 146, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, - }, - { /* Fourth byte table 86. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, - }, - { /* Fourth byte table 87. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 34, 37, 40, 43, 46, 49, 52, 55, - 58, 61, 64, 67, 70, 73, 76, 79, - 82, 85, 88, 91, 94, 97, 100, 103, - 106, 109, 112, 115, 118, 121, 124, 127, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, - }, - { /* Fourth byte table 88. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, - }, - { /* Fourth byte table 89. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 6, 9, 12, 15, - 18, 18, 18, 21, 24, 27, 30, 33, - 36, 36, 36, 39, 42, 45, 48, 51, - 54, 54, 54, 57, 60, 63, 63, 63, - 63, 65, 67, 69, 72, 74, 76, 79, - 79, 82, 85, 88, 91, 94, 97, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, - }, - { /* Fourth byte table 90. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9, - 18, 31, 44, 57, 70, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, - }, - { /* Fourth byte table 91. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 18, 31, 44, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, - }, - { /* Fourth byte table 92. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, - }, - { /* Fourth byte table 93. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 94. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, - }, - { /* Fourth byte table 95. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 29, 30, - 31, 31, 31, 32, 32, 32, 33, 34, - 34, 34, 35, 36, 37, 38, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 50, 51, 51, 52, 53, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, - }, - { /* Fourth byte table 96. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 2, 3, 3, 4, 5, - 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, - }, - { /* Fourth byte table 97. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 6, - 7, 8, 9, 10, 10, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 18, 19, - 20, 21, 22, 23, 24, 25, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 53, 54, 55, 56, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, - }, - { /* Fourth byte table 98. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 5, 6, - 6, 6, 6, 7, 8, 9, 10, 11, - 12, 13, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, - }, - { /* Fourth byte table 99. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 100. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 101. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 102. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 103. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 36, 36, 36, - 36, 38, 40, 42, 44, 46, 48, 50, - 52, 54, 56, 58, 60, 62, 64, 66, - 68, 70, 72, 74, 76, 78, 80, 82, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, - }, - { /* Fourth byte table 104. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 5, 7, 9, 11, 13, 15, - 17, 19, 21, 23, 25, 27, 29, 31, - 33, 35, 37, 39, 41, 43, 45, 47, - 49, 51, 53, 55, 58, 60, 62, 64, - 66, 68, 70, 72, 74, 76, 78, 80, - 82, 84, 86, 88, 90, 92, 94, 96, - 98, 100, 102, 104, 106, 108, 110, 112, - 114, 116, 118, 120, 123, 125, 127, 129, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, - }, - { /* Fourth byte table 105. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 45, 47, - 49, 51, 53, 55, 57, 59, 61, 63, - 65, 67, 69, 71, 73, 75, 77, 79, - 81, 83, 85, 87, 89, 91, 93, 95, - 97, 99, 101, 103, 105, 107, 110, 112, - 114, 116, 118, 120, 122, 124, 126, 128, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, - }, - { /* Fourth byte table 106. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 33, 35, 37, 39, 41, 43, 45, 47, - 49, 51, 53, 55, 57, 59, 61, 63, - 65, 67, 69, 71, 73, 75, 77, 79, - 81, 83, 85, 87, 89, 91, 93, 95, - 98, 100, 102, 104, 106, 108, 110, 112, - 114, 116, 118, 120, 122, 124, 126, 128, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, - }, - { /* Fourth byte table 107. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 21, 23, 25, 27, 29, 31, - 33, 35, 37, 39, 41, 43, 45, 47, - 49, 51, 53, 55, 57, 59, 61, 63, - 65, 67, 69, 71, 73, 75, 77, 79, - 81, 83, 86, 88, 90, 92, 94, 96, - 98, 100, 102, 104, 106, 108, 110, 112, - 114, 116, 118, 120, 122, 124, 126, 128, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, - }, - { /* Fourth byte table 108. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 9, 11, 13, 15, - 17, 19, 21, 21, 21, 21, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, - 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 71, 71, 71, 71, - 71, - }, - { /* Fourth byte table 109. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 9, 13, 17, 21, 25, 29, - 33, 37, 42, 46, 50, 54, 58, 62, - 66, 71, 75, 80, 85, 90, 94, 98, - 102, 106, 110, 114, 118, 122, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, - }, - { /* Fourth byte table 110. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 111. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 112. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 113. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 114. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 115. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 116. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 117. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - }, - { - { /* Fourth byte table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 5, 5, 5, 5, 5, - 8, 8, 8, 9, 10, 13, 15, 15, - 15, 18, 19, 20, 20, 25, 30, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, - }, - { /* Fourth byte table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 24, - 28, 32, 36, 40, 44, 48, 52, 56, - 60, 60, 64, 68, 72, 76, 80, 84, - 84, 84, 88, 92, 96, 100, 104, 104, - 104, 108, 112, 116, 120, 124, 128, 128, - 132, 136, 140, 144, 148, 152, 156, 160, - 164, 164, 168, 172, 176, 180, 184, 188, - 188, 188, 192, 196, 200, 204, 208, 208, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, - }, - { /* Fourth byte table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 64, 64, 68, 72, 76, 80, 84, - 88, 92, 96, 100, 104, 108, 112, 116, - 120, 124, 128, 132, 136, 140, 144, 144, - 144, 148, 152, 156, 160, 164, 168, 172, - 176, 180, 180, 182, 184, 188, 192, 196, - 200, 200, 204, 208, 212, 216, 220, 224, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, 227, 227, 227, 227, 227, 227, 227, - 227, - }, - { /* Fourth byte table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 3, 7, 11, 15, 19, - 23, 27, 30, 30, 30, 34, 38, 42, - 46, 50, 54, 54, 54, 58, 62, 66, - 70, 74, 78, 82, 86, 90, 94, 98, - 102, 106, 110, 114, 118, 122, 126, 126, - 126, 130, 134, 138, 142, 146, 150, 154, - 158, 162, 166, 170, 174, 178, 182, 186, - 190, 194, 198, 202, 206, 210, 214, 218, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 219, 219, 219, 219, 219, 219, - 219, - }, - { /* Fourth byte table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 12, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, - }, - { /* Fourth byte table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 4, 8, 12, - 14, 16, 18, 20, 22, 24, 28, 32, - 36, 40, 44, 48, 52, 56, 62, 68, - 74, 80, 86, 92, 98, 104, 104, 110, - 116, 122, 128, 133, 138, 138, 138, 142, - 146, 150, 154, 158, 162, 168, 174, 179, - 184, 188, 190, 192, 194, 198, 202, 202, - 202, 206, 210, 216, 222, 227, 232, 237, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, - 242, - }, - { /* Fourth byte table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 112, 112, 116, - 120, 120, 120, 120, 120, 120, 120, 124, - 128, 132, 136, 142, 148, 154, 160, 164, - 168, 174, 180, 184, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 188, - 188, - }, - { /* Fourth byte table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 3, 4, 5, 7, 9, 11, - 12, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, - }, - { /* Fourth byte table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 18, - 18, 20, 21, 22, 23, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, - }, - { /* Fourth byte table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 6, 9, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 17, 17, 17, - 17, 17, 17, 20, 20, 20, 20, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, - }, - { /* Fourth byte table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 14, 19, - 22, 27, 32, 37, 37, 42, 42, 47, - 52, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 64, 69, 74, 79, 84, - 89, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 10, 15, 20, 25, - 25, 27, 29, 31, 41, 51, 53, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 57, 59, 61, 61, 63, 65, 65, - 65, 65, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, - 67, - }, - { /* Fourth byte table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 10, 15, 15, 15, 15, - 20, 20, 20, 20, 20, 25, 30, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 40, 40, 40, 40, 40, 40, - 40, 40, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, - }, - { /* Fourth byte table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 10, 15, 15, 15, 15, - 20, 20, 20, 20, 20, 25, 30, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 40, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, - }, - { /* Fourth byte table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, - 10, 15, 20, 25, 30, 30, 30, 35, - 40, 40, 40, 45, 50, 55, 60, 65, - 70, 70, 70, 75, 80, 85, 90, 95, - 100, 100, 100, 105, 110, 115, 120, 125, - 130, 135, 140, 145, 150, 155, 160, 160, - 160, 165, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, 170, 170, 170, 170, 170, 170, 170, - 170, - }, - { /* Fourth byte table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, - }, - { /* Fourth byte table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 10, 15, 20, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, - }, - { /* Fourth byte table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 8, - 12, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, - }, - { /* Fourth byte table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 5, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 10, 10, 10, 10, - 10, 10, 10, 10, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, - }, - { /* Fourth byte table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, - 7, 7, 14, 14, 14, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 14, 21, 28, 35, 42, 49, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, - }, - { /* Fourth byte table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 21, 28, 28, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, - }, - { /* Fourth byte table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, - }, - { /* Fourth byte table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 14, 21, 21, 21, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, - }, - { /* Fourth byte table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 7, 14, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 28, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, - }, - { /* Fourth byte table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, - }, - { /* Fourth byte table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 14, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, - }, - { /* Fourth byte table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 7, 7, 7, 7, 7, - 14, 21, 21, 28, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, - }, - { /* Fourth byte table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 14, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 30. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 7, 14, 24, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, - 31, - }, - { /* Fourth byte table 31. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, - }, - { /* Fourth byte table 32. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, - }, - { /* Fourth byte table 33. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, - }, - { /* Fourth byte table 34. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 35. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 14, 14, - 14, 14, 14, 21, 21, 21, 21, 21, - 28, 28, 28, 28, 28, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 49, 49, 56, 63, - 72, 79, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, - }, - { /* Fourth byte table 36. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 21, 21, - 21, 21, 21, 28, 28, 28, 28, 28, - 35, 35, 35, 35, 35, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 49, 49, 49, 49, 49, - 49, - }, - { /* Fourth byte table 37. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, - 7, - }, - { /* Fourth byte table 38. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 39. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 7, - 7, 14, 14, 21, 21, 28, 28, 35, - 35, 35, 35, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 49, 49, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, - }, - { /* Fourth byte table 40. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 14, 14, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 41. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1, 3, 4, - 4, 5, 6, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 16, 17, 19, 20, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 42. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 6, 8, 11, - 12, 13, 14, 16, 18, 20, 21, 21, - 22, 23, 25, 26, 28, 31, 34, 35, - 36, 37, 40, 42, 43, 46, 48, 50, - 52, 54, 56, 57, 58, 59, 60, 62, - 64, 66, 68, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, - }, - { /* Fourth byte table 43. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 3, 5, 7, - 9, 10, 12, 14, 16, 18, 20, 22, - 25, 27, 29, 32, 34, 36, 38, 40, - 42, 44, 46, 48, 50, 52, 54, 56, - 58, 61, 63, 65, 66, 68, 70, 72, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, - }, - { /* Fourth byte table 44. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 21, 21, 21, 21, - 21, 21, 24, 24, 24, 24, 24, 24, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 28, 30, 33, - 33, 33, 33, 33, 33, 33, 33, 33, - 34, 34, 34, 34, 40, 49, 49, 55, - 64, 64, 64, 64, 64, 66, 66, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, 69, 69, 69, 69, 69, 69, 69, - 69, - }, - { /* Fourth byte table 45. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 2, 4, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 18, 18, 18, 18, 18, 18, 18, 18, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 19, 19, - 19, 20, 21, 21, 21, 22, 23, 24, - 25, 26, 27, 28, 31, 32, 33, 34, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, - 35, - }, - { /* Fourth byte table 46. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 14, 15, 16, 17, - 17, 18, 19, 20, 21, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, - 23, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, - 25, - }, - { /* Fourth byte table 47. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 7, 10, 10, 13, 16, - 18, 18, 21, 22, 23, 24, 25, 26, - 28, 29, 30, 31, 32, 32, 33, 35, - 35, 35, 36, 37, 38, 39, 40, 40, - 40, 42, 45, 47, 47, 48, 48, 51, - 51, 52, 52, 54, 58, 59, 60, 60, - 61, 62, 63, 63, 64, 65, 67, 69, - 71, 73, 74, 74, 77, 79, 81, 83, - 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, - 85, 85, 85, 85, 85, 85, 85, 85, - 85, - }, - { /* Fourth byte table 48. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 3, 3, 3, 4, 5, - 6, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 13, 18, 23, 28, - 33, 38, 43, 48, 53, 58, 63, 68, - 72, 73, 75, 78, 80, 81, 83, 86, - 90, 92, 93, 95, 98, 99, 100, 101, - 102, 103, 105, 108, 110, 111, 113, 116, - 120, 122, 123, 125, 128, 129, 130, 131, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, 132, 132, 132, 132, 132, 132, 132, - 132, - }, - { /* Fourth byte table 49. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, - }, - { /* Fourth byte table 50. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 12, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, - }, - { /* Fourth byte table 51. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 6, - 6, 6, 12, 12, 12, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 24, 24, 30, - 30, 30, 30, 30, 30, 36, 45, 45, - 51, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, - }, - { /* Fourth byte table 52. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 6, 6, 6, 12, 12, 12, - 18, 18, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 28, 28, 34, 34, 34, 34, 34, - 34, 34, 34, 34, 34, 34, 40, 44, - 48, 54, 60, 60, 60, 66, 72, 72, - 72, 78, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, - }, - { /* Fourth byte table 53. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 12, 12, 18, 24, 24, - 24, 30, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 36, 36, 36, - 36, 36, 36, 36, 36, 42, 48, 54, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, - }, - { /* Fourth byte table 54. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 24, 24, 24, - 24, 24, 24, 30, 36, 42, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, - }, - { /* Fourth byte table 55. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, - }, - { /* Fourth byte table 56. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 11, 13, 15, 17, 19, 21, - 23, 25, 27, 29, 31, 34, 37, 40, - 43, 46, 49, 52, 55, 58, 62, 66, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, - }, - { /* Fourth byte table 57. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 53, 56, 59, 62, 65, 68, - 71, 74, 77, 80, 83, 86, 89, 92, - 95, 98, 101, 104, 107, 110, 113, 116, - 119, 122, 125, 128, 131, 134, 137, 140, - 143, 146, 149, 152, 155, 158, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, - }, - { /* Fourth byte table 58. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, - 43, - }, - { /* Fourth byte table 59. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, - }, - { /* Fourth byte table 60. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 5, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, - }, - { /* Fourth byte table 61. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, - 6, - }, - { /* Fourth byte table 62. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 63. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 64. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 65. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, - }, - { /* Fourth byte table 66. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, - }, - { /* Fourth byte table 67. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, - }, - { /* Fourth byte table 68. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, - }, - { /* Fourth byte table 69. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 4, - 4, 7, 10, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, - }, - { /* Fourth byte table 70. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 14, - 14, 21, 21, 28, 28, 35, 35, 42, - 42, 49, 49, 56, 56, 63, 63, 70, - 70, 77, 77, 84, 84, 84, 91, 91, - 98, 98, 105, 105, 105, 105, 105, 105, - 105, 112, 119, 119, 126, 133, 133, 140, - 147, 147, 154, 161, 161, 168, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, 175, 175, 175, 175, 175, 175, 175, - 175, - }, - { /* Fourth byte table 71. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 7, - 7, 7, 7, 7, 11, 15, 15, 22, - 28, 28, 28, 28, 28, 28, 28, 28, - 28, 28, 28, 28, 28, 35, 35, 42, - 42, 49, 49, 56, 56, 63, 63, 70, - 70, 77, 77, 84, 84, 91, 91, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, 98, 98, 98, 98, 98, 98, 98, - 98, - }, - { /* Fourth byte table 72. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 14, 14, 14, 21, 21, - 28, 28, 35, 35, 35, 35, 35, 35, - 35, 42, 49, 49, 56, 63, 63, 70, - 77, 77, 84, 91, 91, 98, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 105, 105, 105, - 105, 105, 105, 105, 105, 112, 112, 112, - 119, 126, 133, 140, 140, 140, 140, 147, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 153, 153, 153, 153, - 153, - }, - { /* Fourth byte table 73. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 6, 9, 12, 15, 18, - 21, 24, 27, 30, 33, 36, 39, 42, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, - 45, - }, - { /* Fourth byte table 74. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, 192, 192, 192, 192, 192, 192, 192, - 192, - }, - { /* Fourth byte table 75. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 45, 45, 45, 48, 51, 54, 57, 60, - 63, 66, 69, 72, 75, 78, 81, 84, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, - }, - { /* Fourth byte table 76. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 15, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 23, 25, 27, 29, 31, 33, 35, - 37, 39, 41, 43, 45, 47, 49, 51, - 53, 56, 59, 62, 65, 68, 71, 74, - 77, 80, 83, 86, 89, 92, 95, 101, - 107, 113, 119, 125, 131, 137, 143, 149, - 155, 161, 167, 173, 179, 194, 206, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, - 212, - }, - { /* Fourth byte table 77. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 149, 151, 153, 155, 157, 159, - 161, 163, 165, 167, 169, 171, 173, 175, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 177, 177, - 177, - }, - { /* Fourth byte table 78. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 41, 46, 51, 53, 56, 58, - 61, 64, 67, 70, 73, 76, 79, 82, - 85, 88, 91, 94, 97, 100, 103, 106, - 109, 112, 115, 118, 121, 124, 127, 130, - 133, 136, 139, 142, 145, 148, 151, 154, - 157, 160, 163, 166, 169, 172, 175, 178, - 181, 184, 187, 190, 193, 196, 199, 202, - 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, - 202, 202, 202, 202, 202, 202, 202, 202, - 202, - }, - { /* Fourth byte table 79. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 7, 9, 11, 13, 15, - 17, 20, 24, 26, 28, 31, 34, 36, - 38, 40, 43, 46, 49, 52, 55, 57, - 59, 61, 63, 65, 68, 70, 72, 74, - 77, 80, 82, 85, 88, 91, 93, 96, - 101, 107, 109, 112, 115, 118, 121, 128, - 136, 138, 140, 143, 145, 147, 149, 152, - 154, 156, 158, 160, 162, 165, 167, 169, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, 171, 171, 171, 171, 171, 171, 171, - 171, - }, - { /* Fourth byte table 80. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 10, 12, 14, 16, 22, - 25, 27, 29, 31, 33, 35, 37, 39, - 41, 43, 45, 48, 50, 52, 55, 58, - 60, 64, 67, 69, 71, 73, 75, 80, - 85, 89, 93, 97, 101, 105, 109, 113, - 117, 121, 126, 131, 136, 141, 146, 151, - 156, 161, 166, 171, 176, 181, 186, 191, - 196, 201, 206, 211, 216, 221, 226, 231, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, 234, 234, 234, 234, 234, 234, 234, - 234, - }, - { /* Fourth byte table 81. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 56, - 56, 60, 60, 64, 64, 64, 68, 72, - 76, 80, 84, 88, 92, 96, 100, 104, - 104, 108, 108, 112, 112, 112, 116, 120, - 120, 120, 120, 124, 128, 132, 136, 136, - 136, 140, 144, 148, 152, 156, 160, 164, - 168, 172, 176, 180, 184, 188, 192, 196, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, 200, 200, 200, 200, 200, 200, 200, - 200, - }, - { /* Fourth byte table 82. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 172, 172, 172, 172, - 172, 176, 180, 184, 188, 192, 196, 200, - 204, 208, 212, 216, 220, 224, 228, 232, - 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, - 236, 236, 236, 236, 236, 236, 236, 236, - 236, - }, - { /* Fourth byte table 83. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 65, 70, 75, 79, 83, 87, 92, 97, - 102, 106, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, - 110, - }, - { /* Fourth byte table 84. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 9, 12, 14, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 20, 24, 28, 32, - 36, 36, 36, 36, 36, 36, 41, 41, - 46, 48, 50, 52, 54, 56, 58, 60, - 62, 64, 65, 70, 75, 82, 89, 94, - 99, 104, 109, 114, 119, 124, 129, 134, - 134, 139, 144, 149, 154, 159, 159, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, - }, - { /* Fourth byte table 85. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 10, 15, 20, 20, 25, - 30, 35, 40, 45, 50, 55, 60, 65, - 69, 71, 73, 75, 77, 79, 81, 83, - 85, 87, 89, 91, 93, 95, 97, 99, - 101, 103, 105, 107, 109, 111, 113, 115, - 117, 119, 121, 123, 125, 127, 129, 131, - 133, 135, 137, 139, 141, 143, 145, 147, - 149, 151, 153, 155, 157, 159, 161, 163, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 165, 165, 165, 165, 165, - 165, - }, - { /* Fourth byte table 86. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 76, 80, 82, - 84, 86, 88, 90, 92, 94, 96, 98, - 100, 104, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, 108, 108, 108, 108, 108, 108, 108, - 108, - }, - { /* Fourth byte table 87. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 4, 6, 8, - 10, 12, 14, 16, 18, 20, 24, 26, - 28, 30, 32, 34, 36, 38, 40, 42, - 44, 46, 48, 54, 60, 66, 72, 78, - 84, 90, 96, 102, 108, 114, 120, 126, - 132, 138, 144, 150, 156, 158, 160, 162, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, 164, 164, 164, 164, 164, 164, 164, - 164, - }, - { /* Fourth byte table 88. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, 248, 248, 248, 248, 248, 248, 248, - 248, - }, - { /* Fourth byte table 89. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 30, 36, 42, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 54, 60, 68, 76, 84, 92, 100, - 108, 116, 122, 155, 170, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 178, 178, 178, 178, - 178, - }, - { /* Fourth byte table 90. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 4, 7, 8, 9, 10, 11, - 14, 17, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 22, 25, 28, 29, 30, 31, 32, - 33, 34, 37, 40, 43, 46, 49, 52, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, 55, 55, 55, 55, 55, 55, 55, - 55, - }, - { /* Fourth byte table 91. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 15, 15, - 16, 17, 20, 23, 26, 29, 30, 31, - 32, 33, 36, 37, 37, 38, 39, 40, - 41, 44, 45, 46, 47, 48, 51, 54, - 55, 56, 57, 58, 59, 60, 61, 62, - 62, 63, 64, 65, 66, 66, 66, 66, - 66, 69, 73, 76, 76, 79, 79, 82, - 86, 89, 93, 96, 100, 103, 107, 110, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, - }, - { /* Fourth byte table 92. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 6, 10, 14, 18, 22, 26, - 30, 34, 38, 42, 46, 50, 52, 54, - 56, 58, 60, 62, 64, 66, 68, 70, - 72, 74, 76, 78, 80, 82, 84, 86, - 88, 90, 92, 94, 96, 98, 100, 102, - 104, 106, 108, 110, 112, 114, 116, 118, - 120, 122, 124, 126, 128, 130, 132, 134, - 136, 138, 140, 142, 144, 146, 148, 150, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, - }, - { /* Fourth byte table 93. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 74, 76, 78, - 80, 82, 84, 86, 88, 90, 92, 94, - 96, 98, 100, 102, 104, 106, 112, 118, - 124, 130, 136, 142, 146, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, 150, 150, 150, 150, 150, 150, 150, - 150, - }, - { /* Fourth byte table 94. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 2, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, - }, - { /* Fourth byte table 95. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 34, 37, 40, 43, 46, 49, 52, 55, - 58, 61, 64, 67, 70, 73, 76, 79, - 82, 85, 88, 91, 94, 97, 100, 103, - 106, 109, 112, 115, 118, 121, 124, 127, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, - }, - { /* Fourth byte table 96. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 144, 147, 150, 153, 156, 159, 162, 165, - 168, 171, 174, 177, 180, 183, 186, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, 189, 189, 189, 189, 189, 189, 189, - 189, - }, - { /* Fourth byte table 97. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 6, 9, 12, 15, - 18, 18, 18, 21, 24, 27, 30, 33, - 36, 36, 36, 39, 42, 45, 48, 51, - 54, 54, 54, 57, 60, 63, 63, 63, - 63, 65, 67, 69, 72, 74, 76, 79, - 79, 82, 85, 88, 91, 94, 97, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, 100, 100, 100, 100, 100, 100, 100, - 100, - }, - { /* Fourth byte table 98. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9, - 18, 31, 44, 57, 70, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, - }, - { /* Fourth byte table 99. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 18, 31, 44, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, - }, - { /* Fourth byte table 100. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, - 13, - }, - { /* Fourth byte table 101. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 102. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, - }, - { /* Fourth byte table 103. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 29, 30, - 31, 31, 31, 32, 32, 32, 33, 34, - 34, 34, 35, 36, 37, 38, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 50, 51, 51, 52, 53, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, - }, - { /* Fourth byte table 104. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, - }, - { /* Fourth byte table 105. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 6, - 7, 8, 9, 10, 10, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 18, 19, - 20, 21, 22, 23, 24, 25, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 53, 54, 55, 56, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, - }, - { /* Fourth byte table 106. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 5, 6, - 6, 6, 6, 7, 8, 9, 10, 11, - 12, 13, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, - 59, - }, - { /* Fourth byte table 107. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 108. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 109. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 110. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 111. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 38, 40, 40, - 40, 42, 44, 46, 48, 50, 52, 54, - 56, 58, 60, 62, 64, 66, 68, 70, - 72, 74, 76, 78, 80, 82, 84, 86, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, - 88, - }, - { /* Fourth byte table 112. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 5, 7, 9, 11, 13, 15, - 17, 19, 21, 23, 25, 27, 29, 31, - 33, 35, 37, 39, 41, 43, 45, 47, - 49, 51, 53, 55, 58, 60, 62, 64, - 66, 68, 70, 72, 74, 76, 78, 80, - 82, 84, 86, 88, 90, 92, 94, 96, - 98, 100, 102, 104, 106, 108, 110, 112, - 114, 116, 118, 120, 123, 125, 127, 129, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 131, 131, 131, 131, 131, 131, - 131, - }, - { /* Fourth byte table 113. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 45, 47, - 49, 51, 53, 55, 57, 59, 61, 63, - 65, 67, 69, 71, 73, 75, 77, 79, - 81, 83, 85, 87, 89, 91, 93, 95, - 97, 99, 101, 103, 105, 107, 110, 112, - 114, 116, 118, 120, 122, 124, 126, 128, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, - }, - { /* Fourth byte table 114. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 33, 35, 37, 39, 41, 43, 45, 47, - 49, 51, 53, 55, 57, 59, 61, 63, - 65, 67, 69, 71, 73, 75, 77, 79, - 81, 83, 85, 87, 89, 91, 93, 95, - 98, 100, 102, 104, 106, 108, 110, 112, - 114, 116, 118, 120, 122, 124, 126, 128, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, - }, - { /* Fourth byte table 115. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 21, 23, 25, 27, 29, 31, - 33, 35, 37, 39, 41, 43, 45, 47, - 49, 51, 53, 55, 57, 59, 61, 63, - 65, 67, 69, 71, 73, 75, 77, 79, - 81, 83, 86, 88, 90, 92, 94, 96, - 98, 100, 102, 104, 106, 108, 110, 112, - 114, 116, 118, 120, 122, 124, 126, 128, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 130, 130, 130, 130, - 130, - }, - { /* Fourth byte table 116. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 9, 11, 13, 15, - 17, 19, 21, 23, 25, 25, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, - 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 75, 75, 75, 75, 75, 75, - 75, - }, - { /* Fourth byte table 117. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 9, 13, 17, 21, 25, 29, - 33, 37, 42, 46, 50, 54, 58, 62, - 66, 71, 75, 80, 85, 90, 94, 98, - 102, 106, 110, 114, 118, 122, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, 127, 127, 127, 127, 127, 127, 127, - 127, - }, - }, -}; - -static const uint16_t u8_decomp_b4_16bit_tbl[2][30][257] = { - { - { /* Fourth byte 16-bit table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 38, 44, 48, 52, 56, 60, 64, - 68, 72, 76, 80, 84, 90, 96, 102, - 108, 112, 116, 120, 124, 130, 136, 140, - 144, 148, 152, 156, 160, 164, 168, 172, - 176, 180, 184, 188, 192, 196, 200, 206, - 212, 216, 220, 224, 228, 232, 236, 240, - 244, 250, 256, 260, 264, 268, 272, 276, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, - }, - { /* Fourth byte 16-bit table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 54, 60, 66, - 72, 78, 84, 90, 96, 100, 104, 108, - 112, 116, 120, 124, 128, 134, 140, 144, - 148, 152, 156, 160, 164, 170, 176, 182, - 188, 194, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 262, 268, 274, 280, 284, 288, 292, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, - }, - { /* Fourth byte 16-bit table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 107, 116, 116, 116, 116, - 116, 120, 124, 128, 132, 138, 144, 150, - 156, 162, 168, 174, 180, 186, 192, 198, - 204, 210, 216, 222, 228, 234, 240, 246, - 252, 256, 260, 264, 268, 272, 276, 282, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, - }, - { /* Fourth byte 16-bit table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 30, 36, 42, - 48, 52, 56, 60, 64, 68, 72, 76, - 80, 86, 92, 98, 104, 110, 116, 122, - 128, 134, 140, 146, 152, 158, 164, 170, - 176, 182, 188, 194, 200, 204, 208, 212, - 216, 222, 228, 234, 240, 246, 252, 258, - 264, 270, 276, 280, 284, 288, 292, 296, - 300, 304, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, - }, - { /* Fourth byte 16-bit table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 17, 24, 31, 38, 45, - 52, 57, 62, 69, 76, 83, 90, 97, - 104, 109, 114, 121, 128, 135, 142, 142, - 142, 147, 152, 159, 166, 173, 180, 180, - 180, 185, 190, 197, 204, 211, 218, 225, - 232, 237, 242, 249, 256, 263, 270, 277, - 284, 289, 294, 301, 308, 315, 322, 329, - 336, 341, 346, 353, 360, 367, 374, 381, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, - }, - { /* Fourth byte 16-bit table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 17, 24, 31, 38, 38, - 38, 43, 48, 55, 62, 69, 76, 76, - 76, 81, 86, 93, 100, 107, 114, 121, - 128, 128, 133, 133, 140, 140, 147, 147, - 154, 159, 164, 171, 178, 185, 192, 199, - 206, 211, 216, 223, 230, 237, 244, 251, - 258, 263, 268, 273, 278, 283, 288, 293, - 298, 303, 308, 313, 318, 323, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, - }, - { /* Fourth byte 16-bit table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 14, 23, 32, 41, 50, 59, - 68, 75, 82, 91, 100, 109, 118, 127, - 136, 143, 150, 159, 168, 177, 186, 195, - 204, 211, 218, 227, 236, 245, 254, 263, - 272, 279, 286, 295, 304, 313, 322, 331, - 340, 347, 354, 363, 372, 381, 390, 399, - 408, 413, 418, 425, 430, 437, 437, 442, - 449, 454, 459, 464, 469, 474, 477, 480, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, - }, - { /* Fourth byte 16-bit table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 14, 21, 26, 33, 33, 38, - 45, 50, 55, 60, 65, 70, 82, 94, - 106, 111, 116, 123, 130, 130, 130, 135, - 142, 147, 152, 157, 162, 162, 174, 186, - 198, 203, 208, 215, 222, 227, 232, 237, - 244, 249, 254, 259, 264, 269, 280, 291, - 293, 293, 293, 300, 305, 312, 312, 317, - 324, 329, 334, 339, 344, 349, 356, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, - }, - { /* Fourth byte 16-bit table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 15, 20, 25, 30, 35, - 40, 45, 50, 55, 60, 65, 70, 78, - 86, 94, 102, 110, 118, 126, 134, 142, - 150, 158, 166, 174, 182, 190, 190, 190, - 190, 195, 200, 205, 210, 215, 220, 225, - 230, 235, 240, 245, 250, 255, 260, 265, - 270, 275, 280, 285, 290, 295, 300, 305, - 310, 315, 320, 325, 330, 335, 340, 345, - 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, - 350, 350, 350, 350, 350, 350, 350, 350, - 350, - }, - { /* Fourth byte 16-bit table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 27, 42, 51, 66, 75, 84, - 102, 114, 123, 132, 141, 153, 165, 177, - 189, 201, 213, 225, 243, 249, 267, 285, - 300, 312, 330, 348, 360, 369, 378, 390, - 402, 417, 432, 441, 450, 462, 471, 480, - 486, 492, 501, 510, 528, 540, 555, 573, - 585, 594, 603, 621, 633, 651, 660, 675, - 684, 696, 705, 717, 732, 744, 759, 771, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, - }, - { /* Fourth byte 16-bit table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 24, 33, 45, 54, 63, 72, - 87, 99, 105, 123, 132, 147, 159, 171, - 180, 189, 201, 207, 219, 234, 240, 258, - 267, 271, 275, 279, 283, 287, 291, 295, - 299, 303, 307, 312, 317, 322, 327, 332, - 337, 342, 347, 352, 357, 362, 367, 372, - 377, 382, 385, 387, 389, 392, 394, 396, - 396, 396, 396, 396, 402, 408, 414, 420, - 432, 432, 432, 432, 432, 432, 432, 432, - 432, 432, 432, 432, 432, 432, 432, 432, - 432, 432, 432, 432, 432, 432, 432, 432, - 432, 432, 432, 432, 432, 432, 432, 432, - 432, 432, 432, 432, 432, 432, 432, 432, - 432, 432, 432, 432, 432, 432, 432, 432, - 432, 432, 432, 432, 432, 432, 432, 432, - 432, 432, 432, 432, 432, 432, 432, 432, - 432, - }, - { /* Fourth byte 16-bit table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, - }, - { /* Fourth byte 16-bit table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, - }, - { /* Fourth byte 16-bit table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, - }, - { /* Fourth byte 16-bit table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, - }, - { /* Fourth byte 16-bit table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 30, 34, 38, - 42, 46, 50, 54, 58, 62, 66, 70, - 74, 78, 82, 86, 90, 94, 98, 102, - 106, 110, 114, 118, 122, 126, 130, 134, - 138, 142, 146, 150, 154, 158, 162, 166, - 170, 174, 178, 182, 186, 190, 194, 198, - 202, 206, 210, 214, 218, 222, 226, 230, - 234, 238, 242, 246, 250, 254, 258, 262, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, - }, - { /* Fourth byte 16-bit table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 125, - 130, 135, 140, 145, 150, 156, 162, 168, - 174, 180, 186, 190, 194, 198, 202, 206, - 210, 214, 218, 222, 226, 230, 234, 238, - 242, 246, 250, 254, 258, 262, 266, 270, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, - }, - { /* Fourth byte 16-bit table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 98, 104, 110, 116, 122, 126, 130, 134, - 138, 142, 146, 150, 154, 158, 162, 166, - 170, 174, 178, 182, 186, 190, 194, 198, - 202, 206, 210, 214, 218, 222, 226, 230, - 234, 238, 242, 246, 250, 254, 258, 262, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, - }, - { /* Fourth byte 16-bit table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 130, 136, 140, 144, 148, 152, 156, 160, - 164, 168, 172, 176, 180, 184, 188, 192, - 196, 200, 204, 210, 216, 222, 226, 230, - 234, 238, 242, 246, 250, 254, 258, 262, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, - }, - { /* Fourth byte 16-bit table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 30, 36, 42, - 48, 54, 60, 66, 72, 78, 84, 90, - 96, 102, 108, 114, 120, 126, 132, 138, - 144, 150, 156, 162, 168, 174, 180, 186, - 192, 198, 204, 210, 216, 222, 228, 234, - 240, 246, 252, 258, 264, 270, 276, 282, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, - }, - { /* Fourth byte 16-bit table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 30, 36, 42, - 48, 54, 60, 66, 72, 78, 84, 90, - 96, 96, 96, 102, 108, 114, 120, 126, - 132, 138, 144, 150, 156, 162, 168, 174, - 180, 186, 192, 198, 204, 210, 216, 222, - 228, 234, 240, 246, 252, 258, 264, 270, - 276, 282, 288, 294, 300, 306, 312, 318, - 324, 330, 336, 342, 348, 354, 360, 366, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, - }, - { /* Fourth byte 16-bit table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 17, 21, 25, 29, - 33, 37, 41, 45, 49, 53, 58, 62, - 66, 70, 74, 79, 83, 87, 91, 96, - 100, 104, 108, 112, 116, 121, 125, 129, - 133, 137, 141, 145, 149, 153, 157, 161, - 165, 169, 173, 177, 181, 185, 189, 193, - 197, 201, 205, 209, 213, 218, 222, 226, - 230, 235, 239, 243, 247, 251, 255, 259, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, - }, - { /* Fourth byte 16-bit table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 105, 109, 113, 117, 121, 125, - 129, 134, 139, 143, 147, 151, 155, 159, - 163, 167, 171, 175, 179, 184, 188, 192, - 196, 200, 205, 209, 213, 217, 221, 225, - 229, 233, 237, 241, 246, 250, 255, 259, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, - }, - { /* Fourth byte 16-bit table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 41, 45, 49, 53, 57, 61, - 66, 70, 75, 80, 84, 88, 92, 96, - 101, 106, 110, 114, 118, 122, 126, 130, - 134, 138, 142, 146, 150, 155, 159, 163, - 167, 171, 175, 179, 183, 187, 191, 195, - 199, 203, 207, 211, 215, 219, 223, 227, - 231, 236, 240, 244, 248, 252, 256, 261, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, - }, - { /* Fourth byte 16-bit table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 45, 49, 53, 57, 61, - 65, 69, 73, 77, 81, 85, 89, 93, - 97, 101, 105, 109, 113, 117, 122, 126, - 130, 134, 138, 142, 147, 151, 155, 159, - 163, 167, 171, 175, 179, 184, 188, 192, - 196, 201, 205, 209, 213, 217, 221, 225, - 230, 235, 240, 244, 249, 253, 257, 261, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, - }, - { /* Fourth byte 16-bit table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 29, - 33, 37, 41, 45, 49, 53, 58, 62, - 66, 71, 76, 80, 84, 88, 92, 96, - 100, 104, 108, 112, 117, 121, 126, 130, - 135, 139, 143, 147, 152, 156, 160, 165, - 170, 174, 178, 182, 186, 190, 194, 198, - 202, 206, 210, 214, 218, 222, 227, 231, - 236, 240, 245, 249, 254, 259, 264, 268, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, - }, - { /* Fourth byte 16-bit table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 9, 14, 19, 24, 28, 32, - 36, 40, 44, 48, 52, 56, 61, 65, - 69, 73, 77, 82, 86, 91, 96, 100, - 104, 108, 112, 116, 120, 125, 130, 135, - 139, 143, 148, 152, 156, 160, 165, 169, - 173, 177, 181, 185, 190, 194, 198, 202, - 206, 210, 214, 219, 224, 228, 233, 237, - 242, 246, 250, 254, 259, 264, 268, 273, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, - }, - { /* Fourth byte 16-bit table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 9, 13, 17, 21, 25, 29, - 34, 39, 44, 49, 53, 57, 61, 65, - 69, 73, 77, 81, 85, 89, 93, 97, - 102, 106, 110, 114, 118, 122, 126, 130, - 134, 138, 142, 146, 150, 155, 160, 165, - 169, 173, 177, 181, 186, 190, 195, 199, - 203, 208, 213, 217, 221, 225, 229, 233, - 237, 241, 245, 249, 253, 257, 261, 265, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, - }, - { /* Fourth byte 16-bit table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 25, 29, - 33, 37, 41, 45, 50, 55, 59, 63, - 67, 71, 75, 79, 84, 88, 92, 96, - 100, 105, 110, 114, 118, 122, 127, 131, - 135, 140, 145, 149, 153, 157, 162, 166, - 170, 174, 178, 182, 186, 190, 195, 199, - 203, 207, 212, 216, 220, 224, 228, 233, - 238, 242, 246, 250, 255, 259, 264, 268, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, - }, - { /* Fourth byte 16-bit table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - }, - { - { /* Fourth byte 16-bit table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 38, 44, 48, 52, 56, 60, 64, - 68, 72, 76, 80, 84, 90, 96, 102, - 108, 112, 116, 120, 124, 130, 136, 140, - 144, 148, 152, 156, 160, 164, 168, 172, - 176, 180, 184, 188, 192, 196, 200, 206, - 212, 216, 220, 224, 228, 232, 236, 240, - 244, 250, 256, 260, 264, 268, 272, 276, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, - 280, - }, - { /* Fourth byte 16-bit table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 54, 60, 66, - 72, 78, 84, 90, 96, 100, 104, 108, - 112, 116, 120, 124, 128, 134, 140, 144, - 148, 152, 156, 160, 164, 170, 176, 182, - 188, 194, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 262, 268, 274, 280, 284, 288, 292, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, 296, 296, 296, 296, 296, 296, 296, - 296, - }, - { /* Fourth byte 16-bit table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 107, 116, 116, 116, 116, - 116, 120, 124, 128, 132, 138, 144, 150, - 156, 162, 168, 174, 180, 186, 192, 198, - 204, 210, 216, 222, 228, 234, 240, 246, - 252, 256, 260, 264, 268, 272, 276, 282, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, - }, - { /* Fourth byte 16-bit table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 30, 36, 42, - 48, 52, 56, 60, 64, 68, 72, 76, - 80, 86, 92, 98, 104, 110, 116, 122, - 128, 134, 140, 146, 152, 158, 164, 170, - 176, 182, 188, 194, 200, 204, 208, 212, - 216, 222, 228, 234, 240, 246, 252, 258, - 264, 270, 276, 280, 284, 288, 292, 296, - 300, 304, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, 308, 308, 308, 308, 308, 308, 308, - 308, - }, - { /* Fourth byte 16-bit table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 17, 24, 31, 38, 45, - 52, 57, 62, 69, 76, 83, 90, 97, - 104, 109, 114, 121, 128, 135, 142, 142, - 142, 147, 152, 159, 166, 173, 180, 180, - 180, 185, 190, 197, 204, 211, 218, 225, - 232, 237, 242, 249, 256, 263, 270, 277, - 284, 289, 294, 301, 308, 315, 322, 329, - 336, 341, 346, 353, 360, 367, 374, 381, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, 388, 388, 388, 388, 388, 388, 388, - 388, - }, - { /* Fourth byte 16-bit table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 17, 24, 31, 38, 38, - 38, 43, 48, 55, 62, 69, 76, 76, - 76, 81, 86, 93, 100, 107, 114, 121, - 128, 128, 133, 133, 140, 140, 147, 147, - 154, 159, 164, 171, 178, 185, 192, 199, - 206, 211, 216, 223, 230, 237, 244, 251, - 258, 263, 268, 273, 278, 283, 288, 293, - 298, 303, 308, 313, 318, 323, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, 328, 328, 328, 328, 328, 328, 328, - 328, - }, - { /* Fourth byte 16-bit table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 14, 23, 32, 41, 50, 59, - 68, 75, 82, 91, 100, 109, 118, 127, - 136, 143, 150, 159, 168, 177, 186, 195, - 204, 211, 218, 227, 236, 245, 254, 263, - 272, 279, 286, 295, 304, 313, 322, 331, - 340, 347, 354, 363, 372, 381, 390, 399, - 408, 413, 418, 425, 430, 437, 437, 442, - 449, 454, 459, 464, 469, 474, 477, 480, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 483, - 483, - }, - { /* Fourth byte 16-bit table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 14, 21, 26, 33, 33, 38, - 45, 50, 55, 60, 65, 70, 82, 94, - 106, 111, 116, 123, 130, 130, 130, 135, - 142, 147, 152, 157, 162, 162, 174, 186, - 198, 203, 208, 215, 222, 227, 232, 237, - 244, 249, 254, 259, 264, 269, 280, 291, - 293, 293, 293, 300, 305, 312, 312, 317, - 324, 329, 334, 339, 344, 349, 356, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, 359, 359, 359, 359, 359, 359, 359, - 359, - }, - { /* Fourth byte 16-bit table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 10, 15, 20, 25, 30, 35, - 40, 45, 50, 55, 60, 65, 70, 78, - 86, 94, 102, 110, 118, 126, 134, 142, - 150, 158, 166, 174, 182, 190, 207, 221, - 221, 226, 231, 236, 241, 246, 251, 256, - 261, 266, 271, 276, 281, 286, 291, 296, - 301, 306, 311, 316, 321, 326, 331, 336, - 341, 346, 351, 356, 361, 366, 371, 376, - 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, - 381, 381, 381, 381, 381, 381, 381, 381, - 381, - }, - { /* Fourth byte 16-bit table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 27, 42, 51, 66, 75, 84, - 102, 114, 123, 132, 141, 153, 165, 177, - 189, 201, 213, 225, 243, 249, 267, 285, - 300, 312, 330, 348, 360, 369, 378, 390, - 402, 417, 432, 441, 450, 462, 471, 480, - 486, 492, 501, 510, 528, 540, 555, 573, - 585, 594, 603, 621, 633, 651, 660, 675, - 684, 696, 705, 717, 732, 744, 759, 771, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, 777, 777, 777, 777, 777, 777, 777, - 777, - }, - { /* Fourth byte 16-bit table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 15, 24, 33, 45, 54, 63, 72, - 87, 99, 105, 123, 132, 147, 159, 171, - 180, 189, 201, 207, 219, 234, 240, 258, - 267, 271, 275, 279, 283, 287, 291, 295, - 299, 303, 307, 312, 317, 322, 327, 332, - 337, 342, 347, 352, 357, 362, 367, 372, - 377, 382, 385, 387, 389, 392, 394, 396, - 398, 401, 404, 406, 412, 418, 424, 430, - 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, - 442, 442, 442, 442, 442, 442, 442, 442, - 442, - }, - { /* Fourth byte 16-bit table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, - }, - { /* Fourth byte 16-bit table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, - }, - { /* Fourth byte 16-bit table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, - }, - { /* Fourth byte 16-bit table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, - }, - { /* Fourth byte 16-bit table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 164, 168, 172, 176, 180, 184, 188, - 192, 196, 200, 204, 208, 212, 216, 220, - 224, 228, 232, 236, 240, 244, 248, 252, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, 256, 256, 256, 256, 256, 256, 256, - 256, - }, - { /* Fourth byte 16-bit table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 30, 34, 38, - 42, 46, 50, 54, 58, 62, 66, 70, - 74, 78, 82, 86, 90, 94, 98, 102, - 106, 110, 114, 118, 122, 126, 130, 134, - 138, 142, 146, 150, 154, 158, 162, 166, - 170, 174, 178, 182, 186, 190, 194, 198, - 202, 206, 210, 214, 218, 222, 226, 230, - 234, 238, 242, 246, 250, 254, 258, 262, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, - }, - { /* Fourth byte 16-bit table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 125, - 130, 135, 140, 145, 150, 156, 162, 168, - 174, 180, 186, 190, 194, 198, 202, 206, - 210, 214, 218, 222, 226, 230, 234, 238, - 242, 246, 250, 254, 258, 262, 266, 270, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, 274, 274, 274, 274, 274, 274, 274, - 274, - }, - { /* Fourth byte 16-bit table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 98, 104, 110, 116, 122, 126, 130, 134, - 138, 142, 146, 150, 154, 158, 162, 166, - 170, 174, 178, 182, 186, 190, 194, 198, - 202, 206, 210, 214, 218, 222, 226, 230, - 234, 238, 242, 246, 250, 254, 258, 262, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, - }, - { /* Fourth byte 16-bit table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 130, 136, 140, 144, 148, 152, 156, 160, - 164, 168, 172, 176, 180, 184, 188, 192, - 196, 200, 204, 210, 216, 222, 226, 230, - 234, 238, 242, 246, 250, 254, 258, 262, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, 266, 266, 266, 266, 266, 266, 266, - 266, - }, - { /* Fourth byte 16-bit table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 30, 36, 42, - 48, 54, 60, 66, 72, 78, 84, 90, - 96, 102, 108, 114, 120, 126, 132, 138, - 144, 150, 156, 162, 168, 174, 180, 186, - 192, 198, 204, 210, 216, 222, 228, 234, - 240, 246, 252, 258, 264, 270, 276, 282, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, 288, 288, 288, 288, 288, 288, 288, - 288, - }, - { /* Fourth byte 16-bit table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 12, 18, 24, 30, 36, 42, - 48, 54, 60, 66, 72, 78, 84, 90, - 96, 96, 96, 102, 108, 114, 120, 126, - 132, 138, 144, 150, 156, 162, 168, 174, - 180, 186, 192, 198, 204, 210, 216, 222, - 228, 234, 240, 246, 252, 258, 264, 270, - 276, 282, 288, 294, 300, 306, 312, 318, - 324, 330, 336, 342, 348, 354, 360, 366, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 372, 372, - 372, - }, - { /* Fourth byte 16-bit table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 17, 21, 25, 29, - 33, 37, 41, 45, 49, 53, 58, 62, - 66, 70, 74, 79, 83, 87, 91, 96, - 100, 104, 108, 112, 116, 121, 125, 129, - 133, 137, 141, 145, 149, 153, 157, 161, - 165, 169, 173, 177, 181, 185, 189, 193, - 197, 201, 205, 209, 213, 218, 222, 226, - 230, 235, 239, 243, 247, 251, 255, 259, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, - }, - { /* Fourth byte 16-bit table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 105, 109, 113, 117, 121, 125, - 129, 134, 139, 143, 147, 151, 155, 159, - 163, 167, 171, 175, 179, 184, 188, 192, - 196, 200, 205, 209, 213, 217, 221, 225, - 229, 233, 237, 241, 246, 250, 255, 259, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 263, 263, - 263, - }, - { /* Fourth byte 16-bit table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 41, 45, 49, 53, 57, 61, - 66, 70, 75, 80, 84, 88, 92, 96, - 101, 106, 110, 114, 118, 122, 126, 130, - 134, 138, 142, 146, 150, 155, 159, 163, - 167, 171, 175, 179, 183, 187, 191, 195, - 199, 203, 207, 211, 215, 219, 223, 227, - 231, 236, 240, 244, 248, 252, 256, 261, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, - }, - { /* Fourth byte 16-bit table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 45, 49, 53, 57, 61, - 65, 69, 73, 77, 81, 85, 89, 93, - 97, 101, 105, 109, 113, 117, 122, 126, - 130, 134, 138, 142, 147, 151, 155, 159, - 163, 167, 171, 175, 179, 184, 188, 192, - 196, 201, 205, 209, 213, 217, 221, 225, - 230, 235, 240, 244, 249, 253, 257, 261, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, 265, 265, 265, 265, 265, 265, 265, - 265, - }, - { /* Fourth byte 16-bit table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 29, - 33, 37, 41, 45, 49, 53, 58, 62, - 66, 71, 76, 80, 84, 88, 92, 96, - 100, 104, 108, 112, 117, 121, 126, 130, - 135, 139, 143, 147, 152, 156, 160, 165, - 170, 174, 178, 182, 186, 190, 194, 198, - 202, 206, 210, 214, 218, 222, 227, 231, - 236, 240, 245, 249, 254, 259, 264, 268, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, - }, - { /* Fourth byte 16-bit table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 9, 14, 19, 24, 28, 32, - 36, 40, 44, 48, 52, 56, 61, 65, - 69, 73, 77, 82, 86, 91, 96, 100, - 104, 108, 112, 116, 120, 125, 130, 135, - 139, 143, 148, 152, 156, 160, 165, 169, - 173, 177, 181, 185, 190, 194, 198, 202, - 206, 210, 214, 219, 224, 228, 233, 237, - 242, 246, 250, 254, 259, 264, 268, 273, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, 277, 277, 277, 277, 277, 277, 277, - 277, - }, - { /* Fourth byte 16-bit table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 9, 13, 17, 21, 25, 29, - 34, 39, 44, 49, 53, 57, 61, 65, - 69, 73, 77, 81, 85, 89, 93, 97, - 102, 106, 110, 114, 118, 122, 126, 130, - 134, 138, 142, 146, 150, 155, 160, 165, - 169, 173, 177, 181, 186, 190, 195, 199, - 203, 208, 213, 217, 221, 225, 229, 233, - 237, 241, 245, 249, 253, 257, 261, 265, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, 269, 269, 269, 269, 269, 269, 269, - 269, - }, - { /* Fourth byte 16-bit table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 25, 29, - 33, 37, 41, 45, 50, 55, 59, 63, - 67, 71, 75, 79, 84, 88, 92, 96, - 100, 105, 110, 114, 118, 122, 127, 131, - 135, 140, 145, 149, 153, 157, 162, 166, - 170, 174, 178, 182, 186, 190, 195, 199, - 203, 207, 212, 216, 220, 224, 228, 233, - 238, 242, 246, 250, 255, 259, 264, 268, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 272, 272, 272, 272, 272, 272, - 272, - }, - }, -}; - -static const uchar_t u8_decomp_final_tbl[2][19370] = { - { - 0x20, 0x20, 0xCC, 0x88, 0x61, 0x20, 0xCC, 0x84, - 0x32, 0x33, 0x20, 0xCC, 0x81, 0xCE, 0xBC, 0x20, - 0xCC, 0xA7, 0x31, 0x6F, 0x31, 0xE2, 0x81, 0x84, - 0x34, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x33, 0xE2, - 0x81, 0x84, 0x34, 0xF6, 0x41, 0xCC, 0x80, 0xF6, - 0x41, 0xCC, 0x81, 0xF6, 0x41, 0xCC, 0x82, 0xF6, - 0x41, 0xCC, 0x83, 0xF6, 0x41, 0xCC, 0x88, 0xF6, - 0x41, 0xCC, 0x8A, 0xF6, 0x43, 0xCC, 0xA7, 0xF6, - 0x45, 0xCC, 0x80, 0xF6, 0x45, 0xCC, 0x81, 0xF6, - 0x45, 0xCC, 0x82, 0xF6, 0x45, 0xCC, 0x88, 0xF6, - 0x49, 0xCC, 0x80, 0xF6, 0x49, 0xCC, 0x81, 0xF6, - 0x49, 0xCC, 0x82, 0xF6, 0x49, 0xCC, 0x88, 0xF6, - 0x4E, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x80, 0xF6, - 0x4F, 0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xF6, - 0x4F, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x88, 0xF6, - 0x55, 0xCC, 0x80, 0xF6, 0x55, 0xCC, 0x81, 0xF6, - 0x55, 0xCC, 0x82, 0xF6, 0x55, 0xCC, 0x88, 0xF6, - 0x59, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x80, 0xF6, - 0x61, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x82, 0xF6, - 0x61, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x88, 0xF6, - 0x61, 0xCC, 0x8A, 0xF6, 0x63, 0xCC, 0xA7, 0xF6, - 0x65, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x81, 0xF6, - 0x65, 0xCC, 0x82, 0xF6, 0x65, 0xCC, 0x88, 0xF6, - 0x69, 0xCC, 0x80, 0xF6, 0x69, 0xCC, 0x81, 0xF6, - 0x69, 0xCC, 0x82, 0xF6, 0x69, 0xCC, 0x88, 0xF6, - 0x6E, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x80, 0xF6, - 0x6F, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82, 0xF6, - 0x6F, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x88, 0xF6, - 0x75, 0xCC, 0x80, 0xF6, 0x75, 0xCC, 0x81, 0xF6, - 0x75, 0xCC, 0x82, 0xF6, 0x75, 0xCC, 0x88, 0xF6, - 0x79, 0xCC, 0x81, 0xF6, 0x79, 0xCC, 0x88, 0xF6, - 0x41, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x84, 0xF6, - 0x41, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0x86, 0xF6, - 0x41, 0xCC, 0xA8, 0xF6, 0x61, 0xCC, 0xA8, 0xF6, - 0x43, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0x81, 0xF6, - 0x43, 0xCC, 0x82, 0xF6, 0x63, 0xCC, 0x82, 0xF6, - 0x43, 0xCC, 0x87, 0xF6, 0x63, 0xCC, 0x87, 0xF6, - 0x43, 0xCC, 0x8C, 0xF6, 0x63, 0xCC, 0x8C, 0xF6, - 0x44, 0xCC, 0x8C, 0xF6, 0x64, 0xCC, 0x8C, 0xF6, - 0x45, 0xCC, 0x84, 0xF6, 0x65, 0xCC, 0x84, 0xF6, - 0x45, 0xCC, 0x86, 0xF6, 0x65, 0xCC, 0x86, 0xF6, - 0x45, 0xCC, 0x87, 0xF6, 0x65, 0xCC, 0x87, 0xF6, - 0x45, 0xCC, 0xA8, 0xF6, 0x65, 0xCC, 0xA8, 0xF6, - 0x45, 0xCC, 0x8C, 0xF6, 0x65, 0xCC, 0x8C, 0xF6, - 0x47, 0xCC, 0x82, 0xF6, 0x67, 0xCC, 0x82, 0xF6, - 0x47, 0xCC, 0x86, 0xF6, 0x67, 0xCC, 0x86, 0xF6, - 0x47, 0xCC, 0x87, 0xF6, 0x67, 0xCC, 0x87, 0xF6, - 0x47, 0xCC, 0xA7, 0xF6, 0x67, 0xCC, 0xA7, 0xF6, - 0x48, 0xCC, 0x82, 0xF6, 0x68, 0xCC, 0x82, 0xF6, - 0x49, 0xCC, 0x83, 0xF6, 0x69, 0xCC, 0x83, 0xF6, - 0x49, 0xCC, 0x84, 0xF6, 0x69, 0xCC, 0x84, 0xF6, - 0x49, 0xCC, 0x86, 0xF6, 0x69, 0xCC, 0x86, 0xF6, - 0x49, 0xCC, 0xA8, 0xF6, 0x69, 0xCC, 0xA8, 0xF6, - 0x49, 0xCC, 0x87, 0x49, 0x4A, 0x69, 0x6A, 0xF6, - 0x4A, 0xCC, 0x82, 0xF6, 0x6A, 0xCC, 0x82, 0xF6, - 0x4B, 0xCC, 0xA7, 0xF6, 0x6B, 0xCC, 0xA7, 0xF6, - 0x4C, 0xCC, 0x81, 0xF6, 0x6C, 0xCC, 0x81, 0xF6, - 0x4C, 0xCC, 0xA7, 0xF6, 0x6C, 0xCC, 0xA7, 0xF6, - 0x4C, 0xCC, 0x8C, 0xF6, 0x6C, 0xCC, 0x8C, 0x4C, - 0xC2, 0xB7, 0x6C, 0xC2, 0xB7, 0xF6, 0x4E, 0xCC, - 0x81, 0xF6, 0x6E, 0xCC, 0x81, 0xF6, 0x4E, 0xCC, - 0xA7, 0xF6, 0x6E, 0xCC, 0xA7, 0xF6, 0x4E, 0xCC, - 0x8C, 0xF6, 0x6E, 0xCC, 0x8C, 0xCA, 0xBC, 0x6E, - 0xF6, 0x4F, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, 0x84, - 0xF6, 0x4F, 0xCC, 0x86, 0xF6, 0x6F, 0xCC, 0x86, - 0xF6, 0x4F, 0xCC, 0x8B, 0xF6, 0x6F, 0xCC, 0x8B, - 0xF6, 0x52, 0xCC, 0x81, 0xF6, 0x72, 0xCC, 0x81, - 0xF6, 0x52, 0xCC, 0xA7, 0xF6, 0x72, 0xCC, 0xA7, - 0xF6, 0x52, 0xCC, 0x8C, 0xF6, 0x72, 0xCC, 0x8C, - 0xF6, 0x53, 0xCC, 0x81, 0xF6, 0x73, 0xCC, 0x81, - 0xF6, 0x53, 0xCC, 0x82, 0xF6, 0x73, 0xCC, 0x82, - 0xF6, 0x53, 0xCC, 0xA7, 0xF6, 0x73, 0xCC, 0xA7, - 0xF6, 0x53, 0xCC, 0x8C, 0xF6, 0x73, 0xCC, 0x8C, - 0xF6, 0x54, 0xCC, 0xA7, 0xF6, 0x74, 0xCC, 0xA7, - 0xF6, 0x54, 0xCC, 0x8C, 0xF6, 0x74, 0xCC, 0x8C, - 0xF6, 0x55, 0xCC, 0x83, 0xF6, 0x75, 0xCC, 0x83, - 0xF6, 0x55, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x84, - 0xF6, 0x55, 0xCC, 0x86, 0xF6, 0x75, 0xCC, 0x86, - 0xF6, 0x55, 0xCC, 0x8A, 0xF6, 0x75, 0xCC, 0x8A, - 0xF6, 0x55, 0xCC, 0x8B, 0xF6, 0x75, 0xCC, 0x8B, - 0xF6, 0x55, 0xCC, 0xA8, 0xF6, 0x75, 0xCC, 0xA8, - 0xF6, 0x57, 0xCC, 0x82, 0xF6, 0x77, 0xCC, 0x82, - 0xF6, 0x59, 0xCC, 0x82, 0xF6, 0x79, 0xCC, 0x82, - 0xF6, 0x59, 0xCC, 0x88, 0xF6, 0x5A, 0xCC, 0x81, - 0xF6, 0x7A, 0xCC, 0x81, 0xF6, 0x5A, 0xCC, 0x87, - 0xF6, 0x7A, 0xCC, 0x87, 0xF6, 0x5A, 0xCC, 0x8C, - 0xF6, 0x7A, 0xCC, 0x8C, 0x73, 0xF6, 0x4F, 0xCC, - 0x9B, 0xF6, 0x6F, 0xCC, 0x9B, 0xF6, 0x55, 0xCC, - 0x9B, 0xF6, 0x75, 0xCC, 0x9B, 0x44, 0x5A, 0xCC, - 0x8C, 0x44, 0x7A, 0xCC, 0x8C, 0x64, 0x7A, 0xCC, - 0x8C, 0x4C, 0x4A, 0x4C, 0x6A, 0x6C, 0x6A, 0x4E, - 0x4A, 0x4E, 0x6A, 0x6E, 0x6A, 0xF6, 0x41, 0xCC, - 0x8C, 0xF6, 0x61, 0xCC, 0x8C, 0xF6, 0x49, 0xCC, - 0x8C, 0xF6, 0x69, 0xCC, 0x8C, 0xF6, 0x4F, 0xCC, - 0x8C, 0xF6, 0x6F, 0xCC, 0x8C, 0xF6, 0x55, 0xCC, - 0x8C, 0xF6, 0x75, 0xCC, 0x8C, 0xF6, 0x55, 0xCC, - 0x88, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x88, 0xCC, - 0x84, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xF6, - 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x55, 0xCC, - 0x88, 0xCC, 0x8C, 0xF6, 0x75, 0xCC, 0x88, 0xCC, - 0x8C, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xF6, - 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xF6, 0x41, 0xCC, - 0x88, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x88, 0xCC, - 0x84, 0xF6, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xF6, - 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0xC3, 0x86, - 0xCC, 0x84, 0xF6, 0xC3, 0xA6, 0xCC, 0x84, 0xF6, - 0x47, 0xCC, 0x8C, 0xF6, 0x67, 0xCC, 0x8C, 0xF6, - 0x4B, 0xCC, 0x8C, 0xF6, 0x6B, 0xCC, 0x8C, 0xF6, - 0x4F, 0xCC, 0xA8, 0xF6, 0x6F, 0xCC, 0xA8, 0xF6, - 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, - 0xA8, 0xCC, 0x84, 0xF6, 0xC6, 0xB7, 0xCC, 0x8C, - 0xF6, 0xCA, 0x92, 0xCC, 0x8C, 0xF6, 0x6A, 0xCC, - 0x8C, 0x44, 0x5A, 0x44, 0x7A, 0x64, 0x7A, 0xF6, - 0x47, 0xCC, 0x81, 0xF6, 0x67, 0xCC, 0x81, 0xF6, - 0x4E, 0xCC, 0x80, 0xF6, 0x6E, 0xCC, 0x80, 0xF6, - 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xF6, 0x61, 0xCC, - 0x8A, 0xCC, 0x81, 0xF6, 0xC3, 0x86, 0xCC, 0x81, - 0xF6, 0xC3, 0xA6, 0xCC, 0x81, 0xF6, 0xC3, 0x98, - 0xCC, 0x81, 0xF6, 0xC3, 0xB8, 0xCC, 0x81, 0xF6, - 0x41, 0xCC, 0x8F, 0xF6, 0x61, 0xCC, 0x8F, 0xF6, - 0x41, 0xCC, 0x91, 0xF6, 0x61, 0xCC, 0x91, 0xF6, - 0x45, 0xCC, 0x8F, 0xF6, 0x65, 0xCC, 0x8F, 0xF6, - 0x45, 0xCC, 0x91, 0xF6, 0x65, 0xCC, 0x91, 0xF6, - 0x49, 0xCC, 0x8F, 0xF6, 0x69, 0xCC, 0x8F, 0xF6, - 0x49, 0xCC, 0x91, 0xF6, 0x69, 0xCC, 0x91, 0xF6, - 0x4F, 0xCC, 0x8F, 0xF6, 0x6F, 0xCC, 0x8F, 0xF6, - 0x4F, 0xCC, 0x91, 0xF6, 0x6F, 0xCC, 0x91, 0xF6, - 0x52, 0xCC, 0x8F, 0xF6, 0x72, 0xCC, 0x8F, 0xF6, - 0x52, 0xCC, 0x91, 0xF6, 0x72, 0xCC, 0x91, 0xF6, - 0x55, 0xCC, 0x8F, 0xF6, 0x75, 0xCC, 0x8F, 0xF6, - 0x55, 0xCC, 0x91, 0xF6, 0x75, 0xCC, 0x91, 0xF6, - 0x53, 0xCC, 0xA6, 0xF6, 0x73, 0xCC, 0xA6, 0xF6, - 0x54, 0xCC, 0xA6, 0xF6, 0x74, 0xCC, 0xA6, 0xF6, - 0x48, 0xCC, 0x8C, 0xF6, 0x68, 0xCC, 0x8C, 0xF6, - 0x41, 0xCC, 0x87, 0xF6, 0x61, 0xCC, 0x87, 0xF6, - 0x45, 0xCC, 0xA7, 0xF6, 0x65, 0xCC, 0xA7, 0xF6, - 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, - 0x88, 0xCC, 0x84, 0xF6, 0x4F, 0xCC, 0x83, 0xCC, - 0x84, 0xF6, 0x6F, 0xCC, 0x83, 0xCC, 0x84, 0xF6, - 0x4F, 0xCC, 0x87, 0xF6, 0x6F, 0xCC, 0x87, 0xF6, - 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, - 0x87, 0xCC, 0x84, 0xF6, 0x59, 0xCC, 0x84, 0xF6, - 0x79, 0xCC, 0x84, 0x68, 0xC9, 0xA6, 0x6A, 0x72, - 0xC9, 0xB9, 0xC9, 0xBB, 0xCA, 0x81, 0x77, 0x79, - 0x20, 0xCC, 0x86, 0x20, 0xCC, 0x87, 0x20, 0xCC, - 0x8A, 0x20, 0xCC, 0xA8, 0x20, 0xCC, 0x83, 0x20, - 0xCC, 0x8B, 0xC9, 0xA3, 0x6C, 0x73, 0x78, 0xCA, - 0x95, 0xF6, 0xCC, 0x80, 0xF6, 0xCC, 0x81, 0xF6, - 0xCC, 0x93, 0xF6, 0xCC, 0x88, 0xCC, 0x81, 0xF6, - 0xCA, 0xB9, 0x20, 0xCD, 0x85, 0xF6, 0x3B, 0x20, - 0xCC, 0x81, 0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81, - 0x20, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0xCE, 0x91, - 0xCC, 0x81, 0xF6, 0xC2, 0xB7, 0xF6, 0xCE, 0x95, - 0xCC, 0x81, 0xF6, 0xCE, 0x97, 0xCC, 0x81, 0xF6, - 0xCE, 0x99, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, - 0x81, 0xF6, 0xCE, 0xA5, 0xCC, 0x81, 0xF6, 0xCE, - 0xA9, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x88, - 0xCC, 0x81, 0xF6, 0xCE, 0x99, 0xCC, 0x88, 0xF6, - 0xCE, 0xA5, 0xCC, 0x88, 0xF6, 0xCE, 0xB1, 0xCC, - 0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x81, 0xF6, 0xCE, - 0xB7, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x81, - 0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6, - 0xCE, 0xB9, 0xCC, 0x88, 0xF6, 0xCF, 0x85, 0xCC, - 0x88, 0xF6, 0xCE, 0xBF, 0xCC, 0x81, 0xF6, 0xCF, - 0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC, 0x81, - 0xCE, 0xB2, 0xCE, 0xB8, 0xCE, 0xA5, 0xF5, 0x05, - 0xCF, 0x92, 0xCC, 0x81, 0xCE, 0xA5, 0xCC, 0x81, - 0xF5, 0x05, 0xCF, 0x92, 0xCC, 0x88, 0xCE, 0xA5, - 0xCC, 0x88, 0xCF, 0x86, 0xCF, 0x80, 0xCE, 0xBA, - 0xCF, 0x81, 0xCF, 0x82, 0xCE, 0x98, 0xCE, 0xB5, - 0xF6, 0xD0, 0x95, 0xCC, 0x80, 0xF6, 0xD0, 0x95, - 0xCC, 0x88, 0xF6, 0xD0, 0x93, 0xCC, 0x81, 0xF6, - 0xD0, 0x86, 0xCC, 0x88, 0xF6, 0xD0, 0x9A, 0xCC, - 0x81, 0xF6, 0xD0, 0x98, 0xCC, 0x80, 0xF6, 0xD0, - 0xA3, 0xCC, 0x86, 0xF6, 0xD0, 0x98, 0xCC, 0x86, - 0xF6, 0xD0, 0xB8, 0xCC, 0x86, 0xF6, 0xD0, 0xB5, - 0xCC, 0x80, 0xF6, 0xD0, 0xB5, 0xCC, 0x88, 0xF6, - 0xD0, 0xB3, 0xCC, 0x81, 0xF6, 0xD1, 0x96, 0xCC, - 0x88, 0xF6, 0xD0, 0xBA, 0xCC, 0x81, 0xF6, 0xD0, - 0xB8, 0xCC, 0x80, 0xF6, 0xD1, 0x83, 0xCC, 0x86, - 0xF6, 0xD1, 0xB4, 0xCC, 0x8F, 0xF6, 0xD1, 0xB5, - 0xCC, 0x8F, 0xF6, 0xD0, 0x96, 0xCC, 0x86, 0xF6, - 0xD0, 0xB6, 0xCC, 0x86, 0xF6, 0xD0, 0x90, 0xCC, - 0x86, 0xF6, 0xD0, 0xB0, 0xCC, 0x86, 0xF6, 0xD0, - 0x90, 0xCC, 0x88, 0xF6, 0xD0, 0xB0, 0xCC, 0x88, - 0xF6, 0xD0, 0x95, 0xCC, 0x86, 0xF6, 0xD0, 0xB5, - 0xCC, 0x86, 0xF6, 0xD3, 0x98, 0xCC, 0x88, 0xF6, - 0xD3, 0x99, 0xCC, 0x88, 0xF6, 0xD0, 0x96, 0xCC, - 0x88, 0xF6, 0xD0, 0xB6, 0xCC, 0x88, 0xF6, 0xD0, - 0x97, 0xCC, 0x88, 0xF6, 0xD0, 0xB7, 0xCC, 0x88, - 0xF6, 0xD0, 0x98, 0xCC, 0x84, 0xF6, 0xD0, 0xB8, - 0xCC, 0x84, 0xF6, 0xD0, 0x98, 0xCC, 0x88, 0xF6, - 0xD0, 0xB8, 0xCC, 0x88, 0xF6, 0xD0, 0x9E, 0xCC, - 0x88, 0xF6, 0xD0, 0xBE, 0xCC, 0x88, 0xF6, 0xD3, - 0xA8, 0xCC, 0x88, 0xF6, 0xD3, 0xA9, 0xCC, 0x88, - 0xF6, 0xD0, 0xAD, 0xCC, 0x88, 0xF6, 0xD1, 0x8D, - 0xCC, 0x88, 0xF6, 0xD0, 0xA3, 0xCC, 0x84, 0xF6, - 0xD1, 0x83, 0xCC, 0x84, 0xF6, 0xD0, 0xA3, 0xCC, - 0x88, 0xF6, 0xD1, 0x83, 0xCC, 0x88, 0xF6, 0xD0, - 0xA3, 0xCC, 0x8B, 0xF6, 0xD1, 0x83, 0xCC, 0x8B, - 0xF6, 0xD0, 0xA7, 0xCC, 0x88, 0xF6, 0xD1, 0x87, - 0xCC, 0x88, 0xF6, 0xD0, 0xAB, 0xCC, 0x88, 0xF6, - 0xD1, 0x8B, 0xCC, 0x88, 0xD5, 0xA5, 0xD6, 0x82, - 0xF6, 0xD8, 0xA7, 0xD9, 0x93, 0xF6, 0xD8, 0xA7, - 0xD9, 0x94, 0xF6, 0xD9, 0x88, 0xD9, 0x94, 0xF6, - 0xD8, 0xA7, 0xD9, 0x95, 0xF6, 0xD9, 0x8A, 0xD9, - 0x94, 0xD8, 0xA7, 0xD9, 0xB4, 0xD9, 0x88, 0xD9, - 0xB4, 0xDB, 0x87, 0xD9, 0xB4, 0xD9, 0x8A, 0xD9, - 0xB4, 0xF6, 0xDB, 0x95, 0xD9, 0x94, 0xF6, 0xDB, - 0x81, 0xD9, 0x94, 0xF6, 0xDB, 0x92, 0xD9, 0x94, - 0xF6, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, 0xBC, 0xF6, - 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, - 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, - 0x95, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x96, - 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x97, 0xE0, - 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x9C, 0xE0, 0xA4, - 0xBC, 0xF6, 0xE0, 0xA4, 0xA1, 0xE0, 0xA4, 0xBC, - 0xF6, 0xE0, 0xA4, 0xA2, 0xE0, 0xA4, 0xBC, 0xF6, - 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, - 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA7, - 0x87, 0xE0, 0xA6, 0xBE, 0xF6, 0xE0, 0xA7, 0x87, - 0xE0, 0xA7, 0x97, 0xF6, 0xE0, 0xA6, 0xA1, 0xE0, - 0xA6, 0xBC, 0xF6, 0xE0, 0xA6, 0xA2, 0xE0, 0xA6, - 0xBC, 0xF6, 0xE0, 0xA6, 0xAF, 0xE0, 0xA6, 0xBC, - 0xF6, 0xE0, 0xA8, 0xB2, 0xE0, 0xA8, 0xBC, 0xF6, - 0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, - 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8, - 0x97, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8, 0x9C, - 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8, 0xAB, 0xE0, - 0xA8, 0xBC, 0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, - 0x96, 0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAC, 0xBE, - 0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, 0x97, 0xF6, - 0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, 0xF6, 0xE0, - 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0xF6, 0xE0, 0xAE, - 0x92, 0xE0, 0xAF, 0x97, 0xF6, 0xE0, 0xAF, 0x86, - 0xE0, 0xAE, 0xBE, 0xF6, 0xE0, 0xAF, 0x87, 0xE0, - 0xAE, 0xBE, 0xF6, 0xE0, 0xAF, 0x86, 0xE0, 0xAF, - 0x97, 0xF6, 0xE0, 0xB1, 0x86, 0xE0, 0xB1, 0x96, - 0xF6, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, 0x95, 0xF6, - 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95, 0xF6, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0xF6, 0xE0, 0xB3, - 0x86, 0xE0, 0xB3, 0x82, 0xF6, 0xE0, 0xB3, 0x86, - 0xE0, 0xB3, 0x82, 0xE0, 0xB3, 0x95, 0xF6, 0xE0, - 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0xF6, 0xE0, 0xB5, - 0x87, 0xE0, 0xB4, 0xBE, 0xF6, 0xE0, 0xB5, 0x86, - 0xE0, 0xB5, 0x97, 0xF6, 0xE0, 0xB7, 0x99, 0xE0, - 0xB7, 0x8A, 0xF6, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, - 0x8F, 0xF6, 0xE0, 0xB7, 0x99, 0xE0, 0xB7, 0x8F, - 0xE0, 0xB7, 0x8A, 0xF6, 0xE0, 0xB7, 0x99, 0xE0, - 0xB7, 0x9F, 0xE0, 0xB9, 0x8D, 0xE0, 0xB8, 0xB2, - 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, 0xE0, 0xBA, - 0xAB, 0xE0, 0xBA, 0x99, 0xE0, 0xBA, 0xAB, 0xE0, - 0xBA, 0xA1, 0xE0, 0xBC, 0x8B, 0xF6, 0xE0, 0xBD, - 0x82, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x8C, - 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x91, 0xE0, - 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x96, 0xE0, 0xBE, - 0xB7, 0xF6, 0xE0, 0xBD, 0x9B, 0xE0, 0xBE, 0xB7, - 0xF6, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, 0xB5, 0xF6, - 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, 0xF6, 0xE0, - 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xF6, 0xE0, 0xBE, - 0xB2, 0xE0, 0xBE, 0x80, 0xE0, 0xBE, 0xB2, 0xE0, - 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0, 0xBE, - 0xB3, 0xE0, 0xBE, 0x80, 0xE0, 0xBE, 0xB3, 0xE0, - 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0, 0xBD, - 0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0, 0xBE, 0x92, - 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0x9C, 0xE0, - 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xA1, 0xE0, 0xBE, - 0xB7, 0xF6, 0xE0, 0xBE, 0xA6, 0xE0, 0xBE, 0xB7, - 0xF6, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, 0xB7, 0xF6, - 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, 0xF6, 0xE1, - 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0xF6, 0x41, 0xCC, - 0xA5, 0xF6, 0x61, 0xCC, 0xA5, 0xF6, 0x42, 0xCC, - 0x87, 0xF6, 0x62, 0xCC, 0x87, 0xF6, 0x42, 0xCC, - 0xA3, 0xF6, 0x62, 0xCC, 0xA3, 0xF6, 0x42, 0xCC, - 0xB1, 0xF6, 0x62, 0xCC, 0xB1, 0xF6, 0x43, 0xCC, - 0xA7, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0xA7, 0xCC, - 0x81, 0xF6, 0x44, 0xCC, 0x87, 0xF6, 0x64, 0xCC, - 0x87, 0xF6, 0x44, 0xCC, 0xA3, 0xF6, 0x64, 0xCC, - 0xA3, 0xF6, 0x44, 0xCC, 0xB1, 0xF6, 0x64, 0xCC, - 0xB1, 0xF6, 0x44, 0xCC, 0xA7, 0xF6, 0x64, 0xCC, - 0xA7, 0xF6, 0x44, 0xCC, 0xAD, 0xF6, 0x64, 0xCC, - 0xAD, 0xF6, 0x45, 0xCC, 0x84, 0xCC, 0x80, 0xF6, - 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xF6, 0x45, 0xCC, - 0x84, 0xCC, 0x81, 0xF6, 0x65, 0xCC, 0x84, 0xCC, - 0x81, 0xF6, 0x45, 0xCC, 0xAD, 0xF6, 0x65, 0xCC, - 0xAD, 0xF6, 0x45, 0xCC, 0xB0, 0xF6, 0x65, 0xCC, - 0xB0, 0xF6, 0x45, 0xCC, 0xA7, 0xCC, 0x86, 0xF6, - 0x65, 0xCC, 0xA7, 0xCC, 0x86, 0xF6, 0x46, 0xCC, - 0x87, 0xF6, 0x66, 0xCC, 0x87, 0xF6, 0x47, 0xCC, - 0x84, 0xF6, 0x67, 0xCC, 0x84, 0xF6, 0x48, 0xCC, - 0x87, 0xF6, 0x68, 0xCC, 0x87, 0xF6, 0x48, 0xCC, - 0xA3, 0xF6, 0x68, 0xCC, 0xA3, 0xF6, 0x48, 0xCC, - 0x88, 0xF6, 0x68, 0xCC, 0x88, 0xF6, 0x48, 0xCC, - 0xA7, 0xF6, 0x68, 0xCC, 0xA7, 0xF6, 0x48, 0xCC, - 0xAE, 0xF6, 0x68, 0xCC, 0xAE, 0xF6, 0x49, 0xCC, - 0xB0, 0xF6, 0x69, 0xCC, 0xB0, 0xF6, 0x49, 0xCC, - 0x88, 0xCC, 0x81, 0xF6, 0x69, 0xCC, 0x88, 0xCC, - 0x81, 0xF6, 0x4B, 0xCC, 0x81, 0xF6, 0x6B, 0xCC, - 0x81, 0xF6, 0x4B, 0xCC, 0xA3, 0xF6, 0x6B, 0xCC, - 0xA3, 0xF6, 0x4B, 0xCC, 0xB1, 0xF6, 0x6B, 0xCC, - 0xB1, 0xF6, 0x4C, 0xCC, 0xA3, 0xF6, 0x6C, 0xCC, - 0xA3, 0xF6, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, 0xF6, - 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xF6, 0x4C, 0xCC, - 0xB1, 0xF6, 0x6C, 0xCC, 0xB1, 0xF6, 0x4C, 0xCC, - 0xAD, 0xF6, 0x6C, 0xCC, 0xAD, 0xF6, 0x4D, 0xCC, - 0x81, 0xF6, 0x6D, 0xCC, 0x81, 0xF6, 0x4D, 0xCC, - 0x87, 0xF6, 0x6D, 0xCC, 0x87, 0xF6, 0x4D, 0xCC, - 0xA3, 0xF6, 0x6D, 0xCC, 0xA3, 0xF6, 0x4E, 0xCC, - 0x87, 0xF6, 0x6E, 0xCC, 0x87, 0xF6, 0x4E, 0xCC, - 0xA3, 0xF6, 0x6E, 0xCC, 0xA3, 0xF6, 0x4E, 0xCC, - 0xB1, 0xF6, 0x6E, 0xCC, 0xB1, 0xF6, 0x4E, 0xCC, - 0xAD, 0xF6, 0x6E, 0xCC, 0xAD, 0xF6, 0x4F, 0xCC, - 0x83, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x83, 0xCC, - 0x81, 0xF6, 0x4F, 0xCC, 0x83, 0xCC, 0x88, 0xF6, - 0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xF6, 0x4F, 0xCC, - 0x84, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x84, 0xCC, - 0x80, 0xF6, 0x4F, 0xCC, 0x84, 0xCC, 0x81, 0xF6, - 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xF6, 0x50, 0xCC, - 0x81, 0xF6, 0x70, 0xCC, 0x81, 0xF6, 0x50, 0xCC, - 0x87, 0xF6, 0x70, 0xCC, 0x87, 0xF6, 0x52, 0xCC, - 0x87, 0xF6, 0x72, 0xCC, 0x87, 0xF6, 0x52, 0xCC, - 0xA3, 0xF6, 0x72, 0xCC, 0xA3, 0xF6, 0x52, 0xCC, - 0xA3, 0xCC, 0x84, 0xF6, 0x72, 0xCC, 0xA3, 0xCC, - 0x84, 0xF6, 0x52, 0xCC, 0xB1, 0xF6, 0x72, 0xCC, - 0xB1, 0xF6, 0x53, 0xCC, 0x87, 0xF6, 0x73, 0xCC, - 0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xF6, 0x73, 0xCC, - 0xA3, 0xF6, 0x53, 0xCC, 0x81, 0xCC, 0x87, 0xF6, - 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xF6, 0x53, 0xCC, - 0x8C, 0xCC, 0x87, 0xF6, 0x73, 0xCC, 0x8C, 0xCC, - 0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xCC, 0x87, 0xF6, - 0x73, 0xCC, 0xA3, 0xCC, 0x87, 0xF6, 0x54, 0xCC, - 0x87, 0xF6, 0x74, 0xCC, 0x87, 0xF6, 0x54, 0xCC, - 0xA3, 0xF6, 0x74, 0xCC, 0xA3, 0xF6, 0x54, 0xCC, - 0xB1, 0xF6, 0x74, 0xCC, 0xB1, 0xF6, 0x54, 0xCC, - 0xAD, 0xF6, 0x74, 0xCC, 0xAD, 0xF6, 0x55, 0xCC, - 0xA4, 0xF6, 0x75, 0xCC, 0xA4, 0xF6, 0x55, 0xCC, - 0xB0, 0xF6, 0x75, 0xCC, 0xB0, 0xF6, 0x55, 0xCC, - 0xAD, 0xF6, 0x75, 0xCC, 0xAD, 0xF6, 0x55, 0xCC, - 0x83, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x83, 0xCC, - 0x81, 0xF6, 0x55, 0xCC, 0x84, 0xCC, 0x88, 0xF6, - 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xF6, 0x56, 0xCC, - 0x83, 0xF6, 0x76, 0xCC, 0x83, 0xF6, 0x56, 0xCC, - 0xA3, 0xF6, 0x76, 0xCC, 0xA3, 0xF6, 0x57, 0xCC, - 0x80, 0xF6, 0x77, 0xCC, 0x80, 0xF6, 0x57, 0xCC, - 0x81, 0xF6, 0x77, 0xCC, 0x81, 0xF6, 0x57, 0xCC, - 0x88, 0xF6, 0x77, 0xCC, 0x88, 0xF6, 0x57, 0xCC, - 0x87, 0xF6, 0x77, 0xCC, 0x87, 0xF6, 0x57, 0xCC, - 0xA3, 0xF6, 0x77, 0xCC, 0xA3, 0xF6, 0x58, 0xCC, - 0x87, 0xF6, 0x78, 0xCC, 0x87, 0xF6, 0x58, 0xCC, - 0x88, 0xF6, 0x78, 0xCC, 0x88, 0xF6, 0x59, 0xCC, - 0x87, 0xF6, 0x79, 0xCC, 0x87, 0xF6, 0x5A, 0xCC, - 0x82, 0xF6, 0x7A, 0xCC, 0x82, 0xF6, 0x5A, 0xCC, - 0xA3, 0xF6, 0x7A, 0xCC, 0xA3, 0xF6, 0x5A, 0xCC, - 0xB1, 0xF6, 0x7A, 0xCC, 0xB1, 0xF6, 0x68, 0xCC, - 0xB1, 0xF6, 0x74, 0xCC, 0x88, 0xF6, 0x77, 0xCC, - 0x8A, 0xF6, 0x79, 0xCC, 0x8A, 0x61, 0xCA, 0xBE, - 0xF5, 0x05, 0xC5, 0xBF, 0xCC, 0x87, 0x73, 0xCC, - 0x87, 0xF6, 0x41, 0xCC, 0xA3, 0xF6, 0x61, 0xCC, - 0xA3, 0xF6, 0x41, 0xCC, 0x89, 0xF6, 0x61, 0xCC, - 0x89, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x81, 0xF6, - 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x41, 0xCC, - 0x82, 0xCC, 0x80, 0xF6, 0x61, 0xCC, 0x82, 0xCC, - 0x80, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x89, 0xF6, - 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x41, 0xCC, - 0x82, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x82, 0xCC, - 0x83, 0xF6, 0x41, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, - 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x41, 0xCC, - 0x86, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x86, 0xCC, - 0x81, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x80, 0xF6, - 0x61, 0xCC, 0x86, 0xCC, 0x80, 0xF6, 0x41, 0xCC, - 0x86, 0xCC, 0x89, 0xF6, 0x61, 0xCC, 0x86, 0xCC, - 0x89, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x83, 0xF6, - 0x61, 0xCC, 0x86, 0xCC, 0x83, 0xF6, 0x41, 0xCC, - 0xA3, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0xA3, 0xCC, - 0x86, 0xF6, 0x45, 0xCC, 0xA3, 0xF6, 0x65, 0xCC, - 0xA3, 0xF6, 0x45, 0xCC, 0x89, 0xF6, 0x65, 0xCC, - 0x89, 0xF6, 0x45, 0xCC, 0x83, 0xF6, 0x65, 0xCC, - 0x83, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x81, 0xF6, - 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x45, 0xCC, - 0x82, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x82, 0xCC, - 0x80, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x89, 0xF6, - 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x45, 0xCC, - 0x82, 0xCC, 0x83, 0xF6, 0x65, 0xCC, 0x82, 0xCC, - 0x83, 0xF6, 0x45, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, - 0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x49, 0xCC, - 0x89, 0xF6, 0x69, 0xCC, 0x89, 0xF6, 0x49, 0xCC, - 0xA3, 0xF6, 0x69, 0xCC, 0xA3, 0xF6, 0x4F, 0xCC, - 0xA3, 0xF6, 0x6F, 0xCC, 0xA3, 0xF6, 0x4F, 0xCC, - 0x89, 0xF6, 0x6F, 0xCC, 0x89, 0xF6, 0x4F, 0xCC, - 0x82, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82, 0xCC, - 0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x80, 0xF6, - 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x4F, 0xCC, - 0x82, 0xCC, 0x89, 0xF6, 0x6F, 0xCC, 0x82, 0xCC, - 0x89, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x83, 0xF6, - 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, - 0xA3, 0xCC, 0x82, 0xF6, 0x6F, 0xCC, 0xA3, 0xCC, - 0x82, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, 0xF6, - 0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xF6, 0x4F, 0xCC, - 0x9B, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x9B, 0xCC, - 0x80, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x89, 0xF6, - 0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xF6, 0x4F, 0xCC, - 0x9B, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x9B, 0xCC, - 0x83, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, 0xF6, - 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xF6, 0x55, 0xCC, - 0xA3, 0xF6, 0x75, 0xCC, 0xA3, 0xF6, 0x55, 0xCC, - 0x89, 0xF6, 0x75, 0xCC, 0x89, 0xF6, 0x55, 0xCC, - 0x9B, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x9B, 0xCC, - 0x81, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x80, 0xF6, - 0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xF6, 0x55, 0xCC, - 0x9B, 0xCC, 0x89, 0xF6, 0x75, 0xCC, 0x9B, 0xCC, - 0x89, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x83, 0xF6, - 0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xF6, 0x55, 0xCC, - 0x9B, 0xCC, 0xA3, 0xF6, 0x75, 0xCC, 0x9B, 0xCC, - 0xA3, 0xF6, 0x59, 0xCC, 0x80, 0xF6, 0x79, 0xCC, - 0x80, 0xF6, 0x59, 0xCC, 0xA3, 0xF6, 0x79, 0xCC, - 0xA3, 0xF6, 0x59, 0xCC, 0x89, 0xF6, 0x79, 0xCC, - 0x89, 0xF6, 0x59, 0xCC, 0x83, 0xF6, 0x79, 0xCC, - 0x83, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xF6, 0xCE, - 0xB1, 0xCC, 0x94, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, - 0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, - 0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, 0x81, - 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xF6, - 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCE, - 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0x91, - 0xCC, 0x93, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xF6, - 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, - 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0x91, - 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCC, - 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCC, 0x93, - 0xCD, 0x82, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCD, - 0x82, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xF6, 0xCE, - 0xB5, 0xCC, 0x94, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, - 0xCC, 0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, - 0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, 0x81, - 0xF6, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, 0xF6, - 0xCE, 0x95, 0xCC, 0x93, 0xF6, 0xCE, 0x95, 0xCC, - 0x94, 0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x80, - 0xF6, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, 0xF6, - 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, - 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, - 0xCC, 0x93, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xF6, - 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xB7, - 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC, - 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC, 0x93, - 0xCD, 0x82, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, - 0x82, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xF6, 0xCE, - 0x97, 0xCC, 0x94, 0xF6, 0xCE, 0x97, 0xCC, 0x93, - 0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, - 0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, - 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, 0xF6, - 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCE, - 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xB9, - 0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0xCC, 0x94, 0xF6, - 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, - 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xB9, - 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, - 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x93, - 0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x94, 0xCD, - 0x82, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xF6, 0xCE, - 0x99, 0xCC, 0x94, 0xF6, 0xCE, 0x99, 0xCC, 0x93, - 0xCC, 0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x94, 0xCC, - 0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xCC, 0x81, - 0xF6, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, 0xF6, - 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCE, - 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xBF, - 0xCC, 0x93, 0xF6, 0xCE, 0xBF, 0xCC, 0x94, 0xF6, - 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, - 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xBF, - 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xBF, 0xCC, - 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, 0x93, - 0xF6, 0xCE, 0x9F, 0xCC, 0x94, 0xF6, 0xCE, 0x9F, - 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC, - 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC, 0x93, - 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, 0x94, 0xCC, - 0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xF6, 0xCF, - 0x85, 0xCC, 0x94, 0xF6, 0xCF, 0x85, 0xCC, 0x93, - 0xCC, 0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x94, 0xCC, - 0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xCC, 0x81, - 0xF6, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, 0xF6, - 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCF, - 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xA5, - 0xCC, 0x94, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, - 0x80, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, 0x81, - 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, 0xF6, - 0xCF, 0x89, 0xCC, 0x93, 0xF6, 0xCF, 0x89, 0xCC, - 0x94, 0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x80, - 0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, 0xF6, - 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCF, 0x89, - 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCF, 0x89, 0xCC, - 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, - 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xF6, 0xCE, 0xA9, - 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC, - 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, - 0xCC, 0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, - 0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x82, - 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, 0xF6, - 0xCE, 0xB1, 0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC, - 0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x80, 0xF6, 0xCE, - 0xB5, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC, 0x80, - 0xF6, 0xCE, 0xB7, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, - 0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC, 0x81, 0xF6, - 0xCE, 0xBF, 0xCC, 0x80, 0xF6, 0xCE, 0xBF, 0xCC, - 0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x80, 0xF6, 0xCF, - 0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC, 0x80, - 0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xF6, 0xCE, 0xB1, - 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC, - 0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, - 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC, - 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, - 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, - 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF6, - 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, - 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xCD, - 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCD, 0x85, - 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, 0xF6, - 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, - 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xCD, - 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x81, - 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCC, - 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, - 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, - 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, - 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, - 0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x93, - 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, - 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, - 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, - 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF6, - 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, - 0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, 0xCD, - 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x85, - 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, 0xF6, - 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, - 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, 0xCD, - 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x81, - 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, - 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, - 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, - 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCF, 0x89, - 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC, - 0x94, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x93, - 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC, - 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89, - 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCF, - 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, 0xF6, - 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, 0x85, - 0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, 0xCD, - 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, 0x85, - 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, 0xF6, - 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, 0x85, - 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, 0xCD, - 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x81, - 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, - 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, - 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, - 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, - 0xCC, 0x86, 0xF6, 0xCE, 0xB1, 0xCC, 0x84, 0xF6, - 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, - 0xB1, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC, 0x81, - 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCD, 0x82, 0xF6, - 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, - 0x91, 0xCC, 0x86, 0xF6, 0xCE, 0x91, 0xCC, 0x84, - 0xF6, 0xCE, 0x91, 0xCC, 0x80, 0xF6, 0xCE, 0x91, - 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCD, 0x85, 0x20, - 0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0x20, 0xCC, 0x93, - 0x20, 0xCD, 0x82, 0xF5, 0x05, 0xC2, 0xA8, 0xCD, - 0x82, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE, - 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, - 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x81, 0xCD, - 0x85, 0xF6, 0xCE, 0xB7, 0xCD, 0x82, 0xF6, 0xCE, - 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x95, - 0xCC, 0x80, 0xF6, 0xCE, 0x95, 0xCC, 0x81, 0xF6, - 0xCE, 0x97, 0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC, - 0x81, 0xF6, 0xCE, 0x97, 0xCD, 0x85, 0xF5, 0x06, - 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0x20, 0xCC, 0x93, - 0xCC, 0x80, 0xF5, 0x06, 0xE1, 0xBE, 0xBF, 0xCC, - 0x81, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xF5, 0x06, - 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0x20, 0xCC, 0x93, - 0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x86, 0xF6, - 0xCE, 0xB9, 0xCC, 0x84, 0xF6, 0xCE, 0xB9, 0xCC, - 0x88, 0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC, 0x88, - 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCD, 0x82, 0xF6, - 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE, - 0x99, 0xCC, 0x86, 0xF6, 0xCE, 0x99, 0xCC, 0x84, - 0xF6, 0xCE, 0x99, 0xCC, 0x80, 0xF6, 0xCE, 0x99, - 0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE, 0xCC, - 0x80, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xF5, 0x06, - 0xE1, 0xBF, 0xBE, 0xCC, 0x81, 0x20, 0xCC, 0x94, - 0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE, 0xCD, - 0x82, 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCF, - 0x85, 0xCC, 0x86, 0xF6, 0xCF, 0x85, 0xCC, 0x84, - 0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, 0xF6, - 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0xCF, - 0x81, 0xCC, 0x93, 0xF6, 0xCF, 0x81, 0xCC, 0x94, - 0xF6, 0xCF, 0x85, 0xCD, 0x82, 0xF6, 0xCF, 0x85, - 0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE, 0xA5, 0xCC, - 0x86, 0xF6, 0xCE, 0xA5, 0xCC, 0x84, 0xF6, 0xCE, - 0xA5, 0xCC, 0x80, 0xF6, 0xCE, 0xA5, 0xCC, 0x81, - 0xF6, 0xCE, 0xA1, 0xCC, 0x94, 0xF5, 0x05, 0xC2, - 0xA8, 0xCC, 0x80, 0x20, 0xCC, 0x88, 0xCC, 0x80, - 0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81, 0x20, 0xCC, - 0x88, 0xCC, 0x81, 0xF6, 0x60, 0xF6, 0xCF, 0x89, - 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCD, - 0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xCD, 0x85, - 0xF6, 0xCF, 0x89, 0xCD, 0x82, 0xF6, 0xCF, 0x89, - 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x9F, 0xCC, - 0x80, 0xF6, 0xCE, 0x9F, 0xCC, 0x81, 0xF6, 0xCE, - 0xA9, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC, 0x81, - 0xF6, 0xCE, 0xA9, 0xCD, 0x85, 0xF5, 0x03, 0xC2, - 0xB4, 0x20, 0xCC, 0x81, 0x20, 0xCC, 0x94, 0xF5, - 0x04, 0xE2, 0x80, 0x82, 0x20, 0xF5, 0x04, 0xE2, - 0x80, 0x83, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0xE2, 0x80, 0x90, 0x20, - 0xCC, 0xB3, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, - 0x20, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, - 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, - 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0x21, - 0x21, 0x20, 0xCC, 0x85, 0x3F, 0x3F, 0x3F, 0x21, - 0x21, 0x3F, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x20, 0x30, - 0x69, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2B, - 0xE2, 0x88, 0x92, 0x3D, 0x28, 0x29, 0x6E, 0x30, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 0x2B, 0xE2, 0x88, 0x92, 0x3D, 0x28, 0x29, - 0x52, 0x73, 0x61, 0x2F, 0x63, 0x61, 0x2F, 0x73, - 0x43, 0xC2, 0xB0, 0x43, 0x63, 0x2F, 0x6F, 0x63, - 0x2F, 0x75, 0xC6, 0x90, 0xC2, 0xB0, 0x46, 0x67, - 0x48, 0x48, 0x48, 0x68, 0xC4, 0xA7, 0x49, 0x49, - 0x4C, 0x6C, 0x4E, 0x4E, 0x6F, 0x50, 0x51, 0x52, - 0x52, 0x52, 0x53, 0x4D, 0x54, 0x45, 0x4C, 0x54, - 0x4D, 0x5A, 0xF6, 0xCE, 0xA9, 0x5A, 0xF6, 0x4B, - 0xF6, 0x41, 0xCC, 0x8A, 0x42, 0x43, 0x65, 0x45, - 0x46, 0x4D, 0x6F, 0xD7, 0x90, 0xD7, 0x91, 0xD7, - 0x92, 0xD7, 0x93, 0x69, 0xCE, 0xB3, 0xCE, 0x93, - 0xCE, 0xA0, 0xE2, 0x88, 0x91, 0x44, 0x64, 0x65, - 0x69, 0x6A, 0x31, 0xE2, 0x81, 0x84, 0x33, 0x32, - 0xE2, 0x81, 0x84, 0x33, 0x31, 0xE2, 0x81, 0x84, - 0x35, 0x32, 0xE2, 0x81, 0x84, 0x35, 0x33, 0xE2, - 0x81, 0x84, 0x35, 0x34, 0xE2, 0x81, 0x84, 0x35, - 0x31, 0xE2, 0x81, 0x84, 0x36, 0x35, 0xE2, 0x81, - 0x84, 0x36, 0x31, 0xE2, 0x81, 0x84, 0x38, 0x33, - 0xE2, 0x81, 0x84, 0x38, 0x35, 0xE2, 0x81, 0x84, - 0x38, 0x37, 0xE2, 0x81, 0x84, 0x38, 0x31, 0xE2, - 0x81, 0x84, 0x49, 0x49, 0x49, 0x49, 0x49, 0x49, - 0x49, 0x56, 0x56, 0x56, 0x49, 0x56, 0x49, 0x49, - 0x56, 0x49, 0x49, 0x49, 0x49, 0x58, 0x58, 0x58, - 0x49, 0x58, 0x49, 0x49, 0x4C, 0x43, 0x44, 0x4D, - 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x76, - 0x76, 0x76, 0x69, 0x76, 0x69, 0x69, 0x76, 0x69, - 0x69, 0x69, 0x69, 0x78, 0x78, 0x78, 0x69, 0x78, - 0x69, 0x69, 0x6C, 0x63, 0x64, 0x6D, 0xF6, 0xE2, - 0x86, 0x90, 0xCC, 0xB8, 0xF6, 0xE2, 0x86, 0x92, - 0xCC, 0xB8, 0xF6, 0xE2, 0x86, 0x94, 0xCC, 0xB8, - 0xF6, 0xE2, 0x87, 0x90, 0xCC, 0xB8, 0xF6, 0xE2, - 0x87, 0x94, 0xCC, 0xB8, 0xF6, 0xE2, 0x87, 0x92, - 0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0x83, 0xCC, 0xB8, - 0xF6, 0xE2, 0x88, 0x88, 0xCC, 0xB8, 0xF6, 0xE2, - 0x88, 0x8B, 0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0xA3, - 0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0xA5, 0xCC, 0xB8, - 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, - 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, - 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, - 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xF6, 0xE2, - 0x88, 0xBC, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x83, - 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x85, 0xCC, 0xB8, - 0xF6, 0xE2, 0x89, 0x88, 0xCC, 0xB8, 0xF6, 0x3D, - 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xA1, 0xCC, 0xB8, - 0xF6, 0xE2, 0x89, 0x8D, 0xCC, 0xB8, 0xF6, 0x3C, - 0xCC, 0xB8, 0xF6, 0x3E, 0xCC, 0xB8, 0xF6, 0xE2, - 0x89, 0xA4, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xA5, - 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB2, 0xCC, 0xB8, - 0xF6, 0xE2, 0x89, 0xB3, 0xCC, 0xB8, 0xF6, 0xE2, - 0x89, 0xB6, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB7, - 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBA, 0xCC, 0xB8, - 0xF6, 0xE2, 0x89, 0xBB, 0xCC, 0xB8, 0xF6, 0xE2, - 0x8A, 0x82, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x83, - 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x86, 0xCC, 0xB8, - 0xF6, 0xE2, 0x8A, 0x87, 0xCC, 0xB8, 0xF6, 0xE2, - 0x8A, 0xA2, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xA8, - 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xA9, 0xCC, 0xB8, - 0xF6, 0xE2, 0x8A, 0xAB, 0xCC, 0xB8, 0xF6, 0xE2, - 0x89, 0xBC, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBD, - 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x91, 0xCC, 0xB8, - 0xF6, 0xE2, 0x8A, 0x92, 0xCC, 0xB8, 0xF6, 0xE2, - 0x8A, 0xB2, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB3, - 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB4, 0xCC, 0xB8, - 0xF6, 0xE2, 0x8A, 0xB5, 0xCC, 0xB8, 0xF6, 0xE3, - 0x80, 0x88, 0xF6, 0xE3, 0x80, 0x89, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x31, - 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, - 0x34, 0x31, 0x35, 0x31, 0x36, 0x31, 0x37, 0x31, - 0x38, 0x31, 0x39, 0x32, 0x30, 0x28, 0x31, 0x29, - 0x28, 0x32, 0x29, 0x28, 0x33, 0x29, 0x28, 0x34, - 0x29, 0x28, 0x35, 0x29, 0x28, 0x36, 0x29, 0x28, - 0x37, 0x29, 0x28, 0x38, 0x29, 0x28, 0x39, 0x29, - 0x28, 0x31, 0x30, 0x29, 0x28, 0x31, 0x31, 0x29, - 0x28, 0x31, 0x32, 0x29, 0x28, 0x31, 0x33, 0x29, - 0x28, 0x31, 0x34, 0x29, 0x28, 0x31, 0x35, 0x29, - 0x28, 0x31, 0x36, 0x29, 0x28, 0x31, 0x37, 0x29, - 0x28, 0x31, 0x38, 0x29, 0x28, 0x31, 0x39, 0x29, - 0x28, 0x32, 0x30, 0x29, 0x31, 0x2E, 0x32, 0x2E, - 0x33, 0x2E, 0x34, 0x2E, 0x35, 0x2E, 0x36, 0x2E, - 0x37, 0x2E, 0x38, 0x2E, 0x39, 0x2E, 0x31, 0x30, - 0x2E, 0x31, 0x31, 0x2E, 0x31, 0x32, 0x2E, 0x31, - 0x33, 0x2E, 0x31, 0x34, 0x2E, 0x31, 0x35, 0x2E, - 0x31, 0x36, 0x2E, 0x31, 0x37, 0x2E, 0x31, 0x38, - 0x2E, 0x31, 0x39, 0x2E, 0x32, 0x30, 0x2E, 0x28, - 0x61, 0x29, 0x28, 0x62, 0x29, 0x28, 0x63, 0x29, - 0x28, 0x64, 0x29, 0x28, 0x65, 0x29, 0x28, 0x66, - 0x29, 0x28, 0x67, 0x29, 0x28, 0x68, 0x29, 0x28, - 0x69, 0x29, 0x28, 0x6A, 0x29, 0x28, 0x6B, 0x29, - 0x28, 0x6C, 0x29, 0x28, 0x6D, 0x29, 0x28, 0x6E, - 0x29, 0x28, 0x6F, 0x29, 0x28, 0x70, 0x29, 0x28, - 0x71, 0x29, 0x28, 0x72, 0x29, 0x28, 0x73, 0x29, - 0x28, 0x74, 0x29, 0x28, 0x75, 0x29, 0x28, 0x76, - 0x29, 0x28, 0x77, 0x29, 0x28, 0x78, 0x29, 0x28, - 0x79, 0x29, 0x28, 0x7A, 0x29, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, - 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x30, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, - 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0x3A, 0x3A, - 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0x3D, 0xF6, 0xE2, - 0xAB, 0x9D, 0xCC, 0xB8, 0xE6, 0xAF, 0x8D, 0xE9, - 0xBE, 0x9F, 0xE4, 0xB8, 0x80, 0xE4, 0xB8, 0xA8, - 0xE4, 0xB8, 0xB6, 0xE4, 0xB8, 0xBF, 0xE4, 0xB9, - 0x99, 0xE4, 0xBA, 0x85, 0xE4, 0xBA, 0x8C, 0xE4, - 0xBA, 0xA0, 0xE4, 0xBA, 0xBA, 0xE5, 0x84, 0xBF, - 0xE5, 0x85, 0xA5, 0xE5, 0x85, 0xAB, 0xE5, 0x86, - 0x82, 0xE5, 0x86, 0x96, 0xE5, 0x86, 0xAB, 0xE5, - 0x87, 0xA0, 0xE5, 0x87, 0xB5, 0xE5, 0x88, 0x80, - 0xE5, 0x8A, 0x9B, 0xE5, 0x8B, 0xB9, 0xE5, 0x8C, - 0x95, 0xE5, 0x8C, 0x9A, 0xE5, 0x8C, 0xB8, 0xE5, - 0x8D, 0x81, 0xE5, 0x8D, 0x9C, 0xE5, 0x8D, 0xA9, - 0xE5, 0x8E, 0x82, 0xE5, 0x8E, 0xB6, 0xE5, 0x8F, - 0x88, 0xE5, 0x8F, 0xA3, 0xE5, 0x9B, 0x97, 0xE5, - 0x9C, 0x9F, 0xE5, 0xA3, 0xAB, 0xE5, 0xA4, 0x82, - 0xE5, 0xA4, 0x8A, 0xE5, 0xA4, 0x95, 0xE5, 0xA4, - 0xA7, 0xE5, 0xA5, 0xB3, 0xE5, 0xAD, 0x90, 0xE5, - 0xAE, 0x80, 0xE5, 0xAF, 0xB8, 0xE5, 0xB0, 0x8F, - 0xE5, 0xB0, 0xA2, 0xE5, 0xB0, 0xB8, 0xE5, 0xB1, - 0xAE, 0xE5, 0xB1, 0xB1, 0xE5, 0xB7, 0x9B, 0xE5, - 0xB7, 0xA5, 0xE5, 0xB7, 0xB1, 0xE5, 0xB7, 0xBE, - 0xE5, 0xB9, 0xB2, 0xE5, 0xB9, 0xBA, 0xE5, 0xB9, - 0xBF, 0xE5, 0xBB, 0xB4, 0xE5, 0xBB, 0xBE, 0xE5, - 0xBC, 0x8B, 0xE5, 0xBC, 0x93, 0xE5, 0xBD, 0x90, - 0xE5, 0xBD, 0xA1, 0xE5, 0xBD, 0xB3, 0xE5, 0xBF, - 0x83, 0xE6, 0x88, 0x88, 0xE6, 0x88, 0xB6, 0xE6, - 0x89, 0x8B, 0xE6, 0x94, 0xAF, 0xE6, 0x94, 0xB4, - 0xE6, 0x96, 0x87, 0xE6, 0x96, 0x97, 0xE6, 0x96, - 0xA4, 0xE6, 0x96, 0xB9, 0xE6, 0x97, 0xA0, 0xE6, - 0x97, 0xA5, 0xE6, 0x9B, 0xB0, 0xE6, 0x9C, 0x88, - 0xE6, 0x9C, 0xA8, 0xE6, 0xAC, 0xA0, 0xE6, 0xAD, - 0xA2, 0xE6, 0xAD, 0xB9, 0xE6, 0xAE, 0xB3, 0xE6, - 0xAF, 0x8B, 0xE6, 0xAF, 0x94, 0xE6, 0xAF, 0x9B, - 0xE6, 0xB0, 0x8F, 0xE6, 0xB0, 0x94, 0xE6, 0xB0, - 0xB4, 0xE7, 0x81, 0xAB, 0xE7, 0x88, 0xAA, 0xE7, - 0x88, 0xB6, 0xE7, 0x88, 0xBB, 0xE7, 0x88, 0xBF, - 0xE7, 0x89, 0x87, 0xE7, 0x89, 0x99, 0xE7, 0x89, - 0x9B, 0xE7, 0x8A, 0xAC, 0xE7, 0x8E, 0x84, 0xE7, - 0x8E, 0x89, 0xE7, 0x93, 0x9C, 0xE7, 0x93, 0xA6, - 0xE7, 0x94, 0x98, 0xE7, 0x94, 0x9F, 0xE7, 0x94, - 0xA8, 0xE7, 0x94, 0xB0, 0xE7, 0x96, 0x8B, 0xE7, - 0x96, 0x92, 0xE7, 0x99, 0xB6, 0xE7, 0x99, 0xBD, - 0xE7, 0x9A, 0xAE, 0xE7, 0x9A, 0xBF, 0xE7, 0x9B, - 0xAE, 0xE7, 0x9F, 0x9B, 0xE7, 0x9F, 0xA2, 0xE7, - 0x9F, 0xB3, 0xE7, 0xA4, 0xBA, 0xE7, 0xA6, 0xB8, - 0xE7, 0xA6, 0xBE, 0xE7, 0xA9, 0xB4, 0xE7, 0xAB, - 0x8B, 0xE7, 0xAB, 0xB9, 0xE7, 0xB1, 0xB3, 0xE7, - 0xB3, 0xB8, 0xE7, 0xBC, 0xB6, 0xE7, 0xBD, 0x91, - 0xE7, 0xBE, 0x8A, 0xE7, 0xBE, 0xBD, 0xE8, 0x80, - 0x81, 0xE8, 0x80, 0x8C, 0xE8, 0x80, 0x92, 0xE8, - 0x80, 0xB3, 0xE8, 0x81, 0xBF, 0xE8, 0x82, 0x89, - 0xE8, 0x87, 0xA3, 0xE8, 0x87, 0xAA, 0xE8, 0x87, - 0xB3, 0xE8, 0x87, 0xBC, 0xE8, 0x88, 0x8C, 0xE8, - 0x88, 0x9B, 0xE8, 0x88, 0x9F, 0xE8, 0x89, 0xAE, - 0xE8, 0x89, 0xB2, 0xE8, 0x89, 0xB8, 0xE8, 0x99, - 0x8D, 0xE8, 0x99, 0xAB, 0xE8, 0xA1, 0x80, 0xE8, - 0xA1, 0x8C, 0xE8, 0xA1, 0xA3, 0xE8, 0xA5, 0xBE, - 0xE8, 0xA6, 0x8B, 0xE8, 0xA7, 0x92, 0xE8, 0xA8, - 0x80, 0xE8, 0xB0, 0xB7, 0xE8, 0xB1, 0x86, 0xE8, - 0xB1, 0x95, 0xE8, 0xB1, 0xB8, 0xE8, 0xB2, 0x9D, - 0xE8, 0xB5, 0xA4, 0xE8, 0xB5, 0xB0, 0xE8, 0xB6, - 0xB3, 0xE8, 0xBA, 0xAB, 0xE8, 0xBB, 0x8A, 0xE8, - 0xBE, 0x9B, 0xE8, 0xBE, 0xB0, 0xE8, 0xBE, 0xB5, - 0xE9, 0x82, 0x91, 0xE9, 0x85, 0x89, 0xE9, 0x87, - 0x86, 0xE9, 0x87, 0x8C, 0xE9, 0x87, 0x91, 0xE9, - 0x95, 0xB7, 0xE9, 0x96, 0x80, 0xE9, 0x98, 0x9C, - 0xE9, 0x9A, 0xB6, 0xE9, 0x9A, 0xB9, 0xE9, 0x9B, - 0xA8, 0xE9, 0x9D, 0x91, 0xE9, 0x9D, 0x9E, 0xE9, - 0x9D, 0xA2, 0xE9, 0x9D, 0xA9, 0xE9, 0x9F, 0x8B, - 0xE9, 0x9F, 0xAD, 0xE9, 0x9F, 0xB3, 0xE9, 0xA0, - 0x81, 0xE9, 0xA2, 0xA8, 0xE9, 0xA3, 0x9B, 0xE9, - 0xA3, 0x9F, 0xE9, 0xA6, 0x96, 0xE9, 0xA6, 0x99, - 0xE9, 0xA6, 0xAC, 0xE9, 0xAA, 0xA8, 0xE9, 0xAB, - 0x98, 0xE9, 0xAB, 0x9F, 0xE9, 0xAC, 0xA5, 0xE9, - 0xAC, 0xAF, 0xE9, 0xAC, 0xB2, 0xE9, 0xAC, 0xBC, - 0xE9, 0xAD, 0x9A, 0xE9, 0xB3, 0xA5, 0xE9, 0xB9, - 0xB5, 0xE9, 0xB9, 0xBF, 0xE9, 0xBA, 0xA5, 0xE9, - 0xBA, 0xBB, 0xE9, 0xBB, 0x83, 0xE9, 0xBB, 0x8D, - 0xE9, 0xBB, 0x91, 0xE9, 0xBB, 0xB9, 0xE9, 0xBB, - 0xBD, 0xE9, 0xBC, 0x8E, 0xE9, 0xBC, 0x93, 0xE9, - 0xBC, 0xA0, 0xE9, 0xBC, 0xBB, 0xE9, 0xBD, 0x8A, - 0xE9, 0xBD, 0x92, 0xE9, 0xBE, 0x8D, 0xE9, 0xBE, - 0x9C, 0xE9, 0xBE, 0xA0, 0x20, 0xE3, 0x80, 0x92, - 0xE5, 0x8D, 0x81, 0xE5, 0x8D, 0x84, 0xE5, 0x8D, - 0x85, 0xF6, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x81, 0x8F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x81, 0x91, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, - 0x93, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x95, - 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x97, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x99, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x81, 0x9F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x81, 0xA1, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, - 0xA4, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA6, - 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA8, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, - 0xF6, 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, - 0x81, 0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, - 0xB5, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x81, 0xB8, - 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xB8, 0xE3, - 0x82, 0x9A, 0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, - 0xF6, 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x20, - 0xE3, 0x82, 0x99, 0x20, 0xE3, 0x82, 0x9A, 0xF6, - 0xE3, 0x82, 0x9D, 0xE3, 0x82, 0x99, 0xE3, 0x82, - 0x88, 0xE3, 0x82, 0x8A, 0xF6, 0xE3, 0x82, 0xAB, - 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xAD, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xAF, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x82, 0xB7, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, - 0xB9, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBB, - 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBD, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBF, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x83, 0x88, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, - 0x8F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x83, 0x92, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x92, 0xE3, 0x82, - 0x9A, 0xF6, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0xF6, - 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x83, - 0x9B, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x9B, - 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x82, 0xA6, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x83, 0xAF, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x83, 0xB2, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x83, 0xBD, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB3, - 0xE3, 0x83, 0x88, 0xE1, 0x84, 0x80, 0xE1, 0x84, - 0x81, 0xE1, 0x86, 0xAA, 0xE1, 0x84, 0x82, 0xE1, - 0x86, 0xAC, 0xE1, 0x86, 0xAD, 0xE1, 0x84, 0x83, - 0xE1, 0x84, 0x84, 0xE1, 0x84, 0x85, 0xE1, 0x86, - 0xB0, 0xE1, 0x86, 0xB1, 0xE1, 0x86, 0xB2, 0xE1, - 0x86, 0xB3, 0xE1, 0x86, 0xB4, 0xE1, 0x86, 0xB5, - 0xE1, 0x84, 0x9A, 0xE1, 0x84, 0x86, 0xE1, 0x84, - 0x87, 0xE1, 0x84, 0x88, 0xE1, 0x84, 0xA1, 0xE1, - 0x84, 0x89, 0xE1, 0x84, 0x8A, 0xE1, 0x84, 0x8B, - 0xE1, 0x84, 0x8C, 0xE1, 0x84, 0x8D, 0xE1, 0x84, - 0x8E, 0xE1, 0x84, 0x8F, 0xE1, 0x84, 0x90, 0xE1, - 0x84, 0x91, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, - 0xE1, 0x85, 0xA2, 0xE1, 0x85, 0xA3, 0xE1, 0x85, - 0xA4, 0xE1, 0x85, 0xA5, 0xE1, 0x85, 0xA6, 0xE1, - 0x85, 0xA7, 0xE1, 0x85, 0xA8, 0xE1, 0x85, 0xA9, - 0xE1, 0x85, 0xAA, 0xE1, 0x85, 0xAB, 0xE1, 0x85, - 0xAC, 0xE1, 0x85, 0xAD, 0xE1, 0x85, 0xAE, 0xE1, - 0x85, 0xAF, 0xE1, 0x85, 0xB0, 0xE1, 0x85, 0xB1, - 0xE1, 0x85, 0xB2, 0xE1, 0x85, 0xB3, 0xE1, 0x85, - 0xB4, 0xE1, 0x85, 0xB5, 0xE1, 0x85, 0xA0, 0xE1, - 0x84, 0x94, 0xE1, 0x84, 0x95, 0xE1, 0x87, 0x87, - 0xE1, 0x87, 0x88, 0xE1, 0x87, 0x8C, 0xE1, 0x87, - 0x8E, 0xE1, 0x87, 0x93, 0xE1, 0x87, 0x97, 0xE1, - 0x87, 0x99, 0xE1, 0x84, 0x9C, 0xE1, 0x87, 0x9D, - 0xE1, 0x87, 0x9F, 0xE1, 0x84, 0x9D, 0xE1, 0x84, - 0x9E, 0xE1, 0x84, 0xA0, 0xE1, 0x84, 0xA2, 0xE1, - 0x84, 0xA3, 0xE1, 0x84, 0xA7, 0xE1, 0x84, 0xA9, - 0xE1, 0x84, 0xAB, 0xE1, 0x84, 0xAC, 0xE1, 0x84, - 0xAD, 0xE1, 0x84, 0xAE, 0xE1, 0x84, 0xAF, 0xE1, - 0x84, 0xB2, 0xE1, 0x84, 0xB6, 0xE1, 0x85, 0x80, - 0xE1, 0x85, 0x87, 0xE1, 0x85, 0x8C, 0xE1, 0x87, - 0xB1, 0xE1, 0x87, 0xB2, 0xE1, 0x85, 0x97, 0xE1, - 0x85, 0x98, 0xE1, 0x85, 0x99, 0xE1, 0x86, 0x84, - 0xE1, 0x86, 0x85, 0xE1, 0x86, 0x88, 0xE1, 0x86, - 0x91, 0xE1, 0x86, 0x92, 0xE1, 0x86, 0x94, 0xE1, - 0x86, 0x9E, 0xE1, 0x86, 0xA1, 0xE4, 0xB8, 0x80, - 0xE4, 0xBA, 0x8C, 0xE4, 0xB8, 0x89, 0xE5, 0x9B, - 0x9B, 0xE4, 0xB8, 0x8A, 0xE4, 0xB8, 0xAD, 0xE4, - 0xB8, 0x8B, 0xE7, 0x94, 0xB2, 0xE4, 0xB9, 0x99, - 0xE4, 0xB8, 0x99, 0xE4, 0xB8, 0x81, 0xE5, 0xA4, - 0xA9, 0xE5, 0x9C, 0xB0, 0xE4, 0xBA, 0xBA, 0x28, - 0xE1, 0x84, 0x80, 0x29, 0x28, 0xE1, 0x84, 0x82, - 0x29, 0x28, 0xE1, 0x84, 0x83, 0x29, 0x28, 0xE1, - 0x84, 0x85, 0x29, 0x28, 0xE1, 0x84, 0x86, 0x29, - 0x28, 0xE1, 0x84, 0x87, 0x29, 0x28, 0xE1, 0x84, - 0x89, 0x29, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x28, - 0xE1, 0x84, 0x8C, 0x29, 0x28, 0xE1, 0x84, 0x8E, - 0x29, 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x28, 0xE1, - 0x84, 0x90, 0x29, 0x28, 0xE1, 0x84, 0x91, 0x29, - 0x28, 0xE1, 0x84, 0x92, 0x29, 0x28, 0xE1, 0x84, - 0x80, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x82, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x83, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x85, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x86, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x87, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x89, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x8B, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x8C, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x8E, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x8F, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x90, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x91, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x92, 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, - 0x8C, 0xE1, 0x85, 0xAE, 0x29, 0x28, 0xE4, 0xB8, - 0x80, 0x29, 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x28, - 0xE4, 0xB8, 0x89, 0x29, 0x28, 0xE5, 0x9B, 0x9B, - 0x29, 0x28, 0xE4, 0xBA, 0x94, 0x29, 0x28, 0xE5, - 0x85, 0xAD, 0x29, 0x28, 0xE4, 0xB8, 0x83, 0x29, - 0x28, 0xE5, 0x85, 0xAB, 0x29, 0x28, 0xE4, 0xB9, - 0x9D, 0x29, 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x28, - 0xE6, 0x9C, 0x88, 0x29, 0x28, 0xE7, 0x81, 0xAB, - 0x29, 0x28, 0xE6, 0xB0, 0xB4, 0x29, 0x28, 0xE6, - 0x9C, 0xA8, 0x29, 0x28, 0xE9, 0x87, 0x91, 0x29, - 0x28, 0xE5, 0x9C, 0x9F, 0x29, 0x28, 0xE6, 0x97, - 0xA5, 0x29, 0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x28, - 0xE6, 0x9C, 0x89, 0x29, 0x28, 0xE7, 0xA4, 0xBE, - 0x29, 0x28, 0xE5, 0x90, 0x8D, 0x29, 0x28, 0xE7, - 0x89, 0xB9, 0x29, 0x28, 0xE8, 0xB2, 0xA1, 0x29, - 0x28, 0xE7, 0xA5, 0x9D, 0x29, 0x28, 0xE5, 0x8A, - 0xB4, 0x29, 0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x28, - 0xE5, 0x91, 0xBC, 0x29, 0x28, 0xE5, 0xAD, 0xA6, - 0x29, 0x28, 0xE7, 0x9B, 0xA3, 0x29, 0x28, 0xE4, - 0xBC, 0x81, 0x29, 0x28, 0xE8, 0xB3, 0x87, 0x29, - 0x28, 0xE5, 0x8D, 0x94, 0x29, 0x28, 0xE7, 0xA5, - 0xAD, 0x29, 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x28, - 0xE8, 0x87, 0xAA, 0x29, 0x28, 0xE8, 0x87, 0xB3, - 0x29, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, 0x32, - 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, - 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, 0x33, - 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0xE1, - 0x84, 0x80, 0xE1, 0x84, 0x82, 0xE1, 0x84, 0x83, - 0xE1, 0x84, 0x85, 0xE1, 0x84, 0x86, 0xE1, 0x84, - 0x87, 0xE1, 0x84, 0x89, 0xE1, 0x84, 0x8B, 0xE1, - 0x84, 0x8C, 0xE1, 0x84, 0x8E, 0xE1, 0x84, 0x8F, - 0xE1, 0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1, 0x84, - 0x92, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, 0xE1, - 0x84, 0x82, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x83, - 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x85, 0xE1, 0x85, - 0xA1, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, 0xE1, - 0x84, 0x87, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x89, - 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x8B, 0xE1, 0x85, - 0xA1, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, 0xE1, - 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x8F, - 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x90, 0xE1, 0x85, - 0xA1, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, 0xE1, - 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE4, 0xB8, 0x80, - 0xE4, 0xBA, 0x8C, 0xE4, 0xB8, 0x89, 0xE5, 0x9B, - 0x9B, 0xE4, 0xBA, 0x94, 0xE5, 0x85, 0xAD, 0xE4, - 0xB8, 0x83, 0xE5, 0x85, 0xAB, 0xE4, 0xB9, 0x9D, - 0xE5, 0x8D, 0x81, 0xE6, 0x9C, 0x88, 0xE7, 0x81, - 0xAB, 0xE6, 0xB0, 0xB4, 0xE6, 0x9C, 0xA8, 0xE9, - 0x87, 0x91, 0xE5, 0x9C, 0x9F, 0xE6, 0x97, 0xA5, - 0xE6, 0xA0, 0xAA, 0xE6, 0x9C, 0x89, 0xE7, 0xA4, - 0xBE, 0xE5, 0x90, 0x8D, 0xE7, 0x89, 0xB9, 0xE8, - 0xB2, 0xA1, 0xE7, 0xA5, 0x9D, 0xE5, 0x8A, 0xB4, - 0xE7, 0xA7, 0x98, 0xE7, 0x94, 0xB7, 0xE5, 0xA5, - 0xB3, 0xE9, 0x81, 0xA9, 0xE5, 0x84, 0xAA, 0xE5, - 0x8D, 0xB0, 0xE6, 0xB3, 0xA8, 0xE9, 0xA0, 0x85, - 0xE4, 0xBC, 0x91, 0xE5, 0x86, 0x99, 0xE6, 0xAD, - 0xA3, 0xE4, 0xB8, 0x8A, 0xE4, 0xB8, 0xAD, 0xE4, - 0xB8, 0x8B, 0xE5, 0xB7, 0xA6, 0xE5, 0x8F, 0xB3, - 0xE5, 0x8C, 0xBB, 0xE5, 0xAE, 0x97, 0xE5, 0xAD, - 0xA6, 0xE7, 0x9B, 0xA3, 0xE4, 0xBC, 0x81, 0xE8, - 0xB3, 0x87, 0xE5, 0x8D, 0x94, 0xE5, 0xA4, 0x9C, - 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, - 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, - 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, - 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x31, 0xE6, - 0x9C, 0x88, 0x32, 0xE6, 0x9C, 0x88, 0x33, 0xE6, - 0x9C, 0x88, 0x34, 0xE6, 0x9C, 0x88, 0x35, 0xE6, - 0x9C, 0x88, 0x36, 0xE6, 0x9C, 0x88, 0x37, 0xE6, - 0x9C, 0x88, 0x38, 0xE6, 0x9C, 0x88, 0x39, 0xE6, - 0x9C, 0x88, 0x31, 0x30, 0xE6, 0x9C, 0x88, 0x31, - 0x31, 0xE6, 0x9C, 0x88, 0x31, 0x32, 0xE6, 0x9C, - 0x88, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xA4, 0xE3, - 0x82, 0xA6, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xAA, - 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xAD, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0xB3, 0xE3, - 0x82, 0xB5, 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xB9, - 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0xBD, 0xE3, 0x82, - 0xBF, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0x84, 0xE3, - 0x83, 0x86, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x8A, - 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x8C, 0xE3, 0x83, - 0x8D, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x8F, 0xE3, - 0x83, 0x92, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0x98, - 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0x9E, 0xE3, 0x83, - 0x9F, 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0xA1, 0xE3, - 0x83, 0xA2, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xA6, - 0xE3, 0x83, 0xA8, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0xAA, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xAC, 0xE3, - 0x83, 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0xB0, - 0xE3, 0x83, 0xB1, 0xE3, 0x83, 0xB2, 0xE3, 0x82, - 0xA2, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, - 0xA1, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, - 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x8B, 0xE3, - 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, - 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x81, 0xE3, 0x82, 0xA6, 0xE3, 0x82, 0xA9, 0xE3, - 0x83, 0xB3, 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xB9, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA8, 0xE3, - 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x83, 0xBC, - 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0xB9, 0xE3, 0x82, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xA0, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0xA4, - 0xE3, 0x83, 0xAA, 0xE3, 0x82, 0xAB, 0xE3, 0x83, - 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0xAB, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAA, - 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0xE3, - 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xAD, 0xE3, 0x82, - 0x99, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x8B, - 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAD, 0xE3, 0x83, - 0xA5, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xBC, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, - 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAF, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0xA0, 0xE3, 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, - 0x83, 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, - 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAD, 0xE3, 0x83, - 0xAD, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, - 0x83, 0x88, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, - 0x83, 0xA0, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, - 0xBB, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, - 0x83, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x8D, 0xE3, 0x82, - 0xB1, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, 0xE3, - 0x82, 0xB3, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x8A, - 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB5, 0xE3, - 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, - 0xE3, 0x82, 0xB5, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x81, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0xE3, - 0x82, 0xB7, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xB3, - 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x82, - 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, - 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, - 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xBC, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x86, 0xE3, - 0x82, 0x99, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0x88, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x8A, 0xE3, - 0x83, 0x8E, 0xE3, 0x83, 0x8E, 0xE3, 0x83, 0x83, - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x8F, 0xE3, 0x82, - 0xA4, 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x8F, 0xE3, - 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBB, - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x83, - 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0x84, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAC, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, - 0x82, 0xA2, 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x88, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xB3, - 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, - 0x83, 0xA9, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x95, 0xE3, 0x82, - 0xA3, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x83, - 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xA7, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0x95, 0xE3, 0x83, 0xA9, 0xE3, - 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0xAF, - 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, - 0x82, 0xBD, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x9A, - 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0x92, 0xE3, 0x83, - 0x98, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x84, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, - 0xE3, 0x82, 0xB9, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB7, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0x98, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xBF, 0xE3, 0x83, - 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA4, 0xE3, - 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x9B, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xB3, 0xE3, - 0x83, 0x9B, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x9B, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0x9E, 0xE3, - 0x82, 0xA4, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x9E, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x8F, 0xE3, 0x83, - 0x9E, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xAF, 0xE3, - 0x83, 0x9E, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB7, - 0xE3, 0x83, 0xA7, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x9F, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, 0xE3, - 0x83, 0xB3, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, - 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, - 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAB, 0xE3, 0x83, 0xA1, 0xE3, 0x82, 0xAB, - 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA1, 0xE3, 0x82, - 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0xB3, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0xE3, 0x83, - 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xA6, 0xE3, 0x82, - 0xA2, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0xAA, 0xE3, - 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, - 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xA0, 0xE3, - 0x83, 0xAC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, - 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0x83, 0xE3, - 0x83, 0x88, 0x30, 0xE7, 0x82, 0xB9, 0x31, 0xE7, - 0x82, 0xB9, 0x32, 0xE7, 0x82, 0xB9, 0x33, 0xE7, - 0x82, 0xB9, 0x34, 0xE7, 0x82, 0xB9, 0x35, 0xE7, - 0x82, 0xB9, 0x36, 0xE7, 0x82, 0xB9, 0x37, 0xE7, - 0x82, 0xB9, 0x38, 0xE7, 0x82, 0xB9, 0x39, 0xE7, - 0x82, 0xB9, 0x31, 0x30, 0xE7, 0x82, 0xB9, 0x31, - 0x31, 0xE7, 0x82, 0xB9, 0x31, 0x32, 0xE7, 0x82, - 0xB9, 0x31, 0x33, 0xE7, 0x82, 0xB9, 0x31, 0x34, - 0xE7, 0x82, 0xB9, 0x31, 0x35, 0xE7, 0x82, 0xB9, - 0x31, 0x36, 0xE7, 0x82, 0xB9, 0x31, 0x37, 0xE7, - 0x82, 0xB9, 0x31, 0x38, 0xE7, 0x82, 0xB9, 0x31, - 0x39, 0xE7, 0x82, 0xB9, 0x32, 0x30, 0xE7, 0x82, - 0xB9, 0x32, 0x31, 0xE7, 0x82, 0xB9, 0x32, 0x32, - 0xE7, 0x82, 0xB9, 0x32, 0x33, 0xE7, 0x82, 0xB9, - 0x32, 0x34, 0xE7, 0x82, 0xB9, 0x68, 0x50, 0x61, - 0x64, 0x61, 0x41, 0x55, 0x62, 0x61, 0x72, 0x6F, - 0x56, 0x70, 0x63, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, - 0x90, 0xE6, 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0xE5, - 0xA4, 0xA7, 0xE6, 0xAD, 0xA3, 0xE6, 0x98, 0x8E, - 0xE6, 0xB2, 0xBB, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, - 0x8F, 0xE4, 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x70, - 0x41, 0x6E, 0x41, 0xCE, 0xBC, 0x41, 0x6D, 0x41, - 0x6B, 0x41, 0x4B, 0x42, 0x4D, 0x42, 0x47, 0x42, - 0x63, 0x61, 0x6C, 0x6B, 0x63, 0x61, 0x6C, 0x70, - 0x46, 0x6E, 0x46, 0xCE, 0xBC, 0x46, 0xCE, 0xBC, - 0x67, 0x6D, 0x67, 0x6B, 0x67, 0x48, 0x7A, 0x6B, - 0x48, 0x7A, 0x4D, 0x48, 0x7A, 0x47, 0x48, 0x7A, - 0x54, 0x48, 0x7A, 0xCE, 0xBC, 0x6C, 0x6D, 0x6C, - 0x64, 0x6C, 0x6B, 0x6C, 0x66, 0x6D, 0x6E, 0x6D, - 0xCE, 0xBC, 0x6D, 0x6D, 0x6D, 0x63, 0x6D, 0x6B, - 0x6D, 0x6D, 0x6D, 0x32, 0x63, 0x6D, 0x32, 0x6D, - 0x32, 0x6B, 0x6D, 0x32, 0x6D, 0x6D, 0x33, 0x63, - 0x6D, 0x33, 0x6D, 0x33, 0x6B, 0x6D, 0x33, 0x6D, - 0xE2, 0x88, 0x95, 0x73, 0x6D, 0xE2, 0x88, 0x95, - 0x73, 0x32, 0x50, 0x61, 0x6B, 0x50, 0x61, 0x4D, - 0x50, 0x61, 0x47, 0x50, 0x61, 0x72, 0x61, 0x64, - 0x72, 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x72, - 0x61, 0x64, 0xE2, 0x88, 0x95, 0x73, 0x32, 0x70, - 0x73, 0x6E, 0x73, 0xCE, 0xBC, 0x73, 0x6D, 0x73, - 0x70, 0x56, 0x6E, 0x56, 0xCE, 0xBC, 0x56, 0x6D, - 0x56, 0x6B, 0x56, 0x4D, 0x56, 0x70, 0x57, 0x6E, - 0x57, 0xCE, 0xBC, 0x57, 0x6D, 0x57, 0x6B, 0x57, - 0x4D, 0x57, 0x6B, 0xCE, 0xA9, 0x4D, 0xCE, 0xA9, - 0x61, 0x2E, 0x6D, 0x2E, 0x42, 0x71, 0x63, 0x63, - 0x63, 0x64, 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, - 0x43, 0x6F, 0x2E, 0x64, 0x42, 0x47, 0x79, 0x68, - 0x61, 0x48, 0x50, 0x69, 0x6E, 0x4B, 0x4B, 0x4B, - 0x4D, 0x6B, 0x74, 0x6C, 0x6D, 0x6C, 0x6E, 0x6C, - 0x6F, 0x67, 0x6C, 0x78, 0x6D, 0x62, 0x6D, 0x69, - 0x6C, 0x6D, 0x6F, 0x6C, 0x50, 0x48, 0x70, 0x2E, - 0x6D, 0x2E, 0x50, 0x50, 0x4D, 0x50, 0x52, 0x73, - 0x72, 0x53, 0x76, 0x57, 0x62, 0x31, 0xE6, 0x97, - 0xA5, 0x32, 0xE6, 0x97, 0xA5, 0x33, 0xE6, 0x97, - 0xA5, 0x34, 0xE6, 0x97, 0xA5, 0x35, 0xE6, 0x97, - 0xA5, 0x36, 0xE6, 0x97, 0xA5, 0x37, 0xE6, 0x97, - 0xA5, 0x38, 0xE6, 0x97, 0xA5, 0x39, 0xE6, 0x97, - 0xA5, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x31, 0x31, - 0xE6, 0x97, 0xA5, 0x31, 0x32, 0xE6, 0x97, 0xA5, - 0x31, 0x33, 0xE6, 0x97, 0xA5, 0x31, 0x34, 0xE6, - 0x97, 0xA5, 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x31, - 0x36, 0xE6, 0x97, 0xA5, 0x31, 0x37, 0xE6, 0x97, - 0xA5, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x31, 0x39, - 0xE6, 0x97, 0xA5, 0x32, 0x30, 0xE6, 0x97, 0xA5, - 0x32, 0x31, 0xE6, 0x97, 0xA5, 0x32, 0x32, 0xE6, - 0x97, 0xA5, 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x32, - 0x34, 0xE6, 0x97, 0xA5, 0x32, 0x35, 0xE6, 0x97, - 0xA5, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x32, 0x37, - 0xE6, 0x97, 0xA5, 0x32, 0x38, 0xE6, 0x97, 0xA5, - 0x32, 0x39, 0xE6, 0x97, 0xA5, 0x33, 0x30, 0xE6, - 0x97, 0xA5, 0x33, 0x31, 0xE6, 0x97, 0xA5, 0xF6, - 0xE8, 0xB1, 0x88, 0xF6, 0xE6, 0x9B, 0xB4, 0xF6, - 0xE8, 0xBB, 0x8A, 0xF6, 0xE8, 0xB3, 0x88, 0xF6, - 0xE6, 0xBB, 0x91, 0xF6, 0xE4, 0xB8, 0xB2, 0xF6, - 0xE5, 0x8F, 0xA5, 0xF6, 0xE9, 0xBE, 0x9C, 0xF6, - 0xE9, 0xBE, 0x9C, 0xF6, 0xE5, 0xA5, 0x91, 0xF6, - 0xE9, 0x87, 0x91, 0xF6, 0xE5, 0x96, 0x87, 0xF6, - 0xE5, 0xA5, 0x88, 0xF6, 0xE6, 0x87, 0xB6, 0xF6, - 0xE7, 0x99, 0xA9, 0xF6, 0xE7, 0xBE, 0x85, 0xF6, - 0xE8, 0x98, 0xBF, 0xF6, 0xE8, 0x9E, 0xBA, 0xF6, - 0xE8, 0xA3, 0xB8, 0xF6, 0xE9, 0x82, 0x8F, 0xF6, - 0xE6, 0xA8, 0x82, 0xF6, 0xE6, 0xB4, 0x9B, 0xF6, - 0xE7, 0x83, 0x99, 0xF6, 0xE7, 0x8F, 0x9E, 0xF6, - 0xE8, 0x90, 0xBD, 0xF6, 0xE9, 0x85, 0xAA, 0xF6, - 0xE9, 0xA7, 0xB1, 0xF6, 0xE4, 0xBA, 0x82, 0xF6, - 0xE5, 0x8D, 0xB5, 0xF6, 0xE6, 0xAC, 0x84, 0xF6, - 0xE7, 0x88, 0x9B, 0xF6, 0xE8, 0x98, 0xAD, 0xF6, - 0xE9, 0xB8, 0x9E, 0xF6, 0xE5, 0xB5, 0x90, 0xF6, - 0xE6, 0xBF, 0xAB, 0xF6, 0xE8, 0x97, 0x8D, 0xF6, - 0xE8, 0xA5, 0xA4, 0xF6, 0xE6, 0x8B, 0x89, 0xF6, - 0xE8, 0x87, 0x98, 0xF6, 0xE8, 0xA0, 0x9F, 0xF6, - 0xE5, 0xBB, 0x8A, 0xF6, 0xE6, 0x9C, 0x97, 0xF6, - 0xE6, 0xB5, 0xAA, 0xF6, 0xE7, 0x8B, 0xBC, 0xF6, - 0xE9, 0x83, 0x8E, 0xF6, 0xE4, 0xBE, 0x86, 0xF6, - 0xE5, 0x86, 0xB7, 0xF6, 0xE5, 0x8B, 0x9E, 0xF6, - 0xE6, 0x93, 0x84, 0xF6, 0xE6, 0xAB, 0x93, 0xF6, - 0xE7, 0x88, 0x90, 0xF6, 0xE7, 0x9B, 0xA7, 0xF6, - 0xE8, 0x80, 0x81, 0xF6, 0xE8, 0x98, 0x86, 0xF6, - 0xE8, 0x99, 0x9C, 0xF6, 0xE8, 0xB7, 0xAF, 0xF6, - 0xE9, 0x9C, 0xB2, 0xF6, 0xE9, 0xAD, 0xAF, 0xF6, - 0xE9, 0xB7, 0xBA, 0xF6, 0xE7, 0xA2, 0x8C, 0xF6, - 0xE7, 0xA5, 0xBF, 0xF6, 0xE7, 0xB6, 0xA0, 0xF6, - 0xE8, 0x8F, 0x89, 0xF6, 0xE9, 0x8C, 0x84, 0xF6, - 0xE9, 0xB9, 0xBF, 0xF6, 0xE8, 0xAB, 0x96, 0xF6, - 0xE5, 0xA3, 0x9F, 0xF6, 0xE5, 0xBC, 0x84, 0xF6, - 0xE7, 0xB1, 0xA0, 0xF6, 0xE8, 0x81, 0xBE, 0xF6, - 0xE7, 0x89, 0xA2, 0xF6, 0xE7, 0xA3, 0x8A, 0xF6, - 0xE8, 0xB3, 0x82, 0xF6, 0xE9, 0x9B, 0xB7, 0xF6, - 0xE5, 0xA3, 0x98, 0xF6, 0xE5, 0xB1, 0xA2, 0xF6, - 0xE6, 0xA8, 0x93, 0xF6, 0xE6, 0xB7, 0x9A, 0xF6, - 0xE6, 0xBC, 0x8F, 0xF6, 0xE7, 0xB4, 0xAF, 0xF6, - 0xE7, 0xB8, 0xB7, 0xF6, 0xE9, 0x99, 0x8B, 0xF6, - 0xE5, 0x8B, 0x92, 0xF6, 0xE8, 0x82, 0x8B, 0xF6, - 0xE5, 0x87, 0x9C, 0xF6, 0xE5, 0x87, 0x8C, 0xF6, - 0xE7, 0xA8, 0x9C, 0xF6, 0xE7, 0xB6, 0xBE, 0xF6, - 0xE8, 0x8F, 0xB1, 0xF6, 0xE9, 0x99, 0xB5, 0xF6, - 0xE8, 0xAE, 0x80, 0xF6, 0xE6, 0x8B, 0x8F, 0xF6, - 0xE6, 0xA8, 0x82, 0xF6, 0xE8, 0xAB, 0xBE, 0xF6, - 0xE4, 0xB8, 0xB9, 0xF6, 0xE5, 0xAF, 0xA7, 0xF6, - 0xE6, 0x80, 0x92, 0xF6, 0xE7, 0x8E, 0x87, 0xF6, - 0xE7, 0x95, 0xB0, 0xF6, 0xE5, 0x8C, 0x97, 0xF6, - 0xE7, 0xA3, 0xBB, 0xF6, 0xE4, 0xBE, 0xBF, 0xF6, - 0xE5, 0xBE, 0xA9, 0xF6, 0xE4, 0xB8, 0x8D, 0xF6, - 0xE6, 0xB3, 0x8C, 0xF6, 0xE6, 0x95, 0xB8, 0xF6, - 0xE7, 0xB4, 0xA2, 0xF6, 0xE5, 0x8F, 0x83, 0xF6, - 0xE5, 0xA1, 0x9E, 0xF6, 0xE7, 0x9C, 0x81, 0xF6, - 0xE8, 0x91, 0x89, 0xF6, 0xE8, 0xAA, 0xAA, 0xF6, - 0xE6, 0xAE, 0xBA, 0xF6, 0xE8, 0xBE, 0xB0, 0xF6, - 0xE6, 0xB2, 0x88, 0xF6, 0xE6, 0x8B, 0xBE, 0xF6, - 0xE8, 0x8B, 0xA5, 0xF6, 0xE6, 0x8E, 0xA0, 0xF6, - 0xE7, 0x95, 0xA5, 0xF6, 0xE4, 0xBA, 0xAE, 0xF6, - 0xE5, 0x85, 0xA9, 0xF6, 0xE5, 0x87, 0x89, 0xF6, - 0xE6, 0xA2, 0x81, 0xF6, 0xE7, 0xB3, 0xA7, 0xF6, - 0xE8, 0x89, 0xAF, 0xF6, 0xE8, 0xAB, 0x92, 0xF6, - 0xE9, 0x87, 0x8F, 0xF6, 0xE5, 0x8B, 0xB5, 0xF6, - 0xE5, 0x91, 0x82, 0xF6, 0xE5, 0xA5, 0xB3, 0xF6, - 0xE5, 0xBB, 0xAC, 0xF6, 0xE6, 0x97, 0x85, 0xF6, - 0xE6, 0xBF, 0xBE, 0xF6, 0xE7, 0xA4, 0xAA, 0xF6, - 0xE9, 0x96, 0xAD, 0xF6, 0xE9, 0xA9, 0xAA, 0xF6, - 0xE9, 0xBA, 0x97, 0xF6, 0xE9, 0xBB, 0x8E, 0xF6, - 0xE5, 0x8A, 0x9B, 0xF6, 0xE6, 0x9B, 0x86, 0xF6, - 0xE6, 0xAD, 0xB7, 0xF6, 0xE8, 0xBD, 0xA2, 0xF6, - 0xE5, 0xB9, 0xB4, 0xF6, 0xE6, 0x86, 0x90, 0xF6, - 0xE6, 0x88, 0x80, 0xF6, 0xE6, 0x92, 0x9A, 0xF6, - 0xE6, 0xBC, 0xA3, 0xF6, 0xE7, 0x85, 0x89, 0xF6, - 0xE7, 0x92, 0x89, 0xF6, 0xE7, 0xA7, 0x8A, 0xF6, - 0xE7, 0xB7, 0xB4, 0xF6, 0xE8, 0x81, 0xAF, 0xF6, - 0xE8, 0xBC, 0xA6, 0xF6, 0xE8, 0x93, 0xAE, 0xF6, - 0xE9, 0x80, 0xA3, 0xF6, 0xE9, 0x8D, 0x8A, 0xF6, - 0xE5, 0x88, 0x97, 0xF6, 0xE5, 0x8A, 0xA3, 0xF6, - 0xE5, 0x92, 0xBD, 0xF6, 0xE7, 0x83, 0x88, 0xF6, - 0xE8, 0xA3, 0x82, 0xF6, 0xE8, 0xAA, 0xAA, 0xF6, - 0xE5, 0xBB, 0x89, 0xF6, 0xE5, 0xBF, 0xB5, 0xF6, - 0xE6, 0x8D, 0xBB, 0xF6, 0xE6, 0xAE, 0xAE, 0xF6, - 0xE7, 0xB0, 0xBE, 0xF6, 0xE7, 0x8D, 0xB5, 0xF6, - 0xE4, 0xBB, 0xA4, 0xF6, 0xE5, 0x9B, 0xB9, 0xF6, - 0xE5, 0xAF, 0xA7, 0xF6, 0xE5, 0xB6, 0xBA, 0xF6, - 0xE6, 0x80, 0x9C, 0xF6, 0xE7, 0x8E, 0xB2, 0xF6, - 0xE7, 0x91, 0xA9, 0xF6, 0xE7, 0xBE, 0x9A, 0xF6, - 0xE8, 0x81, 0x86, 0xF6, 0xE9, 0x88, 0xB4, 0xF6, - 0xE9, 0x9B, 0xB6, 0xF6, 0xE9, 0x9D, 0x88, 0xF6, - 0xE9, 0xA0, 0x98, 0xF6, 0xE4, 0xBE, 0x8B, 0xF6, - 0xE7, 0xA6, 0xAE, 0xF6, 0xE9, 0x86, 0xB4, 0xF6, - 0xE9, 0x9A, 0xB8, 0xF6, 0xE6, 0x83, 0xA1, 0xF6, - 0xE4, 0xBA, 0x86, 0xF6, 0xE5, 0x83, 0x9A, 0xF6, - 0xE5, 0xAF, 0xAE, 0xF6, 0xE5, 0xB0, 0xBF, 0xF6, - 0xE6, 0x96, 0x99, 0xF6, 0xE6, 0xA8, 0x82, 0xF6, - 0xE7, 0x87, 0x8E, 0xF6, 0xE7, 0x99, 0x82, 0xF6, - 0xE8, 0x93, 0xBC, 0xF6, 0xE9, 0x81, 0xBC, 0xF6, - 0xE9, 0xBE, 0x8D, 0xF6, 0xE6, 0x9A, 0x88, 0xF6, - 0xE9, 0x98, 0xAE, 0xF6, 0xE5, 0x8A, 0x89, 0xF6, - 0xE6, 0x9D, 0xBB, 0xF6, 0xE6, 0x9F, 0xB3, 0xF6, - 0xE6, 0xB5, 0x81, 0xF6, 0xE6, 0xBA, 0x9C, 0xF6, - 0xE7, 0x90, 0x89, 0xF6, 0xE7, 0x95, 0x99, 0xF6, - 0xE7, 0xA1, 0xAB, 0xF6, 0xE7, 0xB4, 0x90, 0xF6, - 0xE9, 0xA1, 0x9E, 0xF6, 0xE5, 0x85, 0xAD, 0xF6, - 0xE6, 0x88, 0xAE, 0xF6, 0xE9, 0x99, 0xB8, 0xF6, - 0xE5, 0x80, 0xAB, 0xF6, 0xE5, 0xB4, 0x99, 0xF6, - 0xE6, 0xB7, 0xAA, 0xF6, 0xE8, 0xBC, 0xAA, 0xF6, - 0xE5, 0xBE, 0x8B, 0xF6, 0xE6, 0x85, 0x84, 0xF6, - 0xE6, 0xA0, 0x97, 0xF6, 0xE7, 0x8E, 0x87, 0xF6, - 0xE9, 0x9A, 0x86, 0xF6, 0xE5, 0x88, 0xA9, 0xF6, - 0xE5, 0x90, 0x8F, 0xF6, 0xE5, 0xB1, 0xA5, 0xF6, - 0xE6, 0x98, 0x93, 0xF6, 0xE6, 0x9D, 0x8E, 0xF6, - 0xE6, 0xA2, 0xA8, 0xF6, 0xE6, 0xB3, 0xA5, 0xF6, - 0xE7, 0x90, 0x86, 0xF6, 0xE7, 0x97, 0xA2, 0xF6, - 0xE7, 0xBD, 0xB9, 0xF6, 0xE8, 0xA3, 0x8F, 0xF6, - 0xE8, 0xA3, 0xA1, 0xF6, 0xE9, 0x87, 0x8C, 0xF6, - 0xE9, 0x9B, 0xA2, 0xF6, 0xE5, 0x8C, 0xBF, 0xF6, - 0xE6, 0xBA, 0xBA, 0xF6, 0xE5, 0x90, 0x9D, 0xF6, - 0xE7, 0x87, 0x90, 0xF6, 0xE7, 0x92, 0x98, 0xF6, - 0xE8, 0x97, 0xBA, 0xF6, 0xE9, 0x9A, 0xA3, 0xF6, - 0xE9, 0xB1, 0x97, 0xF6, 0xE9, 0xBA, 0x9F, 0xF6, - 0xE6, 0x9E, 0x97, 0xF6, 0xE6, 0xB7, 0x8B, 0xF6, - 0xE8, 0x87, 0xA8, 0xF6, 0xE7, 0xAB, 0x8B, 0xF6, - 0xE7, 0xAC, 0xA0, 0xF6, 0xE7, 0xB2, 0x92, 0xF6, - 0xE7, 0x8B, 0x80, 0xF6, 0xE7, 0x82, 0x99, 0xF6, - 0xE8, 0xAD, 0x98, 0xF6, 0xE4, 0xBB, 0x80, 0xF6, - 0xE8, 0x8C, 0xB6, 0xF6, 0xE5, 0x88, 0xBA, 0xF6, - 0xE5, 0x88, 0x87, 0xF6, 0xE5, 0xBA, 0xA6, 0xF6, - 0xE6, 0x8B, 0x93, 0xF6, 0xE7, 0xB3, 0x96, 0xF6, - 0xE5, 0xAE, 0x85, 0xF6, 0xE6, 0xB4, 0x9E, 0xF6, - 0xE6, 0x9A, 0xB4, 0xF6, 0xE8, 0xBC, 0xBB, 0xF6, - 0xE8, 0xA1, 0x8C, 0xF6, 0xE9, 0x99, 0x8D, 0xF6, - 0xE8, 0xA6, 0x8B, 0xF6, 0xE5, 0xBB, 0x93, 0xF6, - 0xE5, 0x85, 0x80, 0xF6, 0xE5, 0x97, 0x80, 0xF6, - 0xE5, 0xA1, 0x9A, 0xF6, 0xE6, 0x99, 0xB4, 0xF6, - 0xE5, 0x87, 0x9E, 0xF6, 0xE7, 0x8C, 0xAA, 0xF6, - 0xE7, 0x9B, 0x8A, 0xF6, 0xE7, 0xA4, 0xBC, 0xF6, - 0xE7, 0xA5, 0x9E, 0xF6, 0xE7, 0xA5, 0xA5, 0xF6, - 0xE7, 0xA6, 0x8F, 0xF6, 0xE9, 0x9D, 0x96, 0xF6, - 0xE7, 0xB2, 0xBE, 0xF6, 0xE7, 0xBE, 0xBD, 0xF6, - 0xE8, 0x98, 0x92, 0xF6, 0xE8, 0xAB, 0xB8, 0xF6, - 0xE9, 0x80, 0xB8, 0xF6, 0xE9, 0x83, 0xBD, 0xF6, - 0xE9, 0xA3, 0xAF, 0xF6, 0xE9, 0xA3, 0xBC, 0xF6, - 0xE9, 0xA4, 0xA8, 0xF6, 0xE9, 0xB6, 0xB4, 0xF6, - 0xE4, 0xBE, 0xAE, 0xF6, 0xE5, 0x83, 0xA7, 0xF6, - 0xE5, 0x85, 0x8D, 0xF6, 0xE5, 0x8B, 0x89, 0xF6, - 0xE5, 0x8B, 0xA4, 0xF6, 0xE5, 0x8D, 0x91, 0xF6, - 0xE5, 0x96, 0x9D, 0xF6, 0xE5, 0x98, 0x86, 0xF6, - 0xE5, 0x99, 0xA8, 0xF6, 0xE5, 0xA1, 0x80, 0xF6, - 0xE5, 0xA2, 0xA8, 0xF6, 0xE5, 0xB1, 0xA4, 0xF6, - 0xE5, 0xB1, 0xAE, 0xF6, 0xE6, 0x82, 0x94, 0xF6, - 0xE6, 0x85, 0xA8, 0xF6, 0xE6, 0x86, 0x8E, 0xF6, - 0xE6, 0x87, 0xB2, 0xF6, 0xE6, 0x95, 0x8F, 0xF6, - 0xE6, 0x97, 0xA2, 0xF6, 0xE6, 0x9A, 0x91, 0xF6, - 0xE6, 0xA2, 0x85, 0xF6, 0xE6, 0xB5, 0xB7, 0xF6, - 0xE6, 0xB8, 0x9A, 0xF6, 0xE6, 0xBC, 0xA2, 0xF6, - 0xE7, 0x85, 0xAE, 0xF6, 0xE7, 0x88, 0xAB, 0xF6, - 0xE7, 0x90, 0xA2, 0xF6, 0xE7, 0xA2, 0x91, 0xF6, - 0xE7, 0xA4, 0xBE, 0xF6, 0xE7, 0xA5, 0x89, 0xF6, - 0xE7, 0xA5, 0x88, 0xF6, 0xE7, 0xA5, 0x90, 0xF6, - 0xE7, 0xA5, 0x96, 0xF6, 0xE7, 0xA5, 0x9D, 0xF6, - 0xE7, 0xA6, 0x8D, 0xF6, 0xE7, 0xA6, 0x8E, 0xF6, - 0xE7, 0xA9, 0x80, 0xF6, 0xE7, 0xAA, 0x81, 0xF6, - 0xE7, 0xAF, 0x80, 0xF6, 0xE7, 0xB7, 0xB4, 0xF6, - 0xE7, 0xB8, 0x89, 0xF6, 0xE7, 0xB9, 0x81, 0xF6, - 0xE7, 0xBD, 0xB2, 0xF6, 0xE8, 0x80, 0x85, 0xF6, - 0xE8, 0x87, 0xAD, 0xF6, 0xE8, 0x89, 0xB9, 0xF6, - 0xE8, 0x89, 0xB9, 0xF6, 0xE8, 0x91, 0x97, 0xF6, - 0xE8, 0xA4, 0x90, 0xF6, 0xE8, 0xA6, 0x96, 0xF6, - 0xE8, 0xAC, 0x81, 0xF6, 0xE8, 0xAC, 0xB9, 0xF6, - 0xE8, 0xB3, 0x93, 0xF6, 0xE8, 0xB4, 0x88, 0xF6, - 0xE8, 0xBE, 0xB6, 0xF6, 0xE9, 0x80, 0xB8, 0xF6, - 0xE9, 0x9B, 0xA3, 0xF6, 0xE9, 0x9F, 0xBF, 0xF6, - 0xE9, 0xA0, 0xBB, 0x66, 0x66, 0x66, 0x69, 0x66, - 0x6C, 0x66, 0x66, 0x69, 0x66, 0x66, 0x6C, 0x73, - 0x74, 0x73, 0x74, 0xD5, 0xB4, 0xD5, 0xB6, 0xD5, - 0xB4, 0xD5, 0xA5, 0xD5, 0xB4, 0xD5, 0xAB, 0xD5, - 0xBE, 0xD5, 0xB6, 0xD5, 0xB4, 0xD5, 0xAD, 0xF6, - 0xD7, 0x99, 0xD6, 0xB4, 0xF6, 0xD7, 0xB2, 0xD6, - 0xB7, 0xD7, 0xA2, 0xD7, 0x90, 0xD7, 0x93, 0xD7, - 0x94, 0xD7, 0x9B, 0xD7, 0x9C, 0xD7, 0x9D, 0xD7, - 0xA8, 0xD7, 0xAA, 0x2B, 0xF6, 0xD7, 0xA9, 0xD7, - 0x81, 0xF6, 0xD7, 0xA9, 0xD7, 0x82, 0xF6, 0xD7, - 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0xF6, 0xD7, 0xA9, - 0xD6, 0xBC, 0xD7, 0x82, 0xF6, 0xD7, 0x90, 0xD6, - 0xB7, 0xF6, 0xD7, 0x90, 0xD6, 0xB8, 0xF6, 0xD7, - 0x90, 0xD6, 0xBC, 0xF6, 0xD7, 0x91, 0xD6, 0xBC, - 0xF6, 0xD7, 0x92, 0xD6, 0xBC, 0xF6, 0xD7, 0x93, - 0xD6, 0xBC, 0xF6, 0xD7, 0x94, 0xD6, 0xBC, 0xF6, - 0xD7, 0x95, 0xD6, 0xBC, 0xF6, 0xD7, 0x96, 0xD6, - 0xBC, 0xF6, 0xD7, 0x98, 0xD6, 0xBC, 0xF6, 0xD7, - 0x99, 0xD6, 0xBC, 0xF6, 0xD7, 0x9A, 0xD6, 0xBC, - 0xF6, 0xD7, 0x9B, 0xD6, 0xBC, 0xF6, 0xD7, 0x9C, - 0xD6, 0xBC, 0xF6, 0xD7, 0x9E, 0xD6, 0xBC, 0xF6, - 0xD7, 0xA0, 0xD6, 0xBC, 0xF6, 0xD7, 0xA1, 0xD6, - 0xBC, 0xF6, 0xD7, 0xA3, 0xD6, 0xBC, 0xF6, 0xD7, - 0xA4, 0xD6, 0xBC, 0xF6, 0xD7, 0xA6, 0xD6, 0xBC, - 0xF6, 0xD7, 0xA7, 0xD6, 0xBC, 0xF6, 0xD7, 0xA8, - 0xD6, 0xBC, 0xF6, 0xD7, 0xA9, 0xD6, 0xBC, 0xF6, - 0xD7, 0xAA, 0xD6, 0xBC, 0xF6, 0xD7, 0x95, 0xD6, - 0xB9, 0xF6, 0xD7, 0x91, 0xD6, 0xBF, 0xF6, 0xD7, - 0x9B, 0xD6, 0xBF, 0xF6, 0xD7, 0xA4, 0xD6, 0xBF, - 0xD7, 0x90, 0xD7, 0x9C, 0xD9, 0xB1, 0xD9, 0xB1, - 0xD9, 0xBB, 0xD9, 0xBB, 0xD9, 0xBB, 0xD9, 0xBB, - 0xD9, 0xBE, 0xD9, 0xBE, 0xD9, 0xBE, 0xD9, 0xBE, - 0xDA, 0x80, 0xDA, 0x80, 0xDA, 0x80, 0xDA, 0x80, - 0xD9, 0xBA, 0xD9, 0xBA, 0xD9, 0xBA, 0xD9, 0xBA, - 0xD9, 0xBF, 0xD9, 0xBF, 0xD9, 0xBF, 0xD9, 0xBF, - 0xD9, 0xB9, 0xD9, 0xB9, 0xD9, 0xB9, 0xD9, 0xB9, - 0xDA, 0xA4, 0xDA, 0xA4, 0xDA, 0xA4, 0xDA, 0xA4, - 0xDA, 0xA6, 0xDA, 0xA6, 0xDA, 0xA6, 0xDA, 0xA6, - 0xDA, 0x84, 0xDA, 0x84, 0xDA, 0x84, 0xDA, 0x84, - 0xDA, 0x83, 0xDA, 0x83, 0xDA, 0x83, 0xDA, 0x83, - 0xDA, 0x86, 0xDA, 0x86, 0xDA, 0x86, 0xDA, 0x86, - 0xDA, 0x87, 0xDA, 0x87, 0xDA, 0x87, 0xDA, 0x87, - 0xDA, 0x8D, 0xDA, 0x8D, 0xDA, 0x8C, 0xDA, 0x8C, - 0xDA, 0x8E, 0xDA, 0x8E, 0xDA, 0x88, 0xDA, 0x88, - 0xDA, 0x98, 0xDA, 0x98, 0xDA, 0x91, 0xDA, 0x91, - 0xDA, 0xA9, 0xDA, 0xA9, 0xDA, 0xA9, 0xDA, 0xA9, - 0xDA, 0xAF, 0xDA, 0xAF, 0xDA, 0xAF, 0xDA, 0xAF, - 0xDA, 0xB3, 0xDA, 0xB3, 0xDA, 0xB3, 0xDA, 0xB3, - 0xDA, 0xB1, 0xDA, 0xB1, 0xDA, 0xB1, 0xDA, 0xB1, - 0xDA, 0xBA, 0xDA, 0xBA, 0xDA, 0xBB, 0xDA, 0xBB, - 0xDA, 0xBB, 0xDA, 0xBB, 0xDB, 0x95, 0xD9, 0x94, - 0xDB, 0x95, 0xD9, 0x94, 0xDB, 0x81, 0xDB, 0x81, - 0xDB, 0x81, 0xDB, 0x81, 0xDA, 0xBE, 0xDA, 0xBE, - 0xDA, 0xBE, 0xDA, 0xBE, 0xDB, 0x92, 0xDB, 0x92, - 0xDB, 0x92, 0xD9, 0x94, 0xDB, 0x92, 0xD9, 0x94, - 0xDA, 0xAD, 0xDA, 0xAD, 0xDA, 0xAD, 0xDA, 0xAD, - 0xDB, 0x87, 0xDB, 0x87, 0xDB, 0x86, 0xDB, 0x86, - 0xDB, 0x88, 0xDB, 0x88, 0xDB, 0x87, 0xD9, 0xB4, - 0xDB, 0x8B, 0xDB, 0x8B, 0xDB, 0x85, 0xDB, 0x85, - 0xDB, 0x89, 0xDB, 0x89, 0xDB, 0x90, 0xDB, 0x90, - 0xDB, 0x90, 0xDB, 0x90, 0xD9, 0x89, 0xD9, 0x89, - 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x8A, - 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x8A, 0xD9, 0x94, - 0xDB, 0x95, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x95, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x8A, - 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x8A, 0xD9, 0x94, - 0xDB, 0x87, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x87, - 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0xD9, 0x8A, - 0xD9, 0x94, 0xDB, 0x86, 0xD9, 0x8A, 0xD9, 0x94, - 0xDB, 0x88, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x88, - 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0xD9, 0x8A, - 0xD9, 0x94, 0xDB, 0x90, 0xD9, 0x8A, 0xD9, 0x94, - 0xDB, 0x90, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xD9, 0x8A, - 0xD9, 0x94, 0xD9, 0x89, 0xDB, 0x8C, 0xDB, 0x8C, - 0xDB, 0x8C, 0xDB, 0x8C, 0xD9, 0x8A, 0xD9, 0x94, - 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, - 0xD9, 0x94, 0xD9, 0x89, 0xD9, 0x8A, 0xD9, 0x94, - 0xD9, 0x8A, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8, 0xA8, - 0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8, 0xA8, - 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x89, 0xD8, 0xA8, - 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD8, 0xAA, - 0xD8, 0xAD, 0xD8, 0xAA, 0xD8, 0xAE, 0xD8, 0xAA, - 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x89, 0xD8, 0xAA, - 0xD9, 0x8A, 0xD8, 0xAB, 0xD8, 0xAC, 0xD8, 0xAB, - 0xD9, 0x85, 0xD8, 0xAB, 0xD9, 0x89, 0xD8, 0xAB, - 0xD9, 0x8A, 0xD8, 0xAC, 0xD8, 0xAD, 0xD8, 0xAC, - 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, 0xAD, - 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD8, 0xAE, - 0xD8, 0xAD, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB3, - 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3, - 0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xB5, - 0xD8, 0xAD, 0xD8, 0xB5, 0xD9, 0x85, 0xD8, 0xB6, - 0xD8, 0xAC, 0xD8, 0xB6, 0xD8, 0xAD, 0xD8, 0xB6, - 0xD8, 0xAE, 0xD8, 0xB6, 0xD9, 0x85, 0xD8, 0xB7, - 0xD8, 0xAD, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xB8, - 0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8, 0xB9, - 0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8, 0xBA, - 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9, 0x81, - 0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x81, - 0xD9, 0x85, 0xD9, 0x81, 0xD9, 0x89, 0xD9, 0x81, - 0xD9, 0x8A, 0xD9, 0x82, 0xD8, 0xAD, 0xD9, 0x82, - 0xD9, 0x85, 0xD9, 0x82, 0xD9, 0x89, 0xD9, 0x82, - 0xD9, 0x8A, 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x83, - 0xD8, 0xAC, 0xD9, 0x83, 0xD8, 0xAD, 0xD9, 0x83, - 0xD8, 0xAE, 0xD9, 0x83, 0xD9, 0x84, 0xD9, 0x83, - 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x89, 0xD9, 0x83, - 0xD9, 0x8A, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x84, - 0xD8, 0xAD, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x84, - 0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x89, 0xD9, 0x84, - 0xD9, 0x8A, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85, - 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85, - 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x89, 0xD9, 0x85, - 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x86, - 0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9, 0x86, - 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x89, 0xD9, 0x86, - 0xD9, 0x8A, 0xD9, 0x87, 0xD8, 0xAC, 0xD9, 0x87, - 0xD9, 0x85, 0xD9, 0x87, 0xD9, 0x89, 0xD9, 0x87, - 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, - 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9, 0x8A, - 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x89, 0xD9, 0x8A, - 0xD9, 0x8A, 0xD8, 0xB0, 0xD9, 0xB0, 0xD8, 0xB1, - 0xD9, 0xB0, 0xD9, 0x89, 0xD9, 0xB0, 0x20, 0xD9, - 0x8C, 0xD9, 0x91, 0x20, 0xD9, 0x8D, 0xD9, 0x91, - 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x20, 0xD9, 0x8F, - 0xD9, 0x91, 0x20, 0xD9, 0x90, 0xD9, 0x91, 0x20, - 0xD9, 0x91, 0xD9, 0xB0, 0xD9, 0x8A, 0xD9, 0x94, - 0xD8, 0xB1, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xB2, - 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, - 0xD9, 0x94, 0xD9, 0x86, 0xD9, 0x8A, 0xD9, 0x94, - 0xD9, 0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, - 0xD8, 0xA8, 0xD8, 0xB1, 0xD8, 0xA8, 0xD8, 0xB2, - 0xD8, 0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x86, - 0xD8, 0xA8, 0xD9, 0x89, 0xD8, 0xA8, 0xD9, 0x8A, - 0xD8, 0xAA, 0xD8, 0xB1, 0xD8, 0xAA, 0xD8, 0xB2, - 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x86, - 0xD8, 0xAA, 0xD9, 0x89, 0xD8, 0xAA, 0xD9, 0x8A, - 0xD8, 0xAB, 0xD8, 0xB1, 0xD8, 0xAB, 0xD8, 0xB2, - 0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAB, 0xD9, 0x86, - 0xD8, 0xAB, 0xD9, 0x89, 0xD8, 0xAB, 0xD9, 0x8A, - 0xD9, 0x81, 0xD9, 0x89, 0xD9, 0x81, 0xD9, 0x8A, - 0xD9, 0x82, 0xD9, 0x89, 0xD9, 0x82, 0xD9, 0x8A, - 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x83, 0xD9, 0x84, - 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x89, - 0xD9, 0x83, 0xD9, 0x8A, 0xD9, 0x84, 0xD9, 0x85, - 0xD9, 0x84, 0xD9, 0x89, 0xD9, 0x84, 0xD9, 0x8A, - 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x85, 0xD9, 0x85, - 0xD9, 0x86, 0xD8, 0xB1, 0xD9, 0x86, 0xD8, 0xB2, - 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x86, - 0xD9, 0x86, 0xD9, 0x89, 0xD9, 0x86, 0xD9, 0x8A, - 0xD9, 0x89, 0xD9, 0xB0, 0xD9, 0x8A, 0xD8, 0xB1, - 0xD9, 0x8A, 0xD8, 0xB2, 0xD9, 0x8A, 0xD9, 0x85, - 0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x8A, 0xD9, 0x89, - 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x94, - 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAD, - 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0xD9, 0x8A, - 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x94, - 0xD9, 0x87, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8, 0xA8, - 0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8, 0xA8, - 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x87, 0xD8, 0xAA, - 0xD8, 0xAC, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAA, - 0xD8, 0xAE, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA, - 0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAC, - 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD, - 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, - 0xD8, 0xAC, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB3, - 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3, - 0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xB5, - 0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAE, 0xD8, 0xB5, - 0xD9, 0x85, 0xD8, 0xB6, 0xD8, 0xAC, 0xD8, 0xB6, - 0xD8, 0xAD, 0xD8, 0xB6, 0xD8, 0xAE, 0xD8, 0xB6, - 0xD9, 0x85, 0xD8, 0xB7, 0xD8, 0xAD, 0xD8, 0xB8, - 0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8, 0xB9, - 0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8, 0xBA, - 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9, 0x81, - 0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x81, - 0xD9, 0x85, 0xD9, 0x82, 0xD8, 0xAD, 0xD9, 0x82, - 0xD9, 0x85, 0xD9, 0x83, 0xD8, 0xAC, 0xD9, 0x83, - 0xD8, 0xAD, 0xD9, 0x83, 0xD8, 0xAE, 0xD9, 0x83, - 0xD9, 0x84, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x84, - 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x84, - 0xD8, 0xAE, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x84, - 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85, - 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, 0x85, - 0xD9, 0x85, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x86, - 0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9, 0x86, - 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9, 0x87, - 0xD8, 0xAC, 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x87, - 0xD9, 0xB0, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, - 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9, 0x8A, - 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x8A, - 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x94, - 0xD9, 0x87, 0xD8, 0xA8, 0xD9, 0x85, 0xD8, 0xA8, - 0xD9, 0x87, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA, - 0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAB, - 0xD9, 0x87, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xB3, - 0xD9, 0x87, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xB4, - 0xD9, 0x87, 0xD9, 0x83, 0xD9, 0x84, 0xD9, 0x83, - 0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x85, 0xD9, 0x86, - 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9, 0x8A, - 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x80, - 0xD9, 0x8E, 0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x8F, - 0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x90, 0xD9, 0x91, - 0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9, 0x8A, - 0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9, 0x8A, - 0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x8A, - 0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9, 0x8A, - 0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9, 0x8A, - 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9, 0x8A, - 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x8A, - 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9, 0x8A, - 0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x8A, - 0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9, 0x8A, - 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85, - 0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8, 0xB1, - 0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8, 0xB1, - 0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9, 0x8A, - 0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9, 0x8A, - 0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x8A, - 0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9, 0x8A, - 0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9, 0x8A, - 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9, 0x8A, - 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x8A, - 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9, 0x8A, - 0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x8A, - 0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9, 0x8A, - 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85, - 0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8, 0xB1, - 0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8, 0xB1, - 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85, - 0xD8, 0xB3, 0xD9, 0x87, 0xD8, 0xB4, 0xD9, 0x87, - 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xB3, 0xD8, 0xAC, - 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3, 0xD8, 0xAE, - 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB7, 0xD9, 0x85, - 0xD8, 0xB8, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x8B, - 0xD8, 0xA7, 0xD9, 0x8B, 0xD8, 0xAA, 0xD8, 0xAC, - 0xD9, 0x85, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, - 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, 0xAA, - 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAA, 0xD8, 0xAE, - 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAC, - 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAA, - 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9, 0x85, - 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xAD, - 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xAD, - 0xD9, 0x85, 0xD9, 0x89, 0xD8, 0xB3, 0xD8, 0xAD, - 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, 0xAD, - 0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xB3, - 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xB3, 0xD9, 0x85, - 0xD8, 0xAD, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, 0xAC, - 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB3, - 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB5, 0xD8, 0xAD, - 0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, 0xAD, - 0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB4, - 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD9, 0x85, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, 0x8A, - 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xB4, - 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, 0x85, - 0xD9, 0x85, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, 0x85, - 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xB6, - 0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB6, 0xD8, 0xAE, - 0xD9, 0x85, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, - 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xB7, - 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB7, 0xD9, 0x85, - 0xD9, 0x8A, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, - 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB9, - 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB9, 0xD9, 0x85, - 0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x85, - 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xBA, - 0xD9, 0x85, 0xD9, 0x89, 0xD9, 0x81, 0xD8, 0xAE, - 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, 0x85, - 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x82, - 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x84, 0xD8, 0xAD, - 0xD9, 0x85, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x8A, - 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0xD9, 0x84, - 0xD8, 0xAC, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAC, - 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, - 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0xD9, 0x84, - 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x84, 0xD9, 0x85, - 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, - 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x85, - 0xD8, 0xAD, 0xD9, 0x8A, 0xD9, 0x85, 0xD8, 0xAC, - 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x85, - 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9, 0x85, - 0xD8, 0xAE, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xAC, - 0xD8, 0xAE, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, - 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x86, - 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x86, 0xD8, 0xAD, - 0xD9, 0x89, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, - 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x86, - 0xD8, 0xAC, 0xD9, 0x89, 0xD9, 0x86, 0xD9, 0x85, - 0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x89, - 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x8A, - 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xA8, 0xD8, 0xAE, - 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x8A, - 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAA, - 0xD8, 0xAE, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAE, - 0xD9, 0x89, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x8A, - 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0xD8, 0xAC, - 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xAC, 0xD8, 0xAD, - 0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x89, - 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xB5, - 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xB4, 0xD8, 0xAD, - 0xD9, 0x8A, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x8A, - 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x84, - 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAD, - 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, 0x8A, - 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x85, - 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x82, 0xD9, 0x85, - 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, 0x8A, - 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x84, - 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB9, 0xD9, 0x85, - 0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x8A, - 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x85, - 0xD8, 0xAE, 0xD9, 0x8A, 0xD9, 0x84, 0xD8, 0xAC, - 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, - 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, 0x86, - 0xD8, 0xAC, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, 0xAD, - 0xD9, 0x8A, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x8A, - 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x81, - 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xA8, 0xD8, 0xAD, - 0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x85, - 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, 0xB5, - 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB3, 0xD8, 0xAE, - 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x8A, - 0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0xD9, 0x82, - 0xD9, 0x84, 0xDB, 0x92, 0xD8, 0xA7, 0xD9, 0x84, - 0xD9, 0x84, 0xD9, 0x87, 0xD8, 0xA7, 0xD9, 0x83, - 0xD8, 0xA8, 0xD8, 0xB1, 0xD9, 0x85, 0xD8, 0xAD, - 0xD9, 0x85, 0xD8, 0xAF, 0xD8, 0xB5, 0xD9, 0x84, - 0xD8, 0xB9, 0xD9, 0x85, 0xD8, 0xB1, 0xD8, 0xB3, - 0xD9, 0x88, 0xD9, 0x84, 0xD8, 0xB9, 0xD9, 0x84, - 0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x88, 0xD8, 0xB3, - 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xB5, 0xD9, 0x84, - 0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, 0x89, - 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, 0xD9, - 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, 0x8A, - 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3, 0xD9, - 0x84, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x84, 0x20, - 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84, - 0xD9, 0x87, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, 0xA7, - 0xD9, 0x84, 0x2E, 0x2E, 0xE2, 0x80, 0x94, 0xE2, - 0x80, 0x93, 0x5F, 0x5F, 0x28, 0x29, 0x7B, 0x7D, - 0xE3, 0x80, 0x94, 0xE3, 0x80, 0x95, 0xE3, 0x80, - 0x90, 0xE3, 0x80, 0x91, 0xE3, 0x80, 0x8A, 0xE3, - 0x80, 0x8B, 0xE3, 0x80, 0x88, 0xE3, 0x80, 0x89, - 0xE3, 0x80, 0x8C, 0xE3, 0x80, 0x8D, 0xE3, 0x80, - 0x8E, 0xE3, 0x80, 0x8F, 0x20, 0xCC, 0x85, 0x20, - 0xCC, 0x85, 0x20, 0xCC, 0x85, 0x20, 0xCC, 0x85, - 0x5F, 0x5F, 0x5F, 0x2C, 0xE3, 0x80, 0x81, 0x2E, - 0x3B, 0x3A, 0x3F, 0x21, 0xE2, 0x80, 0x94, 0x28, - 0x29, 0x7B, 0x7D, 0xE3, 0x80, 0x94, 0xE3, 0x80, - 0x95, 0x23, 0x26, 0x2A, 0x2B, 0x2D, 0x3C, 0x3E, - 0x3D, 0x5C, 0x24, 0x25, 0x40, 0x20, 0xD9, 0x8B, - 0xD9, 0x80, 0xD9, 0x8B, 0x20, 0xD9, 0x8C, 0x20, - 0xD9, 0x8D, 0x20, 0xD9, 0x8E, 0xD9, 0x80, 0xD9, - 0x8E, 0x20, 0xD9, 0x8F, 0xD9, 0x80, 0xD9, 0x8F, - 0x20, 0xD9, 0x90, 0xD9, 0x80, 0xD9, 0x90, 0x20, - 0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x91, 0x20, 0xD9, - 0x92, 0xD9, 0x80, 0xD9, 0x92, 0xD8, 0xA1, 0xD8, - 0xA7, 0xD9, 0x93, 0xD8, 0xA7, 0xD9, 0x93, 0xD8, - 0xA7, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x94, 0xD9, - 0x88, 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x94, 0xD8, - 0xA7, 0xD9, 0x95, 0xD8, 0xA7, 0xD9, 0x95, 0xD9, - 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, - 0x8A, 0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, - 0xA7, 0xD8, 0xA7, 0xD8, 0xA8, 0xD8, 0xA8, 0xD8, - 0xA8, 0xD8, 0xA8, 0xD8, 0xA9, 0xD8, 0xA9, 0xD8, - 0xAA, 0xD8, 0xAA, 0xD8, 0xAA, 0xD8, 0xAA, 0xD8, - 0xAB, 0xD8, 0xAB, 0xD8, 0xAB, 0xD8, 0xAB, 0xD8, - 0xAC, 0xD8, 0xAC, 0xD8, 0xAC, 0xD8, 0xAC, 0xD8, - 0xAD, 0xD8, 0xAD, 0xD8, 0xAD, 0xD8, 0xAD, 0xD8, - 0xAE, 0xD8, 0xAE, 0xD8, 0xAE, 0xD8, 0xAE, 0xD8, - 0xAF, 0xD8, 0xAF, 0xD8, 0xB0, 0xD8, 0xB0, 0xD8, - 0xB1, 0xD8, 0xB1, 0xD8, 0xB2, 0xD8, 0xB2, 0xD8, - 0xB3, 0xD8, 0xB3, 0xD8, 0xB3, 0xD8, 0xB3, 0xD8, - 0xB4, 0xD8, 0xB4, 0xD8, 0xB4, 0xD8, 0xB4, 0xD8, - 0xB5, 0xD8, 0xB5, 0xD8, 0xB5, 0xD8, 0xB5, 0xD8, - 0xB6, 0xD8, 0xB6, 0xD8, 0xB6, 0xD8, 0xB6, 0xD8, - 0xB7, 0xD8, 0xB7, 0xD8, 0xB7, 0xD8, 0xB7, 0xD8, - 0xB8, 0xD8, 0xB8, 0xD8, 0xB8, 0xD8, 0xB8, 0xD8, - 0xB9, 0xD8, 0xB9, 0xD8, 0xB9, 0xD8, 0xB9, 0xD8, - 0xBA, 0xD8, 0xBA, 0xD8, 0xBA, 0xD8, 0xBA, 0xD9, - 0x81, 0xD9, 0x81, 0xD9, 0x81, 0xD9, 0x81, 0xD9, - 0x82, 0xD9, 0x82, 0xD9, 0x82, 0xD9, 0x82, 0xD9, - 0x83, 0xD9, 0x83, 0xD9, 0x83, 0xD9, 0x83, 0xD9, - 0x84, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x84, 0xD9, - 0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9, - 0x86, 0xD9, 0x86, 0xD9, 0x86, 0xD9, 0x86, 0xD9, - 0x87, 0xD9, 0x87, 0xD9, 0x87, 0xD9, 0x87, 0xD9, - 0x88, 0xD9, 0x88, 0xD9, 0x89, 0xD9, 0x89, 0xD9, - 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, - 0x84, 0xD8, 0xA7, 0xD9, 0x93, 0xD9, 0x84, 0xD8, - 0xA7, 0xD9, 0x93, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, - 0x94, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xD9, - 0x84, 0xD8, 0xA7, 0xD9, 0x95, 0xD9, 0x84, 0xD8, - 0xA7, 0xD9, 0x95, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, - 0x84, 0xD8, 0xA7, 0x21, 0x22, 0x23, 0x24, 0x25, - 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, - 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, - 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, - 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, - 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, - 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, - 0x56, 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, - 0x5E, 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, - 0x7E, 0xE2, 0xA6, 0x85, 0xE2, 0xA6, 0x86, 0xE3, - 0x80, 0x82, 0xE3, 0x80, 0x8C, 0xE3, 0x80, 0x8D, - 0xE3, 0x80, 0x81, 0xE3, 0x83, 0xBB, 0xE3, 0x83, - 0xB2, 0xE3, 0x82, 0xA1, 0xE3, 0x82, 0xA3, 0xE3, - 0x82, 0xA5, 0xE3, 0x82, 0xA7, 0xE3, 0x82, 0xA9, - 0xE3, 0x83, 0xA3, 0xE3, 0x83, 0xA5, 0xE3, 0x83, - 0xA7, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xA2, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xA6, - 0xE3, 0x82, 0xA8, 0xE3, 0x82, 0xAA, 0xE3, 0x82, - 0xAB, 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, - 0x82, 0xB1, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB5, - 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0xB9, 0xE3, 0x82, - 0xBB, 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0xBF, 0xE3, - 0x83, 0x81, 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x86, - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x8A, 0xE3, 0x83, - 0x8B, 0xE3, 0x83, 0x8C, 0xE3, 0x83, 0x8D, 0xE3, - 0x83, 0x8E, 0xE3, 0x83, 0x8F, 0xE3, 0x83, 0x92, - 0xE3, 0x83, 0x95, 0xE3, 0x83, 0x98, 0xE3, 0x83, - 0x9B, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x9F, 0xE3, - 0x83, 0xA0, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xA2, - 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xA6, 0xE3, 0x83, - 0xA8, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xAA, 0xE3, - 0x83, 0xAB, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAD, - 0xE3, 0x83, 0xAF, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0x99, 0xE3, 0x82, 0x9A, 0xE1, 0x85, 0xA0, 0xE1, - 0x84, 0x80, 0xE1, 0x84, 0x81, 0xE1, 0x86, 0xAA, - 0xE1, 0x84, 0x82, 0xE1, 0x86, 0xAC, 0xE1, 0x86, - 0xAD, 0xE1, 0x84, 0x83, 0xE1, 0x84, 0x84, 0xE1, - 0x84, 0x85, 0xE1, 0x86, 0xB0, 0xE1, 0x86, 0xB1, - 0xE1, 0x86, 0xB2, 0xE1, 0x86, 0xB3, 0xE1, 0x86, - 0xB4, 0xE1, 0x86, 0xB5, 0xE1, 0x84, 0x9A, 0xE1, - 0x84, 0x86, 0xE1, 0x84, 0x87, 0xE1, 0x84, 0x88, - 0xE1, 0x84, 0xA1, 0xE1, 0x84, 0x89, 0xE1, 0x84, - 0x8A, 0xE1, 0x84, 0x8B, 0xE1, 0x84, 0x8C, 0xE1, - 0x84, 0x8D, 0xE1, 0x84, 0x8E, 0xE1, 0x84, 0x8F, - 0xE1, 0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1, 0x84, - 0x92, 0xE1, 0x85, 0xA1, 0xE1, 0x85, 0xA2, 0xE1, - 0x85, 0xA3, 0xE1, 0x85, 0xA4, 0xE1, 0x85, 0xA5, - 0xE1, 0x85, 0xA6, 0xE1, 0x85, 0xA7, 0xE1, 0x85, - 0xA8, 0xE1, 0x85, 0xA9, 0xE1, 0x85, 0xAA, 0xE1, - 0x85, 0xAB, 0xE1, 0x85, 0xAC, 0xE1, 0x85, 0xAD, - 0xE1, 0x85, 0xAE, 0xE1, 0x85, 0xAF, 0xE1, 0x85, - 0xB0, 0xE1, 0x85, 0xB1, 0xE1, 0x85, 0xB2, 0xE1, - 0x85, 0xB3, 0xE1, 0x85, 0xB4, 0xE1, 0x85, 0xB5, - 0xC2, 0xA2, 0xC2, 0xA3, 0xC2, 0xAC, 0x20, 0xCC, - 0x84, 0xC2, 0xA6, 0xC2, 0xA5, 0xE2, 0x82, 0xA9, - 0xE2, 0x94, 0x82, 0xE2, 0x86, 0x90, 0xE2, 0x86, - 0x91, 0xE2, 0x86, 0x92, 0xE2, 0x86, 0x93, 0xE2, - 0x96, 0xA0, 0xE2, 0x97, 0x8B, 0xF6, 0xF0, 0x9D, - 0x85, 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xF6, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF6, - 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, - 0xF0, 0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x85, - 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - 0xAF, 0xF6, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, - 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xF6, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xB1, 0xF6, 0xF0, 0x9D, 0x85, 0x98, - 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, - 0xF6, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, - 0xA5, 0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, - 0x85, 0xA5, 0xF6, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xF6, - 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, - 0xF0, 0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x86, - 0xB9, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, - 0xAF, 0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, - 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0x41, 0x42, - 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, - 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, - 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, - 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, - 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, - 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, - 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, - 0x57, 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, - 0x65, 0x66, 0x67, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, - 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x41, 0x43, 0x44, 0x47, 0x4A, 0x4B, 0x4E, - 0x4F, 0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x66, - 0x68, 0x69, 0x6A, 0x6B, 0x6D, 0x6E, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44, - 0x45, 0x46, 0x47, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, - 0x4F, 0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, - 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, - 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, - 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44, 0x45, - 0x46, 0x47, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4F, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, - 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, - 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, - 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE, - 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE, - 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE, - 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE, - 0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE, - 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE, - 0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1, - 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5, - 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9, - 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD, - 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81, - 0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, - 0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, - 0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, - 0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE, - 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, - 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, - 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, - 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, - 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, - 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, - 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, - 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, - 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, - 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, - 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, - 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, - 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, - 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, - 0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE, - 0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, - 0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, - 0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, - 0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, - 0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, - 0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2, - 0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3, - 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7, - 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB, - 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF, - 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83, - 0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, - 0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE, - 0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF, - 0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE, - 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, - 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, - 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, - 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, - 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, - 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, - 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, - 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, - 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, - 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, - 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, - 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, - 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, - 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, - 0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE, - 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE, - 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE, - 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE, - 0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE, - 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE, - 0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1, - 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5, - 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9, - 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD, - 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81, - 0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, - 0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, - 0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, - 0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x80, 0x30, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, - 0x37, 0x38, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, - 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 0xF6, 0xE4, 0xB8, 0xBD, 0xF6, 0xE4, 0xB8, - 0xB8, 0xF6, 0xE4, 0xB9, 0x81, 0xF6, 0xF0, 0xA0, - 0x84, 0xA2, 0xF6, 0xE4, 0xBD, 0xA0, 0xF6, 0xE4, - 0xBE, 0xAE, 0xF6, 0xE4, 0xBE, 0xBB, 0xF6, 0xE5, - 0x80, 0x82, 0xF6, 0xE5, 0x81, 0xBA, 0xF6, 0xE5, - 0x82, 0x99, 0xF6, 0xE5, 0x83, 0xA7, 0xF6, 0xE5, - 0x83, 0x8F, 0xF6, 0xE3, 0x92, 0x9E, 0xF6, 0xF0, - 0xA0, 0x98, 0xBA, 0xF6, 0xE5, 0x85, 0x8D, 0xF6, - 0xE5, 0x85, 0x94, 0xF6, 0xE5, 0x85, 0xA4, 0xF6, - 0xE5, 0x85, 0xB7, 0xF6, 0xF0, 0xA0, 0x94, 0x9C, - 0xF6, 0xE3, 0x92, 0xB9, 0xF6, 0xE5, 0x85, 0xA7, - 0xF6, 0xE5, 0x86, 0x8D, 0xF6, 0xF0, 0xA0, 0x95, - 0x8B, 0xF6, 0xE5, 0x86, 0x97, 0xF6, 0xE5, 0x86, - 0xA4, 0xF6, 0xE4, 0xBB, 0x8C, 0xF6, 0xE5, 0x86, - 0xAC, 0xF6, 0xE5, 0x86, 0xB5, 0xF6, 0xF0, 0xA9, - 0x87, 0x9F, 0xF6, 0xE5, 0x87, 0xB5, 0xF6, 0xE5, - 0x88, 0x83, 0xF6, 0xE3, 0x93, 0x9F, 0xF6, 0xE5, - 0x88, 0xBB, 0xF6, 0xE5, 0x89, 0x86, 0xF6, 0xE5, - 0x89, 0xB2, 0xF6, 0xE5, 0x89, 0xB7, 0xF6, 0xE3, - 0x94, 0x95, 0xF6, 0xE5, 0x8B, 0x87, 0xF6, 0xE5, - 0x8B, 0x89, 0xF6, 0xE5, 0x8B, 0xA4, 0xF6, 0xE5, - 0x8B, 0xBA, 0xF6, 0xE5, 0x8C, 0x85, 0xF6, 0xE5, - 0x8C, 0x86, 0xF6, 0xE5, 0x8C, 0x97, 0xF6, 0xE5, - 0x8D, 0x89, 0xF6, 0xE5, 0x8D, 0x91, 0xF6, 0xE5, - 0x8D, 0x9A, 0xF6, 0xE5, 0x8D, 0xB3, 0xF6, 0xE5, - 0x8D, 0xBD, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xE5, - 0x8D, 0xBF, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xF0, - 0xA0, 0xA8, 0xAC, 0xF6, 0xE7, 0x81, 0xB0, 0xF6, - 0xE5, 0x8F, 0x8A, 0xF6, 0xE5, 0x8F, 0x9F, 0xF6, - 0xF0, 0xA0, 0xAD, 0xA3, 0xF6, 0xE5, 0x8F, 0xAB, - 0xF6, 0xE5, 0x8F, 0xB1, 0xF6, 0xE5, 0x90, 0x86, - 0xF6, 0xE5, 0x92, 0x9E, 0xF6, 0xE5, 0x90, 0xB8, - 0xF6, 0xE5, 0x91, 0x88, 0xF6, 0xE5, 0x91, 0xA8, - 0xF6, 0xE5, 0x92, 0xA2, 0xF6, 0xE5, 0x93, 0xB6, - 0xF6, 0xE5, 0x94, 0x90, 0xF6, 0xE5, 0x95, 0x93, - 0xF6, 0xE5, 0x95, 0xA3, 0xF6, 0xE5, 0x96, 0x84, - 0xF6, 0xE5, 0x96, 0x84, 0xF6, 0xE5, 0x96, 0x99, - 0xF6, 0xE5, 0x96, 0xAB, 0xF6, 0xE5, 0x96, 0xB3, - 0xF6, 0xE5, 0x97, 0x82, 0xF6, 0xE5, 0x9C, 0x96, - 0xF6, 0xE5, 0x98, 0x86, 0xF6, 0xE5, 0x9C, 0x97, - 0xF6, 0xE5, 0x99, 0x91, 0xF6, 0xE5, 0x99, 0xB4, - 0xF6, 0xE5, 0x88, 0x87, 0xF6, 0xE5, 0xA3, 0xAE, - 0xF6, 0xE5, 0x9F, 0x8E, 0xF6, 0xE5, 0x9F, 0xB4, - 0xF6, 0xE5, 0xA0, 0x8D, 0xF6, 0xE5, 0x9E, 0x8B, - 0xF6, 0xE5, 0xA0, 0xB2, 0xF6, 0xE5, 0xA0, 0xB1, - 0xF6, 0xE5, 0xA2, 0xAC, 0xF6, 0xF0, 0xA1, 0x93, - 0xA4, 0xF6, 0xE5, 0xA3, 0xB2, 0xF6, 0xE5, 0xA3, - 0xB7, 0xF6, 0xE5, 0xA4, 0x86, 0xF6, 0xE5, 0xA4, - 0x9A, 0xF6, 0xE5, 0xA4, 0xA2, 0xF6, 0xE5, 0xA5, - 0xA2, 0xF6, 0xF0, 0xA1, 0x9A, 0xA8, 0xF6, 0xF0, - 0xA1, 0x9B, 0xAA, 0xF6, 0xE5, 0xA7, 0xAC, 0xF6, - 0xE5, 0xA8, 0x9B, 0xF6, 0xE5, 0xA8, 0xA7, 0xF6, - 0xE5, 0xA7, 0x98, 0xF6, 0xE5, 0xA9, 0xA6, 0xF6, - 0xE3, 0x9B, 0xAE, 0xF6, 0xE3, 0x9B, 0xBC, 0xF6, - 0xE5, 0xAC, 0x88, 0xF6, 0xE5, 0xAC, 0xBE, 0xF6, - 0xE5, 0xAC, 0xBE, 0xF6, 0xF0, 0xA1, 0xA7, 0x88, - 0xF6, 0xE5, 0xAF, 0x83, 0xF6, 0xE5, 0xAF, 0x98, - 0xF6, 0xE5, 0xAF, 0xA7, 0xF6, 0xE5, 0xAF, 0xB3, - 0xF6, 0xF0, 0xA1, 0xAC, 0x98, 0xF6, 0xE5, 0xAF, - 0xBF, 0xF6, 0xE5, 0xB0, 0x86, 0xF6, 0xE5, 0xBD, - 0x93, 0xF6, 0xE5, 0xB0, 0xA2, 0xF6, 0xE3, 0x9E, - 0x81, 0xF6, 0xE5, 0xB1, 0xA0, 0xF6, 0xE5, 0xB1, - 0xAE, 0xF6, 0xE5, 0xB3, 0x80, 0xF6, 0xE5, 0xB2, - 0x8D, 0xF6, 0xF0, 0xA1, 0xB7, 0xA4, 0xF6, 0xE5, - 0xB5, 0x83, 0xF6, 0xF0, 0xA1, 0xB7, 0xA6, 0xF6, - 0xE5, 0xB5, 0xAE, 0xF6, 0xE5, 0xB5, 0xAB, 0xF6, - 0xE5, 0xB5, 0xBC, 0xF6, 0xE5, 0xB7, 0xA1, 0xF6, - 0xE5, 0xB7, 0xA2, 0xF6, 0xE3, 0xA0, 0xAF, 0xF6, - 0xE5, 0xB7, 0xBD, 0xF6, 0xE5, 0xB8, 0xA8, 0xF6, - 0xE5, 0xB8, 0xBD, 0xF6, 0xE5, 0xB9, 0xA9, 0xF6, - 0xE3, 0xA1, 0xA2, 0xF6, 0xF0, 0xA2, 0x86, 0x83, - 0xF6, 0xE3, 0xA1, 0xBC, 0xF6, 0xE5, 0xBA, 0xB0, - 0xF6, 0xE5, 0xBA, 0xB3, 0xF6, 0xE5, 0xBA, 0xB6, - 0xF6, 0xE5, 0xBB, 0x8A, 0xF6, 0xF0, 0xAA, 0x8E, - 0x92, 0xF6, 0xE5, 0xBB, 0xBE, 0xF6, 0xF0, 0xA2, - 0x8C, 0xB1, 0xF6, 0xF0, 0xA2, 0x8C, 0xB1, 0xF6, - 0xE8, 0x88, 0x81, 0xF6, 0xE5, 0xBC, 0xA2, 0xF6, - 0xE5, 0xBC, 0xA2, 0xF6, 0xE3, 0xA3, 0x87, 0xF6, - 0xF0, 0xA3, 0x8A, 0xB8, 0xF6, 0xF0, 0xA6, 0x87, - 0x9A, 0xF6, 0xE5, 0xBD, 0xA2, 0xF6, 0xE5, 0xBD, - 0xAB, 0xF6, 0xE3, 0xA3, 0xA3, 0xF6, 0xE5, 0xBE, - 0x9A, 0xF6, 0xE5, 0xBF, 0x8D, 0xF6, 0xE5, 0xBF, - 0x97, 0xF6, 0xE5, 0xBF, 0xB9, 0xF6, 0xE6, 0x82, - 0x81, 0xF6, 0xE3, 0xA4, 0xBA, 0xF6, 0xE3, 0xA4, - 0x9C, 0xF6, 0xE6, 0x82, 0x94, 0xF6, 0xF0, 0xA2, - 0x9B, 0x94, 0xF6, 0xE6, 0x83, 0x87, 0xF6, 0xE6, - 0x85, 0x88, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6, - 0x85, 0x8E, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6, - 0x85, 0xBA, 0xF6, 0xE6, 0x86, 0x8E, 0xF6, 0xE6, - 0x86, 0xB2, 0xF6, 0xE6, 0x86, 0xA4, 0xF6, 0xE6, - 0x86, 0xAF, 0xF6, 0xE6, 0x87, 0x9E, 0xF6, 0xE6, - 0x87, 0xB2, 0xF6, 0xE6, 0x87, 0xB6, 0xF6, 0xE6, - 0x88, 0x90, 0xF6, 0xE6, 0x88, 0x9B, 0xF6, 0xE6, - 0x89, 0x9D, 0xF6, 0xE6, 0x8A, 0xB1, 0xF6, 0xE6, - 0x8B, 0x94, 0xF6, 0xE6, 0x8D, 0x90, 0xF6, 0xF0, - 0xA2, 0xAC, 0x8C, 0xF6, 0xE6, 0x8C, 0xBD, 0xF6, - 0xE6, 0x8B, 0xBC, 0xF6, 0xE6, 0x8D, 0xA8, 0xF6, - 0xE6, 0x8E, 0x83, 0xF6, 0xE6, 0x8F, 0xA4, 0xF6, - 0xF0, 0xA2, 0xAF, 0xB1, 0xF6, 0xE6, 0x90, 0xA2, - 0xF6, 0xE6, 0x8F, 0x85, 0xF6, 0xE6, 0x8E, 0xA9, - 0xF6, 0xE3, 0xA8, 0xAE, 0xF6, 0xE6, 0x91, 0xA9, - 0xF6, 0xE6, 0x91, 0xBE, 0xF6, 0xE6, 0x92, 0x9D, - 0xF6, 0xE6, 0x91, 0xB7, 0xF6, 0xE3, 0xA9, 0xAC, - 0xF6, 0xE6, 0x95, 0x8F, 0xF6, 0xE6, 0x95, 0xAC, - 0xF6, 0xF0, 0xA3, 0x80, 0x8A, 0xF6, 0xE6, 0x97, - 0xA3, 0xF6, 0xE6, 0x9B, 0xB8, 0xF6, 0xE6, 0x99, - 0x89, 0xF6, 0xE3, 0xAC, 0x99, 0xF6, 0xE6, 0x9A, - 0x91, 0xF6, 0xE3, 0xAC, 0x88, 0xF6, 0xE3, 0xAB, - 0xA4, 0xF6, 0xE5, 0x86, 0x92, 0xF6, 0xE5, 0x86, - 0x95, 0xF6, 0xE6, 0x9C, 0x80, 0xF6, 0xE6, 0x9A, - 0x9C, 0xF6, 0xE8, 0x82, 0xAD, 0xF6, 0xE4, 0x8F, - 0x99, 0xF6, 0xE6, 0x9C, 0x97, 0xF6, 0xE6, 0x9C, - 0x9B, 0xF6, 0xE6, 0x9C, 0xA1, 0xF6, 0xE6, 0x9D, - 0x9E, 0xF6, 0xE6, 0x9D, 0x93, 0xF6, 0xF0, 0xA3, - 0x8F, 0x83, 0xF6, 0xE3, 0xAD, 0x89, 0xF6, 0xE6, - 0x9F, 0xBA, 0xF6, 0xE6, 0x9E, 0x85, 0xF6, 0xE6, - 0xA1, 0x92, 0xF6, 0xE6, 0xA2, 0x85, 0xF6, 0xF0, - 0xA3, 0x91, 0xAD, 0xF6, 0xE6, 0xA2, 0x8E, 0xF6, - 0xE6, 0xA0, 0x9F, 0xF6, 0xE6, 0xA4, 0x94, 0xF6, - 0xE3, 0xAE, 0x9D, 0xF6, 0xE6, 0xA5, 0x82, 0xF6, - 0xE6, 0xA6, 0xA3, 0xF6, 0xE6, 0xA7, 0xAA, 0xF6, - 0xE6, 0xAA, 0xA8, 0xF6, 0xF0, 0xA3, 0x9A, 0xA3, - 0xF6, 0xE6, 0xAB, 0x9B, 0xF6, 0xE3, 0xB0, 0x98, - 0xF6, 0xE6, 0xAC, 0xA1, 0xF6, 0xF0, 0xA3, 0xA2, - 0xA7, 0xF6, 0xE6, 0xAD, 0x94, 0xF6, 0xE3, 0xB1, - 0x8E, 0xF6, 0xE6, 0xAD, 0xB2, 0xF6, 0xE6, 0xAE, - 0x9F, 0xF6, 0xE6, 0xAE, 0xBA, 0xF6, 0xE6, 0xAE, - 0xBB, 0xF6, 0xF0, 0xA3, 0xAA, 0x8D, 0xF6, 0xF0, - 0xA1, 0xB4, 0x8B, 0xF6, 0xF0, 0xA3, 0xAB, 0xBA, - 0xF6, 0xE6, 0xB1, 0x8E, 0xF6, 0xF0, 0xA3, 0xB2, - 0xBC, 0xF6, 0xE6, 0xB2, 0xBF, 0xF6, 0xE6, 0xB3, - 0x8D, 0xF6, 0xE6, 0xB1, 0xA7, 0xF6, 0xE6, 0xB4, - 0x96, 0xF6, 0xE6, 0xB4, 0xBE, 0xF6, 0xE6, 0xB5, - 0xB7, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6, 0xB5, - 0xA9, 0xF6, 0xE6, 0xB5, 0xB8, 0xF6, 0xE6, 0xB6, - 0x85, 0xF6, 0xF0, 0xA3, 0xB4, 0x9E, 0xF6, 0xE6, - 0xB4, 0xB4, 0xF6, 0xE6, 0xB8, 0xAF, 0xF6, 0xE6, - 0xB9, 0xAE, 0xF6, 0xE3, 0xB4, 0xB3, 0xF6, 0xE6, - 0xBB, 0x8B, 0xF6, 0xE6, 0xBB, 0x87, 0xF6, 0xF0, - 0xA3, 0xBB, 0x91, 0xF6, 0xE6, 0xB7, 0xB9, 0xF6, - 0xE6, 0xBD, 0xAE, 0xF6, 0xF0, 0xA3, 0xBD, 0x9E, - 0xF6, 0xF0, 0xA3, 0xBE, 0x8E, 0xF6, 0xE6, 0xBF, - 0x86, 0xF6, 0xE7, 0x80, 0xB9, 0xF6, 0xE7, 0x80, - 0x9E, 0xF6, 0xE7, 0x80, 0x9B, 0xF6, 0xE3, 0xB6, - 0x96, 0xF6, 0xE7, 0x81, 0x8A, 0xF6, 0xE7, 0x81, - 0xBD, 0xF6, 0xE7, 0x81, 0xB7, 0xF6, 0xE7, 0x82, - 0xAD, 0xF6, 0xF0, 0xA0, 0x94, 0xA5, 0xF6, 0xE7, - 0x85, 0x85, 0xF6, 0xF0, 0xA4, 0x89, 0xA3, 0xF6, - 0xE7, 0x86, 0x9C, 0xF6, 0xF0, 0xA4, 0x8E, 0xAB, - 0xF6, 0xE7, 0x88, 0xA8, 0xF6, 0xE7, 0x88, 0xB5, - 0xF6, 0xE7, 0x89, 0x90, 0xF6, 0xF0, 0xA4, 0x98, - 0x88, 0xF6, 0xE7, 0x8A, 0x80, 0xF6, 0xE7, 0x8A, - 0x95, 0xF6, 0xF0, 0xA4, 0x9C, 0xB5, 0xF6, 0xF0, - 0xA4, 0xA0, 0x94, 0xF6, 0xE7, 0x8D, 0xBA, 0xF6, - 0xE7, 0x8E, 0x8B, 0xF6, 0xE3, 0xBA, 0xAC, 0xF6, - 0xE7, 0x8E, 0xA5, 0xF6, 0xE3, 0xBA, 0xB8, 0xF6, - 0xE3, 0xBA, 0xB8, 0xF6, 0xE7, 0x91, 0x87, 0xF6, - 0xE7, 0x91, 0x9C, 0xF6, 0xE7, 0x91, 0xB1, 0xF6, - 0xE7, 0x92, 0x85, 0xF6, 0xE7, 0x93, 0x8A, 0xF6, - 0xE3, 0xBC, 0x9B, 0xF6, 0xE7, 0x94, 0xA4, 0xF6, - 0xF0, 0xA4, 0xB0, 0xB6, 0xF6, 0xE7, 0x94, 0xBE, - 0xF6, 0xF0, 0xA4, 0xB2, 0x92, 0xF6, 0xE7, 0x95, - 0xB0, 0xF6, 0xF0, 0xA2, 0x86, 0x9F, 0xF6, 0xE7, - 0x98, 0x90, 0xF6, 0xF0, 0xA4, 0xBE, 0xA1, 0xF6, - 0xF0, 0xA4, 0xBE, 0xB8, 0xF6, 0xF0, 0xA5, 0x81, - 0x84, 0xF6, 0xE3, 0xBF, 0xBC, 0xF6, 0xE4, 0x80, - 0x88, 0xF6, 0xE7, 0x9B, 0xB4, 0xF6, 0xF0, 0xA5, - 0x83, 0xB3, 0xF6, 0xF0, 0xA5, 0x83, 0xB2, 0xF6, - 0xF0, 0xA5, 0x84, 0x99, 0xF6, 0xF0, 0xA5, 0x84, - 0xB3, 0xF6, 0xE7, 0x9C, 0x9E, 0xF6, 0xE7, 0x9C, - 0x9F, 0xF6, 0xE7, 0x9C, 0x9F, 0xF6, 0xE7, 0x9D, - 0x8A, 0xF6, 0xE4, 0x80, 0xB9, 0xF6, 0xE7, 0x9E, - 0x8B, 0xF6, 0xE4, 0x81, 0x86, 0xF6, 0xE4, 0x82, - 0x96, 0xF6, 0xF0, 0xA5, 0x90, 0x9D, 0xF6, 0xE7, - 0xA1, 0x8E, 0xF6, 0xE7, 0xA2, 0x8C, 0xF6, 0xE7, - 0xA3, 0x8C, 0xF6, 0xE4, 0x83, 0xA3, 0xF6, 0xF0, - 0xA5, 0x98, 0xA6, 0xF6, 0xE7, 0xA5, 0x96, 0xF6, - 0xF0, 0xA5, 0x9A, 0x9A, 0xF6, 0xF0, 0xA5, 0x9B, - 0x85, 0xF6, 0xE7, 0xA6, 0x8F, 0xF6, 0xE7, 0xA7, - 0xAB, 0xF6, 0xE4, 0x84, 0xAF, 0xF6, 0xE7, 0xA9, - 0x80, 0xF6, 0xE7, 0xA9, 0x8A, 0xF6, 0xE7, 0xA9, - 0x8F, 0xF6, 0xF0, 0xA5, 0xA5, 0xBC, 0xF6, 0xF0, - 0xA5, 0xAA, 0xA7, 0xF6, 0xF0, 0xA5, 0xAA, 0xA7, - 0xF6, 0xE7, 0xAB, 0xAE, 0xF6, 0xE4, 0x88, 0x82, - 0xF6, 0xF0, 0xA5, 0xAE, 0xAB, 0xF6, 0xE7, 0xAF, - 0x86, 0xF6, 0xE7, 0xAF, 0x89, 0xF6, 0xE4, 0x88, - 0xA7, 0xF6, 0xF0, 0xA5, 0xB2, 0x80, 0xF6, 0xE7, - 0xB3, 0x92, 0xF6, 0xE4, 0x8A, 0xA0, 0xF6, 0xE7, - 0xB3, 0xA8, 0xF6, 0xE7, 0xB3, 0xA3, 0xF6, 0xE7, - 0xB4, 0x80, 0xF6, 0xF0, 0xA5, 0xBE, 0x86, 0xF6, - 0xE7, 0xB5, 0xA3, 0xF6, 0xE4, 0x8C, 0x81, 0xF6, - 0xE7, 0xB7, 0x87, 0xF6, 0xE7, 0xB8, 0x82, 0xF6, - 0xE7, 0xB9, 0x85, 0xF6, 0xE4, 0x8C, 0xB4, 0xF6, - 0xF0, 0xA6, 0x88, 0xA8, 0xF6, 0xF0, 0xA6, 0x89, - 0x87, 0xF6, 0xE4, 0x8D, 0x99, 0xF6, 0xF0, 0xA6, - 0x8B, 0x99, 0xF6, 0xE7, 0xBD, 0xBA, 0xF6, 0xF0, - 0xA6, 0x8C, 0xBE, 0xF6, 0xE7, 0xBE, 0x95, 0xF6, - 0xE7, 0xBF, 0xBA, 0xF6, 0xE8, 0x80, 0x85, 0xF6, - 0xF0, 0xA6, 0x93, 0x9A, 0xF6, 0xF0, 0xA6, 0x94, - 0xA3, 0xF6, 0xE8, 0x81, 0xA0, 0xF6, 0xF0, 0xA6, - 0x96, 0xA8, 0xF6, 0xE8, 0x81, 0xB0, 0xF6, 0xF0, - 0xA3, 0x8D, 0x9F, 0xF6, 0xE4, 0x8F, 0x95, 0xF6, - 0xE8, 0x82, 0xB2, 0xF6, 0xE8, 0x84, 0x83, 0xF6, - 0xE4, 0x90, 0x8B, 0xF6, 0xE8, 0x84, 0xBE, 0xF6, - 0xE5, 0xAA, 0xB5, 0xF6, 0xF0, 0xA6, 0x9E, 0xA7, - 0xF6, 0xF0, 0xA6, 0x9E, 0xB5, 0xF6, 0xF0, 0xA3, - 0x8E, 0x93, 0xF6, 0xF0, 0xA3, 0x8E, 0x9C, 0xF6, - 0xE8, 0x88, 0x81, 0xF6, 0xE8, 0x88, 0x84, 0xF6, - 0xE8, 0xBE, 0x9E, 0xF6, 0xE4, 0x91, 0xAB, 0xF6, - 0xE8, 0x8A, 0x91, 0xF6, 0xE8, 0x8A, 0x8B, 0xF6, - 0xE8, 0x8A, 0x9D, 0xF6, 0xE5, 0x8A, 0xB3, 0xF6, - 0xE8, 0x8A, 0xB1, 0xF6, 0xE8, 0x8A, 0xB3, 0xF6, - 0xE8, 0x8A, 0xBD, 0xF6, 0xE8, 0x8B, 0xA6, 0xF6, - 0xF0, 0xA6, 0xAC, 0xBC, 0xF6, 0xE8, 0x8B, 0xA5, - 0xF6, 0xE8, 0x8C, 0x9D, 0xF6, 0xE8, 0x8D, 0xA3, - 0xF6, 0xE8, 0x8E, 0xAD, 0xF6, 0xE8, 0x8C, 0xA3, - 0xF6, 0xE8, 0x8E, 0xBD, 0xF6, 0xE8, 0x8F, 0xA7, - 0xF6, 0xE8, 0x91, 0x97, 0xF6, 0xE8, 0x8D, 0x93, - 0xF6, 0xE8, 0x8F, 0x8A, 0xF6, 0xE8, 0x8F, 0x8C, - 0xF6, 0xE8, 0x8F, 0x9C, 0xF6, 0xF0, 0xA6, 0xB0, - 0xB6, 0xF6, 0xF0, 0xA6, 0xB5, 0xAB, 0xF6, 0xF0, - 0xA6, 0xB3, 0x95, 0xF6, 0xE4, 0x94, 0xAB, 0xF6, - 0xE8, 0x93, 0xB1, 0xF6, 0xE8, 0x93, 0xB3, 0xF6, - 0xE8, 0x94, 0x96, 0xF6, 0xF0, 0xA7, 0x8F, 0x8A, - 0xF6, 0xE8, 0x95, 0xA4, 0xF6, 0xF0, 0xA6, 0xBC, - 0xAC, 0xF6, 0xE4, 0x95, 0x9D, 0xF6, 0xE4, 0x95, - 0xA1, 0xF6, 0xF0, 0xA6, 0xBE, 0xB1, 0xF6, 0xF0, - 0xA7, 0x83, 0x92, 0xF6, 0xE4, 0x95, 0xAB, 0xF6, - 0xE8, 0x99, 0x90, 0xF6, 0xE8, 0x99, 0x9C, 0xF6, - 0xE8, 0x99, 0xA7, 0xF6, 0xE8, 0x99, 0xA9, 0xF6, - 0xE8, 0x9A, 0xA9, 0xF6, 0xE8, 0x9A, 0x88, 0xF6, - 0xE8, 0x9C, 0x8E, 0xF6, 0xE8, 0x9B, 0xA2, 0xF6, - 0xE8, 0x9D, 0xB9, 0xF6, 0xE8, 0x9C, 0xA8, 0xF6, - 0xE8, 0x9D, 0xAB, 0xF6, 0xE8, 0x9E, 0x86, 0xF6, - 0xE4, 0x97, 0x97, 0xF6, 0xE8, 0x9F, 0xA1, 0xF6, - 0xE8, 0xA0, 0x81, 0xF6, 0xE4, 0x97, 0xB9, 0xF6, - 0xE8, 0xA1, 0xA0, 0xF6, 0xE8, 0xA1, 0xA3, 0xF6, - 0xF0, 0xA7, 0x99, 0xA7, 0xF6, 0xE8, 0xA3, 0x97, - 0xF6, 0xE8, 0xA3, 0x9E, 0xF6, 0xE4, 0x98, 0xB5, - 0xF6, 0xE8, 0xA3, 0xBA, 0xF6, 0xE3, 0x92, 0xBB, - 0xF6, 0xF0, 0xA7, 0xA2, 0xAE, 0xF6, 0xF0, 0xA7, - 0xA5, 0xA6, 0xF6, 0xE4, 0x9A, 0xBE, 0xF6, 0xE4, - 0x9B, 0x87, 0xF6, 0xE8, 0xAA, 0xA0, 0xF6, 0xE8, - 0xAB, 0xAD, 0xF6, 0xE8, 0xAE, 0x8A, 0xF6, 0xE8, - 0xB1, 0x95, 0xF6, 0xF0, 0xA7, 0xB2, 0xA8, 0xF6, - 0xE8, 0xB2, 0xAB, 0xF6, 0xE8, 0xB3, 0x81, 0xF6, - 0xE8, 0xB4, 0x9B, 0xF6, 0xE8, 0xB5, 0xB7, 0xF6, - 0xF0, 0xA7, 0xBC, 0xAF, 0xF6, 0xF0, 0xA0, 0xA0, - 0x84, 0xF6, 0xE8, 0xB7, 0x8B, 0xF6, 0xE8, 0xB6, - 0xBC, 0xF6, 0xE8, 0xB7, 0xB0, 0xF6, 0xF0, 0xA0, - 0xA3, 0x9E, 0xF6, 0xE8, 0xBB, 0x94, 0xF6, 0xE8, - 0xBC, 0xB8, 0xF6, 0xF0, 0xA8, 0x97, 0x92, 0xF6, - 0xF0, 0xA8, 0x97, 0xAD, 0xF6, 0xE9, 0x82, 0x94, - 0xF6, 0xE9, 0x83, 0xB1, 0xF6, 0xE9, 0x84, 0x91, - 0xF6, 0xF0, 0xA8, 0x9C, 0xAE, 0xF6, 0xE9, 0x84, - 0x9B, 0xF6, 0xE9, 0x88, 0xB8, 0xF6, 0xE9, 0x8B, - 0x97, 0xF6, 0xE9, 0x8B, 0x98, 0xF6, 0xE9, 0x89, - 0xBC, 0xF6, 0xE9, 0x8F, 0xB9, 0xF6, 0xE9, 0x90, - 0x95, 0xF6, 0xF0, 0xA8, 0xAF, 0xBA, 0xF6, 0xE9, - 0x96, 0x8B, 0xF6, 0xE4, 0xA6, 0x95, 0xF6, 0xE9, - 0x96, 0xB7, 0xF6, 0xF0, 0xA8, 0xB5, 0xB7, 0xF6, - 0xE4, 0xA7, 0xA6, 0xF6, 0xE9, 0x9B, 0x83, 0xF6, - 0xE5, 0xB6, 0xB2, 0xF6, 0xE9, 0x9C, 0xA3, 0xF6, - 0xF0, 0xA9, 0x85, 0x85, 0xF6, 0xF0, 0xA9, 0x88, - 0x9A, 0xF6, 0xE4, 0xA9, 0xAE, 0xF6, 0xE4, 0xA9, - 0xB6, 0xF6, 0xE9, 0x9F, 0xA0, 0xF6, 0xF0, 0xA9, - 0x90, 0x8A, 0xF6, 0xE4, 0xAA, 0xB2, 0xF6, 0xF0, - 0xA9, 0x92, 0x96, 0xF6, 0xE9, 0xA0, 0x8B, 0xF6, - 0xE9, 0xA0, 0x8B, 0xF6, 0xE9, 0xA0, 0xA9, 0xF6, - 0xF0, 0xA9, 0x96, 0xB6, 0xF6, 0xE9, 0xA3, 0xA2, - 0xF6, 0xE4, 0xAC, 0xB3, 0xF6, 0xE9, 0xA4, 0xA9, - 0xF6, 0xE9, 0xA6, 0xA7, 0xF6, 0xE9, 0xA7, 0x82, - 0xF6, 0xE9, 0xA7, 0xBE, 0xF6, 0xE4, 0xAF, 0x8E, - 0xF6, 0xF0, 0xA9, 0xAC, 0xB0, 0xF6, 0xE9, 0xAC, - 0x92, 0xF6, 0xE9, 0xB1, 0x80, 0xF6, 0xE9, 0xB3, - 0xBD, 0xF6, 0xE4, 0xB3, 0x8E, 0xF6, 0xE4, 0xB3, - 0xAD, 0xF6, 0xE9, 0xB5, 0xA7, 0xF6, 0xF0, 0xAA, - 0x83, 0x8E, 0xF6, 0xE4, 0xB3, 0xB8, 0xF6, 0xF0, - 0xAA, 0x84, 0x85, 0xF6, 0xF0, 0xAA, 0x88, 0x8E, - 0xF6, 0xF0, 0xAA, 0x8A, 0x91, 0xF6, 0xE9, 0xBA, - 0xBB, 0xF6, 0xE4, 0xB5, 0x96, 0xF6, 0xE9, 0xBB, - 0xB9, 0xF6, 0xE9, 0xBB, 0xBE, 0xF6, 0xE9, 0xBC, - 0x85, 0xF6, 0xE9, 0xBC, 0x8F, 0xF6, 0xE9, 0xBC, - 0x96, 0xF6, 0xE9, 0xBC, 0xBB, 0xF6, 0xF0, 0xAA, - 0x98, 0x80, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, - }, - { - 0x20, 0x20, 0xCC, 0x88, 0x61, 0x20, 0xCC, 0x84, - 0x32, 0x33, 0x20, 0xCC, 0x81, 0xCE, 0xBC, 0x20, - 0xCC, 0xA7, 0x31, 0x6F, 0x31, 0xE2, 0x81, 0x84, - 0x34, 0x31, 0xE2, 0x81, 0x84, 0x32, 0x33, 0xE2, - 0x81, 0x84, 0x34, 0xF6, 0x41, 0xCC, 0x80, 0xF6, - 0x41, 0xCC, 0x81, 0xF6, 0x41, 0xCC, 0x82, 0xF6, - 0x41, 0xCC, 0x83, 0xF6, 0x41, 0xCC, 0x88, 0xF6, - 0x41, 0xCC, 0x8A, 0xF6, 0x43, 0xCC, 0xA7, 0xF6, - 0x45, 0xCC, 0x80, 0xF6, 0x45, 0xCC, 0x81, 0xF6, - 0x45, 0xCC, 0x82, 0xF6, 0x45, 0xCC, 0x88, 0xF6, - 0x49, 0xCC, 0x80, 0xF6, 0x49, 0xCC, 0x81, 0xF6, - 0x49, 0xCC, 0x82, 0xF6, 0x49, 0xCC, 0x88, 0xF6, - 0x4E, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x80, 0xF6, - 0x4F, 0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xF6, - 0x4F, 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x88, 0xF6, - 0x55, 0xCC, 0x80, 0xF6, 0x55, 0xCC, 0x81, 0xF6, - 0x55, 0xCC, 0x82, 0xF6, 0x55, 0xCC, 0x88, 0xF6, - 0x59, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x80, 0xF6, - 0x61, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x82, 0xF6, - 0x61, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x88, 0xF6, - 0x61, 0xCC, 0x8A, 0xF6, 0x63, 0xCC, 0xA7, 0xF6, - 0x65, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x81, 0xF6, - 0x65, 0xCC, 0x82, 0xF6, 0x65, 0xCC, 0x88, 0xF6, - 0x69, 0xCC, 0x80, 0xF6, 0x69, 0xCC, 0x81, 0xF6, - 0x69, 0xCC, 0x82, 0xF6, 0x69, 0xCC, 0x88, 0xF6, - 0x6E, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x80, 0xF6, - 0x6F, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82, 0xF6, - 0x6F, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x88, 0xF6, - 0x75, 0xCC, 0x80, 0xF6, 0x75, 0xCC, 0x81, 0xF6, - 0x75, 0xCC, 0x82, 0xF6, 0x75, 0xCC, 0x88, 0xF6, - 0x79, 0xCC, 0x81, 0xF6, 0x79, 0xCC, 0x88, 0xF6, - 0x41, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x84, 0xF6, - 0x41, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0x86, 0xF6, - 0x41, 0xCC, 0xA8, 0xF6, 0x61, 0xCC, 0xA8, 0xF6, - 0x43, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0x81, 0xF6, - 0x43, 0xCC, 0x82, 0xF6, 0x63, 0xCC, 0x82, 0xF6, - 0x43, 0xCC, 0x87, 0xF6, 0x63, 0xCC, 0x87, 0xF6, - 0x43, 0xCC, 0x8C, 0xF6, 0x63, 0xCC, 0x8C, 0xF6, - 0x44, 0xCC, 0x8C, 0xF6, 0x64, 0xCC, 0x8C, 0xF6, - 0x45, 0xCC, 0x84, 0xF6, 0x65, 0xCC, 0x84, 0xF6, - 0x45, 0xCC, 0x86, 0xF6, 0x65, 0xCC, 0x86, 0xF6, - 0x45, 0xCC, 0x87, 0xF6, 0x65, 0xCC, 0x87, 0xF6, - 0x45, 0xCC, 0xA8, 0xF6, 0x65, 0xCC, 0xA8, 0xF6, - 0x45, 0xCC, 0x8C, 0xF6, 0x65, 0xCC, 0x8C, 0xF6, - 0x47, 0xCC, 0x82, 0xF6, 0x67, 0xCC, 0x82, 0xF6, - 0x47, 0xCC, 0x86, 0xF6, 0x67, 0xCC, 0x86, 0xF6, - 0x47, 0xCC, 0x87, 0xF6, 0x67, 0xCC, 0x87, 0xF6, - 0x47, 0xCC, 0xA7, 0xF6, 0x67, 0xCC, 0xA7, 0xF6, - 0x48, 0xCC, 0x82, 0xF6, 0x68, 0xCC, 0x82, 0xF6, - 0x49, 0xCC, 0x83, 0xF6, 0x69, 0xCC, 0x83, 0xF6, - 0x49, 0xCC, 0x84, 0xF6, 0x69, 0xCC, 0x84, 0xF6, - 0x49, 0xCC, 0x86, 0xF6, 0x69, 0xCC, 0x86, 0xF6, - 0x49, 0xCC, 0xA8, 0xF6, 0x69, 0xCC, 0xA8, 0xF6, - 0x49, 0xCC, 0x87, 0x49, 0x4A, 0x69, 0x6A, 0xF6, - 0x4A, 0xCC, 0x82, 0xF6, 0x6A, 0xCC, 0x82, 0xF6, - 0x4B, 0xCC, 0xA7, 0xF6, 0x6B, 0xCC, 0xA7, 0xF6, - 0x4C, 0xCC, 0x81, 0xF6, 0x6C, 0xCC, 0x81, 0xF6, - 0x4C, 0xCC, 0xA7, 0xF6, 0x6C, 0xCC, 0xA7, 0xF6, - 0x4C, 0xCC, 0x8C, 0xF6, 0x6C, 0xCC, 0x8C, 0x4C, - 0xC2, 0xB7, 0x6C, 0xC2, 0xB7, 0xF6, 0x4E, 0xCC, - 0x81, 0xF6, 0x6E, 0xCC, 0x81, 0xF6, 0x4E, 0xCC, - 0xA7, 0xF6, 0x6E, 0xCC, 0xA7, 0xF6, 0x4E, 0xCC, - 0x8C, 0xF6, 0x6E, 0xCC, 0x8C, 0xCA, 0xBC, 0x6E, - 0xF6, 0x4F, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, 0x84, - 0xF6, 0x4F, 0xCC, 0x86, 0xF6, 0x6F, 0xCC, 0x86, - 0xF6, 0x4F, 0xCC, 0x8B, 0xF6, 0x6F, 0xCC, 0x8B, - 0xF6, 0x52, 0xCC, 0x81, 0xF6, 0x72, 0xCC, 0x81, - 0xF6, 0x52, 0xCC, 0xA7, 0xF6, 0x72, 0xCC, 0xA7, - 0xF6, 0x52, 0xCC, 0x8C, 0xF6, 0x72, 0xCC, 0x8C, - 0xF6, 0x53, 0xCC, 0x81, 0xF6, 0x73, 0xCC, 0x81, - 0xF6, 0x53, 0xCC, 0x82, 0xF6, 0x73, 0xCC, 0x82, - 0xF6, 0x53, 0xCC, 0xA7, 0xF6, 0x73, 0xCC, 0xA7, - 0xF6, 0x53, 0xCC, 0x8C, 0xF6, 0x73, 0xCC, 0x8C, - 0xF6, 0x54, 0xCC, 0xA7, 0xF6, 0x74, 0xCC, 0xA7, - 0xF6, 0x54, 0xCC, 0x8C, 0xF6, 0x74, 0xCC, 0x8C, - 0xF6, 0x55, 0xCC, 0x83, 0xF6, 0x75, 0xCC, 0x83, - 0xF6, 0x55, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x84, - 0xF6, 0x55, 0xCC, 0x86, 0xF6, 0x75, 0xCC, 0x86, - 0xF6, 0x55, 0xCC, 0x8A, 0xF6, 0x75, 0xCC, 0x8A, - 0xF6, 0x55, 0xCC, 0x8B, 0xF6, 0x75, 0xCC, 0x8B, - 0xF6, 0x55, 0xCC, 0xA8, 0xF6, 0x75, 0xCC, 0xA8, - 0xF6, 0x57, 0xCC, 0x82, 0xF6, 0x77, 0xCC, 0x82, - 0xF6, 0x59, 0xCC, 0x82, 0xF6, 0x79, 0xCC, 0x82, - 0xF6, 0x59, 0xCC, 0x88, 0xF6, 0x5A, 0xCC, 0x81, - 0xF6, 0x7A, 0xCC, 0x81, 0xF6, 0x5A, 0xCC, 0x87, - 0xF6, 0x7A, 0xCC, 0x87, 0xF6, 0x5A, 0xCC, 0x8C, - 0xF6, 0x7A, 0xCC, 0x8C, 0x73, 0xF6, 0x4F, 0xCC, - 0x9B, 0xF6, 0x6F, 0xCC, 0x9B, 0xF6, 0x55, 0xCC, - 0x9B, 0xF6, 0x75, 0xCC, 0x9B, 0x44, 0x5A, 0xCC, - 0x8C, 0x44, 0x7A, 0xCC, 0x8C, 0x64, 0x7A, 0xCC, - 0x8C, 0x4C, 0x4A, 0x4C, 0x6A, 0x6C, 0x6A, 0x4E, - 0x4A, 0x4E, 0x6A, 0x6E, 0x6A, 0xF6, 0x41, 0xCC, - 0x8C, 0xF6, 0x61, 0xCC, 0x8C, 0xF6, 0x49, 0xCC, - 0x8C, 0xF6, 0x69, 0xCC, 0x8C, 0xF6, 0x4F, 0xCC, - 0x8C, 0xF6, 0x6F, 0xCC, 0x8C, 0xF6, 0x55, 0xCC, - 0x8C, 0xF6, 0x75, 0xCC, 0x8C, 0xF6, 0x55, 0xCC, - 0x88, 0xCC, 0x84, 0xF6, 0x75, 0xCC, 0x88, 0xCC, - 0x84, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x81, 0xF6, - 0x75, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x55, 0xCC, - 0x88, 0xCC, 0x8C, 0xF6, 0x75, 0xCC, 0x88, 0xCC, - 0x8C, 0xF6, 0x55, 0xCC, 0x88, 0xCC, 0x80, 0xF6, - 0x75, 0xCC, 0x88, 0xCC, 0x80, 0xF6, 0x41, 0xCC, - 0x88, 0xCC, 0x84, 0xF6, 0x61, 0xCC, 0x88, 0xCC, - 0x84, 0xF6, 0x41, 0xCC, 0x87, 0xCC, 0x84, 0xF6, - 0x61, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0xC3, 0x86, - 0xCC, 0x84, 0xF6, 0xC3, 0xA6, 0xCC, 0x84, 0xF6, - 0x47, 0xCC, 0x8C, 0xF6, 0x67, 0xCC, 0x8C, 0xF6, - 0x4B, 0xCC, 0x8C, 0xF6, 0x6B, 0xCC, 0x8C, 0xF6, - 0x4F, 0xCC, 0xA8, 0xF6, 0x6F, 0xCC, 0xA8, 0xF6, - 0x4F, 0xCC, 0xA8, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, - 0xA8, 0xCC, 0x84, 0xF6, 0xC6, 0xB7, 0xCC, 0x8C, - 0xF6, 0xCA, 0x92, 0xCC, 0x8C, 0xF6, 0x6A, 0xCC, - 0x8C, 0x44, 0x5A, 0x44, 0x7A, 0x64, 0x7A, 0xF6, - 0x47, 0xCC, 0x81, 0xF6, 0x67, 0xCC, 0x81, 0xF6, - 0x4E, 0xCC, 0x80, 0xF6, 0x6E, 0xCC, 0x80, 0xF6, - 0x41, 0xCC, 0x8A, 0xCC, 0x81, 0xF6, 0x61, 0xCC, - 0x8A, 0xCC, 0x81, 0xF6, 0xC3, 0x86, 0xCC, 0x81, - 0xF6, 0xC3, 0xA6, 0xCC, 0x81, 0xF6, 0xC3, 0x98, - 0xCC, 0x81, 0xF6, 0xC3, 0xB8, 0xCC, 0x81, 0xF6, - 0x41, 0xCC, 0x8F, 0xF6, 0x61, 0xCC, 0x8F, 0xF6, - 0x41, 0xCC, 0x91, 0xF6, 0x61, 0xCC, 0x91, 0xF6, - 0x45, 0xCC, 0x8F, 0xF6, 0x65, 0xCC, 0x8F, 0xF6, - 0x45, 0xCC, 0x91, 0xF6, 0x65, 0xCC, 0x91, 0xF6, - 0x49, 0xCC, 0x8F, 0xF6, 0x69, 0xCC, 0x8F, 0xF6, - 0x49, 0xCC, 0x91, 0xF6, 0x69, 0xCC, 0x91, 0xF6, - 0x4F, 0xCC, 0x8F, 0xF6, 0x6F, 0xCC, 0x8F, 0xF6, - 0x4F, 0xCC, 0x91, 0xF6, 0x6F, 0xCC, 0x91, 0xF6, - 0x52, 0xCC, 0x8F, 0xF6, 0x72, 0xCC, 0x8F, 0xF6, - 0x52, 0xCC, 0x91, 0xF6, 0x72, 0xCC, 0x91, 0xF6, - 0x55, 0xCC, 0x8F, 0xF6, 0x75, 0xCC, 0x8F, 0xF6, - 0x55, 0xCC, 0x91, 0xF6, 0x75, 0xCC, 0x91, 0xF6, - 0x53, 0xCC, 0xA6, 0xF6, 0x73, 0xCC, 0xA6, 0xF6, - 0x54, 0xCC, 0xA6, 0xF6, 0x74, 0xCC, 0xA6, 0xF6, - 0x48, 0xCC, 0x8C, 0xF6, 0x68, 0xCC, 0x8C, 0xF6, - 0x41, 0xCC, 0x87, 0xF6, 0x61, 0xCC, 0x87, 0xF6, - 0x45, 0xCC, 0xA7, 0xF6, 0x65, 0xCC, 0xA7, 0xF6, - 0x4F, 0xCC, 0x88, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, - 0x88, 0xCC, 0x84, 0xF6, 0x4F, 0xCC, 0x83, 0xCC, - 0x84, 0xF6, 0x6F, 0xCC, 0x83, 0xCC, 0x84, 0xF6, - 0x4F, 0xCC, 0x87, 0xF6, 0x6F, 0xCC, 0x87, 0xF6, - 0x4F, 0xCC, 0x87, 0xCC, 0x84, 0xF6, 0x6F, 0xCC, - 0x87, 0xCC, 0x84, 0xF6, 0x59, 0xCC, 0x84, 0xF6, - 0x79, 0xCC, 0x84, 0x68, 0xC9, 0xA6, 0x6A, 0x72, - 0xC9, 0xB9, 0xC9, 0xBB, 0xCA, 0x81, 0x77, 0x79, - 0x20, 0xCC, 0x86, 0x20, 0xCC, 0x87, 0x20, 0xCC, - 0x8A, 0x20, 0xCC, 0xA8, 0x20, 0xCC, 0x83, 0x20, - 0xCC, 0x8B, 0xC9, 0xA3, 0x6C, 0x73, 0x78, 0xCA, - 0x95, 0xF6, 0xCC, 0x80, 0xF6, 0xCC, 0x81, 0xF6, - 0xCC, 0x93, 0xF6, 0xCC, 0x88, 0xCC, 0x81, 0xF6, - 0xCA, 0xB9, 0x20, 0xCD, 0x85, 0xF6, 0x3B, 0x20, - 0xCC, 0x81, 0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81, - 0x20, 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0xCE, 0x91, - 0xCC, 0x81, 0xF6, 0xC2, 0xB7, 0xF6, 0xCE, 0x95, - 0xCC, 0x81, 0xF6, 0xCE, 0x97, 0xCC, 0x81, 0xF6, - 0xCE, 0x99, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, - 0x81, 0xF6, 0xCE, 0xA5, 0xCC, 0x81, 0xF6, 0xCE, - 0xA9, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x88, - 0xCC, 0x81, 0xF6, 0xCE, 0x99, 0xCC, 0x88, 0xF6, - 0xCE, 0xA5, 0xCC, 0x88, 0xF6, 0xCE, 0xB1, 0xCC, - 0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x81, 0xF6, 0xCE, - 0xB7, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, 0x81, - 0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6, - 0xCE, 0xB9, 0xCC, 0x88, 0xF6, 0xCF, 0x85, 0xCC, - 0x88, 0xF6, 0xCE, 0xBF, 0xCC, 0x81, 0xF6, 0xCF, - 0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC, 0x81, - 0xCE, 0xB2, 0xCE, 0xB8, 0xCE, 0xA5, 0xF5, 0x05, - 0xCF, 0x92, 0xCC, 0x81, 0xCE, 0xA5, 0xCC, 0x81, - 0xF5, 0x05, 0xCF, 0x92, 0xCC, 0x88, 0xCE, 0xA5, - 0xCC, 0x88, 0xCF, 0x86, 0xCF, 0x80, 0xCE, 0xBA, - 0xCF, 0x81, 0xCF, 0x82, 0xCE, 0x98, 0xCE, 0xB5, - 0xCE, 0xA3, 0xF6, 0xD0, 0x95, 0xCC, 0x80, 0xF6, - 0xD0, 0x95, 0xCC, 0x88, 0xF6, 0xD0, 0x93, 0xCC, - 0x81, 0xF6, 0xD0, 0x86, 0xCC, 0x88, 0xF6, 0xD0, - 0x9A, 0xCC, 0x81, 0xF6, 0xD0, 0x98, 0xCC, 0x80, - 0xF6, 0xD0, 0xA3, 0xCC, 0x86, 0xF6, 0xD0, 0x98, - 0xCC, 0x86, 0xF6, 0xD0, 0xB8, 0xCC, 0x86, 0xF6, - 0xD0, 0xB5, 0xCC, 0x80, 0xF6, 0xD0, 0xB5, 0xCC, - 0x88, 0xF6, 0xD0, 0xB3, 0xCC, 0x81, 0xF6, 0xD1, - 0x96, 0xCC, 0x88, 0xF6, 0xD0, 0xBA, 0xCC, 0x81, - 0xF6, 0xD0, 0xB8, 0xCC, 0x80, 0xF6, 0xD1, 0x83, - 0xCC, 0x86, 0xF6, 0xD1, 0xB4, 0xCC, 0x8F, 0xF6, - 0xD1, 0xB5, 0xCC, 0x8F, 0xF6, 0xD0, 0x96, 0xCC, - 0x86, 0xF6, 0xD0, 0xB6, 0xCC, 0x86, 0xF6, 0xD0, - 0x90, 0xCC, 0x86, 0xF6, 0xD0, 0xB0, 0xCC, 0x86, - 0xF6, 0xD0, 0x90, 0xCC, 0x88, 0xF6, 0xD0, 0xB0, - 0xCC, 0x88, 0xF6, 0xD0, 0x95, 0xCC, 0x86, 0xF6, - 0xD0, 0xB5, 0xCC, 0x86, 0xF6, 0xD3, 0x98, 0xCC, - 0x88, 0xF6, 0xD3, 0x99, 0xCC, 0x88, 0xF6, 0xD0, - 0x96, 0xCC, 0x88, 0xF6, 0xD0, 0xB6, 0xCC, 0x88, - 0xF6, 0xD0, 0x97, 0xCC, 0x88, 0xF6, 0xD0, 0xB7, - 0xCC, 0x88, 0xF6, 0xD0, 0x98, 0xCC, 0x84, 0xF6, - 0xD0, 0xB8, 0xCC, 0x84, 0xF6, 0xD0, 0x98, 0xCC, - 0x88, 0xF6, 0xD0, 0xB8, 0xCC, 0x88, 0xF6, 0xD0, - 0x9E, 0xCC, 0x88, 0xF6, 0xD0, 0xBE, 0xCC, 0x88, - 0xF6, 0xD3, 0xA8, 0xCC, 0x88, 0xF6, 0xD3, 0xA9, - 0xCC, 0x88, 0xF6, 0xD0, 0xAD, 0xCC, 0x88, 0xF6, - 0xD1, 0x8D, 0xCC, 0x88, 0xF6, 0xD0, 0xA3, 0xCC, - 0x84, 0xF6, 0xD1, 0x83, 0xCC, 0x84, 0xF6, 0xD0, - 0xA3, 0xCC, 0x88, 0xF6, 0xD1, 0x83, 0xCC, 0x88, - 0xF6, 0xD0, 0xA3, 0xCC, 0x8B, 0xF6, 0xD1, 0x83, - 0xCC, 0x8B, 0xF6, 0xD0, 0xA7, 0xCC, 0x88, 0xF6, - 0xD1, 0x87, 0xCC, 0x88, 0xF6, 0xD0, 0xAB, 0xCC, - 0x88, 0xF6, 0xD1, 0x8B, 0xCC, 0x88, 0xD5, 0xA5, - 0xD6, 0x82, 0xF6, 0xD8, 0xA7, 0xD9, 0x93, 0xF6, - 0xD8, 0xA7, 0xD9, 0x94, 0xF6, 0xD9, 0x88, 0xD9, - 0x94, 0xF6, 0xD8, 0xA7, 0xD9, 0x95, 0xF6, 0xD9, - 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0xB4, 0xD9, - 0x88, 0xD9, 0xB4, 0xDB, 0x87, 0xD9, 0xB4, 0xD9, - 0x8A, 0xD9, 0xB4, 0xF6, 0xDB, 0x95, 0xD9, 0x94, - 0xF6, 0xDB, 0x81, 0xD9, 0x94, 0xF6, 0xDB, 0x92, - 0xD9, 0x94, 0xF6, 0xE0, 0xA4, 0xA8, 0xE0, 0xA4, - 0xBC, 0xF6, 0xE0, 0xA4, 0xB0, 0xE0, 0xA4, 0xBC, - 0xF6, 0xE0, 0xA4, 0xB3, 0xE0, 0xA4, 0xBC, 0xF6, - 0xE0, 0xA4, 0x95, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, - 0xA4, 0x96, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, - 0x97, 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0x9C, - 0xE0, 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0xA1, 0xE0, - 0xA4, 0xBC, 0xF6, 0xE0, 0xA4, 0xA2, 0xE0, 0xA4, - 0xBC, 0xF6, 0xE0, 0xA4, 0xAB, 0xE0, 0xA4, 0xBC, - 0xF6, 0xE0, 0xA4, 0xAF, 0xE0, 0xA4, 0xBC, 0xF6, - 0xE0, 0xA7, 0x87, 0xE0, 0xA6, 0xBE, 0xF6, 0xE0, - 0xA7, 0x87, 0xE0, 0xA7, 0x97, 0xF6, 0xE0, 0xA6, - 0xA1, 0xE0, 0xA6, 0xBC, 0xF6, 0xE0, 0xA6, 0xA2, - 0xE0, 0xA6, 0xBC, 0xF6, 0xE0, 0xA6, 0xAF, 0xE0, - 0xA6, 0xBC, 0xF6, 0xE0, 0xA8, 0xB2, 0xE0, 0xA8, - 0xBC, 0xF6, 0xE0, 0xA8, 0xB8, 0xE0, 0xA8, 0xBC, - 0xF6, 0xE0, 0xA8, 0x96, 0xE0, 0xA8, 0xBC, 0xF6, - 0xE0, 0xA8, 0x97, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, - 0xA8, 0x9C, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xA8, - 0xAB, 0xE0, 0xA8, 0xBC, 0xF6, 0xE0, 0xAD, 0x87, - 0xE0, 0xAD, 0x96, 0xF6, 0xE0, 0xAD, 0x87, 0xE0, - 0xAC, 0xBE, 0xF6, 0xE0, 0xAD, 0x87, 0xE0, 0xAD, - 0x97, 0xF6, 0xE0, 0xAC, 0xA1, 0xE0, 0xAC, 0xBC, - 0xF6, 0xE0, 0xAC, 0xA2, 0xE0, 0xAC, 0xBC, 0xF6, - 0xE0, 0xAE, 0x92, 0xE0, 0xAF, 0x97, 0xF6, 0xE0, - 0xAF, 0x86, 0xE0, 0xAE, 0xBE, 0xF6, 0xE0, 0xAF, - 0x87, 0xE0, 0xAE, 0xBE, 0xF6, 0xE0, 0xAF, 0x86, - 0xE0, 0xAF, 0x97, 0xF6, 0xE0, 0xB1, 0x86, 0xE0, - 0xB1, 0x96, 0xF6, 0xE0, 0xB2, 0xBF, 0xE0, 0xB3, - 0x95, 0xF6, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x95, - 0xF6, 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x96, 0xF6, - 0xE0, 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xF6, 0xE0, - 0xB3, 0x86, 0xE0, 0xB3, 0x82, 0xE0, 0xB3, 0x95, - 0xF6, 0xE0, 0xB5, 0x86, 0xE0, 0xB4, 0xBE, 0xF6, - 0xE0, 0xB5, 0x87, 0xE0, 0xB4, 0xBE, 0xF6, 0xE0, - 0xB5, 0x86, 0xE0, 0xB5, 0x97, 0xF6, 0xE0, 0xB7, - 0x99, 0xE0, 0xB7, 0x8A, 0xF6, 0xE0, 0xB7, 0x99, - 0xE0, 0xB7, 0x8F, 0xF6, 0xE0, 0xB7, 0x99, 0xE0, - 0xB7, 0x8F, 0xE0, 0xB7, 0x8A, 0xF6, 0xE0, 0xB7, - 0x99, 0xE0, 0xB7, 0x9F, 0xE0, 0xB9, 0x8D, 0xE0, - 0xB8, 0xB2, 0xE0, 0xBB, 0x8D, 0xE0, 0xBA, 0xB2, - 0xE0, 0xBA, 0xAB, 0xE0, 0xBA, 0x99, 0xE0, 0xBA, - 0xAB, 0xE0, 0xBA, 0xA1, 0xE0, 0xBC, 0x8B, 0xF6, - 0xE0, 0xBD, 0x82, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, - 0xBD, 0x8C, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, - 0x91, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x96, - 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x9B, 0xE0, - 0xBE, 0xB7, 0xF6, 0xE0, 0xBD, 0x80, 0xE0, 0xBE, - 0xB5, 0xF6, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB2, - 0xF6, 0xE0, 0xBD, 0xB1, 0xE0, 0xBD, 0xB4, 0xF6, - 0xE0, 0xBE, 0xB2, 0xE0, 0xBE, 0x80, 0xE0, 0xBE, - 0xB2, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, - 0xE0, 0xBE, 0xB3, 0xE0, 0xBE, 0x80, 0xE0, 0xBE, - 0xB3, 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, - 0xE0, 0xBD, 0xB1, 0xE0, 0xBE, 0x80, 0xF6, 0xE0, - 0xBE, 0x92, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, - 0x9C, 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xA1, - 0xE0, 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xA6, 0xE0, - 0xBE, 0xB7, 0xF6, 0xE0, 0xBE, 0xAB, 0xE0, 0xBE, - 0xB7, 0xF6, 0xE0, 0xBE, 0x90, 0xE0, 0xBE, 0xB5, - 0xF6, 0xE1, 0x80, 0xA5, 0xE1, 0x80, 0xAE, 0xE1, - 0x83, 0x9C, 0xF6, 0xE1, 0xAC, 0x85, 0xE1, 0xAC, - 0xB5, 0xF6, 0xE1, 0xAC, 0x87, 0xE1, 0xAC, 0xB5, - 0xF6, 0xE1, 0xAC, 0x89, 0xE1, 0xAC, 0xB5, 0xF6, - 0xE1, 0xAC, 0x8B, 0xE1, 0xAC, 0xB5, 0xF6, 0xE1, - 0xAC, 0x8D, 0xE1, 0xAC, 0xB5, 0xF6, 0xE1, 0xAC, - 0x91, 0xE1, 0xAC, 0xB5, 0xF6, 0xE1, 0xAC, 0xBA, - 0xE1, 0xAC, 0xB5, 0xF6, 0xE1, 0xAC, 0xBC, 0xE1, - 0xAC, 0xB5, 0xF6, 0xE1, 0xAC, 0xBE, 0xE1, 0xAC, - 0xB5, 0xF6, 0xE1, 0xAC, 0xBF, 0xE1, 0xAC, 0xB5, - 0xF6, 0xE1, 0xAD, 0x82, 0xE1, 0xAC, 0xB5, 0x41, - 0xC3, 0x86, 0x42, 0x44, 0x45, 0xC6, 0x8E, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0xC8, 0xA2, 0x50, 0x52, 0x54, 0x55, 0x57, 0x61, - 0xC9, 0x90, 0xC9, 0x91, 0xE1, 0xB4, 0x82, 0x62, - 0x64, 0x65, 0xC9, 0x99, 0xC9, 0x9B, 0xC9, 0x9C, - 0x67, 0x6B, 0x6D, 0xC5, 0x8B, 0x6F, 0xC9, 0x94, - 0xE1, 0xB4, 0x96, 0xE1, 0xB4, 0x97, 0x70, 0x74, - 0x75, 0xE1, 0xB4, 0x9D, 0xC9, 0xAF, 0x76, 0xE1, - 0xB4, 0xA5, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, - 0xCF, 0x86, 0xCF, 0x87, 0x69, 0x72, 0x75, 0x76, - 0xCE, 0xB2, 0xCE, 0xB3, 0xCF, 0x81, 0xCF, 0x86, - 0xCF, 0x87, 0xD0, 0xBD, 0xC9, 0x92, 0x63, 0xC9, - 0x95, 0xC3, 0xB0, 0xC9, 0x9C, 0x66, 0xC9, 0x9F, - 0xC9, 0xA1, 0xC9, 0xA5, 0xC9, 0xA8, 0xC9, 0xA9, - 0xC9, 0xAA, 0xE1, 0xB5, 0xBB, 0xCA, 0x9D, 0xC9, - 0xAD, 0xE1, 0xB6, 0x85, 0xCA, 0x9F, 0xC9, 0xB1, - 0xC9, 0xB0, 0xC9, 0xB2, 0xC9, 0xB3, 0xC9, 0xB4, - 0xC9, 0xB5, 0xC9, 0xB8, 0xCA, 0x82, 0xCA, 0x83, - 0xC6, 0xAB, 0xCA, 0x89, 0xCA, 0x8A, 0xE1, 0xB4, - 0x9C, 0xCA, 0x8B, 0xCA, 0x8C, 0x7A, 0xCA, 0x90, - 0xCA, 0x91, 0xCA, 0x92, 0xCE, 0xB8, 0xF6, 0x41, - 0xCC, 0xA5, 0xF6, 0x61, 0xCC, 0xA5, 0xF6, 0x42, - 0xCC, 0x87, 0xF6, 0x62, 0xCC, 0x87, 0xF6, 0x42, - 0xCC, 0xA3, 0xF6, 0x62, 0xCC, 0xA3, 0xF6, 0x42, - 0xCC, 0xB1, 0xF6, 0x62, 0xCC, 0xB1, 0xF6, 0x43, - 0xCC, 0xA7, 0xCC, 0x81, 0xF6, 0x63, 0xCC, 0xA7, - 0xCC, 0x81, 0xF6, 0x44, 0xCC, 0x87, 0xF6, 0x64, - 0xCC, 0x87, 0xF6, 0x44, 0xCC, 0xA3, 0xF6, 0x64, - 0xCC, 0xA3, 0xF6, 0x44, 0xCC, 0xB1, 0xF6, 0x64, - 0xCC, 0xB1, 0xF6, 0x44, 0xCC, 0xA7, 0xF6, 0x64, - 0xCC, 0xA7, 0xF6, 0x44, 0xCC, 0xAD, 0xF6, 0x64, - 0xCC, 0xAD, 0xF6, 0x45, 0xCC, 0x84, 0xCC, 0x80, - 0xF6, 0x65, 0xCC, 0x84, 0xCC, 0x80, 0xF6, 0x45, - 0xCC, 0x84, 0xCC, 0x81, 0xF6, 0x65, 0xCC, 0x84, - 0xCC, 0x81, 0xF6, 0x45, 0xCC, 0xAD, 0xF6, 0x65, - 0xCC, 0xAD, 0xF6, 0x45, 0xCC, 0xB0, 0xF6, 0x65, - 0xCC, 0xB0, 0xF6, 0x45, 0xCC, 0xA7, 0xCC, 0x86, - 0xF6, 0x65, 0xCC, 0xA7, 0xCC, 0x86, 0xF6, 0x46, - 0xCC, 0x87, 0xF6, 0x66, 0xCC, 0x87, 0xF6, 0x47, - 0xCC, 0x84, 0xF6, 0x67, 0xCC, 0x84, 0xF6, 0x48, - 0xCC, 0x87, 0xF6, 0x68, 0xCC, 0x87, 0xF6, 0x48, - 0xCC, 0xA3, 0xF6, 0x68, 0xCC, 0xA3, 0xF6, 0x48, - 0xCC, 0x88, 0xF6, 0x68, 0xCC, 0x88, 0xF6, 0x48, - 0xCC, 0xA7, 0xF6, 0x68, 0xCC, 0xA7, 0xF6, 0x48, - 0xCC, 0xAE, 0xF6, 0x68, 0xCC, 0xAE, 0xF6, 0x49, - 0xCC, 0xB0, 0xF6, 0x69, 0xCC, 0xB0, 0xF6, 0x49, - 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x69, 0xCC, 0x88, - 0xCC, 0x81, 0xF6, 0x4B, 0xCC, 0x81, 0xF6, 0x6B, - 0xCC, 0x81, 0xF6, 0x4B, 0xCC, 0xA3, 0xF6, 0x6B, - 0xCC, 0xA3, 0xF6, 0x4B, 0xCC, 0xB1, 0xF6, 0x6B, - 0xCC, 0xB1, 0xF6, 0x4C, 0xCC, 0xA3, 0xF6, 0x6C, - 0xCC, 0xA3, 0xF6, 0x4C, 0xCC, 0xA3, 0xCC, 0x84, - 0xF6, 0x6C, 0xCC, 0xA3, 0xCC, 0x84, 0xF6, 0x4C, - 0xCC, 0xB1, 0xF6, 0x6C, 0xCC, 0xB1, 0xF6, 0x4C, - 0xCC, 0xAD, 0xF6, 0x6C, 0xCC, 0xAD, 0xF6, 0x4D, - 0xCC, 0x81, 0xF6, 0x6D, 0xCC, 0x81, 0xF6, 0x4D, - 0xCC, 0x87, 0xF6, 0x6D, 0xCC, 0x87, 0xF6, 0x4D, - 0xCC, 0xA3, 0xF6, 0x6D, 0xCC, 0xA3, 0xF6, 0x4E, - 0xCC, 0x87, 0xF6, 0x6E, 0xCC, 0x87, 0xF6, 0x4E, - 0xCC, 0xA3, 0xF6, 0x6E, 0xCC, 0xA3, 0xF6, 0x4E, - 0xCC, 0xB1, 0xF6, 0x6E, 0xCC, 0xB1, 0xF6, 0x4E, - 0xCC, 0xAD, 0xF6, 0x6E, 0xCC, 0xAD, 0xF6, 0x4F, - 0xCC, 0x83, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x83, - 0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x83, 0xCC, 0x88, - 0xF6, 0x6F, 0xCC, 0x83, 0xCC, 0x88, 0xF6, 0x4F, - 0xCC, 0x84, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x84, - 0xCC, 0x80, 0xF6, 0x4F, 0xCC, 0x84, 0xCC, 0x81, - 0xF6, 0x6F, 0xCC, 0x84, 0xCC, 0x81, 0xF6, 0x50, - 0xCC, 0x81, 0xF6, 0x70, 0xCC, 0x81, 0xF6, 0x50, - 0xCC, 0x87, 0xF6, 0x70, 0xCC, 0x87, 0xF6, 0x52, - 0xCC, 0x87, 0xF6, 0x72, 0xCC, 0x87, 0xF6, 0x52, - 0xCC, 0xA3, 0xF6, 0x72, 0xCC, 0xA3, 0xF6, 0x52, - 0xCC, 0xA3, 0xCC, 0x84, 0xF6, 0x72, 0xCC, 0xA3, - 0xCC, 0x84, 0xF6, 0x52, 0xCC, 0xB1, 0xF6, 0x72, - 0xCC, 0xB1, 0xF6, 0x53, 0xCC, 0x87, 0xF6, 0x73, - 0xCC, 0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xF6, 0x73, - 0xCC, 0xA3, 0xF6, 0x53, 0xCC, 0x81, 0xCC, 0x87, - 0xF6, 0x73, 0xCC, 0x81, 0xCC, 0x87, 0xF6, 0x53, - 0xCC, 0x8C, 0xCC, 0x87, 0xF6, 0x73, 0xCC, 0x8C, - 0xCC, 0x87, 0xF6, 0x53, 0xCC, 0xA3, 0xCC, 0x87, - 0xF6, 0x73, 0xCC, 0xA3, 0xCC, 0x87, 0xF6, 0x54, - 0xCC, 0x87, 0xF6, 0x74, 0xCC, 0x87, 0xF6, 0x54, - 0xCC, 0xA3, 0xF6, 0x74, 0xCC, 0xA3, 0xF6, 0x54, - 0xCC, 0xB1, 0xF6, 0x74, 0xCC, 0xB1, 0xF6, 0x54, - 0xCC, 0xAD, 0xF6, 0x74, 0xCC, 0xAD, 0xF6, 0x55, - 0xCC, 0xA4, 0xF6, 0x75, 0xCC, 0xA4, 0xF6, 0x55, - 0xCC, 0xB0, 0xF6, 0x75, 0xCC, 0xB0, 0xF6, 0x55, - 0xCC, 0xAD, 0xF6, 0x75, 0xCC, 0xAD, 0xF6, 0x55, - 0xCC, 0x83, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x83, - 0xCC, 0x81, 0xF6, 0x55, 0xCC, 0x84, 0xCC, 0x88, - 0xF6, 0x75, 0xCC, 0x84, 0xCC, 0x88, 0xF6, 0x56, - 0xCC, 0x83, 0xF6, 0x76, 0xCC, 0x83, 0xF6, 0x56, - 0xCC, 0xA3, 0xF6, 0x76, 0xCC, 0xA3, 0xF6, 0x57, - 0xCC, 0x80, 0xF6, 0x77, 0xCC, 0x80, 0xF6, 0x57, - 0xCC, 0x81, 0xF6, 0x77, 0xCC, 0x81, 0xF6, 0x57, - 0xCC, 0x88, 0xF6, 0x77, 0xCC, 0x88, 0xF6, 0x57, - 0xCC, 0x87, 0xF6, 0x77, 0xCC, 0x87, 0xF6, 0x57, - 0xCC, 0xA3, 0xF6, 0x77, 0xCC, 0xA3, 0xF6, 0x58, - 0xCC, 0x87, 0xF6, 0x78, 0xCC, 0x87, 0xF6, 0x58, - 0xCC, 0x88, 0xF6, 0x78, 0xCC, 0x88, 0xF6, 0x59, - 0xCC, 0x87, 0xF6, 0x79, 0xCC, 0x87, 0xF6, 0x5A, - 0xCC, 0x82, 0xF6, 0x7A, 0xCC, 0x82, 0xF6, 0x5A, - 0xCC, 0xA3, 0xF6, 0x7A, 0xCC, 0xA3, 0xF6, 0x5A, - 0xCC, 0xB1, 0xF6, 0x7A, 0xCC, 0xB1, 0xF6, 0x68, - 0xCC, 0xB1, 0xF6, 0x74, 0xCC, 0x88, 0xF6, 0x77, - 0xCC, 0x8A, 0xF6, 0x79, 0xCC, 0x8A, 0x61, 0xCA, - 0xBE, 0xF5, 0x05, 0xC5, 0xBF, 0xCC, 0x87, 0x73, - 0xCC, 0x87, 0xF6, 0x41, 0xCC, 0xA3, 0xF6, 0x61, - 0xCC, 0xA3, 0xF6, 0x41, 0xCC, 0x89, 0xF6, 0x61, - 0xCC, 0x89, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x81, - 0xF6, 0x61, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x41, - 0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x61, 0xCC, 0x82, - 0xCC, 0x80, 0xF6, 0x41, 0xCC, 0x82, 0xCC, 0x89, - 0xF6, 0x61, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x41, - 0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x61, 0xCC, 0x82, - 0xCC, 0x83, 0xF6, 0x41, 0xCC, 0xA3, 0xCC, 0x82, - 0xF6, 0x61, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x41, - 0xCC, 0x86, 0xCC, 0x81, 0xF6, 0x61, 0xCC, 0x86, - 0xCC, 0x81, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x80, - 0xF6, 0x61, 0xCC, 0x86, 0xCC, 0x80, 0xF6, 0x41, - 0xCC, 0x86, 0xCC, 0x89, 0xF6, 0x61, 0xCC, 0x86, - 0xCC, 0x89, 0xF6, 0x41, 0xCC, 0x86, 0xCC, 0x83, - 0xF6, 0x61, 0xCC, 0x86, 0xCC, 0x83, 0xF6, 0x41, - 0xCC, 0xA3, 0xCC, 0x86, 0xF6, 0x61, 0xCC, 0xA3, - 0xCC, 0x86, 0xF6, 0x45, 0xCC, 0xA3, 0xF6, 0x65, - 0xCC, 0xA3, 0xF6, 0x45, 0xCC, 0x89, 0xF6, 0x65, - 0xCC, 0x89, 0xF6, 0x45, 0xCC, 0x83, 0xF6, 0x65, - 0xCC, 0x83, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x81, - 0xF6, 0x65, 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x45, - 0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x65, 0xCC, 0x82, - 0xCC, 0x80, 0xF6, 0x45, 0xCC, 0x82, 0xCC, 0x89, - 0xF6, 0x65, 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x45, - 0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x65, 0xCC, 0x82, - 0xCC, 0x83, 0xF6, 0x45, 0xCC, 0xA3, 0xCC, 0x82, - 0xF6, 0x65, 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x49, - 0xCC, 0x89, 0xF6, 0x69, 0xCC, 0x89, 0xF6, 0x49, - 0xCC, 0xA3, 0xF6, 0x69, 0xCC, 0xA3, 0xF6, 0x4F, - 0xCC, 0xA3, 0xF6, 0x6F, 0xCC, 0xA3, 0xF6, 0x4F, - 0xCC, 0x89, 0xF6, 0x6F, 0xCC, 0x89, 0xF6, 0x4F, - 0xCC, 0x82, 0xCC, 0x81, 0xF6, 0x6F, 0xCC, 0x82, - 0xCC, 0x81, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x80, - 0xF6, 0x6F, 0xCC, 0x82, 0xCC, 0x80, 0xF6, 0x4F, - 0xCC, 0x82, 0xCC, 0x89, 0xF6, 0x6F, 0xCC, 0x82, - 0xCC, 0x89, 0xF6, 0x4F, 0xCC, 0x82, 0xCC, 0x83, - 0xF6, 0x6F, 0xCC, 0x82, 0xCC, 0x83, 0xF6, 0x4F, - 0xCC, 0xA3, 0xCC, 0x82, 0xF6, 0x6F, 0xCC, 0xA3, - 0xCC, 0x82, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x81, - 0xF6, 0x6F, 0xCC, 0x9B, 0xCC, 0x81, 0xF6, 0x4F, - 0xCC, 0x9B, 0xCC, 0x80, 0xF6, 0x6F, 0xCC, 0x9B, - 0xCC, 0x80, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0x89, - 0xF6, 0x6F, 0xCC, 0x9B, 0xCC, 0x89, 0xF6, 0x4F, - 0xCC, 0x9B, 0xCC, 0x83, 0xF6, 0x6F, 0xCC, 0x9B, - 0xCC, 0x83, 0xF6, 0x4F, 0xCC, 0x9B, 0xCC, 0xA3, - 0xF6, 0x6F, 0xCC, 0x9B, 0xCC, 0xA3, 0xF6, 0x55, - 0xCC, 0xA3, 0xF6, 0x75, 0xCC, 0xA3, 0xF6, 0x55, - 0xCC, 0x89, 0xF6, 0x75, 0xCC, 0x89, 0xF6, 0x55, - 0xCC, 0x9B, 0xCC, 0x81, 0xF6, 0x75, 0xCC, 0x9B, - 0xCC, 0x81, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x80, - 0xF6, 0x75, 0xCC, 0x9B, 0xCC, 0x80, 0xF6, 0x55, - 0xCC, 0x9B, 0xCC, 0x89, 0xF6, 0x75, 0xCC, 0x9B, - 0xCC, 0x89, 0xF6, 0x55, 0xCC, 0x9B, 0xCC, 0x83, - 0xF6, 0x75, 0xCC, 0x9B, 0xCC, 0x83, 0xF6, 0x55, - 0xCC, 0x9B, 0xCC, 0xA3, 0xF6, 0x75, 0xCC, 0x9B, - 0xCC, 0xA3, 0xF6, 0x59, 0xCC, 0x80, 0xF6, 0x79, - 0xCC, 0x80, 0xF6, 0x59, 0xCC, 0xA3, 0xF6, 0x79, - 0xCC, 0xA3, 0xF6, 0x59, 0xCC, 0x89, 0xF6, 0x79, - 0xCC, 0x89, 0xF6, 0x59, 0xCC, 0x83, 0xF6, 0x79, - 0xCC, 0x83, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xF6, - 0xCE, 0xB1, 0xCC, 0x94, 0xF6, 0xCE, 0xB1, 0xCC, - 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x94, - 0xCC, 0x80, 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCC, - 0x81, 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, - 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xF6, - 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, - 0x91, 0xCC, 0x93, 0xF6, 0xCE, 0x91, 0xCC, 0x94, - 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xF6, - 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, - 0x91, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0x91, - 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCC, - 0x93, 0xCD, 0x82, 0xF6, 0xCE, 0x91, 0xCC, 0x94, - 0xCD, 0x82, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xF6, - 0xCE, 0xB5, 0xCC, 0x94, 0xF6, 0xCE, 0xB5, 0xCC, - 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x94, - 0xCC, 0x80, 0xF6, 0xCE, 0xB5, 0xCC, 0x93, 0xCC, - 0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x94, 0xCC, 0x81, - 0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xF6, 0xCE, 0x95, - 0xCC, 0x94, 0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xCC, - 0x80, 0xF6, 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x80, - 0xF6, 0xCE, 0x95, 0xCC, 0x93, 0xCC, 0x81, 0xF6, - 0xCE, 0x95, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, - 0xB7, 0xCC, 0x93, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, - 0xF6, 0xCE, 0xB7, 0xCC, 0x93, 0xCC, 0x80, 0xF6, - 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, - 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC, - 0x93, 0xCD, 0x82, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, - 0xCD, 0x82, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xF6, - 0xCE, 0x97, 0xCC, 0x94, 0xF6, 0xCE, 0x97, 0xCC, - 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x94, - 0xCC, 0x80, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, - 0x81, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x81, - 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCD, 0x82, 0xF6, - 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, - 0xB9, 0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0xCC, 0x94, - 0xF6, 0xCE, 0xB9, 0xCC, 0x93, 0xCC, 0x80, 0xF6, - 0xCE, 0xB9, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, - 0xB9, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, - 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCC, - 0x93, 0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x94, - 0xCD, 0x82, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xF6, - 0xCE, 0x99, 0xCC, 0x94, 0xF6, 0xCE, 0x99, 0xCC, - 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x94, - 0xCC, 0x80, 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xCC, - 0x81, 0xF6, 0xCE, 0x99, 0xCC, 0x94, 0xCC, 0x81, - 0xF6, 0xCE, 0x99, 0xCC, 0x93, 0xCD, 0x82, 0xF6, - 0xCE, 0x99, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, - 0xBF, 0xCC, 0x93, 0xF6, 0xCE, 0xBF, 0xCC, 0x94, - 0xF6, 0xCE, 0xBF, 0xCC, 0x93, 0xCC, 0x80, 0xF6, - 0xCE, 0xBF, 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, - 0xBF, 0xCC, 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xBF, - 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, - 0x93, 0xF6, 0xCE, 0x9F, 0xCC, 0x94, 0xF6, 0xCE, - 0x9F, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0x9F, - 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC, - 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0x9F, 0xCC, 0x94, - 0xCC, 0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xF6, - 0xCF, 0x85, 0xCC, 0x94, 0xF6, 0xCF, 0x85, 0xCC, - 0x93, 0xCC, 0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x94, - 0xCC, 0x80, 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xCC, - 0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x94, 0xCC, 0x81, - 0xF6, 0xCF, 0x85, 0xCC, 0x93, 0xCD, 0x82, 0xF6, - 0xCF, 0x85, 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, - 0xA5, 0xCC, 0x94, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, - 0xCC, 0x80, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCC, - 0x81, 0xF6, 0xCE, 0xA5, 0xCC, 0x94, 0xCD, 0x82, - 0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xF6, 0xCF, 0x89, - 0xCC, 0x94, 0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCC, - 0x80, 0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x80, - 0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xF6, - 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xF6, 0xCF, - 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xF6, 0xCF, 0x89, - 0xCC, 0x94, 0xCD, 0x82, 0xF6, 0xCE, 0xA9, 0xCC, - 0x93, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xF6, 0xCE, - 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, - 0xCC, 0x94, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC, - 0x93, 0xCC, 0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, - 0xCC, 0x81, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, - 0x82, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x82, - 0xF6, 0xCE, 0xB1, 0xCC, 0x80, 0xF6, 0xCE, 0xB1, - 0xCC, 0x81, 0xF6, 0xCE, 0xB5, 0xCC, 0x80, 0xF6, - 0xCE, 0xB5, 0xCC, 0x81, 0xF6, 0xCE, 0xB7, 0xCC, - 0x80, 0xF6, 0xCE, 0xB7, 0xCC, 0x81, 0xF6, 0xCE, - 0xB9, 0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC, 0x81, - 0xF6, 0xCE, 0xBF, 0xCC, 0x80, 0xF6, 0xCE, 0xBF, - 0xCC, 0x81, 0xF6, 0xCF, 0x85, 0xCC, 0x80, 0xF6, - 0xCF, 0x85, 0xCC, 0x81, 0xF6, 0xCF, 0x89, 0xCC, - 0x80, 0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xF6, 0xCE, - 0xB1, 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, - 0xCC, 0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, - 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, - 0xB1, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, - 0xCE, 0xB1, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, - 0xF6, 0xCE, 0xB1, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xF6, 0xCE, 0xB1, 0xCC, 0x94, 0xCD, 0x82, - 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCD, - 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCD, 0x85, - 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94, 0xCC, 0x80, - 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, 0x94, - 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x91, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x91, - 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, - 0xB7, 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, - 0xCC, 0x94, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, - 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, - 0xB7, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, - 0xCE, 0xB7, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, - 0xF6, 0xCE, 0xB7, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x94, 0xCD, 0x82, - 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCD, - 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCD, 0x85, - 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94, 0xCC, 0x80, - 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, 0x94, - 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0x97, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x97, - 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCF, - 0x89, 0xCC, 0x93, 0xCD, 0x85, 0xF6, 0xCF, 0x89, - 0xCC, 0x94, 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC, - 0x93, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89, - 0xCC, 0x94, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, - 0x89, 0xCC, 0x93, 0xCC, 0x81, 0xCD, 0x85, 0xF6, - 0xCF, 0x89, 0xCC, 0x94, 0xCC, 0x81, 0xCD, 0x85, - 0xF6, 0xCF, 0x89, 0xCC, 0x93, 0xCD, 0x82, 0xCD, - 0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x94, 0xCD, 0x82, - 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCD, - 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCD, 0x85, - 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, 0x80, 0xCD, - 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, 0xCC, 0x80, - 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x93, 0xCC, - 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, 0x94, - 0xCC, 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, 0xCC, - 0x93, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0xA9, - 0xCC, 0x94, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, - 0xB1, 0xCC, 0x86, 0xF6, 0xCE, 0xB1, 0xCC, 0x84, - 0xF6, 0xCE, 0xB1, 0xCC, 0x80, 0xCD, 0x85, 0xF6, - 0xCE, 0xB1, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCC, - 0x81, 0xCD, 0x85, 0xF6, 0xCE, 0xB1, 0xCD, 0x82, - 0xF6, 0xCE, 0xB1, 0xCD, 0x82, 0xCD, 0x85, 0xF6, - 0xCE, 0x91, 0xCC, 0x86, 0xF6, 0xCE, 0x91, 0xCC, - 0x84, 0xF6, 0xCE, 0x91, 0xCC, 0x80, 0xF6, 0xCE, - 0x91, 0xCC, 0x81, 0xF6, 0xCE, 0x91, 0xCD, 0x85, - 0x20, 0xCC, 0x93, 0xF6, 0xCE, 0xB9, 0x20, 0xCC, - 0x93, 0x20, 0xCD, 0x82, 0xF5, 0x05, 0xC2, 0xA8, - 0xCD, 0x82, 0x20, 0xCC, 0x88, 0xCD, 0x82, 0xF6, - 0xCE, 0xB7, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCE, - 0xB7, 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCC, 0x81, - 0xCD, 0x85, 0xF6, 0xCE, 0xB7, 0xCD, 0x82, 0xF6, - 0xCE, 0xB7, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, - 0x95, 0xCC, 0x80, 0xF6, 0xCE, 0x95, 0xCC, 0x81, - 0xF6, 0xCE, 0x97, 0xCC, 0x80, 0xF6, 0xCE, 0x97, - 0xCC, 0x81, 0xF6, 0xCE, 0x97, 0xCD, 0x85, 0xF5, - 0x06, 0xE1, 0xBE, 0xBF, 0xCC, 0x80, 0x20, 0xCC, - 0x93, 0xCC, 0x80, 0xF5, 0x06, 0xE1, 0xBE, 0xBF, - 0xCC, 0x81, 0x20, 0xCC, 0x93, 0xCC, 0x81, 0xF5, - 0x06, 0xE1, 0xBE, 0xBF, 0xCD, 0x82, 0x20, 0xCC, - 0x93, 0xCD, 0x82, 0xF6, 0xCE, 0xB9, 0xCC, 0x86, - 0xF6, 0xCE, 0xB9, 0xCC, 0x84, 0xF6, 0xCE, 0xB9, - 0xCC, 0x88, 0xCC, 0x80, 0xF6, 0xCE, 0xB9, 0xCC, - 0x88, 0xCC, 0x81, 0xF6, 0xCE, 0xB9, 0xCD, 0x82, - 0xF6, 0xCE, 0xB9, 0xCC, 0x88, 0xCD, 0x82, 0xF6, - 0xCE, 0x99, 0xCC, 0x86, 0xF6, 0xCE, 0x99, 0xCC, - 0x84, 0xF6, 0xCE, 0x99, 0xCC, 0x80, 0xF6, 0xCE, - 0x99, 0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE, - 0xCC, 0x80, 0x20, 0xCC, 0x94, 0xCC, 0x80, 0xF5, - 0x06, 0xE1, 0xBF, 0xBE, 0xCC, 0x81, 0x20, 0xCC, - 0x94, 0xCC, 0x81, 0xF5, 0x06, 0xE1, 0xBF, 0xBE, - 0xCD, 0x82, 0x20, 0xCC, 0x94, 0xCD, 0x82, 0xF6, - 0xCF, 0x85, 0xCC, 0x86, 0xF6, 0xCF, 0x85, 0xCC, - 0x84, 0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x80, - 0xF6, 0xCF, 0x85, 0xCC, 0x88, 0xCC, 0x81, 0xF6, - 0xCF, 0x81, 0xCC, 0x93, 0xF6, 0xCF, 0x81, 0xCC, - 0x94, 0xF6, 0xCF, 0x85, 0xCD, 0x82, 0xF6, 0xCF, - 0x85, 0xCC, 0x88, 0xCD, 0x82, 0xF6, 0xCE, 0xA5, - 0xCC, 0x86, 0xF6, 0xCE, 0xA5, 0xCC, 0x84, 0xF6, - 0xCE, 0xA5, 0xCC, 0x80, 0xF6, 0xCE, 0xA5, 0xCC, - 0x81, 0xF6, 0xCE, 0xA1, 0xCC, 0x94, 0xF5, 0x05, - 0xC2, 0xA8, 0xCC, 0x80, 0x20, 0xCC, 0x88, 0xCC, - 0x80, 0xF5, 0x05, 0xC2, 0xA8, 0xCC, 0x81, 0x20, - 0xCC, 0x88, 0xCC, 0x81, 0xF6, 0x60, 0xF6, 0xCF, - 0x89, 0xCC, 0x80, 0xCD, 0x85, 0xF6, 0xCF, 0x89, - 0xCD, 0x85, 0xF6, 0xCF, 0x89, 0xCC, 0x81, 0xCD, - 0x85, 0xF6, 0xCF, 0x89, 0xCD, 0x82, 0xF6, 0xCF, - 0x89, 0xCD, 0x82, 0xCD, 0x85, 0xF6, 0xCE, 0x9F, - 0xCC, 0x80, 0xF6, 0xCE, 0x9F, 0xCC, 0x81, 0xF6, - 0xCE, 0xA9, 0xCC, 0x80, 0xF6, 0xCE, 0xA9, 0xCC, - 0x81, 0xF6, 0xCE, 0xA9, 0xCD, 0x85, 0xF5, 0x03, - 0xC2, 0xB4, 0x20, 0xCC, 0x81, 0x20, 0xCC, 0x94, - 0xF5, 0x04, 0xE2, 0x80, 0x82, 0x20, 0xF5, 0x04, - 0xE2, 0x80, 0x83, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0xE2, 0x80, 0x90, - 0x20, 0xCC, 0xB3, 0x2E, 0x2E, 0x2E, 0x2E, 0x2E, - 0x2E, 0x20, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, - 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, - 0xB2, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, - 0x80, 0xB5, 0xE2, 0x80, 0xB5, 0xE2, 0x80, 0xB5, - 0x21, 0x21, 0x20, 0xCC, 0x85, 0x3F, 0x3F, 0x3F, - 0x21, 0x21, 0x3F, 0xE2, 0x80, 0xB2, 0xE2, 0x80, - 0xB2, 0xE2, 0x80, 0xB2, 0xE2, 0x80, 0xB2, 0x20, - 0x30, 0x69, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, - 0x2B, 0xE2, 0x88, 0x92, 0x3D, 0x28, 0x29, 0x6E, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, - 0x38, 0x39, 0x2B, 0xE2, 0x88, 0x92, 0x3D, 0x28, - 0x29, 0x61, 0x65, 0x6F, 0x78, 0xC9, 0x99, 0x52, - 0x73, 0x61, 0x2F, 0x63, 0x61, 0x2F, 0x73, 0x43, - 0xC2, 0xB0, 0x43, 0x63, 0x2F, 0x6F, 0x63, 0x2F, - 0x75, 0xC6, 0x90, 0xC2, 0xB0, 0x46, 0x67, 0x48, - 0x48, 0x48, 0x68, 0xC4, 0xA7, 0x49, 0x49, 0x4C, - 0x6C, 0x4E, 0x4E, 0x6F, 0x50, 0x51, 0x52, 0x52, - 0x52, 0x53, 0x4D, 0x54, 0x45, 0x4C, 0x54, 0x4D, - 0x5A, 0xF6, 0xCE, 0xA9, 0x5A, 0xF6, 0x4B, 0xF6, - 0x41, 0xCC, 0x8A, 0x42, 0x43, 0x65, 0x45, 0x46, - 0x4D, 0x6F, 0xD7, 0x90, 0xD7, 0x91, 0xD7, 0x92, - 0xD7, 0x93, 0x69, 0x46, 0x41, 0x58, 0xCF, 0x80, - 0xCE, 0xB3, 0xCE, 0x93, 0xCE, 0xA0, 0xE2, 0x88, - 0x91, 0x44, 0x64, 0x65, 0x69, 0x6A, 0x31, 0xE2, - 0x81, 0x84, 0x33, 0x32, 0xE2, 0x81, 0x84, 0x33, - 0x31, 0xE2, 0x81, 0x84, 0x35, 0x32, 0xE2, 0x81, - 0x84, 0x35, 0x33, 0xE2, 0x81, 0x84, 0x35, 0x34, - 0xE2, 0x81, 0x84, 0x35, 0x31, 0xE2, 0x81, 0x84, - 0x36, 0x35, 0xE2, 0x81, 0x84, 0x36, 0x31, 0xE2, - 0x81, 0x84, 0x38, 0x33, 0xE2, 0x81, 0x84, 0x38, - 0x35, 0xE2, 0x81, 0x84, 0x38, 0x37, 0xE2, 0x81, - 0x84, 0x38, 0x31, 0xE2, 0x81, 0x84, 0x49, 0x49, - 0x49, 0x49, 0x49, 0x49, 0x49, 0x56, 0x56, 0x56, - 0x49, 0x56, 0x49, 0x49, 0x56, 0x49, 0x49, 0x49, - 0x49, 0x58, 0x58, 0x58, 0x49, 0x58, 0x49, 0x49, - 0x4C, 0x43, 0x44, 0x4D, 0x69, 0x69, 0x69, 0x69, - 0x69, 0x69, 0x69, 0x76, 0x76, 0x76, 0x69, 0x76, - 0x69, 0x69, 0x76, 0x69, 0x69, 0x69, 0x69, 0x78, - 0x78, 0x78, 0x69, 0x78, 0x69, 0x69, 0x6C, 0x63, - 0x64, 0x6D, 0xF6, 0xE2, 0x86, 0x90, 0xCC, 0xB8, - 0xF6, 0xE2, 0x86, 0x92, 0xCC, 0xB8, 0xF6, 0xE2, - 0x86, 0x94, 0xCC, 0xB8, 0xF6, 0xE2, 0x87, 0x90, - 0xCC, 0xB8, 0xF6, 0xE2, 0x87, 0x94, 0xCC, 0xB8, - 0xF6, 0xE2, 0x87, 0x92, 0xCC, 0xB8, 0xF6, 0xE2, - 0x88, 0x83, 0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0x88, - 0xCC, 0xB8, 0xF6, 0xE2, 0x88, 0x8B, 0xCC, 0xB8, - 0xF6, 0xE2, 0x88, 0xA3, 0xCC, 0xB8, 0xF6, 0xE2, - 0x88, 0xA5, 0xCC, 0xB8, 0xE2, 0x88, 0xAB, 0xE2, - 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, - 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAE, 0xE2, 0x88, - 0xAE, 0xE2, 0x88, 0xAE, 0xE2, 0x88, 0xAE, 0xE2, - 0x88, 0xAE, 0xF6, 0xE2, 0x88, 0xBC, 0xCC, 0xB8, - 0xF6, 0xE2, 0x89, 0x83, 0xCC, 0xB8, 0xF6, 0xE2, - 0x89, 0x85, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x88, - 0xCC, 0xB8, 0xF6, 0x3D, 0xCC, 0xB8, 0xF6, 0xE2, - 0x89, 0xA1, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0x8D, - 0xCC, 0xB8, 0xF6, 0x3C, 0xCC, 0xB8, 0xF6, 0x3E, - 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xA4, 0xCC, 0xB8, - 0xF6, 0xE2, 0x89, 0xA5, 0xCC, 0xB8, 0xF6, 0xE2, - 0x89, 0xB2, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB3, - 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xB6, 0xCC, 0xB8, - 0xF6, 0xE2, 0x89, 0xB7, 0xCC, 0xB8, 0xF6, 0xE2, - 0x89, 0xBA, 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBB, - 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x82, 0xCC, 0xB8, - 0xF6, 0xE2, 0x8A, 0x83, 0xCC, 0xB8, 0xF6, 0xE2, - 0x8A, 0x86, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x87, - 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xA2, 0xCC, 0xB8, - 0xF6, 0xE2, 0x8A, 0xA8, 0xCC, 0xB8, 0xF6, 0xE2, - 0x8A, 0xA9, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xAB, - 0xCC, 0xB8, 0xF6, 0xE2, 0x89, 0xBC, 0xCC, 0xB8, - 0xF6, 0xE2, 0x89, 0xBD, 0xCC, 0xB8, 0xF6, 0xE2, - 0x8A, 0x91, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0x92, - 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB2, 0xCC, 0xB8, - 0xF6, 0xE2, 0x8A, 0xB3, 0xCC, 0xB8, 0xF6, 0xE2, - 0x8A, 0xB4, 0xCC, 0xB8, 0xF6, 0xE2, 0x8A, 0xB5, - 0xCC, 0xB8, 0xF6, 0xE3, 0x80, 0x88, 0xF6, 0xE3, - 0x80, 0x89, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, - 0x37, 0x38, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, - 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, 0x31, - 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, - 0x30, 0x28, 0x31, 0x29, 0x28, 0x32, 0x29, 0x28, - 0x33, 0x29, 0x28, 0x34, 0x29, 0x28, 0x35, 0x29, - 0x28, 0x36, 0x29, 0x28, 0x37, 0x29, 0x28, 0x38, - 0x29, 0x28, 0x39, 0x29, 0x28, 0x31, 0x30, 0x29, - 0x28, 0x31, 0x31, 0x29, 0x28, 0x31, 0x32, 0x29, - 0x28, 0x31, 0x33, 0x29, 0x28, 0x31, 0x34, 0x29, - 0x28, 0x31, 0x35, 0x29, 0x28, 0x31, 0x36, 0x29, - 0x28, 0x31, 0x37, 0x29, 0x28, 0x31, 0x38, 0x29, - 0x28, 0x31, 0x39, 0x29, 0x28, 0x32, 0x30, 0x29, - 0x31, 0x2E, 0x32, 0x2E, 0x33, 0x2E, 0x34, 0x2E, - 0x35, 0x2E, 0x36, 0x2E, 0x37, 0x2E, 0x38, 0x2E, - 0x39, 0x2E, 0x31, 0x30, 0x2E, 0x31, 0x31, 0x2E, - 0x31, 0x32, 0x2E, 0x31, 0x33, 0x2E, 0x31, 0x34, - 0x2E, 0x31, 0x35, 0x2E, 0x31, 0x36, 0x2E, 0x31, - 0x37, 0x2E, 0x31, 0x38, 0x2E, 0x31, 0x39, 0x2E, - 0x32, 0x30, 0x2E, 0x28, 0x61, 0x29, 0x28, 0x62, - 0x29, 0x28, 0x63, 0x29, 0x28, 0x64, 0x29, 0x28, - 0x65, 0x29, 0x28, 0x66, 0x29, 0x28, 0x67, 0x29, - 0x28, 0x68, 0x29, 0x28, 0x69, 0x29, 0x28, 0x6A, - 0x29, 0x28, 0x6B, 0x29, 0x28, 0x6C, 0x29, 0x28, - 0x6D, 0x29, 0x28, 0x6E, 0x29, 0x28, 0x6F, 0x29, - 0x28, 0x70, 0x29, 0x28, 0x71, 0x29, 0x28, 0x72, - 0x29, 0x28, 0x73, 0x29, 0x28, 0x74, 0x29, 0x28, - 0x75, 0x29, 0x28, 0x76, 0x29, 0x28, 0x77, 0x29, - 0x28, 0x78, 0x29, 0x28, 0x79, 0x29, 0x28, 0x7A, - 0x29, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x30, 0xE2, 0x88, - 0xAB, 0xE2, 0x88, 0xAB, 0xE2, 0x88, 0xAB, 0xE2, - 0x88, 0xAB, 0x3A, 0x3A, 0x3D, 0x3D, 0x3D, 0x3D, - 0x3D, 0x3D, 0xF6, 0xE2, 0xAB, 0x9D, 0xCC, 0xB8, - 0xE2, 0xB5, 0xA1, 0xE6, 0xAF, 0x8D, 0xE9, 0xBE, - 0x9F, 0xE4, 0xB8, 0x80, 0xE4, 0xB8, 0xA8, 0xE4, - 0xB8, 0xB6, 0xE4, 0xB8, 0xBF, 0xE4, 0xB9, 0x99, - 0xE4, 0xBA, 0x85, 0xE4, 0xBA, 0x8C, 0xE4, 0xBA, - 0xA0, 0xE4, 0xBA, 0xBA, 0xE5, 0x84, 0xBF, 0xE5, - 0x85, 0xA5, 0xE5, 0x85, 0xAB, 0xE5, 0x86, 0x82, - 0xE5, 0x86, 0x96, 0xE5, 0x86, 0xAB, 0xE5, 0x87, - 0xA0, 0xE5, 0x87, 0xB5, 0xE5, 0x88, 0x80, 0xE5, - 0x8A, 0x9B, 0xE5, 0x8B, 0xB9, 0xE5, 0x8C, 0x95, - 0xE5, 0x8C, 0x9A, 0xE5, 0x8C, 0xB8, 0xE5, 0x8D, - 0x81, 0xE5, 0x8D, 0x9C, 0xE5, 0x8D, 0xA9, 0xE5, - 0x8E, 0x82, 0xE5, 0x8E, 0xB6, 0xE5, 0x8F, 0x88, - 0xE5, 0x8F, 0xA3, 0xE5, 0x9B, 0x97, 0xE5, 0x9C, - 0x9F, 0xE5, 0xA3, 0xAB, 0xE5, 0xA4, 0x82, 0xE5, - 0xA4, 0x8A, 0xE5, 0xA4, 0x95, 0xE5, 0xA4, 0xA7, - 0xE5, 0xA5, 0xB3, 0xE5, 0xAD, 0x90, 0xE5, 0xAE, - 0x80, 0xE5, 0xAF, 0xB8, 0xE5, 0xB0, 0x8F, 0xE5, - 0xB0, 0xA2, 0xE5, 0xB0, 0xB8, 0xE5, 0xB1, 0xAE, - 0xE5, 0xB1, 0xB1, 0xE5, 0xB7, 0x9B, 0xE5, 0xB7, - 0xA5, 0xE5, 0xB7, 0xB1, 0xE5, 0xB7, 0xBE, 0xE5, - 0xB9, 0xB2, 0xE5, 0xB9, 0xBA, 0xE5, 0xB9, 0xBF, - 0xE5, 0xBB, 0xB4, 0xE5, 0xBB, 0xBE, 0xE5, 0xBC, - 0x8B, 0xE5, 0xBC, 0x93, 0xE5, 0xBD, 0x90, 0xE5, - 0xBD, 0xA1, 0xE5, 0xBD, 0xB3, 0xE5, 0xBF, 0x83, - 0xE6, 0x88, 0x88, 0xE6, 0x88, 0xB6, 0xE6, 0x89, - 0x8B, 0xE6, 0x94, 0xAF, 0xE6, 0x94, 0xB4, 0xE6, - 0x96, 0x87, 0xE6, 0x96, 0x97, 0xE6, 0x96, 0xA4, - 0xE6, 0x96, 0xB9, 0xE6, 0x97, 0xA0, 0xE6, 0x97, - 0xA5, 0xE6, 0x9B, 0xB0, 0xE6, 0x9C, 0x88, 0xE6, - 0x9C, 0xA8, 0xE6, 0xAC, 0xA0, 0xE6, 0xAD, 0xA2, - 0xE6, 0xAD, 0xB9, 0xE6, 0xAE, 0xB3, 0xE6, 0xAF, - 0x8B, 0xE6, 0xAF, 0x94, 0xE6, 0xAF, 0x9B, 0xE6, - 0xB0, 0x8F, 0xE6, 0xB0, 0x94, 0xE6, 0xB0, 0xB4, - 0xE7, 0x81, 0xAB, 0xE7, 0x88, 0xAA, 0xE7, 0x88, - 0xB6, 0xE7, 0x88, 0xBB, 0xE7, 0x88, 0xBF, 0xE7, - 0x89, 0x87, 0xE7, 0x89, 0x99, 0xE7, 0x89, 0x9B, - 0xE7, 0x8A, 0xAC, 0xE7, 0x8E, 0x84, 0xE7, 0x8E, - 0x89, 0xE7, 0x93, 0x9C, 0xE7, 0x93, 0xA6, 0xE7, - 0x94, 0x98, 0xE7, 0x94, 0x9F, 0xE7, 0x94, 0xA8, - 0xE7, 0x94, 0xB0, 0xE7, 0x96, 0x8B, 0xE7, 0x96, - 0x92, 0xE7, 0x99, 0xB6, 0xE7, 0x99, 0xBD, 0xE7, - 0x9A, 0xAE, 0xE7, 0x9A, 0xBF, 0xE7, 0x9B, 0xAE, - 0xE7, 0x9F, 0x9B, 0xE7, 0x9F, 0xA2, 0xE7, 0x9F, - 0xB3, 0xE7, 0xA4, 0xBA, 0xE7, 0xA6, 0xB8, 0xE7, - 0xA6, 0xBE, 0xE7, 0xA9, 0xB4, 0xE7, 0xAB, 0x8B, - 0xE7, 0xAB, 0xB9, 0xE7, 0xB1, 0xB3, 0xE7, 0xB3, - 0xB8, 0xE7, 0xBC, 0xB6, 0xE7, 0xBD, 0x91, 0xE7, - 0xBE, 0x8A, 0xE7, 0xBE, 0xBD, 0xE8, 0x80, 0x81, - 0xE8, 0x80, 0x8C, 0xE8, 0x80, 0x92, 0xE8, 0x80, - 0xB3, 0xE8, 0x81, 0xBF, 0xE8, 0x82, 0x89, 0xE8, - 0x87, 0xA3, 0xE8, 0x87, 0xAA, 0xE8, 0x87, 0xB3, - 0xE8, 0x87, 0xBC, 0xE8, 0x88, 0x8C, 0xE8, 0x88, - 0x9B, 0xE8, 0x88, 0x9F, 0xE8, 0x89, 0xAE, 0xE8, - 0x89, 0xB2, 0xE8, 0x89, 0xB8, 0xE8, 0x99, 0x8D, - 0xE8, 0x99, 0xAB, 0xE8, 0xA1, 0x80, 0xE8, 0xA1, - 0x8C, 0xE8, 0xA1, 0xA3, 0xE8, 0xA5, 0xBE, 0xE8, - 0xA6, 0x8B, 0xE8, 0xA7, 0x92, 0xE8, 0xA8, 0x80, - 0xE8, 0xB0, 0xB7, 0xE8, 0xB1, 0x86, 0xE8, 0xB1, - 0x95, 0xE8, 0xB1, 0xB8, 0xE8, 0xB2, 0x9D, 0xE8, - 0xB5, 0xA4, 0xE8, 0xB5, 0xB0, 0xE8, 0xB6, 0xB3, - 0xE8, 0xBA, 0xAB, 0xE8, 0xBB, 0x8A, 0xE8, 0xBE, - 0x9B, 0xE8, 0xBE, 0xB0, 0xE8, 0xBE, 0xB5, 0xE9, - 0x82, 0x91, 0xE9, 0x85, 0x89, 0xE9, 0x87, 0x86, - 0xE9, 0x87, 0x8C, 0xE9, 0x87, 0x91, 0xE9, 0x95, - 0xB7, 0xE9, 0x96, 0x80, 0xE9, 0x98, 0x9C, 0xE9, - 0x9A, 0xB6, 0xE9, 0x9A, 0xB9, 0xE9, 0x9B, 0xA8, - 0xE9, 0x9D, 0x91, 0xE9, 0x9D, 0x9E, 0xE9, 0x9D, - 0xA2, 0xE9, 0x9D, 0xA9, 0xE9, 0x9F, 0x8B, 0xE9, - 0x9F, 0xAD, 0xE9, 0x9F, 0xB3, 0xE9, 0xA0, 0x81, - 0xE9, 0xA2, 0xA8, 0xE9, 0xA3, 0x9B, 0xE9, 0xA3, - 0x9F, 0xE9, 0xA6, 0x96, 0xE9, 0xA6, 0x99, 0xE9, - 0xA6, 0xAC, 0xE9, 0xAA, 0xA8, 0xE9, 0xAB, 0x98, - 0xE9, 0xAB, 0x9F, 0xE9, 0xAC, 0xA5, 0xE9, 0xAC, - 0xAF, 0xE9, 0xAC, 0xB2, 0xE9, 0xAC, 0xBC, 0xE9, - 0xAD, 0x9A, 0xE9, 0xB3, 0xA5, 0xE9, 0xB9, 0xB5, - 0xE9, 0xB9, 0xBF, 0xE9, 0xBA, 0xA5, 0xE9, 0xBA, - 0xBB, 0xE9, 0xBB, 0x83, 0xE9, 0xBB, 0x8D, 0xE9, - 0xBB, 0x91, 0xE9, 0xBB, 0xB9, 0xE9, 0xBB, 0xBD, - 0xE9, 0xBC, 0x8E, 0xE9, 0xBC, 0x93, 0xE9, 0xBC, - 0xA0, 0xE9, 0xBC, 0xBB, 0xE9, 0xBD, 0x8A, 0xE9, - 0xBD, 0x92, 0xE9, 0xBE, 0x8D, 0xE9, 0xBE, 0x9C, - 0xE9, 0xBE, 0xA0, 0x20, 0xE3, 0x80, 0x92, 0xE5, - 0x8D, 0x81, 0xE5, 0x8D, 0x84, 0xE5, 0x8D, 0x85, - 0xF6, 0xE3, 0x81, 0x8B, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x81, 0x8D, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x81, 0x8F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, - 0x91, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x93, - 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x95, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x81, 0x97, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x81, 0x99, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x81, 0x9B, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x81, 0x9D, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x81, 0x9F, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, - 0xA1, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA4, - 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA6, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xA8, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x81, 0xAF, 0xE3, 0x82, 0x9A, 0xF6, - 0xE3, 0x81, 0xB2, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x81, 0xB2, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x81, - 0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xB5, - 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x81, 0xB8, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x81, 0xB8, 0xE3, 0x82, - 0x9A, 0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x81, 0xBB, 0xE3, 0x82, 0x9A, 0xF6, - 0xE3, 0x81, 0x86, 0xE3, 0x82, 0x99, 0x20, 0xE3, - 0x82, 0x99, 0x20, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, - 0x82, 0x9D, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0x88, - 0xE3, 0x82, 0x8A, 0xF6, 0xE3, 0x82, 0xAB, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xAD, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x82, 0xB1, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x82, 0xB5, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, - 0xB7, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xB9, - 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBB, 0xE3, - 0x82, 0x99, 0xF6, 0xE3, 0x82, 0xBD, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x82, 0xBF, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x83, 0x84, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x83, 0x86, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, - 0x88, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x8F, 0xE3, - 0x82, 0x9A, 0xF6, 0xE3, 0x83, 0x92, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x83, 0x92, 0xE3, 0x82, 0x9A, - 0xF6, 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x83, 0x95, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xF6, 0xE3, 0x83, 0x9B, - 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, 0x9B, 0xE3, - 0x82, 0x9A, 0xF6, 0xE3, 0x82, 0xA6, 0xE3, 0x82, - 0x99, 0xF6, 0xE3, 0x83, 0xAF, 0xE3, 0x82, 0x99, - 0xF6, 0xE3, 0x83, 0xB0, 0xE3, 0x82, 0x99, 0xF6, - 0xE3, 0x83, 0xB1, 0xE3, 0x82, 0x99, 0xF6, 0xE3, - 0x83, 0xB2, 0xE3, 0x82, 0x99, 0xF6, 0xE3, 0x83, - 0xBD, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xB3, 0xE3, - 0x83, 0x88, 0xE1, 0x84, 0x80, 0xE1, 0x84, 0x81, - 0xE1, 0x86, 0xAA, 0xE1, 0x84, 0x82, 0xE1, 0x86, - 0xAC, 0xE1, 0x86, 0xAD, 0xE1, 0x84, 0x83, 0xE1, - 0x84, 0x84, 0xE1, 0x84, 0x85, 0xE1, 0x86, 0xB0, - 0xE1, 0x86, 0xB1, 0xE1, 0x86, 0xB2, 0xE1, 0x86, - 0xB3, 0xE1, 0x86, 0xB4, 0xE1, 0x86, 0xB5, 0xE1, - 0x84, 0x9A, 0xE1, 0x84, 0x86, 0xE1, 0x84, 0x87, - 0xE1, 0x84, 0x88, 0xE1, 0x84, 0xA1, 0xE1, 0x84, - 0x89, 0xE1, 0x84, 0x8A, 0xE1, 0x84, 0x8B, 0xE1, - 0x84, 0x8C, 0xE1, 0x84, 0x8D, 0xE1, 0x84, 0x8E, - 0xE1, 0x84, 0x8F, 0xE1, 0x84, 0x90, 0xE1, 0x84, - 0x91, 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE1, - 0x85, 0xA2, 0xE1, 0x85, 0xA3, 0xE1, 0x85, 0xA4, - 0xE1, 0x85, 0xA5, 0xE1, 0x85, 0xA6, 0xE1, 0x85, - 0xA7, 0xE1, 0x85, 0xA8, 0xE1, 0x85, 0xA9, 0xE1, - 0x85, 0xAA, 0xE1, 0x85, 0xAB, 0xE1, 0x85, 0xAC, - 0xE1, 0x85, 0xAD, 0xE1, 0x85, 0xAE, 0xE1, 0x85, - 0xAF, 0xE1, 0x85, 0xB0, 0xE1, 0x85, 0xB1, 0xE1, - 0x85, 0xB2, 0xE1, 0x85, 0xB3, 0xE1, 0x85, 0xB4, - 0xE1, 0x85, 0xB5, 0xE1, 0x85, 0xA0, 0xE1, 0x84, - 0x94, 0xE1, 0x84, 0x95, 0xE1, 0x87, 0x87, 0xE1, - 0x87, 0x88, 0xE1, 0x87, 0x8C, 0xE1, 0x87, 0x8E, - 0xE1, 0x87, 0x93, 0xE1, 0x87, 0x97, 0xE1, 0x87, - 0x99, 0xE1, 0x84, 0x9C, 0xE1, 0x87, 0x9D, 0xE1, - 0x87, 0x9F, 0xE1, 0x84, 0x9D, 0xE1, 0x84, 0x9E, - 0xE1, 0x84, 0xA0, 0xE1, 0x84, 0xA2, 0xE1, 0x84, - 0xA3, 0xE1, 0x84, 0xA7, 0xE1, 0x84, 0xA9, 0xE1, - 0x84, 0xAB, 0xE1, 0x84, 0xAC, 0xE1, 0x84, 0xAD, - 0xE1, 0x84, 0xAE, 0xE1, 0x84, 0xAF, 0xE1, 0x84, - 0xB2, 0xE1, 0x84, 0xB6, 0xE1, 0x85, 0x80, 0xE1, - 0x85, 0x87, 0xE1, 0x85, 0x8C, 0xE1, 0x87, 0xB1, - 0xE1, 0x87, 0xB2, 0xE1, 0x85, 0x97, 0xE1, 0x85, - 0x98, 0xE1, 0x85, 0x99, 0xE1, 0x86, 0x84, 0xE1, - 0x86, 0x85, 0xE1, 0x86, 0x88, 0xE1, 0x86, 0x91, - 0xE1, 0x86, 0x92, 0xE1, 0x86, 0x94, 0xE1, 0x86, - 0x9E, 0xE1, 0x86, 0xA1, 0xE4, 0xB8, 0x80, 0xE4, - 0xBA, 0x8C, 0xE4, 0xB8, 0x89, 0xE5, 0x9B, 0x9B, - 0xE4, 0xB8, 0x8A, 0xE4, 0xB8, 0xAD, 0xE4, 0xB8, - 0x8B, 0xE7, 0x94, 0xB2, 0xE4, 0xB9, 0x99, 0xE4, - 0xB8, 0x99, 0xE4, 0xB8, 0x81, 0xE5, 0xA4, 0xA9, - 0xE5, 0x9C, 0xB0, 0xE4, 0xBA, 0xBA, 0x28, 0xE1, - 0x84, 0x80, 0x29, 0x28, 0xE1, 0x84, 0x82, 0x29, - 0x28, 0xE1, 0x84, 0x83, 0x29, 0x28, 0xE1, 0x84, - 0x85, 0x29, 0x28, 0xE1, 0x84, 0x86, 0x29, 0x28, - 0xE1, 0x84, 0x87, 0x29, 0x28, 0xE1, 0x84, 0x89, - 0x29, 0x28, 0xE1, 0x84, 0x8B, 0x29, 0x28, 0xE1, - 0x84, 0x8C, 0x29, 0x28, 0xE1, 0x84, 0x8E, 0x29, - 0x28, 0xE1, 0x84, 0x8F, 0x29, 0x28, 0xE1, 0x84, - 0x90, 0x29, 0x28, 0xE1, 0x84, 0x91, 0x29, 0x28, - 0xE1, 0x84, 0x92, 0x29, 0x28, 0xE1, 0x84, 0x80, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x82, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x83, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x85, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x86, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x87, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x89, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8B, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8C, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8E, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8F, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x90, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x91, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x92, - 0xE1, 0x85, 0xA1, 0x29, 0x28, 0xE1, 0x84, 0x8C, - 0xE1, 0x85, 0xAE, 0x29, 0x28, 0xE1, 0x84, 0x8B, - 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, 0xE1, 0x85, - 0xA5, 0xE1, 0x86, 0xAB, 0x29, 0x28, 0xE1, 0x84, - 0x8B, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x92, 0xE1, - 0x85, 0xAE, 0x29, 0x28, 0xE4, 0xB8, 0x80, 0x29, - 0x28, 0xE4, 0xBA, 0x8C, 0x29, 0x28, 0xE4, 0xB8, - 0x89, 0x29, 0x28, 0xE5, 0x9B, 0x9B, 0x29, 0x28, - 0xE4, 0xBA, 0x94, 0x29, 0x28, 0xE5, 0x85, 0xAD, - 0x29, 0x28, 0xE4, 0xB8, 0x83, 0x29, 0x28, 0xE5, - 0x85, 0xAB, 0x29, 0x28, 0xE4, 0xB9, 0x9D, 0x29, - 0x28, 0xE5, 0x8D, 0x81, 0x29, 0x28, 0xE6, 0x9C, - 0x88, 0x29, 0x28, 0xE7, 0x81, 0xAB, 0x29, 0x28, - 0xE6, 0xB0, 0xB4, 0x29, 0x28, 0xE6, 0x9C, 0xA8, - 0x29, 0x28, 0xE9, 0x87, 0x91, 0x29, 0x28, 0xE5, - 0x9C, 0x9F, 0x29, 0x28, 0xE6, 0x97, 0xA5, 0x29, - 0x28, 0xE6, 0xA0, 0xAA, 0x29, 0x28, 0xE6, 0x9C, - 0x89, 0x29, 0x28, 0xE7, 0xA4, 0xBE, 0x29, 0x28, - 0xE5, 0x90, 0x8D, 0x29, 0x28, 0xE7, 0x89, 0xB9, - 0x29, 0x28, 0xE8, 0xB2, 0xA1, 0x29, 0x28, 0xE7, - 0xA5, 0x9D, 0x29, 0x28, 0xE5, 0x8A, 0xB4, 0x29, - 0x28, 0xE4, 0xBB, 0xA3, 0x29, 0x28, 0xE5, 0x91, - 0xBC, 0x29, 0x28, 0xE5, 0xAD, 0xA6, 0x29, 0x28, - 0xE7, 0x9B, 0xA3, 0x29, 0x28, 0xE4, 0xBC, 0x81, - 0x29, 0x28, 0xE8, 0xB3, 0x87, 0x29, 0x28, 0xE5, - 0x8D, 0x94, 0x29, 0x28, 0xE7, 0xA5, 0xAD, 0x29, - 0x28, 0xE4, 0xBC, 0x91, 0x29, 0x28, 0xE8, 0x87, - 0xAA, 0x29, 0x28, 0xE8, 0x87, 0xB3, 0x29, 0x50, - 0x54, 0x45, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, - 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, - 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, - 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, - 0xE1, 0x84, 0x80, 0xE1, 0x84, 0x82, 0xE1, 0x84, - 0x83, 0xE1, 0x84, 0x85, 0xE1, 0x84, 0x86, 0xE1, - 0x84, 0x87, 0xE1, 0x84, 0x89, 0xE1, 0x84, 0x8B, - 0xE1, 0x84, 0x8C, 0xE1, 0x84, 0x8E, 0xE1, 0x84, - 0x8F, 0xE1, 0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1, - 0x84, 0x92, 0xE1, 0x84, 0x80, 0xE1, 0x85, 0xA1, - 0xE1, 0x84, 0x82, 0xE1, 0x85, 0xA1, 0xE1, 0x84, - 0x83, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x85, 0xE1, - 0x85, 0xA1, 0xE1, 0x84, 0x86, 0xE1, 0x85, 0xA1, - 0xE1, 0x84, 0x87, 0xE1, 0x85, 0xA1, 0xE1, 0x84, - 0x89, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x8B, 0xE1, - 0x85, 0xA1, 0xE1, 0x84, 0x8C, 0xE1, 0x85, 0xA1, - 0xE1, 0x84, 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x84, - 0x8F, 0xE1, 0x85, 0xA1, 0xE1, 0x84, 0x90, 0xE1, - 0x85, 0xA1, 0xE1, 0x84, 0x91, 0xE1, 0x85, 0xA1, - 0xE1, 0x84, 0x92, 0xE1, 0x85, 0xA1, 0xE1, 0x84, - 0x8E, 0xE1, 0x85, 0xA1, 0xE1, 0x86, 0xB7, 0xE1, - 0x84, 0x80, 0xE1, 0x85, 0xA9, 0xE1, 0x84, 0x8C, - 0xE1, 0x85, 0xAE, 0xE1, 0x84, 0x8B, 0xE1, 0x85, - 0xB4, 0xE1, 0x84, 0x8B, 0xE1, 0x85, 0xAE, 0xE4, - 0xB8, 0x80, 0xE4, 0xBA, 0x8C, 0xE4, 0xB8, 0x89, - 0xE5, 0x9B, 0x9B, 0xE4, 0xBA, 0x94, 0xE5, 0x85, - 0xAD, 0xE4, 0xB8, 0x83, 0xE5, 0x85, 0xAB, 0xE4, - 0xB9, 0x9D, 0xE5, 0x8D, 0x81, 0xE6, 0x9C, 0x88, - 0xE7, 0x81, 0xAB, 0xE6, 0xB0, 0xB4, 0xE6, 0x9C, - 0xA8, 0xE9, 0x87, 0x91, 0xE5, 0x9C, 0x9F, 0xE6, - 0x97, 0xA5, 0xE6, 0xA0, 0xAA, 0xE6, 0x9C, 0x89, - 0xE7, 0xA4, 0xBE, 0xE5, 0x90, 0x8D, 0xE7, 0x89, - 0xB9, 0xE8, 0xB2, 0xA1, 0xE7, 0xA5, 0x9D, 0xE5, - 0x8A, 0xB4, 0xE7, 0xA7, 0x98, 0xE7, 0x94, 0xB7, - 0xE5, 0xA5, 0xB3, 0xE9, 0x81, 0xA9, 0xE5, 0x84, - 0xAA, 0xE5, 0x8D, 0xB0, 0xE6, 0xB3, 0xA8, 0xE9, - 0xA0, 0x85, 0xE4, 0xBC, 0x91, 0xE5, 0x86, 0x99, - 0xE6, 0xAD, 0xA3, 0xE4, 0xB8, 0x8A, 0xE4, 0xB8, - 0xAD, 0xE4, 0xB8, 0x8B, 0xE5, 0xB7, 0xA6, 0xE5, - 0x8F, 0xB3, 0xE5, 0x8C, 0xBB, 0xE5, 0xAE, 0x97, - 0xE5, 0xAD, 0xA6, 0xE7, 0x9B, 0xA3, 0xE4, 0xBC, - 0x81, 0xE8, 0xB3, 0x87, 0xE5, 0x8D, 0x94, 0xE5, - 0xA4, 0x9C, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, - 0x33, 0x39, 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, - 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, - 0x34, 0x37, 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, - 0x31, 0xE6, 0x9C, 0x88, 0x32, 0xE6, 0x9C, 0x88, - 0x33, 0xE6, 0x9C, 0x88, 0x34, 0xE6, 0x9C, 0x88, - 0x35, 0xE6, 0x9C, 0x88, 0x36, 0xE6, 0x9C, 0x88, - 0x37, 0xE6, 0x9C, 0x88, 0x38, 0xE6, 0x9C, 0x88, - 0x39, 0xE6, 0x9C, 0x88, 0x31, 0x30, 0xE6, 0x9C, - 0x88, 0x31, 0x31, 0xE6, 0x9C, 0x88, 0x31, 0x32, - 0xE6, 0x9C, 0x88, 0x48, 0x67, 0x65, 0x72, 0x67, - 0x65, 0x56, 0x4C, 0x54, 0x44, 0xE3, 0x82, 0xA2, - 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xA6, 0xE3, 0x82, - 0xA8, 0xE3, 0x82, 0xAA, 0xE3, 0x82, 0xAB, 0xE3, - 0x82, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xB1, - 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB5, 0xE3, 0x82, - 0xB7, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xBB, 0xE3, - 0x82, 0xBD, 0xE3, 0x82, 0xBF, 0xE3, 0x83, 0x81, - 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x86, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8B, 0xE3, - 0x83, 0x8C, 0xE3, 0x83, 0x8D, 0xE3, 0x83, 0x8E, - 0xE3, 0x83, 0x8F, 0xE3, 0x83, 0x92, 0xE3, 0x83, - 0x95, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0x9B, 0xE3, - 0x83, 0x9E, 0xE3, 0x83, 0x9F, 0xE3, 0x83, 0xA0, - 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xA2, 0xE3, 0x83, - 0xA4, 0xE3, 0x83, 0xA6, 0xE3, 0x83, 0xA8, 0xE3, - 0x83, 0xA9, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xAB, - 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAD, 0xE3, 0x83, - 0xAF, 0xE3, 0x83, 0xB0, 0xE3, 0x83, 0xB1, 0xE3, - 0x83, 0xB2, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0x8F, - 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0x88, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA1, 0xE3, 0x82, 0xA2, - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, 0xA2, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xA4, - 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xA4, 0xE3, - 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x82, 0xA6, - 0xE3, 0x82, 0xA9, 0xE3, 0x83, 0xB3, 0xE3, 0x82, - 0xA8, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xAF, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, - 0xE3, 0x82, 0xA8, 0xE3, 0x83, 0xBC, 0xE3, 0x82, - 0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAA, 0xE3, - 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xAA, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xA0, 0xE3, 0x82, - 0xAB, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAA, 0xE3, - 0x82, 0xAB, 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0x83, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xAB, 0xE3, 0x83, - 0xAD, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xAD, - 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAB, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0xE3, - 0x82, 0xAD, 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAB, - 0xE3, 0x82, 0x99, 0xE3, 0x82, 0xAD, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0x8B, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xAD, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xAA, - 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAD, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xBF, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x82, 0xAD, 0xE3, 0x83, - 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x82, 0xAD, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xA1, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0xE3, - 0x82, 0xAD, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xAF, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, - 0xAF, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xA9, 0xE3, - 0x83, 0xA0, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xA0, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, - 0x83, 0xAB, 0xE3, 0x82, 0xBB, 0xE3, 0x82, 0x99, - 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xAD, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0x8D, 0xE3, 0x82, 0xB1, 0xE3, 0x83, 0xBC, - 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xB3, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0x8A, 0xE3, 0x82, 0xB3, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, - 0xE3, 0x82, 0xB5, 0xE3, 0x82, 0xA4, 0xE3, 0x82, - 0xAF, 0xE3, 0x83, 0xAB, 0xE3, 0x82, 0xB5, 0xE3, - 0x83, 0xB3, 0xE3, 0x83, 0x81, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0xA0, 0xE3, 0x82, 0xB7, 0xE3, 0x83, - 0xAA, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xAF, 0xE3, - 0x82, 0x99, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x81, 0xE3, 0x82, 0xBB, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xBF, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, 0x82, 0xB9, - 0xE3, 0x83, 0x86, 0xE3, 0x82, 0x99, 0xE3, 0x82, - 0xB7, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0xAB, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8E, 0xE3, 0x83, - 0x8E, 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0x8F, 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0x84, - 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, 0xE3, 0x83, - 0xBC, 0xE3, 0x82, 0xBB, 0xE3, 0x83, 0xB3, 0xE3, - 0x83, 0x88, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x9A, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x84, 0xE3, 0x83, - 0x8F, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, - 0x83, 0xAC, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, - 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xA2, 0xE3, 0x82, - 0xB9, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0x92, 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xAF, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, 0xE3, 0x82, - 0x9A, 0xE3, 0x82, 0xB3, 0xE3, 0x83, 0x92, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95, - 0xE3, 0x82, 0xA1, 0xE3, 0x83, 0xA9, 0xE3, 0x83, - 0x83, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0x95, 0xE3, 0x82, 0xA3, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x95, 0xE3, 0x82, - 0x99, 0xE3, 0x83, 0x83, 0xE3, 0x82, 0xB7, 0xE3, - 0x82, 0xA7, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x95, - 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0xAF, 0xE3, 0x82, 0xBF, 0xE3, - 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x98, - 0xE3, 0x82, 0x9A, 0xE3, 0x82, 0xBD, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0x8B, 0xE3, - 0x83, 0x92, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0xAB, - 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x98, 0xE3, 0x82, - 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0xB9, 0xE3, - 0x83, 0x98, 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, - 0xE3, 0x82, 0xB7, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0x98, 0xE3, 0x82, 0x99, 0xE3, 0x83, 0xBC, 0xE3, - 0x82, 0xBF, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x9A, - 0xE3, 0x82, 0xA4, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0x9B, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0xAB, 0xE3, 0x83, 0x88, 0xE3, 0x83, 0x9B, - 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9B, 0xE3, 0x82, - 0x9A, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x88, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0x9B, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x9B, 0xE3, 0x83, - 0xBC, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0x9E, 0xE3, - 0x82, 0xA4, 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0xAD, - 0xE3, 0x83, 0x9E, 0xE3, 0x82, 0xA4, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x83, 0xE3, - 0x83, 0x8F, 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0xAB, - 0xE3, 0x82, 0xAF, 0xE3, 0x83, 0x9E, 0xE3, 0x83, - 0xB3, 0xE3, 0x82, 0xB7, 0xE3, 0x83, 0xA7, 0xE3, - 0x83, 0xB3, 0xE3, 0x83, 0x9F, 0xE3, 0x82, 0xAF, - 0xE3, 0x83, 0xAD, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0x9F, 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x9F, 0xE3, - 0x83, 0xAA, 0xE3, 0x83, 0x8F, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, 0x83, - 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, 0xE3, - 0x83, 0xA1, 0xE3, 0x82, 0xAB, 0xE3, 0x82, 0x99, - 0xE3, 0x83, 0x88, 0xE3, 0x83, 0xB3, 0xE3, 0x83, - 0xA1, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x88, 0xE3, - 0x83, 0xAB, 0xE3, 0x83, 0xA4, 0xE3, 0x83, 0xBC, - 0xE3, 0x83, 0x88, 0xE3, 0x82, 0x99, 0xE3, 0x83, - 0xA4, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0xAB, 0xE3, - 0x83, 0xA6, 0xE3, 0x82, 0xA2, 0xE3, 0x83, 0xB3, - 0xE3, 0x83, 0xAA, 0xE3, 0x83, 0x83, 0xE3, 0x83, - 0x88, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xAA, 0xE3, - 0x83, 0xA9, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0x92, - 0xE3, 0x82, 0x9A, 0xE3, 0x83, 0xBC, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0xBC, 0xE3, 0x83, 0x95, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xAB, 0xE3, 0x83, 0xAC, - 0xE3, 0x83, 0xA0, 0xE3, 0x83, 0xAC, 0xE3, 0x83, - 0xB3, 0xE3, 0x83, 0x88, 0xE3, 0x82, 0xB1, 0xE3, - 0x82, 0x99, 0xE3, 0x83, 0xB3, 0xE3, 0x83, 0xAF, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0x88, 0x30, 0xE7, - 0x82, 0xB9, 0x31, 0xE7, 0x82, 0xB9, 0x32, 0xE7, - 0x82, 0xB9, 0x33, 0xE7, 0x82, 0xB9, 0x34, 0xE7, - 0x82, 0xB9, 0x35, 0xE7, 0x82, 0xB9, 0x36, 0xE7, - 0x82, 0xB9, 0x37, 0xE7, 0x82, 0xB9, 0x38, 0xE7, - 0x82, 0xB9, 0x39, 0xE7, 0x82, 0xB9, 0x31, 0x30, - 0xE7, 0x82, 0xB9, 0x31, 0x31, 0xE7, 0x82, 0xB9, - 0x31, 0x32, 0xE7, 0x82, 0xB9, 0x31, 0x33, 0xE7, - 0x82, 0xB9, 0x31, 0x34, 0xE7, 0x82, 0xB9, 0x31, - 0x35, 0xE7, 0x82, 0xB9, 0x31, 0x36, 0xE7, 0x82, - 0xB9, 0x31, 0x37, 0xE7, 0x82, 0xB9, 0x31, 0x38, - 0xE7, 0x82, 0xB9, 0x31, 0x39, 0xE7, 0x82, 0xB9, - 0x32, 0x30, 0xE7, 0x82, 0xB9, 0x32, 0x31, 0xE7, - 0x82, 0xB9, 0x32, 0x32, 0xE7, 0x82, 0xB9, 0x32, - 0x33, 0xE7, 0x82, 0xB9, 0x32, 0x34, 0xE7, 0x82, - 0xB9, 0x68, 0x50, 0x61, 0x64, 0x61, 0x41, 0x55, - 0x62, 0x61, 0x72, 0x6F, 0x56, 0x70, 0x63, 0x64, - 0x6D, 0x64, 0x6D, 0x32, 0x64, 0x6D, 0x33, 0x49, - 0x55, 0xE5, 0xB9, 0xB3, 0xE6, 0x88, 0x90, 0xE6, - 0x98, 0xAD, 0xE5, 0x92, 0x8C, 0xE5, 0xA4, 0xA7, - 0xE6, 0xAD, 0xA3, 0xE6, 0x98, 0x8E, 0xE6, 0xB2, - 0xBB, 0xE6, 0xA0, 0xAA, 0xE5, 0xBC, 0x8F, 0xE4, - 0xBC, 0x9A, 0xE7, 0xA4, 0xBE, 0x70, 0x41, 0x6E, - 0x41, 0xCE, 0xBC, 0x41, 0x6D, 0x41, 0x6B, 0x41, - 0x4B, 0x42, 0x4D, 0x42, 0x47, 0x42, 0x63, 0x61, - 0x6C, 0x6B, 0x63, 0x61, 0x6C, 0x70, 0x46, 0x6E, - 0x46, 0xCE, 0xBC, 0x46, 0xCE, 0xBC, 0x67, 0x6D, - 0x67, 0x6B, 0x67, 0x48, 0x7A, 0x6B, 0x48, 0x7A, - 0x4D, 0x48, 0x7A, 0x47, 0x48, 0x7A, 0x54, 0x48, - 0x7A, 0xCE, 0xBC, 0x6C, 0x6D, 0x6C, 0x64, 0x6C, - 0x6B, 0x6C, 0x66, 0x6D, 0x6E, 0x6D, 0xCE, 0xBC, - 0x6D, 0x6D, 0x6D, 0x63, 0x6D, 0x6B, 0x6D, 0x6D, - 0x6D, 0x32, 0x63, 0x6D, 0x32, 0x6D, 0x32, 0x6B, - 0x6D, 0x32, 0x6D, 0x6D, 0x33, 0x63, 0x6D, 0x33, - 0x6D, 0x33, 0x6B, 0x6D, 0x33, 0x6D, 0xE2, 0x88, - 0x95, 0x73, 0x6D, 0xE2, 0x88, 0x95, 0x73, 0x32, - 0x50, 0x61, 0x6B, 0x50, 0x61, 0x4D, 0x50, 0x61, - 0x47, 0x50, 0x61, 0x72, 0x61, 0x64, 0x72, 0x61, - 0x64, 0xE2, 0x88, 0x95, 0x73, 0x72, 0x61, 0x64, - 0xE2, 0x88, 0x95, 0x73, 0x32, 0x70, 0x73, 0x6E, - 0x73, 0xCE, 0xBC, 0x73, 0x6D, 0x73, 0x70, 0x56, - 0x6E, 0x56, 0xCE, 0xBC, 0x56, 0x6D, 0x56, 0x6B, - 0x56, 0x4D, 0x56, 0x70, 0x57, 0x6E, 0x57, 0xCE, - 0xBC, 0x57, 0x6D, 0x57, 0x6B, 0x57, 0x4D, 0x57, - 0x6B, 0xCE, 0xA9, 0x4D, 0xCE, 0xA9, 0x61, 0x2E, - 0x6D, 0x2E, 0x42, 0x71, 0x63, 0x63, 0x63, 0x64, - 0x43, 0xE2, 0x88, 0x95, 0x6B, 0x67, 0x43, 0x6F, - 0x2E, 0x64, 0x42, 0x47, 0x79, 0x68, 0x61, 0x48, - 0x50, 0x69, 0x6E, 0x4B, 0x4B, 0x4B, 0x4D, 0x6B, - 0x74, 0x6C, 0x6D, 0x6C, 0x6E, 0x6C, 0x6F, 0x67, - 0x6C, 0x78, 0x6D, 0x62, 0x6D, 0x69, 0x6C, 0x6D, - 0x6F, 0x6C, 0x50, 0x48, 0x70, 0x2E, 0x6D, 0x2E, - 0x50, 0x50, 0x4D, 0x50, 0x52, 0x73, 0x72, 0x53, - 0x76, 0x57, 0x62, 0x56, 0xE2, 0x88, 0x95, 0x6D, - 0x41, 0xE2, 0x88, 0x95, 0x6D, 0x31, 0xE6, 0x97, - 0xA5, 0x32, 0xE6, 0x97, 0xA5, 0x33, 0xE6, 0x97, - 0xA5, 0x34, 0xE6, 0x97, 0xA5, 0x35, 0xE6, 0x97, - 0xA5, 0x36, 0xE6, 0x97, 0xA5, 0x37, 0xE6, 0x97, - 0xA5, 0x38, 0xE6, 0x97, 0xA5, 0x39, 0xE6, 0x97, - 0xA5, 0x31, 0x30, 0xE6, 0x97, 0xA5, 0x31, 0x31, - 0xE6, 0x97, 0xA5, 0x31, 0x32, 0xE6, 0x97, 0xA5, - 0x31, 0x33, 0xE6, 0x97, 0xA5, 0x31, 0x34, 0xE6, - 0x97, 0xA5, 0x31, 0x35, 0xE6, 0x97, 0xA5, 0x31, - 0x36, 0xE6, 0x97, 0xA5, 0x31, 0x37, 0xE6, 0x97, - 0xA5, 0x31, 0x38, 0xE6, 0x97, 0xA5, 0x31, 0x39, - 0xE6, 0x97, 0xA5, 0x32, 0x30, 0xE6, 0x97, 0xA5, - 0x32, 0x31, 0xE6, 0x97, 0xA5, 0x32, 0x32, 0xE6, - 0x97, 0xA5, 0x32, 0x33, 0xE6, 0x97, 0xA5, 0x32, - 0x34, 0xE6, 0x97, 0xA5, 0x32, 0x35, 0xE6, 0x97, - 0xA5, 0x32, 0x36, 0xE6, 0x97, 0xA5, 0x32, 0x37, - 0xE6, 0x97, 0xA5, 0x32, 0x38, 0xE6, 0x97, 0xA5, - 0x32, 0x39, 0xE6, 0x97, 0xA5, 0x33, 0x30, 0xE6, - 0x97, 0xA5, 0x33, 0x31, 0xE6, 0x97, 0xA5, 0x67, - 0x61, 0x6C, 0xF6, 0xE8, 0xB1, 0x88, 0xF6, 0xE6, - 0x9B, 0xB4, 0xF6, 0xE8, 0xBB, 0x8A, 0xF6, 0xE8, - 0xB3, 0x88, 0xF6, 0xE6, 0xBB, 0x91, 0xF6, 0xE4, - 0xB8, 0xB2, 0xF6, 0xE5, 0x8F, 0xA5, 0xF6, 0xE9, - 0xBE, 0x9C, 0xF6, 0xE9, 0xBE, 0x9C, 0xF6, 0xE5, - 0xA5, 0x91, 0xF6, 0xE9, 0x87, 0x91, 0xF6, 0xE5, - 0x96, 0x87, 0xF6, 0xE5, 0xA5, 0x88, 0xF6, 0xE6, - 0x87, 0xB6, 0xF6, 0xE7, 0x99, 0xA9, 0xF6, 0xE7, - 0xBE, 0x85, 0xF6, 0xE8, 0x98, 0xBF, 0xF6, 0xE8, - 0x9E, 0xBA, 0xF6, 0xE8, 0xA3, 0xB8, 0xF6, 0xE9, - 0x82, 0x8F, 0xF6, 0xE6, 0xA8, 0x82, 0xF6, 0xE6, - 0xB4, 0x9B, 0xF6, 0xE7, 0x83, 0x99, 0xF6, 0xE7, - 0x8F, 0x9E, 0xF6, 0xE8, 0x90, 0xBD, 0xF6, 0xE9, - 0x85, 0xAA, 0xF6, 0xE9, 0xA7, 0xB1, 0xF6, 0xE4, - 0xBA, 0x82, 0xF6, 0xE5, 0x8D, 0xB5, 0xF6, 0xE6, - 0xAC, 0x84, 0xF6, 0xE7, 0x88, 0x9B, 0xF6, 0xE8, - 0x98, 0xAD, 0xF6, 0xE9, 0xB8, 0x9E, 0xF6, 0xE5, - 0xB5, 0x90, 0xF6, 0xE6, 0xBF, 0xAB, 0xF6, 0xE8, - 0x97, 0x8D, 0xF6, 0xE8, 0xA5, 0xA4, 0xF6, 0xE6, - 0x8B, 0x89, 0xF6, 0xE8, 0x87, 0x98, 0xF6, 0xE8, - 0xA0, 0x9F, 0xF6, 0xE5, 0xBB, 0x8A, 0xF6, 0xE6, - 0x9C, 0x97, 0xF6, 0xE6, 0xB5, 0xAA, 0xF6, 0xE7, - 0x8B, 0xBC, 0xF6, 0xE9, 0x83, 0x8E, 0xF6, 0xE4, - 0xBE, 0x86, 0xF6, 0xE5, 0x86, 0xB7, 0xF6, 0xE5, - 0x8B, 0x9E, 0xF6, 0xE6, 0x93, 0x84, 0xF6, 0xE6, - 0xAB, 0x93, 0xF6, 0xE7, 0x88, 0x90, 0xF6, 0xE7, - 0x9B, 0xA7, 0xF6, 0xE8, 0x80, 0x81, 0xF6, 0xE8, - 0x98, 0x86, 0xF6, 0xE8, 0x99, 0x9C, 0xF6, 0xE8, - 0xB7, 0xAF, 0xF6, 0xE9, 0x9C, 0xB2, 0xF6, 0xE9, - 0xAD, 0xAF, 0xF6, 0xE9, 0xB7, 0xBA, 0xF6, 0xE7, - 0xA2, 0x8C, 0xF6, 0xE7, 0xA5, 0xBF, 0xF6, 0xE7, - 0xB6, 0xA0, 0xF6, 0xE8, 0x8F, 0x89, 0xF6, 0xE9, - 0x8C, 0x84, 0xF6, 0xE9, 0xB9, 0xBF, 0xF6, 0xE8, - 0xAB, 0x96, 0xF6, 0xE5, 0xA3, 0x9F, 0xF6, 0xE5, - 0xBC, 0x84, 0xF6, 0xE7, 0xB1, 0xA0, 0xF6, 0xE8, - 0x81, 0xBE, 0xF6, 0xE7, 0x89, 0xA2, 0xF6, 0xE7, - 0xA3, 0x8A, 0xF6, 0xE8, 0xB3, 0x82, 0xF6, 0xE9, - 0x9B, 0xB7, 0xF6, 0xE5, 0xA3, 0x98, 0xF6, 0xE5, - 0xB1, 0xA2, 0xF6, 0xE6, 0xA8, 0x93, 0xF6, 0xE6, - 0xB7, 0x9A, 0xF6, 0xE6, 0xBC, 0x8F, 0xF6, 0xE7, - 0xB4, 0xAF, 0xF6, 0xE7, 0xB8, 0xB7, 0xF6, 0xE9, - 0x99, 0x8B, 0xF6, 0xE5, 0x8B, 0x92, 0xF6, 0xE8, - 0x82, 0x8B, 0xF6, 0xE5, 0x87, 0x9C, 0xF6, 0xE5, - 0x87, 0x8C, 0xF6, 0xE7, 0xA8, 0x9C, 0xF6, 0xE7, - 0xB6, 0xBE, 0xF6, 0xE8, 0x8F, 0xB1, 0xF6, 0xE9, - 0x99, 0xB5, 0xF6, 0xE8, 0xAE, 0x80, 0xF6, 0xE6, - 0x8B, 0x8F, 0xF6, 0xE6, 0xA8, 0x82, 0xF6, 0xE8, - 0xAB, 0xBE, 0xF6, 0xE4, 0xB8, 0xB9, 0xF6, 0xE5, - 0xAF, 0xA7, 0xF6, 0xE6, 0x80, 0x92, 0xF6, 0xE7, - 0x8E, 0x87, 0xF6, 0xE7, 0x95, 0xB0, 0xF6, 0xE5, - 0x8C, 0x97, 0xF6, 0xE7, 0xA3, 0xBB, 0xF6, 0xE4, - 0xBE, 0xBF, 0xF6, 0xE5, 0xBE, 0xA9, 0xF6, 0xE4, - 0xB8, 0x8D, 0xF6, 0xE6, 0xB3, 0x8C, 0xF6, 0xE6, - 0x95, 0xB8, 0xF6, 0xE7, 0xB4, 0xA2, 0xF6, 0xE5, - 0x8F, 0x83, 0xF6, 0xE5, 0xA1, 0x9E, 0xF6, 0xE7, - 0x9C, 0x81, 0xF6, 0xE8, 0x91, 0x89, 0xF6, 0xE8, - 0xAA, 0xAA, 0xF6, 0xE6, 0xAE, 0xBA, 0xF6, 0xE8, - 0xBE, 0xB0, 0xF6, 0xE6, 0xB2, 0x88, 0xF6, 0xE6, - 0x8B, 0xBE, 0xF6, 0xE8, 0x8B, 0xA5, 0xF6, 0xE6, - 0x8E, 0xA0, 0xF6, 0xE7, 0x95, 0xA5, 0xF6, 0xE4, - 0xBA, 0xAE, 0xF6, 0xE5, 0x85, 0xA9, 0xF6, 0xE5, - 0x87, 0x89, 0xF6, 0xE6, 0xA2, 0x81, 0xF6, 0xE7, - 0xB3, 0xA7, 0xF6, 0xE8, 0x89, 0xAF, 0xF6, 0xE8, - 0xAB, 0x92, 0xF6, 0xE9, 0x87, 0x8F, 0xF6, 0xE5, - 0x8B, 0xB5, 0xF6, 0xE5, 0x91, 0x82, 0xF6, 0xE5, - 0xA5, 0xB3, 0xF6, 0xE5, 0xBB, 0xAC, 0xF6, 0xE6, - 0x97, 0x85, 0xF6, 0xE6, 0xBF, 0xBE, 0xF6, 0xE7, - 0xA4, 0xAA, 0xF6, 0xE9, 0x96, 0xAD, 0xF6, 0xE9, - 0xA9, 0xAA, 0xF6, 0xE9, 0xBA, 0x97, 0xF6, 0xE9, - 0xBB, 0x8E, 0xF6, 0xE5, 0x8A, 0x9B, 0xF6, 0xE6, - 0x9B, 0x86, 0xF6, 0xE6, 0xAD, 0xB7, 0xF6, 0xE8, - 0xBD, 0xA2, 0xF6, 0xE5, 0xB9, 0xB4, 0xF6, 0xE6, - 0x86, 0x90, 0xF6, 0xE6, 0x88, 0x80, 0xF6, 0xE6, - 0x92, 0x9A, 0xF6, 0xE6, 0xBC, 0xA3, 0xF6, 0xE7, - 0x85, 0x89, 0xF6, 0xE7, 0x92, 0x89, 0xF6, 0xE7, - 0xA7, 0x8A, 0xF6, 0xE7, 0xB7, 0xB4, 0xF6, 0xE8, - 0x81, 0xAF, 0xF6, 0xE8, 0xBC, 0xA6, 0xF6, 0xE8, - 0x93, 0xAE, 0xF6, 0xE9, 0x80, 0xA3, 0xF6, 0xE9, - 0x8D, 0x8A, 0xF6, 0xE5, 0x88, 0x97, 0xF6, 0xE5, - 0x8A, 0xA3, 0xF6, 0xE5, 0x92, 0xBD, 0xF6, 0xE7, - 0x83, 0x88, 0xF6, 0xE8, 0xA3, 0x82, 0xF6, 0xE8, - 0xAA, 0xAA, 0xF6, 0xE5, 0xBB, 0x89, 0xF6, 0xE5, - 0xBF, 0xB5, 0xF6, 0xE6, 0x8D, 0xBB, 0xF6, 0xE6, - 0xAE, 0xAE, 0xF6, 0xE7, 0xB0, 0xBE, 0xF6, 0xE7, - 0x8D, 0xB5, 0xF6, 0xE4, 0xBB, 0xA4, 0xF6, 0xE5, - 0x9B, 0xB9, 0xF6, 0xE5, 0xAF, 0xA7, 0xF6, 0xE5, - 0xB6, 0xBA, 0xF6, 0xE6, 0x80, 0x9C, 0xF6, 0xE7, - 0x8E, 0xB2, 0xF6, 0xE7, 0x91, 0xA9, 0xF6, 0xE7, - 0xBE, 0x9A, 0xF6, 0xE8, 0x81, 0x86, 0xF6, 0xE9, - 0x88, 0xB4, 0xF6, 0xE9, 0x9B, 0xB6, 0xF6, 0xE9, - 0x9D, 0x88, 0xF6, 0xE9, 0xA0, 0x98, 0xF6, 0xE4, - 0xBE, 0x8B, 0xF6, 0xE7, 0xA6, 0xAE, 0xF6, 0xE9, - 0x86, 0xB4, 0xF6, 0xE9, 0x9A, 0xB8, 0xF6, 0xE6, - 0x83, 0xA1, 0xF6, 0xE4, 0xBA, 0x86, 0xF6, 0xE5, - 0x83, 0x9A, 0xF6, 0xE5, 0xAF, 0xAE, 0xF6, 0xE5, - 0xB0, 0xBF, 0xF6, 0xE6, 0x96, 0x99, 0xF6, 0xE6, - 0xA8, 0x82, 0xF6, 0xE7, 0x87, 0x8E, 0xF6, 0xE7, - 0x99, 0x82, 0xF6, 0xE8, 0x93, 0xBC, 0xF6, 0xE9, - 0x81, 0xBC, 0xF6, 0xE9, 0xBE, 0x8D, 0xF6, 0xE6, - 0x9A, 0x88, 0xF6, 0xE9, 0x98, 0xAE, 0xF6, 0xE5, - 0x8A, 0x89, 0xF6, 0xE6, 0x9D, 0xBB, 0xF6, 0xE6, - 0x9F, 0xB3, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6, - 0xBA, 0x9C, 0xF6, 0xE7, 0x90, 0x89, 0xF6, 0xE7, - 0x95, 0x99, 0xF6, 0xE7, 0xA1, 0xAB, 0xF6, 0xE7, - 0xB4, 0x90, 0xF6, 0xE9, 0xA1, 0x9E, 0xF6, 0xE5, - 0x85, 0xAD, 0xF6, 0xE6, 0x88, 0xAE, 0xF6, 0xE9, - 0x99, 0xB8, 0xF6, 0xE5, 0x80, 0xAB, 0xF6, 0xE5, - 0xB4, 0x99, 0xF6, 0xE6, 0xB7, 0xAA, 0xF6, 0xE8, - 0xBC, 0xAA, 0xF6, 0xE5, 0xBE, 0x8B, 0xF6, 0xE6, - 0x85, 0x84, 0xF6, 0xE6, 0xA0, 0x97, 0xF6, 0xE7, - 0x8E, 0x87, 0xF6, 0xE9, 0x9A, 0x86, 0xF6, 0xE5, - 0x88, 0xA9, 0xF6, 0xE5, 0x90, 0x8F, 0xF6, 0xE5, - 0xB1, 0xA5, 0xF6, 0xE6, 0x98, 0x93, 0xF6, 0xE6, - 0x9D, 0x8E, 0xF6, 0xE6, 0xA2, 0xA8, 0xF6, 0xE6, - 0xB3, 0xA5, 0xF6, 0xE7, 0x90, 0x86, 0xF6, 0xE7, - 0x97, 0xA2, 0xF6, 0xE7, 0xBD, 0xB9, 0xF6, 0xE8, - 0xA3, 0x8F, 0xF6, 0xE8, 0xA3, 0xA1, 0xF6, 0xE9, - 0x87, 0x8C, 0xF6, 0xE9, 0x9B, 0xA2, 0xF6, 0xE5, - 0x8C, 0xBF, 0xF6, 0xE6, 0xBA, 0xBA, 0xF6, 0xE5, - 0x90, 0x9D, 0xF6, 0xE7, 0x87, 0x90, 0xF6, 0xE7, - 0x92, 0x98, 0xF6, 0xE8, 0x97, 0xBA, 0xF6, 0xE9, - 0x9A, 0xA3, 0xF6, 0xE9, 0xB1, 0x97, 0xF6, 0xE9, - 0xBA, 0x9F, 0xF6, 0xE6, 0x9E, 0x97, 0xF6, 0xE6, - 0xB7, 0x8B, 0xF6, 0xE8, 0x87, 0xA8, 0xF6, 0xE7, - 0xAB, 0x8B, 0xF6, 0xE7, 0xAC, 0xA0, 0xF6, 0xE7, - 0xB2, 0x92, 0xF6, 0xE7, 0x8B, 0x80, 0xF6, 0xE7, - 0x82, 0x99, 0xF6, 0xE8, 0xAD, 0x98, 0xF6, 0xE4, - 0xBB, 0x80, 0xF6, 0xE8, 0x8C, 0xB6, 0xF6, 0xE5, - 0x88, 0xBA, 0xF6, 0xE5, 0x88, 0x87, 0xF6, 0xE5, - 0xBA, 0xA6, 0xF6, 0xE6, 0x8B, 0x93, 0xF6, 0xE7, - 0xB3, 0x96, 0xF6, 0xE5, 0xAE, 0x85, 0xF6, 0xE6, - 0xB4, 0x9E, 0xF6, 0xE6, 0x9A, 0xB4, 0xF6, 0xE8, - 0xBC, 0xBB, 0xF6, 0xE8, 0xA1, 0x8C, 0xF6, 0xE9, - 0x99, 0x8D, 0xF6, 0xE8, 0xA6, 0x8B, 0xF6, 0xE5, - 0xBB, 0x93, 0xF6, 0xE5, 0x85, 0x80, 0xF6, 0xE5, - 0x97, 0x80, 0xF6, 0xE5, 0xA1, 0x9A, 0xF6, 0xE6, - 0x99, 0xB4, 0xF6, 0xE5, 0x87, 0x9E, 0xF6, 0xE7, - 0x8C, 0xAA, 0xF6, 0xE7, 0x9B, 0x8A, 0xF6, 0xE7, - 0xA4, 0xBC, 0xF6, 0xE7, 0xA5, 0x9E, 0xF6, 0xE7, - 0xA5, 0xA5, 0xF6, 0xE7, 0xA6, 0x8F, 0xF6, 0xE9, - 0x9D, 0x96, 0xF6, 0xE7, 0xB2, 0xBE, 0xF6, 0xE7, - 0xBE, 0xBD, 0xF6, 0xE8, 0x98, 0x92, 0xF6, 0xE8, - 0xAB, 0xB8, 0xF6, 0xE9, 0x80, 0xB8, 0xF6, 0xE9, - 0x83, 0xBD, 0xF6, 0xE9, 0xA3, 0xAF, 0xF6, 0xE9, - 0xA3, 0xBC, 0xF6, 0xE9, 0xA4, 0xA8, 0xF6, 0xE9, - 0xB6, 0xB4, 0xF6, 0xE4, 0xBE, 0xAE, 0xF6, 0xE5, - 0x83, 0xA7, 0xF6, 0xE5, 0x85, 0x8D, 0xF6, 0xE5, - 0x8B, 0x89, 0xF6, 0xE5, 0x8B, 0xA4, 0xF6, 0xE5, - 0x8D, 0x91, 0xF6, 0xE5, 0x96, 0x9D, 0xF6, 0xE5, - 0x98, 0x86, 0xF6, 0xE5, 0x99, 0xA8, 0xF6, 0xE5, - 0xA1, 0x80, 0xF6, 0xE5, 0xA2, 0xA8, 0xF6, 0xE5, - 0xB1, 0xA4, 0xF6, 0xE5, 0xB1, 0xAE, 0xF6, 0xE6, - 0x82, 0x94, 0xF6, 0xE6, 0x85, 0xA8, 0xF6, 0xE6, - 0x86, 0x8E, 0xF6, 0xE6, 0x87, 0xB2, 0xF6, 0xE6, - 0x95, 0x8F, 0xF6, 0xE6, 0x97, 0xA2, 0xF6, 0xE6, - 0x9A, 0x91, 0xF6, 0xE6, 0xA2, 0x85, 0xF6, 0xE6, - 0xB5, 0xB7, 0xF6, 0xE6, 0xB8, 0x9A, 0xF6, 0xE6, - 0xBC, 0xA2, 0xF6, 0xE7, 0x85, 0xAE, 0xF6, 0xE7, - 0x88, 0xAB, 0xF6, 0xE7, 0x90, 0xA2, 0xF6, 0xE7, - 0xA2, 0x91, 0xF6, 0xE7, 0xA4, 0xBE, 0xF6, 0xE7, - 0xA5, 0x89, 0xF6, 0xE7, 0xA5, 0x88, 0xF6, 0xE7, - 0xA5, 0x90, 0xF6, 0xE7, 0xA5, 0x96, 0xF6, 0xE7, - 0xA5, 0x9D, 0xF6, 0xE7, 0xA6, 0x8D, 0xF6, 0xE7, - 0xA6, 0x8E, 0xF6, 0xE7, 0xA9, 0x80, 0xF6, 0xE7, - 0xAA, 0x81, 0xF6, 0xE7, 0xAF, 0x80, 0xF6, 0xE7, - 0xB7, 0xB4, 0xF6, 0xE7, 0xB8, 0x89, 0xF6, 0xE7, - 0xB9, 0x81, 0xF6, 0xE7, 0xBD, 0xB2, 0xF6, 0xE8, - 0x80, 0x85, 0xF6, 0xE8, 0x87, 0xAD, 0xF6, 0xE8, - 0x89, 0xB9, 0xF6, 0xE8, 0x89, 0xB9, 0xF6, 0xE8, - 0x91, 0x97, 0xF6, 0xE8, 0xA4, 0x90, 0xF6, 0xE8, - 0xA6, 0x96, 0xF6, 0xE8, 0xAC, 0x81, 0xF6, 0xE8, - 0xAC, 0xB9, 0xF6, 0xE8, 0xB3, 0x93, 0xF6, 0xE8, - 0xB4, 0x88, 0xF6, 0xE8, 0xBE, 0xB6, 0xF6, 0xE9, - 0x80, 0xB8, 0xF6, 0xE9, 0x9B, 0xA3, 0xF6, 0xE9, - 0x9F, 0xBF, 0xF6, 0xE9, 0xA0, 0xBB, 0xF6, 0xE4, - 0xB8, 0xA6, 0xF6, 0xE5, 0x86, 0xB5, 0xF6, 0xE5, - 0x85, 0xA8, 0xF6, 0xE4, 0xBE, 0x80, 0xF6, 0xE5, - 0x85, 0x85, 0xF6, 0xE5, 0x86, 0x80, 0xF6, 0xE5, - 0x8B, 0x87, 0xF6, 0xE5, 0x8B, 0xBA, 0xF6, 0xE5, - 0x96, 0x9D, 0xF6, 0xE5, 0x95, 0x95, 0xF6, 0xE5, - 0x96, 0x99, 0xF6, 0xE5, 0x97, 0xA2, 0xF6, 0xE5, - 0xA1, 0x9A, 0xF6, 0xE5, 0xA2, 0xB3, 0xF6, 0xE5, - 0xA5, 0x84, 0xF6, 0xE5, 0xA5, 0x94, 0xF6, 0xE5, - 0xA9, 0xA2, 0xF6, 0xE5, 0xAC, 0xA8, 0xF6, 0xE5, - 0xBB, 0x92, 0xF6, 0xE5, 0xBB, 0x99, 0xF6, 0xE5, - 0xBD, 0xA9, 0xF6, 0xE5, 0xBE, 0xAD, 0xF6, 0xE6, - 0x83, 0x98, 0xF6, 0xE6, 0x85, 0x8E, 0xF6, 0xE6, - 0x84, 0x88, 0xF6, 0xE6, 0x86, 0x8E, 0xF6, 0xE6, - 0x85, 0xA0, 0xF6, 0xE6, 0x87, 0xB2, 0xF6, 0xE6, - 0x88, 0xB4, 0xF6, 0xE6, 0x8F, 0x84, 0xF6, 0xE6, - 0x90, 0x9C, 0xF6, 0xE6, 0x91, 0x92, 0xF6, 0xE6, - 0x95, 0x96, 0xF6, 0xE6, 0x99, 0xB4, 0xF6, 0xE6, - 0x9C, 0x97, 0xF6, 0xE6, 0x9C, 0x9B, 0xF6, 0xE6, - 0x9D, 0x96, 0xF6, 0xE6, 0xAD, 0xB9, 0xF6, 0xE6, - 0xAE, 0xBA, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6, - 0xBB, 0x9B, 0xF6, 0xE6, 0xBB, 0x8B, 0xF6, 0xE6, - 0xBC, 0xA2, 0xF6, 0xE7, 0x80, 0x9E, 0xF6, 0xE7, - 0x85, 0xAE, 0xF6, 0xE7, 0x9E, 0xA7, 0xF6, 0xE7, - 0x88, 0xB5, 0xF6, 0xE7, 0x8A, 0xAF, 0xF6, 0xE7, - 0x8C, 0xAA, 0xF6, 0xE7, 0x91, 0xB1, 0xF6, 0xE7, - 0x94, 0x86, 0xF6, 0xE7, 0x94, 0xBB, 0xF6, 0xE7, - 0x98, 0x9D, 0xF6, 0xE7, 0x98, 0x9F, 0xF6, 0xE7, - 0x9B, 0x8A, 0xF6, 0xE7, 0x9B, 0x9B, 0xF6, 0xE7, - 0x9B, 0xB4, 0xF6, 0xE7, 0x9D, 0x8A, 0xF6, 0xE7, - 0x9D, 0x80, 0xF6, 0xE7, 0xA3, 0x8C, 0xF6, 0xE7, - 0xAA, 0xB1, 0xF6, 0xE7, 0xAF, 0x80, 0xF6, 0xE7, - 0xB1, 0xBB, 0xF6, 0xE7, 0xB5, 0x9B, 0xF6, 0xE7, - 0xB7, 0xB4, 0xF6, 0xE7, 0xBC, 0xBE, 0xF6, 0xE8, - 0x80, 0x85, 0xF6, 0xE8, 0x8D, 0x92, 0xF6, 0xE8, - 0x8F, 0xAF, 0xF6, 0xE8, 0x9D, 0xB9, 0xF6, 0xE8, - 0xA5, 0x81, 0xF6, 0xE8, 0xA6, 0x86, 0xF6, 0xE8, - 0xA6, 0x96, 0xF6, 0xE8, 0xAA, 0xBF, 0xF6, 0xE8, - 0xAB, 0xB8, 0xF6, 0xE8, 0xAB, 0x8B, 0xF6, 0xE8, - 0xAC, 0x81, 0xF6, 0xE8, 0xAB, 0xBE, 0xF6, 0xE8, - 0xAB, 0xAD, 0xF6, 0xE8, 0xAC, 0xB9, 0xF6, 0xE8, - 0xAE, 0x8A, 0xF6, 0xE8, 0xB4, 0x88, 0xF6, 0xE8, - 0xBC, 0xB8, 0xF6, 0xE9, 0x81, 0xB2, 0xF6, 0xE9, - 0x86, 0x99, 0xF6, 0xE9, 0x89, 0xB6, 0xF6, 0xE9, - 0x99, 0xBC, 0xF6, 0xE9, 0x9B, 0xA3, 0xF6, 0xE9, - 0x9D, 0x96, 0xF6, 0xE9, 0x9F, 0x9B, 0xF6, 0xE9, - 0x9F, 0xBF, 0xF6, 0xE9, 0xA0, 0x8B, 0xF6, 0xE9, - 0xA0, 0xBB, 0xF6, 0xE9, 0xAC, 0x92, 0xF6, 0xE9, - 0xBE, 0x9C, 0xF6, 0xF0, 0xA2, 0xA1, 0x8A, 0xF6, - 0xF0, 0xA2, 0xA1, 0x84, 0xF6, 0xF0, 0xA3, 0x8F, - 0x95, 0xF6, 0xE3, 0xAE, 0x9D, 0xF6, 0xE4, 0x80, - 0x98, 0xF6, 0xE4, 0x80, 0xB9, 0xF6, 0xF0, 0xA5, - 0x89, 0x89, 0xF6, 0xF0, 0xA5, 0xB3, 0x90, 0xF6, - 0xF0, 0xA7, 0xBB, 0x93, 0xF6, 0xE9, 0xBD, 0x83, - 0xF6, 0xE9, 0xBE, 0x8E, 0x66, 0x66, 0x66, 0x69, - 0x66, 0x6C, 0x66, 0x66, 0x69, 0x66, 0x66, 0x6C, - 0x73, 0x74, 0x73, 0x74, 0xD5, 0xB4, 0xD5, 0xB6, - 0xD5, 0xB4, 0xD5, 0xA5, 0xD5, 0xB4, 0xD5, 0xAB, - 0xD5, 0xBE, 0xD5, 0xB6, 0xD5, 0xB4, 0xD5, 0xAD, - 0xF6, 0xD7, 0x99, 0xD6, 0xB4, 0xF6, 0xD7, 0xB2, - 0xD6, 0xB7, 0xD7, 0xA2, 0xD7, 0x90, 0xD7, 0x93, - 0xD7, 0x94, 0xD7, 0x9B, 0xD7, 0x9C, 0xD7, 0x9D, - 0xD7, 0xA8, 0xD7, 0xAA, 0x2B, 0xF6, 0xD7, 0xA9, - 0xD7, 0x81, 0xF6, 0xD7, 0xA9, 0xD7, 0x82, 0xF6, - 0xD7, 0xA9, 0xD6, 0xBC, 0xD7, 0x81, 0xF6, 0xD7, - 0xA9, 0xD6, 0xBC, 0xD7, 0x82, 0xF6, 0xD7, 0x90, - 0xD6, 0xB7, 0xF6, 0xD7, 0x90, 0xD6, 0xB8, 0xF6, - 0xD7, 0x90, 0xD6, 0xBC, 0xF6, 0xD7, 0x91, 0xD6, - 0xBC, 0xF6, 0xD7, 0x92, 0xD6, 0xBC, 0xF6, 0xD7, - 0x93, 0xD6, 0xBC, 0xF6, 0xD7, 0x94, 0xD6, 0xBC, - 0xF6, 0xD7, 0x95, 0xD6, 0xBC, 0xF6, 0xD7, 0x96, - 0xD6, 0xBC, 0xF6, 0xD7, 0x98, 0xD6, 0xBC, 0xF6, - 0xD7, 0x99, 0xD6, 0xBC, 0xF6, 0xD7, 0x9A, 0xD6, - 0xBC, 0xF6, 0xD7, 0x9B, 0xD6, 0xBC, 0xF6, 0xD7, - 0x9C, 0xD6, 0xBC, 0xF6, 0xD7, 0x9E, 0xD6, 0xBC, - 0xF6, 0xD7, 0xA0, 0xD6, 0xBC, 0xF6, 0xD7, 0xA1, - 0xD6, 0xBC, 0xF6, 0xD7, 0xA3, 0xD6, 0xBC, 0xF6, - 0xD7, 0xA4, 0xD6, 0xBC, 0xF6, 0xD7, 0xA6, 0xD6, - 0xBC, 0xF6, 0xD7, 0xA7, 0xD6, 0xBC, 0xF6, 0xD7, - 0xA8, 0xD6, 0xBC, 0xF6, 0xD7, 0xA9, 0xD6, 0xBC, - 0xF6, 0xD7, 0xAA, 0xD6, 0xBC, 0xF6, 0xD7, 0x95, - 0xD6, 0xB9, 0xF6, 0xD7, 0x91, 0xD6, 0xBF, 0xF6, - 0xD7, 0x9B, 0xD6, 0xBF, 0xF6, 0xD7, 0xA4, 0xD6, - 0xBF, 0xD7, 0x90, 0xD7, 0x9C, 0xD9, 0xB1, 0xD9, - 0xB1, 0xD9, 0xBB, 0xD9, 0xBB, 0xD9, 0xBB, 0xD9, - 0xBB, 0xD9, 0xBE, 0xD9, 0xBE, 0xD9, 0xBE, 0xD9, - 0xBE, 0xDA, 0x80, 0xDA, 0x80, 0xDA, 0x80, 0xDA, - 0x80, 0xD9, 0xBA, 0xD9, 0xBA, 0xD9, 0xBA, 0xD9, - 0xBA, 0xD9, 0xBF, 0xD9, 0xBF, 0xD9, 0xBF, 0xD9, - 0xBF, 0xD9, 0xB9, 0xD9, 0xB9, 0xD9, 0xB9, 0xD9, - 0xB9, 0xDA, 0xA4, 0xDA, 0xA4, 0xDA, 0xA4, 0xDA, - 0xA4, 0xDA, 0xA6, 0xDA, 0xA6, 0xDA, 0xA6, 0xDA, - 0xA6, 0xDA, 0x84, 0xDA, 0x84, 0xDA, 0x84, 0xDA, - 0x84, 0xDA, 0x83, 0xDA, 0x83, 0xDA, 0x83, 0xDA, - 0x83, 0xDA, 0x86, 0xDA, 0x86, 0xDA, 0x86, 0xDA, - 0x86, 0xDA, 0x87, 0xDA, 0x87, 0xDA, 0x87, 0xDA, - 0x87, 0xDA, 0x8D, 0xDA, 0x8D, 0xDA, 0x8C, 0xDA, - 0x8C, 0xDA, 0x8E, 0xDA, 0x8E, 0xDA, 0x88, 0xDA, - 0x88, 0xDA, 0x98, 0xDA, 0x98, 0xDA, 0x91, 0xDA, - 0x91, 0xDA, 0xA9, 0xDA, 0xA9, 0xDA, 0xA9, 0xDA, - 0xA9, 0xDA, 0xAF, 0xDA, 0xAF, 0xDA, 0xAF, 0xDA, - 0xAF, 0xDA, 0xB3, 0xDA, 0xB3, 0xDA, 0xB3, 0xDA, - 0xB3, 0xDA, 0xB1, 0xDA, 0xB1, 0xDA, 0xB1, 0xDA, - 0xB1, 0xDA, 0xBA, 0xDA, 0xBA, 0xDA, 0xBB, 0xDA, - 0xBB, 0xDA, 0xBB, 0xDA, 0xBB, 0xDB, 0x95, 0xD9, - 0x94, 0xDB, 0x95, 0xD9, 0x94, 0xDB, 0x81, 0xDB, - 0x81, 0xDB, 0x81, 0xDB, 0x81, 0xDA, 0xBE, 0xDA, - 0xBE, 0xDA, 0xBE, 0xDA, 0xBE, 0xDB, 0x92, 0xDB, - 0x92, 0xDB, 0x92, 0xD9, 0x94, 0xDB, 0x92, 0xD9, - 0x94, 0xDA, 0xAD, 0xDA, 0xAD, 0xDA, 0xAD, 0xDA, - 0xAD, 0xDB, 0x87, 0xDB, 0x87, 0xDB, 0x86, 0xDB, - 0x86, 0xDB, 0x88, 0xDB, 0x88, 0xDB, 0x87, 0xD9, - 0xB4, 0xDB, 0x8B, 0xDB, 0x8B, 0xDB, 0x85, 0xDB, - 0x85, 0xDB, 0x89, 0xDB, 0x89, 0xDB, 0x90, 0xDB, - 0x90, 0xDB, 0x90, 0xDB, 0x90, 0xD9, 0x89, 0xD9, - 0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, - 0x8A, 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x8A, 0xD9, - 0x94, 0xDB, 0x95, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, - 0x95, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0xD9, - 0x8A, 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x8A, 0xD9, - 0x94, 0xDB, 0x87, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, - 0x87, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0xD9, - 0x8A, 0xD9, 0x94, 0xDB, 0x86, 0xD9, 0x8A, 0xD9, - 0x94, 0xDB, 0x88, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, - 0x88, 0xD9, 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0xD9, - 0x8A, 0xD9, 0x94, 0xDB, 0x90, 0xD9, 0x8A, 0xD9, - 0x94, 0xDB, 0x90, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, - 0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xD9, - 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xDB, 0x8C, 0xDB, - 0x8C, 0xDB, 0x8C, 0xDB, 0x8C, 0xD9, 0x8A, 0xD9, - 0x94, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, - 0xAD, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, - 0x8A, 0xD9, 0x94, 0xD9, 0x89, 0xD9, 0x8A, 0xD9, - 0x94, 0xD9, 0x8A, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8, - 0xA8, 0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8, - 0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x89, 0xD8, - 0xA8, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD8, - 0xAA, 0xD8, 0xAD, 0xD8, 0xAA, 0xD8, 0xAE, 0xD8, - 0xAA, 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x89, 0xD8, - 0xAA, 0xD9, 0x8A, 0xD8, 0xAB, 0xD8, 0xAC, 0xD8, - 0xAB, 0xD9, 0x85, 0xD8, 0xAB, 0xD9, 0x89, 0xD8, - 0xAB, 0xD9, 0x8A, 0xD8, 0xAC, 0xD8, 0xAD, 0xD8, - 0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, - 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD8, - 0xAE, 0xD8, 0xAD, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, - 0xB3, 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, - 0xB3, 0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, - 0xB5, 0xD8, 0xAD, 0xD8, 0xB5, 0xD9, 0x85, 0xD8, - 0xB6, 0xD8, 0xAC, 0xD8, 0xB6, 0xD8, 0xAD, 0xD8, - 0xB6, 0xD8, 0xAE, 0xD8, 0xB6, 0xD9, 0x85, 0xD8, - 0xB7, 0xD8, 0xAD, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, - 0xB8, 0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8, - 0xB9, 0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8, - 0xBA, 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9, - 0x81, 0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, - 0x81, 0xD9, 0x85, 0xD9, 0x81, 0xD9, 0x89, 0xD9, - 0x81, 0xD9, 0x8A, 0xD9, 0x82, 0xD8, 0xAD, 0xD9, - 0x82, 0xD9, 0x85, 0xD9, 0x82, 0xD9, 0x89, 0xD9, - 0x82, 0xD9, 0x8A, 0xD9, 0x83, 0xD8, 0xA7, 0xD9, - 0x83, 0xD8, 0xAC, 0xD9, 0x83, 0xD8, 0xAD, 0xD9, - 0x83, 0xD8, 0xAE, 0xD9, 0x83, 0xD9, 0x84, 0xD9, - 0x83, 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x89, 0xD9, - 0x83, 0xD9, 0x8A, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, - 0x84, 0xD8, 0xAD, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, - 0x84, 0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x89, 0xD9, - 0x84, 0xD9, 0x8A, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, - 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, - 0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x89, 0xD9, - 0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, - 0x86, 0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9, - 0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x89, 0xD9, - 0x86, 0xD9, 0x8A, 0xD9, 0x87, 0xD8, 0xAC, 0xD9, - 0x87, 0xD9, 0x85, 0xD9, 0x87, 0xD9, 0x89, 0xD9, - 0x87, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, - 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9, - 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x89, 0xD9, - 0x8A, 0xD9, 0x8A, 0xD8, 0xB0, 0xD9, 0xB0, 0xD8, - 0xB1, 0xD9, 0xB0, 0xD9, 0x89, 0xD9, 0xB0, 0x20, - 0xD9, 0x8C, 0xD9, 0x91, 0x20, 0xD9, 0x8D, 0xD9, - 0x91, 0x20, 0xD9, 0x8E, 0xD9, 0x91, 0x20, 0xD9, - 0x8F, 0xD9, 0x91, 0x20, 0xD9, 0x90, 0xD9, 0x91, - 0x20, 0xD9, 0x91, 0xD9, 0xB0, 0xD9, 0x8A, 0xD9, - 0x94, 0xD8, 0xB1, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, - 0xB2, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, - 0x8A, 0xD9, 0x94, 0xD9, 0x86, 0xD9, 0x8A, 0xD9, - 0x94, 0xD9, 0x89, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, - 0x8A, 0xD8, 0xA8, 0xD8, 0xB1, 0xD8, 0xA8, 0xD8, - 0xB2, 0xD8, 0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9, - 0x86, 0xD8, 0xA8, 0xD9, 0x89, 0xD8, 0xA8, 0xD9, - 0x8A, 0xD8, 0xAA, 0xD8, 0xB1, 0xD8, 0xAA, 0xD8, - 0xB2, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAA, 0xD9, - 0x86, 0xD8, 0xAA, 0xD9, 0x89, 0xD8, 0xAA, 0xD9, - 0x8A, 0xD8, 0xAB, 0xD8, 0xB1, 0xD8, 0xAB, 0xD8, - 0xB2, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, 0xAB, 0xD9, - 0x86, 0xD8, 0xAB, 0xD9, 0x89, 0xD8, 0xAB, 0xD9, - 0x8A, 0xD9, 0x81, 0xD9, 0x89, 0xD9, 0x81, 0xD9, - 0x8A, 0xD9, 0x82, 0xD9, 0x89, 0xD9, 0x82, 0xD9, - 0x8A, 0xD9, 0x83, 0xD8, 0xA7, 0xD9, 0x83, 0xD9, - 0x84, 0xD9, 0x83, 0xD9, 0x85, 0xD9, 0x83, 0xD9, - 0x89, 0xD9, 0x83, 0xD9, 0x8A, 0xD9, 0x84, 0xD9, - 0x85, 0xD9, 0x84, 0xD9, 0x89, 0xD9, 0x84, 0xD9, - 0x8A, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, 0x85, 0xD9, - 0x85, 0xD9, 0x86, 0xD8, 0xB1, 0xD9, 0x86, 0xD8, - 0xB2, 0xD9, 0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, - 0x86, 0xD9, 0x86, 0xD9, 0x89, 0xD9, 0x86, 0xD9, - 0x8A, 0xD9, 0x89, 0xD9, 0xB0, 0xD9, 0x8A, 0xD8, - 0xB1, 0xD9, 0x8A, 0xD8, 0xB2, 0xD9, 0x8A, 0xD9, - 0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x8A, 0xD9, - 0x89, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, - 0x94, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, - 0xAD, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xAE, 0xD9, - 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, - 0x94, 0xD9, 0x87, 0xD8, 0xA8, 0xD8, 0xAC, 0xD8, - 0xA8, 0xD8, 0xAD, 0xD8, 0xA8, 0xD8, 0xAE, 0xD8, - 0xA8, 0xD9, 0x85, 0xD8, 0xA8, 0xD9, 0x87, 0xD8, - 0xAA, 0xD8, 0xAC, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, - 0xAA, 0xD8, 0xAE, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, - 0xAA, 0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, - 0xAC, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, - 0xAD, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, - 0xAE, 0xD8, 0xAC, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, - 0xB3, 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, - 0xB3, 0xD8, 0xAE, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, - 0xB5, 0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAE, 0xD8, - 0xB5, 0xD9, 0x85, 0xD8, 0xB6, 0xD8, 0xAC, 0xD8, - 0xB6, 0xD8, 0xAD, 0xD8, 0xB6, 0xD8, 0xAE, 0xD8, - 0xB6, 0xD9, 0x85, 0xD8, 0xB7, 0xD8, 0xAD, 0xD8, - 0xB8, 0xD9, 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD8, - 0xB9, 0xD9, 0x85, 0xD8, 0xBA, 0xD8, 0xAC, 0xD8, - 0xBA, 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAC, 0xD9, - 0x81, 0xD8, 0xAD, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, - 0x81, 0xD9, 0x85, 0xD9, 0x82, 0xD8, 0xAD, 0xD9, - 0x82, 0xD9, 0x85, 0xD9, 0x83, 0xD8, 0xAC, 0xD9, - 0x83, 0xD8, 0xAD, 0xD9, 0x83, 0xD8, 0xAE, 0xD9, - 0x83, 0xD9, 0x84, 0xD9, 0x83, 0xD9, 0x85, 0xD9, - 0x84, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, - 0x84, 0xD8, 0xAE, 0xD9, 0x84, 0xD9, 0x85, 0xD9, - 0x84, 0xD9, 0x87, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, - 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAE, 0xD9, - 0x85, 0xD9, 0x85, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, - 0x86, 0xD8, 0xAD, 0xD9, 0x86, 0xD8, 0xAE, 0xD9, - 0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9, - 0x87, 0xD8, 0xAC, 0xD9, 0x87, 0xD9, 0x85, 0xD9, - 0x87, 0xD9, 0xB0, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, - 0x8A, 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xAE, 0xD9, - 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, - 0x8A, 0xD9, 0x94, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, - 0x94, 0xD9, 0x87, 0xD8, 0xA8, 0xD9, 0x85, 0xD8, - 0xA8, 0xD9, 0x87, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, - 0xAA, 0xD9, 0x87, 0xD8, 0xAB, 0xD9, 0x85, 0xD8, - 0xAB, 0xD9, 0x87, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, - 0xB3, 0xD9, 0x87, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, - 0xB4, 0xD9, 0x87, 0xD9, 0x83, 0xD9, 0x84, 0xD9, - 0x83, 0xD9, 0x85, 0xD9, 0x84, 0xD9, 0x85, 0xD9, - 0x86, 0xD9, 0x85, 0xD9, 0x86, 0xD9, 0x87, 0xD9, - 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, - 0x80, 0xD9, 0x8E, 0xD9, 0x91, 0xD9, 0x80, 0xD9, - 0x8F, 0xD9, 0x91, 0xD9, 0x80, 0xD9, 0x90, 0xD9, - 0x91, 0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9, - 0x8A, 0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9, - 0x8A, 0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, - 0x8A, 0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9, - 0x8A, 0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9, - 0x8A, 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9, - 0x8A, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, - 0x8A, 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9, - 0x8A, 0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, - 0x8A, 0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9, - 0x8A, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, - 0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, - 0x85, 0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8, - 0xB1, 0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8, - 0xB1, 0xD8, 0xB7, 0xD9, 0x89, 0xD8, 0xB7, 0xD9, - 0x8A, 0xD8, 0xB9, 0xD9, 0x89, 0xD8, 0xB9, 0xD9, - 0x8A, 0xD8, 0xBA, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, - 0x8A, 0xD8, 0xB3, 0xD9, 0x89, 0xD8, 0xB3, 0xD9, - 0x8A, 0xD8, 0xB4, 0xD9, 0x89, 0xD8, 0xB4, 0xD9, - 0x8A, 0xD8, 0xAD, 0xD9, 0x89, 0xD8, 0xAD, 0xD9, - 0x8A, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, - 0x8A, 0xD8, 0xAE, 0xD9, 0x89, 0xD8, 0xAE, 0xD9, - 0x8A, 0xD8, 0xB5, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, - 0x8A, 0xD8, 0xB6, 0xD9, 0x89, 0xD8, 0xB6, 0xD9, - 0x8A, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, - 0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, - 0x85, 0xD8, 0xB4, 0xD8, 0xB1, 0xD8, 0xB3, 0xD8, - 0xB1, 0xD8, 0xB5, 0xD8, 0xB1, 0xD8, 0xB6, 0xD8, - 0xB1, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, - 0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, - 0x85, 0xD8, 0xB3, 0xD9, 0x87, 0xD8, 0xB4, 0xD9, - 0x87, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xB3, 0xD8, - 0xAC, 0xD8, 0xB3, 0xD8, 0xAD, 0xD8, 0xB3, 0xD8, - 0xAE, 0xD8, 0xB4, 0xD8, 0xAC, 0xD8, 0xB4, 0xD8, - 0xAD, 0xD8, 0xB4, 0xD8, 0xAE, 0xD8, 0xB7, 0xD9, - 0x85, 0xD8, 0xB8, 0xD9, 0x85, 0xD8, 0xA7, 0xD9, - 0x8B, 0xD8, 0xA7, 0xD9, 0x8B, 0xD8, 0xAA, 0xD8, - 0xAC, 0xD9, 0x85, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, - 0xAC, 0xD8, 0xAA, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, - 0xAA, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAA, 0xD8, - 0xAE, 0xD9, 0x85, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, - 0xAC, 0xD8, 0xAA, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, - 0xAA, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9, - 0x85, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, - 0xAD, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, - 0xAD, 0xD9, 0x85, 0xD9, 0x89, 0xD8, 0xB3, 0xD8, - 0xAD, 0xD8, 0xAC, 0xD8, 0xB3, 0xD8, 0xAC, 0xD8, - 0xAD, 0xD8, 0xB3, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, - 0xB3, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, 0xB3, 0xD9, - 0x85, 0xD8, 0xAD, 0xD8, 0xB3, 0xD9, 0x85, 0xD8, - 0xAC, 0xD8, 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0xD8, - 0xB3, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB5, 0xD8, - 0xAD, 0xD8, 0xAD, 0xD8, 0xB5, 0xD8, 0xAD, 0xD8, - 0xAD, 0xD8, 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0xD8, - 0xB4, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB4, 0xD8, - 0xAD, 0xD9, 0x85, 0xD8, 0xB4, 0xD8, 0xAC, 0xD9, - 0x8A, 0xD8, 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, - 0xB4, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xB4, 0xD9, - 0x85, 0xD9, 0x85, 0xD8, 0xB4, 0xD9, 0x85, 0xD9, - 0x85, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, 0x89, 0xD8, - 0xB6, 0xD8, 0xAE, 0xD9, 0x85, 0xD8, 0xB6, 0xD8, - 0xAE, 0xD9, 0x85, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, - 0xAD, 0xD8, 0xB7, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, - 0xB7, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB7, 0xD9, - 0x85, 0xD9, 0x8A, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, - 0x85, 0xD8, 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0xD8, - 0xB9, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB9, 0xD9, - 0x85, 0xD9, 0x89, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, - 0x85, 0xD8, 0xBA, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, - 0xBA, 0xD9, 0x85, 0xD9, 0x89, 0xD9, 0x81, 0xD8, - 0xAE, 0xD9, 0x85, 0xD9, 0x81, 0xD8, 0xAE, 0xD9, - 0x85, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, - 0x82, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x84, 0xD8, - 0xAD, 0xD9, 0x85, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, - 0x8A, 0xD9, 0x84, 0xD8, 0xAD, 0xD9, 0x89, 0xD9, - 0x84, 0xD8, 0xAC, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, - 0xAC, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, - 0x85, 0xD9, 0x84, 0xD8, 0xAE, 0xD9, 0x85, 0xD9, - 0x84, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x84, 0xD9, - 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAD, 0xD8, - 0xAC, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, - 0x85, 0xD8, 0xAD, 0xD9, 0x8A, 0xD9, 0x85, 0xD8, - 0xAC, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, - 0x85, 0xD9, 0x85, 0xD8, 0xAE, 0xD8, 0xAC, 0xD9, - 0x85, 0xD8, 0xAE, 0xD9, 0x85, 0xD9, 0x85, 0xD8, - 0xAC, 0xD8, 0xAE, 0xD9, 0x87, 0xD9, 0x85, 0xD8, - 0xAC, 0xD9, 0x87, 0xD9, 0x85, 0xD9, 0x85, 0xD9, - 0x86, 0xD8, 0xAD, 0xD9, 0x85, 0xD9, 0x86, 0xD8, - 0xAD, 0xD9, 0x89, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, - 0x85, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, - 0x86, 0xD8, 0xAC, 0xD9, 0x89, 0xD9, 0x86, 0xD9, - 0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD9, 0x85, 0xD9, - 0x89, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0xD9, - 0x8A, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xA8, 0xD8, - 0xAE, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, - 0x8A, 0xD8, 0xAA, 0xD8, 0xAC, 0xD9, 0x89, 0xD8, - 0xAA, 0xD8, 0xAE, 0xD9, 0x8A, 0xD8, 0xAA, 0xD8, - 0xAE, 0xD9, 0x89, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, - 0x8A, 0xD8, 0xAA, 0xD9, 0x85, 0xD9, 0x89, 0xD8, - 0xAC, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xAC, 0xD8, - 0xAD, 0xD9, 0x89, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, - 0x89, 0xD8, 0xB3, 0xD8, 0xAE, 0xD9, 0x89, 0xD8, - 0xB5, 0xD8, 0xAD, 0xD9, 0x8A, 0xD8, 0xB4, 0xD8, - 0xAD, 0xD9, 0x8A, 0xD8, 0xB6, 0xD8, 0xAD, 0xD9, - 0x8A, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, - 0x84, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, - 0xAD, 0xD9, 0x8A, 0xD9, 0x8A, 0xD8, 0xAC, 0xD9, - 0x8A, 0xD9, 0x8A, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, - 0x85, 0xD9, 0x85, 0xD9, 0x8A, 0xD9, 0x82, 0xD9, - 0x85, 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAD, 0xD9, - 0x8A, 0xD9, 0x82, 0xD9, 0x85, 0xD8, 0xAD, 0xD9, - 0x84, 0xD8, 0xAD, 0xD9, 0x85, 0xD8, 0xB9, 0xD9, - 0x85, 0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9, - 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0xD9, - 0x85, 0xD8, 0xAE, 0xD9, 0x8A, 0xD9, 0x84, 0xD8, - 0xAC, 0xD9, 0x85, 0xD9, 0x83, 0xD9, 0x85, 0xD9, - 0x85, 0xD9, 0x84, 0xD8, 0xAC, 0xD9, 0x85, 0xD9, - 0x86, 0xD8, 0xAC, 0xD8, 0xAD, 0xD8, 0xAC, 0xD8, - 0xAD, 0xD9, 0x8A, 0xD8, 0xAD, 0xD8, 0xAC, 0xD9, - 0x8A, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x8A, 0xD9, - 0x81, 0xD9, 0x85, 0xD9, 0x8A, 0xD8, 0xA8, 0xD8, - 0xAD, 0xD9, 0x8A, 0xD9, 0x83, 0xD9, 0x85, 0xD9, - 0x85, 0xD8, 0xB9, 0xD8, 0xAC, 0xD9, 0x85, 0xD8, - 0xB5, 0xD9, 0x85, 0xD9, 0x85, 0xD8, 0xB3, 0xD8, - 0xAE, 0xD9, 0x8A, 0xD9, 0x86, 0xD8, 0xAC, 0xD9, - 0x8A, 0xD8, 0xB5, 0xD9, 0x84, 0xDB, 0x92, 0xD9, - 0x82, 0xD9, 0x84, 0xDB, 0x92, 0xD8, 0xA7, 0xD9, - 0x84, 0xD9, 0x84, 0xD9, 0x87, 0xD8, 0xA7, 0xD9, - 0x83, 0xD8, 0xA8, 0xD8, 0xB1, 0xD9, 0x85, 0xD8, - 0xAD, 0xD9, 0x85, 0xD8, 0xAF, 0xD8, 0xB5, 0xD9, - 0x84, 0xD8, 0xB9, 0xD9, 0x85, 0xD8, 0xB1, 0xD8, - 0xB3, 0xD9, 0x88, 0xD9, 0x84, 0xD8, 0xB9, 0xD9, - 0x84, 0xD9, 0x8A, 0xD9, 0x87, 0xD9, 0x88, 0xD8, - 0xB3, 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xB5, 0xD9, - 0x84, 0xD9, 0x89, 0xD8, 0xB5, 0xD9, 0x84, 0xD9, - 0x89, 0x20, 0xD8, 0xA7, 0xD9, 0x84, 0xD9, 0x84, - 0xD9, 0x87, 0x20, 0xD8, 0xB9, 0xD9, 0x84, 0xD9, - 0x8A, 0xD9, 0x87, 0x20, 0xD9, 0x88, 0xD8, 0xB3, - 0xD9, 0x84, 0xD9, 0x85, 0xD8, 0xAC, 0xD9, 0x84, - 0x20, 0xD8, 0xAC, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, - 0x84, 0xD9, 0x87, 0xD8, 0xB1, 0xDB, 0x8C, 0xD8, - 0xA7, 0xD9, 0x84, 0x2C, 0xE3, 0x80, 0x81, 0xE3, - 0x80, 0x82, 0x3A, 0x3B, 0x21, 0x3F, 0xE3, 0x80, - 0x96, 0xE3, 0x80, 0x97, 0x2E, 0x2E, 0x2E, 0x2E, - 0x2E, 0xE2, 0x80, 0x94, 0xE2, 0x80, 0x93, 0x5F, - 0x5F, 0x28, 0x29, 0x7B, 0x7D, 0xE3, 0x80, 0x94, - 0xE3, 0x80, 0x95, 0xE3, 0x80, 0x90, 0xE3, 0x80, - 0x91, 0xE3, 0x80, 0x8A, 0xE3, 0x80, 0x8B, 0xE3, - 0x80, 0x88, 0xE3, 0x80, 0x89, 0xE3, 0x80, 0x8C, - 0xE3, 0x80, 0x8D, 0xE3, 0x80, 0x8E, 0xE3, 0x80, - 0x8F, 0x5B, 0x5D, 0x20, 0xCC, 0x85, 0x20, 0xCC, - 0x85, 0x20, 0xCC, 0x85, 0x20, 0xCC, 0x85, 0x5F, - 0x5F, 0x5F, 0x2C, 0xE3, 0x80, 0x81, 0x2E, 0x3B, - 0x3A, 0x3F, 0x21, 0xE2, 0x80, 0x94, 0x28, 0x29, - 0x7B, 0x7D, 0xE3, 0x80, 0x94, 0xE3, 0x80, 0x95, - 0x23, 0x26, 0x2A, 0x2B, 0x2D, 0x3C, 0x3E, 0x3D, - 0x5C, 0x24, 0x25, 0x40, 0x20, 0xD9, 0x8B, 0xD9, - 0x80, 0xD9, 0x8B, 0x20, 0xD9, 0x8C, 0x20, 0xD9, - 0x8D, 0x20, 0xD9, 0x8E, 0xD9, 0x80, 0xD9, 0x8E, - 0x20, 0xD9, 0x8F, 0xD9, 0x80, 0xD9, 0x8F, 0x20, - 0xD9, 0x90, 0xD9, 0x80, 0xD9, 0x90, 0x20, 0xD9, - 0x91, 0xD9, 0x80, 0xD9, 0x91, 0x20, 0xD9, 0x92, - 0xD9, 0x80, 0xD9, 0x92, 0xD8, 0xA1, 0xD8, 0xA7, - 0xD9, 0x93, 0xD8, 0xA7, 0xD9, 0x93, 0xD8, 0xA7, - 0xD9, 0x94, 0xD8, 0xA7, 0xD9, 0x94, 0xD9, 0x88, - 0xD9, 0x94, 0xD9, 0x88, 0xD9, 0x94, 0xD8, 0xA7, - 0xD9, 0x95, 0xD8, 0xA7, 0xD9, 0x95, 0xD9, 0x8A, - 0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD9, 0x8A, - 0xD9, 0x94, 0xD9, 0x8A, 0xD9, 0x94, 0xD8, 0xA7, - 0xD8, 0xA7, 0xD8, 0xA8, 0xD8, 0xA8, 0xD8, 0xA8, - 0xD8, 0xA8, 0xD8, 0xA9, 0xD8, 0xA9, 0xD8, 0xAA, - 0xD8, 0xAA, 0xD8, 0xAA, 0xD8, 0xAA, 0xD8, 0xAB, - 0xD8, 0xAB, 0xD8, 0xAB, 0xD8, 0xAB, 0xD8, 0xAC, - 0xD8, 0xAC, 0xD8, 0xAC, 0xD8, 0xAC, 0xD8, 0xAD, - 0xD8, 0xAD, 0xD8, 0xAD, 0xD8, 0xAD, 0xD8, 0xAE, - 0xD8, 0xAE, 0xD8, 0xAE, 0xD8, 0xAE, 0xD8, 0xAF, - 0xD8, 0xAF, 0xD8, 0xB0, 0xD8, 0xB0, 0xD8, 0xB1, - 0xD8, 0xB1, 0xD8, 0xB2, 0xD8, 0xB2, 0xD8, 0xB3, - 0xD8, 0xB3, 0xD8, 0xB3, 0xD8, 0xB3, 0xD8, 0xB4, - 0xD8, 0xB4, 0xD8, 0xB4, 0xD8, 0xB4, 0xD8, 0xB5, - 0xD8, 0xB5, 0xD8, 0xB5, 0xD8, 0xB5, 0xD8, 0xB6, - 0xD8, 0xB6, 0xD8, 0xB6, 0xD8, 0xB6, 0xD8, 0xB7, - 0xD8, 0xB7, 0xD8, 0xB7, 0xD8, 0xB7, 0xD8, 0xB8, - 0xD8, 0xB8, 0xD8, 0xB8, 0xD8, 0xB8, 0xD8, 0xB9, - 0xD8, 0xB9, 0xD8, 0xB9, 0xD8, 0xB9, 0xD8, 0xBA, - 0xD8, 0xBA, 0xD8, 0xBA, 0xD8, 0xBA, 0xD9, 0x81, - 0xD9, 0x81, 0xD9, 0x81, 0xD9, 0x81, 0xD9, 0x82, - 0xD9, 0x82, 0xD9, 0x82, 0xD9, 0x82, 0xD9, 0x83, - 0xD9, 0x83, 0xD9, 0x83, 0xD9, 0x83, 0xD9, 0x84, - 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x84, 0xD9, 0x85, - 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x85, 0xD9, 0x86, - 0xD9, 0x86, 0xD9, 0x86, 0xD9, 0x86, 0xD9, 0x87, - 0xD9, 0x87, 0xD9, 0x87, 0xD9, 0x87, 0xD9, 0x88, - 0xD9, 0x88, 0xD9, 0x89, 0xD9, 0x89, 0xD9, 0x8A, - 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x8A, 0xD9, 0x84, - 0xD8, 0xA7, 0xD9, 0x93, 0xD9, 0x84, 0xD8, 0xA7, - 0xD9, 0x93, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, - 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x94, 0xD9, 0x84, - 0xD8, 0xA7, 0xD9, 0x95, 0xD9, 0x84, 0xD8, 0xA7, - 0xD9, 0x95, 0xD9, 0x84, 0xD8, 0xA7, 0xD9, 0x84, - 0xD8, 0xA7, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, - 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, - 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, - 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, - 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, - 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, - 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, - 0x57, 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, - 0x5F, 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, - 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, - 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, - 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, - 0xE2, 0xA6, 0x85, 0xE2, 0xA6, 0x86, 0xE3, 0x80, - 0x82, 0xE3, 0x80, 0x8C, 0xE3, 0x80, 0x8D, 0xE3, - 0x80, 0x81, 0xE3, 0x83, 0xBB, 0xE3, 0x83, 0xB2, - 0xE3, 0x82, 0xA1, 0xE3, 0x82, 0xA3, 0xE3, 0x82, - 0xA5, 0xE3, 0x82, 0xA7, 0xE3, 0x82, 0xA9, 0xE3, - 0x83, 0xA3, 0xE3, 0x83, 0xA5, 0xE3, 0x83, 0xA7, - 0xE3, 0x83, 0x83, 0xE3, 0x83, 0xBC, 0xE3, 0x82, - 0xA2, 0xE3, 0x82, 0xA4, 0xE3, 0x82, 0xA6, 0xE3, - 0x82, 0xA8, 0xE3, 0x82, 0xAA, 0xE3, 0x82, 0xAB, - 0xE3, 0x82, 0xAD, 0xE3, 0x82, 0xAF, 0xE3, 0x82, - 0xB1, 0xE3, 0x82, 0xB3, 0xE3, 0x82, 0xB5, 0xE3, - 0x82, 0xB7, 0xE3, 0x82, 0xB9, 0xE3, 0x82, 0xBB, - 0xE3, 0x82, 0xBD, 0xE3, 0x82, 0xBF, 0xE3, 0x83, - 0x81, 0xE3, 0x83, 0x84, 0xE3, 0x83, 0x86, 0xE3, - 0x83, 0x88, 0xE3, 0x83, 0x8A, 0xE3, 0x83, 0x8B, - 0xE3, 0x83, 0x8C, 0xE3, 0x83, 0x8D, 0xE3, 0x83, - 0x8E, 0xE3, 0x83, 0x8F, 0xE3, 0x83, 0x92, 0xE3, - 0x83, 0x95, 0xE3, 0x83, 0x98, 0xE3, 0x83, 0x9B, - 0xE3, 0x83, 0x9E, 0xE3, 0x83, 0x9F, 0xE3, 0x83, - 0xA0, 0xE3, 0x83, 0xA1, 0xE3, 0x83, 0xA2, 0xE3, - 0x83, 0xA4, 0xE3, 0x83, 0xA6, 0xE3, 0x83, 0xA8, - 0xE3, 0x83, 0xA9, 0xE3, 0x83, 0xAA, 0xE3, 0x83, - 0xAB, 0xE3, 0x83, 0xAC, 0xE3, 0x83, 0xAD, 0xE3, - 0x83, 0xAF, 0xE3, 0x83, 0xB3, 0xE3, 0x82, 0x99, - 0xE3, 0x82, 0x9A, 0xE1, 0x85, 0xA0, 0xE1, 0x84, - 0x80, 0xE1, 0x84, 0x81, 0xE1, 0x86, 0xAA, 0xE1, - 0x84, 0x82, 0xE1, 0x86, 0xAC, 0xE1, 0x86, 0xAD, - 0xE1, 0x84, 0x83, 0xE1, 0x84, 0x84, 0xE1, 0x84, - 0x85, 0xE1, 0x86, 0xB0, 0xE1, 0x86, 0xB1, 0xE1, - 0x86, 0xB2, 0xE1, 0x86, 0xB3, 0xE1, 0x86, 0xB4, - 0xE1, 0x86, 0xB5, 0xE1, 0x84, 0x9A, 0xE1, 0x84, - 0x86, 0xE1, 0x84, 0x87, 0xE1, 0x84, 0x88, 0xE1, - 0x84, 0xA1, 0xE1, 0x84, 0x89, 0xE1, 0x84, 0x8A, - 0xE1, 0x84, 0x8B, 0xE1, 0x84, 0x8C, 0xE1, 0x84, - 0x8D, 0xE1, 0x84, 0x8E, 0xE1, 0x84, 0x8F, 0xE1, - 0x84, 0x90, 0xE1, 0x84, 0x91, 0xE1, 0x84, 0x92, - 0xE1, 0x85, 0xA1, 0xE1, 0x85, 0xA2, 0xE1, 0x85, - 0xA3, 0xE1, 0x85, 0xA4, 0xE1, 0x85, 0xA5, 0xE1, - 0x85, 0xA6, 0xE1, 0x85, 0xA7, 0xE1, 0x85, 0xA8, - 0xE1, 0x85, 0xA9, 0xE1, 0x85, 0xAA, 0xE1, 0x85, - 0xAB, 0xE1, 0x85, 0xAC, 0xE1, 0x85, 0xAD, 0xE1, - 0x85, 0xAE, 0xE1, 0x85, 0xAF, 0xE1, 0x85, 0xB0, - 0xE1, 0x85, 0xB1, 0xE1, 0x85, 0xB2, 0xE1, 0x85, - 0xB3, 0xE1, 0x85, 0xB4, 0xE1, 0x85, 0xB5, 0xC2, - 0xA2, 0xC2, 0xA3, 0xC2, 0xAC, 0x20, 0xCC, 0x84, - 0xC2, 0xA6, 0xC2, 0xA5, 0xE2, 0x82, 0xA9, 0xE2, - 0x94, 0x82, 0xE2, 0x86, 0x90, 0xE2, 0x86, 0x91, - 0xE2, 0x86, 0x92, 0xE2, 0x86, 0x93, 0xE2, 0x96, - 0xA0, 0xE2, 0x97, 0x8B, 0xF6, 0xF0, 0x9D, 0x85, - 0x97, 0xF0, 0x9D, 0x85, 0xA5, 0xF6, 0xF0, 0x9D, - 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF6, 0xF0, - 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x85, 0x98, - 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, - 0xF6, 0xF0, 0x9D, 0x85, 0x98, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xB0, 0xF6, 0xF0, 0x9D, - 0x85, 0x98, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, - 0x85, 0xB1, 0xF6, 0xF0, 0x9D, 0x85, 0x98, 0xF0, - 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xB2, 0xF6, - 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, 0x85, 0xA5, - 0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, - 0xA5, 0xF6, 0xF0, 0x9D, 0x86, 0xB9, 0xF0, 0x9D, - 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAE, 0xF6, 0xF0, - 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, 0xA5, 0xF0, - 0x9D, 0x85, 0xAE, 0xF6, 0xF0, 0x9D, 0x86, 0xB9, - 0xF0, 0x9D, 0x85, 0xA5, 0xF0, 0x9D, 0x85, 0xAF, - 0xF6, 0xF0, 0x9D, 0x86, 0xBA, 0xF0, 0x9D, 0x85, - 0xA5, 0xF0, 0x9D, 0x85, 0xAF, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, - 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, - 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, - 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43, 0x44, - 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, - 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, - 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, 0x62, - 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, - 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, - 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, - 0x41, 0x43, 0x44, 0x47, 0x4A, 0x4B, 0x4E, 0x4F, - 0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, - 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x66, 0x68, - 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44, - 0x45, 0x46, 0x47, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, - 0x4F, 0x50, 0x51, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, - 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, - 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, - 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x44, 0x45, - 0x46, 0x47, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4F, - 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, - 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, - 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, - 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, - 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, - 0x58, 0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, - 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, - 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, - 0x76, 0x77, 0x78, 0x79, 0x7A, 0x41, 0x42, 0x43, - 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, - 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, - 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x61, - 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, - 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, - 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, - 0x7A, 0xC4, 0xB1, 0xC8, 0xB7, 0xCE, 0x91, 0xCE, - 0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, - 0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, - 0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, - 0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, - 0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, - 0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2, - 0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3, - 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7, - 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB, - 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF, - 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83, - 0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, - 0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE, - 0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF, - 0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE, - 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, - 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, - 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, - 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, - 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, - 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, - 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, - 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, - 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, - 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, - 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, - 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, - 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, - 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, - 0x80, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE, - 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE, - 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE, - 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE, - 0xA0, 0xCE, 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE, - 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE, - 0xA8, 0xCE, 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1, - 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5, - 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9, - 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD, - 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81, - 0xCF, 0x82, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, - 0xCF, 0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, - 0xE2, 0x88, 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, - 0xBA, 0xCF, 0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE, - 0x91, 0xCE, 0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, - 0x95, 0xCE, 0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, - 0x99, 0xCE, 0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, - 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, - 0xA1, 0xCE, 0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, - 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, - 0xA9, 0xE2, 0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, - 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, - 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, - 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, - 0xCE, 0xBF, 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, - 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, - 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, - 0x82, 0xCE, 0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, - 0x86, 0xCF, 0x81, 0xCF, 0x80, 0xCE, 0x91, 0xCE, - 0x92, 0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, - 0x96, 0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, - 0x9A, 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, - 0x9E, 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, - 0x98, 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, - 0xA6, 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xE2, - 0x88, 0x87, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, 0xB3, - 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, 0xB7, - 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, 0xBB, - 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, 0xBF, - 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x82, 0xCF, 0x83, - 0xCF, 0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, - 0xCF, 0x88, 0xCF, 0x89, 0xE2, 0x88, 0x82, 0xCE, - 0xB5, 0xCE, 0xB8, 0xCE, 0xBA, 0xCF, 0x86, 0xCF, - 0x81, 0xCF, 0x80, 0xCF, 0x9C, 0xCF, 0x9D, 0x30, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, - 0x37, 0x38, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, - 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x31, 0x32, - 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, - 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, - 0x39, 0xF6, 0xE4, 0xB8, 0xBD, 0xF6, 0xE4, 0xB8, - 0xB8, 0xF6, 0xE4, 0xB9, 0x81, 0xF6, 0xF0, 0xA0, - 0x84, 0xA2, 0xF6, 0xE4, 0xBD, 0xA0, 0xF6, 0xE4, - 0xBE, 0xAE, 0xF6, 0xE4, 0xBE, 0xBB, 0xF6, 0xE5, - 0x80, 0x82, 0xF6, 0xE5, 0x81, 0xBA, 0xF6, 0xE5, - 0x82, 0x99, 0xF6, 0xE5, 0x83, 0xA7, 0xF6, 0xE5, - 0x83, 0x8F, 0xF6, 0xE3, 0x92, 0x9E, 0xF6, 0xF0, - 0xA0, 0x98, 0xBA, 0xF6, 0xE5, 0x85, 0x8D, 0xF6, - 0xE5, 0x85, 0x94, 0xF6, 0xE5, 0x85, 0xA4, 0xF6, - 0xE5, 0x85, 0xB7, 0xF6, 0xF0, 0xA0, 0x94, 0x9C, - 0xF6, 0xE3, 0x92, 0xB9, 0xF6, 0xE5, 0x85, 0xA7, - 0xF6, 0xE5, 0x86, 0x8D, 0xF6, 0xF0, 0xA0, 0x95, - 0x8B, 0xF6, 0xE5, 0x86, 0x97, 0xF6, 0xE5, 0x86, - 0xA4, 0xF6, 0xE4, 0xBB, 0x8C, 0xF6, 0xE5, 0x86, - 0xAC, 0xF6, 0xE5, 0x86, 0xB5, 0xF6, 0xF0, 0xA9, - 0x87, 0x9F, 0xF6, 0xE5, 0x87, 0xB5, 0xF6, 0xE5, - 0x88, 0x83, 0xF6, 0xE3, 0x93, 0x9F, 0xF6, 0xE5, - 0x88, 0xBB, 0xF6, 0xE5, 0x89, 0x86, 0xF6, 0xE5, - 0x89, 0xB2, 0xF6, 0xE5, 0x89, 0xB7, 0xF6, 0xE3, - 0x94, 0x95, 0xF6, 0xE5, 0x8B, 0x87, 0xF6, 0xE5, - 0x8B, 0x89, 0xF6, 0xE5, 0x8B, 0xA4, 0xF6, 0xE5, - 0x8B, 0xBA, 0xF6, 0xE5, 0x8C, 0x85, 0xF6, 0xE5, - 0x8C, 0x86, 0xF6, 0xE5, 0x8C, 0x97, 0xF6, 0xE5, - 0x8D, 0x89, 0xF6, 0xE5, 0x8D, 0x91, 0xF6, 0xE5, - 0x8D, 0x9A, 0xF6, 0xE5, 0x8D, 0xB3, 0xF6, 0xE5, - 0x8D, 0xBD, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xE5, - 0x8D, 0xBF, 0xF6, 0xE5, 0x8D, 0xBF, 0xF6, 0xF0, - 0xA0, 0xA8, 0xAC, 0xF6, 0xE7, 0x81, 0xB0, 0xF6, - 0xE5, 0x8F, 0x8A, 0xF6, 0xE5, 0x8F, 0x9F, 0xF6, - 0xF0, 0xA0, 0xAD, 0xA3, 0xF6, 0xE5, 0x8F, 0xAB, - 0xF6, 0xE5, 0x8F, 0xB1, 0xF6, 0xE5, 0x90, 0x86, - 0xF6, 0xE5, 0x92, 0x9E, 0xF6, 0xE5, 0x90, 0xB8, - 0xF6, 0xE5, 0x91, 0x88, 0xF6, 0xE5, 0x91, 0xA8, - 0xF6, 0xE5, 0x92, 0xA2, 0xF6, 0xE5, 0x93, 0xB6, - 0xF6, 0xE5, 0x94, 0x90, 0xF6, 0xE5, 0x95, 0x93, - 0xF6, 0xE5, 0x95, 0xA3, 0xF6, 0xE5, 0x96, 0x84, - 0xF6, 0xE5, 0x96, 0x84, 0xF6, 0xE5, 0x96, 0x99, - 0xF6, 0xE5, 0x96, 0xAB, 0xF6, 0xE5, 0x96, 0xB3, - 0xF6, 0xE5, 0x97, 0x82, 0xF6, 0xE5, 0x9C, 0x96, - 0xF6, 0xE5, 0x98, 0x86, 0xF6, 0xE5, 0x9C, 0x97, - 0xF6, 0xE5, 0x99, 0x91, 0xF6, 0xE5, 0x99, 0xB4, - 0xF6, 0xE5, 0x88, 0x87, 0xF6, 0xE5, 0xA3, 0xAE, - 0xF6, 0xE5, 0x9F, 0x8E, 0xF6, 0xE5, 0x9F, 0xB4, - 0xF6, 0xE5, 0xA0, 0x8D, 0xF6, 0xE5, 0x9E, 0x8B, - 0xF6, 0xE5, 0xA0, 0xB2, 0xF6, 0xE5, 0xA0, 0xB1, - 0xF6, 0xE5, 0xA2, 0xAC, 0xF6, 0xF0, 0xA1, 0x93, - 0xA4, 0xF6, 0xE5, 0xA3, 0xB2, 0xF6, 0xE5, 0xA3, - 0xB7, 0xF6, 0xE5, 0xA4, 0x86, 0xF6, 0xE5, 0xA4, - 0x9A, 0xF6, 0xE5, 0xA4, 0xA2, 0xF6, 0xE5, 0xA5, - 0xA2, 0xF6, 0xF0, 0xA1, 0x9A, 0xA8, 0xF6, 0xF0, - 0xA1, 0x9B, 0xAA, 0xF6, 0xE5, 0xA7, 0xAC, 0xF6, - 0xE5, 0xA8, 0x9B, 0xF6, 0xE5, 0xA8, 0xA7, 0xF6, - 0xE5, 0xA7, 0x98, 0xF6, 0xE5, 0xA9, 0xA6, 0xF6, - 0xE3, 0x9B, 0xAE, 0xF6, 0xE3, 0x9B, 0xBC, 0xF6, - 0xE5, 0xAC, 0x88, 0xF6, 0xE5, 0xAC, 0xBE, 0xF6, - 0xE5, 0xAC, 0xBE, 0xF6, 0xF0, 0xA1, 0xA7, 0x88, - 0xF6, 0xE5, 0xAF, 0x83, 0xF6, 0xE5, 0xAF, 0x98, - 0xF6, 0xE5, 0xAF, 0xA7, 0xF6, 0xE5, 0xAF, 0xB3, - 0xF6, 0xF0, 0xA1, 0xAC, 0x98, 0xF6, 0xE5, 0xAF, - 0xBF, 0xF6, 0xE5, 0xB0, 0x86, 0xF6, 0xE5, 0xBD, - 0x93, 0xF6, 0xE5, 0xB0, 0xA2, 0xF6, 0xE3, 0x9E, - 0x81, 0xF6, 0xE5, 0xB1, 0xA0, 0xF6, 0xE5, 0xB1, - 0xAE, 0xF6, 0xE5, 0xB3, 0x80, 0xF6, 0xE5, 0xB2, - 0x8D, 0xF6, 0xF0, 0xA1, 0xB7, 0xA4, 0xF6, 0xE5, - 0xB5, 0x83, 0xF6, 0xF0, 0xA1, 0xB7, 0xA6, 0xF6, - 0xE5, 0xB5, 0xAE, 0xF6, 0xE5, 0xB5, 0xAB, 0xF6, - 0xE5, 0xB5, 0xBC, 0xF6, 0xE5, 0xB7, 0xA1, 0xF6, - 0xE5, 0xB7, 0xA2, 0xF6, 0xE3, 0xA0, 0xAF, 0xF6, - 0xE5, 0xB7, 0xBD, 0xF6, 0xE5, 0xB8, 0xA8, 0xF6, - 0xE5, 0xB8, 0xBD, 0xF6, 0xE5, 0xB9, 0xA9, 0xF6, - 0xE3, 0xA1, 0xA2, 0xF6, 0xF0, 0xA2, 0x86, 0x83, - 0xF6, 0xE3, 0xA1, 0xBC, 0xF6, 0xE5, 0xBA, 0xB0, - 0xF6, 0xE5, 0xBA, 0xB3, 0xF6, 0xE5, 0xBA, 0xB6, - 0xF6, 0xE5, 0xBB, 0x8A, 0xF6, 0xF0, 0xAA, 0x8E, - 0x92, 0xF6, 0xE5, 0xBB, 0xBE, 0xF6, 0xF0, 0xA2, - 0x8C, 0xB1, 0xF6, 0xF0, 0xA2, 0x8C, 0xB1, 0xF6, - 0xE8, 0x88, 0x81, 0xF6, 0xE5, 0xBC, 0xA2, 0xF6, - 0xE5, 0xBC, 0xA2, 0xF6, 0xE3, 0xA3, 0x87, 0xF6, - 0xF0, 0xA3, 0x8A, 0xB8, 0xF6, 0xF0, 0xA6, 0x87, - 0x9A, 0xF6, 0xE5, 0xBD, 0xA2, 0xF6, 0xE5, 0xBD, - 0xAB, 0xF6, 0xE3, 0xA3, 0xA3, 0xF6, 0xE5, 0xBE, - 0x9A, 0xF6, 0xE5, 0xBF, 0x8D, 0xF6, 0xE5, 0xBF, - 0x97, 0xF6, 0xE5, 0xBF, 0xB9, 0xF6, 0xE6, 0x82, - 0x81, 0xF6, 0xE3, 0xA4, 0xBA, 0xF6, 0xE3, 0xA4, - 0x9C, 0xF6, 0xE6, 0x82, 0x94, 0xF6, 0xF0, 0xA2, - 0x9B, 0x94, 0xF6, 0xE6, 0x83, 0x87, 0xF6, 0xE6, - 0x85, 0x88, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6, - 0x85, 0x8E, 0xF6, 0xE6, 0x85, 0x8C, 0xF6, 0xE6, - 0x85, 0xBA, 0xF6, 0xE6, 0x86, 0x8E, 0xF6, 0xE6, - 0x86, 0xB2, 0xF6, 0xE6, 0x86, 0xA4, 0xF6, 0xE6, - 0x86, 0xAF, 0xF6, 0xE6, 0x87, 0x9E, 0xF6, 0xE6, - 0x87, 0xB2, 0xF6, 0xE6, 0x87, 0xB6, 0xF6, 0xE6, - 0x88, 0x90, 0xF6, 0xE6, 0x88, 0x9B, 0xF6, 0xE6, - 0x89, 0x9D, 0xF6, 0xE6, 0x8A, 0xB1, 0xF6, 0xE6, - 0x8B, 0x94, 0xF6, 0xE6, 0x8D, 0x90, 0xF6, 0xF0, - 0xA2, 0xAC, 0x8C, 0xF6, 0xE6, 0x8C, 0xBD, 0xF6, - 0xE6, 0x8B, 0xBC, 0xF6, 0xE6, 0x8D, 0xA8, 0xF6, - 0xE6, 0x8E, 0x83, 0xF6, 0xE6, 0x8F, 0xA4, 0xF6, - 0xF0, 0xA2, 0xAF, 0xB1, 0xF6, 0xE6, 0x90, 0xA2, - 0xF6, 0xE6, 0x8F, 0x85, 0xF6, 0xE6, 0x8E, 0xA9, - 0xF6, 0xE3, 0xA8, 0xAE, 0xF6, 0xE6, 0x91, 0xA9, - 0xF6, 0xE6, 0x91, 0xBE, 0xF6, 0xE6, 0x92, 0x9D, - 0xF6, 0xE6, 0x91, 0xB7, 0xF6, 0xE3, 0xA9, 0xAC, - 0xF6, 0xE6, 0x95, 0x8F, 0xF6, 0xE6, 0x95, 0xAC, - 0xF6, 0xF0, 0xA3, 0x80, 0x8A, 0xF6, 0xE6, 0x97, - 0xA3, 0xF6, 0xE6, 0x9B, 0xB8, 0xF6, 0xE6, 0x99, - 0x89, 0xF6, 0xE3, 0xAC, 0x99, 0xF6, 0xE6, 0x9A, - 0x91, 0xF6, 0xE3, 0xAC, 0x88, 0xF6, 0xE3, 0xAB, - 0xA4, 0xF6, 0xE5, 0x86, 0x92, 0xF6, 0xE5, 0x86, - 0x95, 0xF6, 0xE6, 0x9C, 0x80, 0xF6, 0xE6, 0x9A, - 0x9C, 0xF6, 0xE8, 0x82, 0xAD, 0xF6, 0xE4, 0x8F, - 0x99, 0xF6, 0xE6, 0x9C, 0x97, 0xF6, 0xE6, 0x9C, - 0x9B, 0xF6, 0xE6, 0x9C, 0xA1, 0xF6, 0xE6, 0x9D, - 0x9E, 0xF6, 0xE6, 0x9D, 0x93, 0xF6, 0xF0, 0xA3, - 0x8F, 0x83, 0xF6, 0xE3, 0xAD, 0x89, 0xF6, 0xE6, - 0x9F, 0xBA, 0xF6, 0xE6, 0x9E, 0x85, 0xF6, 0xE6, - 0xA1, 0x92, 0xF6, 0xE6, 0xA2, 0x85, 0xF6, 0xF0, - 0xA3, 0x91, 0xAD, 0xF6, 0xE6, 0xA2, 0x8E, 0xF6, - 0xE6, 0xA0, 0x9F, 0xF6, 0xE6, 0xA4, 0x94, 0xF6, - 0xE3, 0xAE, 0x9D, 0xF6, 0xE6, 0xA5, 0x82, 0xF6, - 0xE6, 0xA6, 0xA3, 0xF6, 0xE6, 0xA7, 0xAA, 0xF6, - 0xE6, 0xAA, 0xA8, 0xF6, 0xF0, 0xA3, 0x9A, 0xA3, - 0xF6, 0xE6, 0xAB, 0x9B, 0xF6, 0xE3, 0xB0, 0x98, - 0xF6, 0xE6, 0xAC, 0xA1, 0xF6, 0xF0, 0xA3, 0xA2, - 0xA7, 0xF6, 0xE6, 0xAD, 0x94, 0xF6, 0xE3, 0xB1, - 0x8E, 0xF6, 0xE6, 0xAD, 0xB2, 0xF6, 0xE6, 0xAE, - 0x9F, 0xF6, 0xE6, 0xAE, 0xBA, 0xF6, 0xE6, 0xAE, - 0xBB, 0xF6, 0xF0, 0xA3, 0xAA, 0x8D, 0xF6, 0xF0, - 0xA1, 0xB4, 0x8B, 0xF6, 0xF0, 0xA3, 0xAB, 0xBA, - 0xF6, 0xE6, 0xB1, 0x8E, 0xF6, 0xF0, 0xA3, 0xB2, - 0xBC, 0xF6, 0xE6, 0xB2, 0xBF, 0xF6, 0xE6, 0xB3, - 0x8D, 0xF6, 0xE6, 0xB1, 0xA7, 0xF6, 0xE6, 0xB4, - 0x96, 0xF6, 0xE6, 0xB4, 0xBE, 0xF6, 0xE6, 0xB5, - 0xB7, 0xF6, 0xE6, 0xB5, 0x81, 0xF6, 0xE6, 0xB5, - 0xA9, 0xF6, 0xE6, 0xB5, 0xB8, 0xF6, 0xE6, 0xB6, - 0x85, 0xF6, 0xF0, 0xA3, 0xB4, 0x9E, 0xF6, 0xE6, - 0xB4, 0xB4, 0xF6, 0xE6, 0xB8, 0xAF, 0xF6, 0xE6, - 0xB9, 0xAE, 0xF6, 0xE3, 0xB4, 0xB3, 0xF6, 0xE6, - 0xBB, 0x8B, 0xF6, 0xE6, 0xBB, 0x87, 0xF6, 0xF0, - 0xA3, 0xBB, 0x91, 0xF6, 0xE6, 0xB7, 0xB9, 0xF6, - 0xE6, 0xBD, 0xAE, 0xF6, 0xF0, 0xA3, 0xBD, 0x9E, - 0xF6, 0xF0, 0xA3, 0xBE, 0x8E, 0xF6, 0xE6, 0xBF, - 0x86, 0xF6, 0xE7, 0x80, 0xB9, 0xF6, 0xE7, 0x80, - 0x9E, 0xF6, 0xE7, 0x80, 0x9B, 0xF6, 0xE3, 0xB6, - 0x96, 0xF6, 0xE7, 0x81, 0x8A, 0xF6, 0xE7, 0x81, - 0xBD, 0xF6, 0xE7, 0x81, 0xB7, 0xF6, 0xE7, 0x82, - 0xAD, 0xF6, 0xF0, 0xA0, 0x94, 0xA5, 0xF6, 0xE7, - 0x85, 0x85, 0xF6, 0xF0, 0xA4, 0x89, 0xA3, 0xF6, - 0xE7, 0x86, 0x9C, 0xF6, 0xF0, 0xA4, 0x8E, 0xAB, - 0xF6, 0xE7, 0x88, 0xA8, 0xF6, 0xE7, 0x88, 0xB5, - 0xF6, 0xE7, 0x89, 0x90, 0xF6, 0xF0, 0xA4, 0x98, - 0x88, 0xF6, 0xE7, 0x8A, 0x80, 0xF6, 0xE7, 0x8A, - 0x95, 0xF6, 0xF0, 0xA4, 0x9C, 0xB5, 0xF6, 0xF0, - 0xA4, 0xA0, 0x94, 0xF6, 0xE7, 0x8D, 0xBA, 0xF6, - 0xE7, 0x8E, 0x8B, 0xF6, 0xE3, 0xBA, 0xAC, 0xF6, - 0xE7, 0x8E, 0xA5, 0xF6, 0xE3, 0xBA, 0xB8, 0xF6, - 0xE3, 0xBA, 0xB8, 0xF6, 0xE7, 0x91, 0x87, 0xF6, - 0xE7, 0x91, 0x9C, 0xF6, 0xE7, 0x91, 0xB1, 0xF6, - 0xE7, 0x92, 0x85, 0xF6, 0xE7, 0x93, 0x8A, 0xF6, - 0xE3, 0xBC, 0x9B, 0xF6, 0xE7, 0x94, 0xA4, 0xF6, - 0xF0, 0xA4, 0xB0, 0xB6, 0xF6, 0xE7, 0x94, 0xBE, - 0xF6, 0xF0, 0xA4, 0xB2, 0x92, 0xF6, 0xE7, 0x95, - 0xB0, 0xF6, 0xF0, 0xA2, 0x86, 0x9F, 0xF6, 0xE7, - 0x98, 0x90, 0xF6, 0xF0, 0xA4, 0xBE, 0xA1, 0xF6, - 0xF0, 0xA4, 0xBE, 0xB8, 0xF6, 0xF0, 0xA5, 0x81, - 0x84, 0xF6, 0xE3, 0xBF, 0xBC, 0xF6, 0xE4, 0x80, - 0x88, 0xF6, 0xE7, 0x9B, 0xB4, 0xF6, 0xF0, 0xA5, - 0x83, 0xB3, 0xF6, 0xF0, 0xA5, 0x83, 0xB2, 0xF6, - 0xF0, 0xA5, 0x84, 0x99, 0xF6, 0xF0, 0xA5, 0x84, - 0xB3, 0xF6, 0xE7, 0x9C, 0x9E, 0xF6, 0xE7, 0x9C, - 0x9F, 0xF6, 0xE7, 0x9C, 0x9F, 0xF6, 0xE7, 0x9D, - 0x8A, 0xF6, 0xE4, 0x80, 0xB9, 0xF6, 0xE7, 0x9E, - 0x8B, 0xF6, 0xE4, 0x81, 0x86, 0xF6, 0xE4, 0x82, - 0x96, 0xF6, 0xF0, 0xA5, 0x90, 0x9D, 0xF6, 0xE7, - 0xA1, 0x8E, 0xF6, 0xE7, 0xA2, 0x8C, 0xF6, 0xE7, - 0xA3, 0x8C, 0xF6, 0xE4, 0x83, 0xA3, 0xF6, 0xF0, - 0xA5, 0x98, 0xA6, 0xF6, 0xE7, 0xA5, 0x96, 0xF6, - 0xF0, 0xA5, 0x9A, 0x9A, 0xF6, 0xF0, 0xA5, 0x9B, - 0x85, 0xF6, 0xE7, 0xA6, 0x8F, 0xF6, 0xE7, 0xA7, - 0xAB, 0xF6, 0xE4, 0x84, 0xAF, 0xF6, 0xE7, 0xA9, - 0x80, 0xF6, 0xE7, 0xA9, 0x8A, 0xF6, 0xE7, 0xA9, - 0x8F, 0xF6, 0xF0, 0xA5, 0xA5, 0xBC, 0xF6, 0xF0, - 0xA5, 0xAA, 0xA7, 0xF6, 0xF0, 0xA5, 0xAA, 0xA7, - 0xF6, 0xE7, 0xAB, 0xAE, 0xF6, 0xE4, 0x88, 0x82, - 0xF6, 0xF0, 0xA5, 0xAE, 0xAB, 0xF6, 0xE7, 0xAF, - 0x86, 0xF6, 0xE7, 0xAF, 0x89, 0xF6, 0xE4, 0x88, - 0xA7, 0xF6, 0xF0, 0xA5, 0xB2, 0x80, 0xF6, 0xE7, - 0xB3, 0x92, 0xF6, 0xE4, 0x8A, 0xA0, 0xF6, 0xE7, - 0xB3, 0xA8, 0xF6, 0xE7, 0xB3, 0xA3, 0xF6, 0xE7, - 0xB4, 0x80, 0xF6, 0xF0, 0xA5, 0xBE, 0x86, 0xF6, - 0xE7, 0xB5, 0xA3, 0xF6, 0xE4, 0x8C, 0x81, 0xF6, - 0xE7, 0xB7, 0x87, 0xF6, 0xE7, 0xB8, 0x82, 0xF6, - 0xE7, 0xB9, 0x85, 0xF6, 0xE4, 0x8C, 0xB4, 0xF6, - 0xF0, 0xA6, 0x88, 0xA8, 0xF6, 0xF0, 0xA6, 0x89, - 0x87, 0xF6, 0xE4, 0x8D, 0x99, 0xF6, 0xF0, 0xA6, - 0x8B, 0x99, 0xF6, 0xE7, 0xBD, 0xBA, 0xF6, 0xF0, - 0xA6, 0x8C, 0xBE, 0xF6, 0xE7, 0xBE, 0x95, 0xF6, - 0xE7, 0xBF, 0xBA, 0xF6, 0xE8, 0x80, 0x85, 0xF6, - 0xF0, 0xA6, 0x93, 0x9A, 0xF6, 0xF0, 0xA6, 0x94, - 0xA3, 0xF6, 0xE8, 0x81, 0xA0, 0xF6, 0xF0, 0xA6, - 0x96, 0xA8, 0xF6, 0xE8, 0x81, 0xB0, 0xF6, 0xF0, - 0xA3, 0x8D, 0x9F, 0xF6, 0xE4, 0x8F, 0x95, 0xF6, - 0xE8, 0x82, 0xB2, 0xF6, 0xE8, 0x84, 0x83, 0xF6, - 0xE4, 0x90, 0x8B, 0xF6, 0xE8, 0x84, 0xBE, 0xF6, - 0xE5, 0xAA, 0xB5, 0xF6, 0xF0, 0xA6, 0x9E, 0xA7, - 0xF6, 0xF0, 0xA6, 0x9E, 0xB5, 0xF6, 0xF0, 0xA3, - 0x8E, 0x93, 0xF6, 0xF0, 0xA3, 0x8E, 0x9C, 0xF6, - 0xE8, 0x88, 0x81, 0xF6, 0xE8, 0x88, 0x84, 0xF6, - 0xE8, 0xBE, 0x9E, 0xF6, 0xE4, 0x91, 0xAB, 0xF6, - 0xE8, 0x8A, 0x91, 0xF6, 0xE8, 0x8A, 0x8B, 0xF6, - 0xE8, 0x8A, 0x9D, 0xF6, 0xE5, 0x8A, 0xB3, 0xF6, - 0xE8, 0x8A, 0xB1, 0xF6, 0xE8, 0x8A, 0xB3, 0xF6, - 0xE8, 0x8A, 0xBD, 0xF6, 0xE8, 0x8B, 0xA6, 0xF6, - 0xF0, 0xA6, 0xAC, 0xBC, 0xF6, 0xE8, 0x8B, 0xA5, - 0xF6, 0xE8, 0x8C, 0x9D, 0xF6, 0xE8, 0x8D, 0xA3, - 0xF6, 0xE8, 0x8E, 0xAD, 0xF6, 0xE8, 0x8C, 0xA3, - 0xF6, 0xE8, 0x8E, 0xBD, 0xF6, 0xE8, 0x8F, 0xA7, - 0xF6, 0xE8, 0x91, 0x97, 0xF6, 0xE8, 0x8D, 0x93, - 0xF6, 0xE8, 0x8F, 0x8A, 0xF6, 0xE8, 0x8F, 0x8C, - 0xF6, 0xE8, 0x8F, 0x9C, 0xF6, 0xF0, 0xA6, 0xB0, - 0xB6, 0xF6, 0xF0, 0xA6, 0xB5, 0xAB, 0xF6, 0xF0, - 0xA6, 0xB3, 0x95, 0xF6, 0xE4, 0x94, 0xAB, 0xF6, - 0xE8, 0x93, 0xB1, 0xF6, 0xE8, 0x93, 0xB3, 0xF6, - 0xE8, 0x94, 0x96, 0xF6, 0xF0, 0xA7, 0x8F, 0x8A, - 0xF6, 0xE8, 0x95, 0xA4, 0xF6, 0xF0, 0xA6, 0xBC, - 0xAC, 0xF6, 0xE4, 0x95, 0x9D, 0xF6, 0xE4, 0x95, - 0xA1, 0xF6, 0xF0, 0xA6, 0xBE, 0xB1, 0xF6, 0xF0, - 0xA7, 0x83, 0x92, 0xF6, 0xE4, 0x95, 0xAB, 0xF6, - 0xE8, 0x99, 0x90, 0xF6, 0xE8, 0x99, 0x9C, 0xF6, - 0xE8, 0x99, 0xA7, 0xF6, 0xE8, 0x99, 0xA9, 0xF6, - 0xE8, 0x9A, 0xA9, 0xF6, 0xE8, 0x9A, 0x88, 0xF6, - 0xE8, 0x9C, 0x8E, 0xF6, 0xE8, 0x9B, 0xA2, 0xF6, - 0xE8, 0x9D, 0xB9, 0xF6, 0xE8, 0x9C, 0xA8, 0xF6, - 0xE8, 0x9D, 0xAB, 0xF6, 0xE8, 0x9E, 0x86, 0xF6, - 0xE4, 0x97, 0x97, 0xF6, 0xE8, 0x9F, 0xA1, 0xF6, - 0xE8, 0xA0, 0x81, 0xF6, 0xE4, 0x97, 0xB9, 0xF6, - 0xE8, 0xA1, 0xA0, 0xF6, 0xE8, 0xA1, 0xA3, 0xF6, - 0xF0, 0xA7, 0x99, 0xA7, 0xF6, 0xE8, 0xA3, 0x97, - 0xF6, 0xE8, 0xA3, 0x9E, 0xF6, 0xE4, 0x98, 0xB5, - 0xF6, 0xE8, 0xA3, 0xBA, 0xF6, 0xE3, 0x92, 0xBB, - 0xF6, 0xF0, 0xA7, 0xA2, 0xAE, 0xF6, 0xF0, 0xA7, - 0xA5, 0xA6, 0xF6, 0xE4, 0x9A, 0xBE, 0xF6, 0xE4, - 0x9B, 0x87, 0xF6, 0xE8, 0xAA, 0xA0, 0xF6, 0xE8, - 0xAB, 0xAD, 0xF6, 0xE8, 0xAE, 0x8A, 0xF6, 0xE8, - 0xB1, 0x95, 0xF6, 0xF0, 0xA7, 0xB2, 0xA8, 0xF6, - 0xE8, 0xB2, 0xAB, 0xF6, 0xE8, 0xB3, 0x81, 0xF6, - 0xE8, 0xB4, 0x9B, 0xF6, 0xE8, 0xB5, 0xB7, 0xF6, - 0xF0, 0xA7, 0xBC, 0xAF, 0xF6, 0xF0, 0xA0, 0xA0, - 0x84, 0xF6, 0xE8, 0xB7, 0x8B, 0xF6, 0xE8, 0xB6, - 0xBC, 0xF6, 0xE8, 0xB7, 0xB0, 0xF6, 0xF0, 0xA0, - 0xA3, 0x9E, 0xF6, 0xE8, 0xBB, 0x94, 0xF6, 0xE8, - 0xBC, 0xB8, 0xF6, 0xF0, 0xA8, 0x97, 0x92, 0xF6, - 0xF0, 0xA8, 0x97, 0xAD, 0xF6, 0xE9, 0x82, 0x94, - 0xF6, 0xE9, 0x83, 0xB1, 0xF6, 0xE9, 0x84, 0x91, - 0xF6, 0xF0, 0xA8, 0x9C, 0xAE, 0xF6, 0xE9, 0x84, - 0x9B, 0xF6, 0xE9, 0x88, 0xB8, 0xF6, 0xE9, 0x8B, - 0x97, 0xF6, 0xE9, 0x8B, 0x98, 0xF6, 0xE9, 0x89, - 0xBC, 0xF6, 0xE9, 0x8F, 0xB9, 0xF6, 0xE9, 0x90, - 0x95, 0xF6, 0xF0, 0xA8, 0xAF, 0xBA, 0xF6, 0xE9, - 0x96, 0x8B, 0xF6, 0xE4, 0xA6, 0x95, 0xF6, 0xE9, - 0x96, 0xB7, 0xF6, 0xF0, 0xA8, 0xB5, 0xB7, 0xF6, - 0xE4, 0xA7, 0xA6, 0xF6, 0xE9, 0x9B, 0x83, 0xF6, - 0xE5, 0xB6, 0xB2, 0xF6, 0xE9, 0x9C, 0xA3, 0xF6, - 0xF0, 0xA9, 0x85, 0x85, 0xF6, 0xF0, 0xA9, 0x88, - 0x9A, 0xF6, 0xE4, 0xA9, 0xAE, 0xF6, 0xE4, 0xA9, - 0xB6, 0xF6, 0xE9, 0x9F, 0xA0, 0xF6, 0xF0, 0xA9, - 0x90, 0x8A, 0xF6, 0xE4, 0xAA, 0xB2, 0xF6, 0xF0, - 0xA9, 0x92, 0x96, 0xF6, 0xE9, 0xA0, 0x8B, 0xF6, - 0xE9, 0xA0, 0x8B, 0xF6, 0xE9, 0xA0, 0xA9, 0xF6, - 0xF0, 0xA9, 0x96, 0xB6, 0xF6, 0xE9, 0xA3, 0xA2, - 0xF6, 0xE4, 0xAC, 0xB3, 0xF6, 0xE9, 0xA4, 0xA9, - 0xF6, 0xE9, 0xA6, 0xA7, 0xF6, 0xE9, 0xA7, 0x82, - 0xF6, 0xE9, 0xA7, 0xBE, 0xF6, 0xE4, 0xAF, 0x8E, - 0xF6, 0xF0, 0xA9, 0xAC, 0xB0, 0xF6, 0xE9, 0xAC, - 0x92, 0xF6, 0xE9, 0xB1, 0x80, 0xF6, 0xE9, 0xB3, - 0xBD, 0xF6, 0xE4, 0xB3, 0x8E, 0xF6, 0xE4, 0xB3, - 0xAD, 0xF6, 0xE9, 0xB5, 0xA7, 0xF6, 0xF0, 0xAA, - 0x83, 0x8E, 0xF6, 0xE4, 0xB3, 0xB8, 0xF6, 0xF0, - 0xAA, 0x84, 0x85, 0xF6, 0xF0, 0xAA, 0x88, 0x8E, - 0xF6, 0xF0, 0xAA, 0x8A, 0x91, 0xF6, 0xE9, 0xBA, - 0xBB, 0xF6, 0xE4, 0xB5, 0x96, 0xF6, 0xE9, 0xBB, - 0xB9, 0xF6, 0xE9, 0xBB, 0xBE, 0xF6, 0xE9, 0xBC, - 0x85, 0xF6, 0xE9, 0xBC, 0x8F, 0xF6, 0xE9, 0xBC, - 0x96, 0xF6, 0xE9, 0xBC, 0xBB, 0xF6, 0xF0, 0xAA, - 0x98, 0x80, - }, -}; - -static const uchar_t u8_case_common_b2_tbl[2][2][256] = { - { - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, 1, 2, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, 3, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 4, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - - }, - { - { - 0, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, 1, 2, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, 3, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - { - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - 4, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - N_, N_, N_, N_, N_, N_, N_, N_, - }, - - }, - -}; - -static const u8_displacement_t u8_tolower_b3_tbl[2][5][256] = { - { - { /* Third byte table 0. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { 0, 0 }, - { 1, 60 }, { 2, 123 }, { 3, 185 }, { 4, 257 }, - { 5, 321 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 6, 373 }, { 7, 439 }, - { 8, 465 }, { 9, 561 }, { 10, 593 }, { 11, 649 }, - { 12, 703 }, { 13, 749 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 1. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 14, 795 }, { 15, 891 }, { 16, 987 }, { 17, 1068 }, - { 18, 1155 }, { 19, 1245 }, { 20, 1299 }, { 21, 1386 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 2. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 22, 1443 }, { 23, 1448 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 24, 1496 }, { 25, 1526 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 3. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 26, 1574 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 4. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 27, 1652 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - }, - { - { /* Third byte table 0. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { 0, 0 }, - { 1, 60 }, { 2, 123 }, { 3, 185 }, { 4, 257 }, - { 5, 321 }, { 6, 383 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 7, 401 }, { 8, 467 }, - { 9, 505 }, { 10, 601 }, { 11, 633 }, { 12, 689 }, - { 13, 753 }, { 14, 803 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 1. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 15, 849 }, { 16, 945 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 17, 963 }, { 18, 1059 }, { 19, 1155 }, { 20, 1236 }, - { 21, 1323 }, { 22, 1413 }, { 23, 1467 }, { 24, 1554 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 2. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 25, 1611 }, { 26, 1619 }, { 27, 1667 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 28, 1670 }, { 29, 1700 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 30, 1748 }, { 31, 1889 }, { 32, 1911 }, { 33, 2007 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 3. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 34, 2061 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 4. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 35, 2139 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - }, -}; - -static const uchar_t u8_tolower_b4_tbl[2][36][257] = { - { - { /* Fourth byte table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 46, 48, 50, 52, 54, 56, 58, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, - }, - { /* Fourth byte table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 26, 26, 28, 28, 30, 30, 32, - 32, 34, 34, 36, 36, 38, 38, 40, - 40, 42, 42, 44, 44, 46, 46, 48, - 48, 49, 49, 51, 51, 53, 53, 55, - 55, 55, 57, 57, 59, 59, 61, 61, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, - }, - { /* Fourth byte table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 4, 4, 6, 6, - 8, 8, 8, 10, 10, 12, 12, 14, - 14, 16, 16, 18, 18, 20, 20, 22, - 22, 24, 24, 26, 26, 28, 28, 30, - 30, 32, 32, 34, 34, 36, 36, 38, - 38, 40, 40, 42, 42, 44, 44, 46, - 46, 48, 48, 50, 50, 52, 52, 54, - 54, 56, 58, 58, 60, 60, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, - }, - { /* Fourth byte table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 4, 4, 6, 6, 8, - 10, 10, 12, 14, 16, 16, 16, 18, - 20, 22, 24, 24, 26, 28, 28, 30, - 32, 34, 34, 34, 34, 36, 38, 38, - 40, 42, 42, 44, 44, 46, 46, 48, - 50, 50, 52, 52, 52, 54, 54, 56, - 58, 58, 60, 62, 64, 64, 66, 66, - 68, 70, 70, 70, 70, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, - }, - { /* Fourth byte table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 4, 4, - 6, 8, 8, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 28, 30, - 30, 32, 32, 34, 34, 36, 36, 38, - 38, 40, 40, 42, 42, 44, 44, 46, - 46, 46, 48, 50, 50, 52, 52, 54, - 56, 58, 58, 60, 60, 62, 62, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 26, 26, 28, 28, 30, 30, 32, - 32, 34, 34, 36, 36, 38, 38, 40, - 40, 42, 42, 44, 44, 46, 46, 48, - 48, 50, 50, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, - }, - { /* Fourth byte table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 2, 4, 6, 8, 8, 10, 10, 12, - 14, 14, 16, 18, 20, 22, 24, 26, - 28, 30, 32, 34, 36, 38, 40, 42, - 44, 46, 48, 48, 50, 52, 54, 56, - 58, 60, 62, 64, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, - }, - { /* Fourth byte table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 24, 24, 24, 24, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, - }, - { /* Fourth byte table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 74, 76, 78, - 80, 82, 84, 86, 88, 90, 92, 94, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 26, 26, 28, 28, 30, 30, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, - }, - { /* Fourth byte table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 26, 26, 28, 28, 30, 30, 32, - 32, 34, 34, 36, 36, 38, 38, 40, - 40, 42, 42, 44, 44, 46, 46, 48, - 48, 50, 50, 52, 52, 54, 54, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, - }, - { /* Fourth byte table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 4, 4, 6, 6, - 8, 8, 10, 10, 12, 12, 14, 14, - 14, 16, 16, 18, 18, 20, 20, 22, - 22, 24, 24, 26, 26, 28, 28, 30, - 30, 32, 32, 34, 34, 36, 36, 38, - 38, 40, 40, 42, 42, 44, 44, 46, - 46, 48, 48, 50, 50, 52, 52, 52, - 52, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, - }, - { /* Fourth byte table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 18, 20, 22, 24, 26, 28, - 30, 32, 34, 36, 38, 40, 42, 44, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, - }, - { /* Fourth byte table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, - }, - { /* Fourth byte table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 6, 6, 9, 9, 12, - 12, 15, 15, 18, 18, 21, 21, 24, - 24, 27, 27, 30, 30, 33, 33, 36, - 36, 39, 39, 42, 42, 45, 45, 48, - 48, 51, 51, 54, 54, 57, 57, 60, - 60, 63, 63, 66, 66, 69, 69, 72, - 72, 75, 75, 78, 78, 81, 81, 84, - 84, 87, 87, 90, 90, 93, 93, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 6, 6, 9, 9, 12, - 12, 15, 15, 18, 18, 21, 21, 24, - 24, 27, 27, 30, 30, 33, 33, 36, - 36, 39, 39, 42, 42, 45, 45, 48, - 48, 51, 51, 54, 54, 57, 57, 60, - 60, 63, 63, 66, 66, 69, 69, 72, - 72, 75, 75, 78, 78, 81, 81, 84, - 84, 87, 87, 90, 90, 93, 93, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 6, 6, 9, 9, 12, - 12, 15, 15, 18, 18, 21, 21, 24, - 24, 27, 27, 30, 30, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, - 33, 36, 36, 39, 39, 42, 42, 45, - 45, 48, 48, 51, 51, 54, 54, 57, - 57, 60, 60, 63, 63, 66, 66, 69, - 69, 72, 72, 75, 75, 78, 78, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, - }, - { /* Fourth byte table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 6, 6, 9, 9, 12, - 12, 15, 15, 18, 18, 21, 21, 24, - 24, 27, 27, 30, 30, 33, 33, 36, - 36, 39, 39, 42, 42, 45, 45, 48, - 48, 51, 51, 54, 54, 57, 57, 60, - 60, 63, 63, 66, 66, 69, 69, 72, - 72, 75, 75, 78, 78, 81, 81, 84, - 84, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, - }, - { /* Fourth byte table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 27, 30, 33, 36, 39, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 45, 48, 51, 54, 57, 60, 63, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 69, 72, 75, 78, 81, 84, 87, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, - }, - { /* Fourth byte table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 21, 21, 24, 24, 27, 27, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 33, 36, 39, 42, 45, 48, 51, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, - }, - { /* Fourth byte table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 75, 78, 81, 84, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, - }, - { /* Fourth byte table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 18, 21, 24, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 30, 33, 36, 39, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 45, 48, 51, 54, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, - }, - { /* Fourth byte table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 2, 2, 2, 3, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, - 5, - }, - { /* Fourth byte table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, - }, - { /* Fourth byte table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, - 6, 9, 12, 15, 18, 21, 24, 27, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, - }, - { /* Fourth byte table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, - }, - { /* Fourth byte table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 6, 9, 12, 15, 18, - 21, 24, 27, 30, 33, 36, 39, 42, - 45, 48, 51, 54, 57, 60, 63, 66, - 69, 72, 75, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, - }, - { /* Fourth byte table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, 152, 152, 152, 152, 152, 152, 152, - 152, - }, - { /* Fourth byte table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 30. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 31. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 32. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 33. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 34. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 35. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - }, - { - { /* Fourth byte table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 46, 48, 50, 52, 54, 56, 58, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, 60, 60, 60, 60, 60, 60, 60, - 60, - }, - { /* Fourth byte table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 26, 26, 28, 28, 30, 30, 32, - 32, 34, 34, 36, 36, 38, 38, 40, - 40, 42, 42, 44, 44, 46, 46, 48, - 48, 49, 49, 51, 51, 53, 53, 55, - 55, 55, 57, 57, 59, 59, 61, 61, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, - }, - { /* Fourth byte table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 4, 4, 6, 6, - 8, 8, 8, 10, 10, 12, 12, 14, - 14, 16, 16, 18, 18, 20, 20, 22, - 22, 24, 24, 26, 26, 28, 28, 30, - 30, 32, 32, 34, 34, 36, 36, 38, - 38, 40, 40, 42, 42, 44, 44, 46, - 46, 48, 48, 50, 50, 52, 52, 54, - 54, 56, 58, 58, 60, 60, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, - }, - { /* Fourth byte table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 4, 4, 6, 6, 8, - 10, 10, 12, 14, 16, 16, 16, 18, - 20, 22, 24, 24, 26, 28, 28, 30, - 32, 34, 34, 34, 34, 36, 38, 38, - 40, 42, 42, 44, 44, 46, 46, 48, - 50, 50, 52, 52, 52, 54, 54, 56, - 58, 58, 60, 62, 64, 64, 66, 66, - 68, 70, 70, 70, 70, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, - }, - { /* Fourth byte table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 4, 4, - 6, 8, 8, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 28, 30, - 30, 32, 32, 34, 34, 36, 36, 38, - 38, 40, 40, 42, 42, 44, 44, 46, - 46, 46, 48, 50, 50, 52, 52, 54, - 56, 58, 58, 60, 60, 62, 62, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 26, 26, 28, 28, 30, 30, 32, - 32, 34, 34, 36, 36, 38, 38, 40, - 40, 42, 42, 44, 44, 46, 46, 48, - 48, 50, 50, 52, 52, 52, 52, 52, - 52, 52, 52, 55, 57, 57, 59, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, - }, - { /* Fourth byte table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 4, 6, 8, 10, - 10, 12, 12, 14, 14, 16, 16, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, - }, - { /* Fourth byte table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 2, 4, 6, 8, 8, 10, 10, 12, - 14, 14, 16, 18, 20, 22, 24, 26, - 28, 30, 32, 34, 36, 38, 40, 42, - 44, 46, 48, 48, 50, 52, 54, 56, - 58, 60, 62, 64, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, - }, - { /* Fourth byte table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 24, 24, 24, 24, 26, 26, 26, - 28, 28, 30, 32, 32, 32, 34, 36, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, - }, - { /* Fourth byte table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 66, 68, 70, 72, 74, 76, 78, - 80, 82, 84, 86, 88, 90, 92, 94, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 26, 26, 28, 28, 30, 30, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, - }, - { /* Fourth byte table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 26, 26, 28, 28, 30, 30, 32, - 32, 34, 34, 36, 36, 38, 38, 40, - 40, 42, 42, 44, 44, 46, 46, 48, - 48, 50, 50, 52, 52, 54, 54, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, - }, - { /* Fourth byte table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 4, 6, 6, 8, 8, - 10, 10, 12, 12, 14, 14, 16, 16, - 16, 18, 18, 20, 20, 22, 22, 24, - 24, 26, 26, 28, 28, 30, 30, 32, - 32, 34, 34, 36, 36, 38, 38, 40, - 40, 42, 42, 44, 44, 46, 46, 48, - 48, 50, 50, 52, 52, 54, 54, 56, - 56, 58, 58, 60, 60, 62, 62, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 12, 12, 14, 14, 16, - 16, 18, 18, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 22, 24, 26, 28, 30, 32, - 34, 36, 38, 40, 42, 44, 46, 48, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, - }, - { /* Fourth byte table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, 46, 46, 46, 46, 46, 46, 46, - 46, - }, - { /* Fourth byte table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, - }, - { /* Fourth byte table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 6, 6, 9, 9, 12, - 12, 15, 15, 18, 18, 21, 21, 24, - 24, 27, 27, 30, 30, 33, 33, 36, - 36, 39, 39, 42, 42, 45, 45, 48, - 48, 51, 51, 54, 54, 57, 57, 60, - 60, 63, 63, 66, 66, 69, 69, 72, - 72, 75, 75, 78, 78, 81, 81, 84, - 84, 87, 87, 90, 90, 93, 93, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 6, 6, 9, 9, 12, - 12, 15, 15, 18, 18, 21, 21, 24, - 24, 27, 27, 30, 30, 33, 33, 36, - 36, 39, 39, 42, 42, 45, 45, 48, - 48, 51, 51, 54, 54, 57, 57, 60, - 60, 63, 63, 66, 66, 69, 69, 72, - 72, 75, 75, 78, 78, 81, 81, 84, - 84, 87, 87, 90, 90, 93, 93, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 6, 6, 9, 9, 12, - 12, 15, 15, 18, 18, 21, 21, 24, - 24, 27, 27, 30, 30, 33, 33, 33, - 33, 33, 33, 33, 33, 33, 33, 33, - 33, 36, 36, 39, 39, 42, 42, 45, - 45, 48, 48, 51, 51, 54, 54, 57, - 57, 60, 60, 63, 63, 66, 66, 69, - 69, 72, 72, 75, 75, 78, 78, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 81, - 81, - }, - { /* Fourth byte table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 6, 6, 9, 9, 12, - 12, 15, 15, 18, 18, 21, 21, 24, - 24, 27, 27, 30, 30, 33, 33, 36, - 36, 39, 39, 42, 42, 45, 45, 48, - 48, 51, 51, 54, 54, 57, 57, 60, - 60, 63, 63, 66, 66, 69, 69, 72, - 72, 75, 75, 78, 78, 81, 81, 84, - 84, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, - }, - { /* Fourth byte table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 27, 30, 33, 36, 39, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 45, 48, 51, 54, 57, 60, 63, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 69, 72, 75, 78, 81, 84, 87, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, - }, - { /* Fourth byte table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 21, 21, 24, 24, 27, 27, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 33, 36, 39, 42, 45, 48, 51, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, - }, - { /* Fourth byte table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 75, 78, 81, 84, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, - }, - { /* Fourth byte table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, - 15, 18, 21, 24, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, - 27, 30, 33, 36, 39, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 45, 48, 51, 54, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, - 57, - }, - { /* Fourth byte table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2, - 2, 2, 2, 3, 5, 5, 5, 5, - 5, 5, 5, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, - }, - { /* Fourth byte table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, - }, - { /* Fourth byte table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, - 6, 9, 12, 15, 18, 21, 24, 27, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, - }, - { /* Fourth byte table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, - }, - { /* Fourth byte table 30. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 117, - 120, 123, 126, 129, 132, 135, 138, 141, - 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, - 141, - }, - { /* Fourth byte table 31. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 5, 8, 10, 10, 10, - 13, 13, 16, 16, 19, 19, 19, 19, - 19, 19, 19, 19, 19, 19, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, - 22, - }, - { /* Fourth byte table 32. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 6, 6, 9, 9, 12, - 12, 15, 15, 18, 18, 21, 21, 24, - 24, 27, 27, 30, 30, 33, 33, 36, - 36, 39, 39, 42, 42, 45, 45, 48, - 48, 51, 51, 54, 54, 57, 57, 60, - 60, 63, 63, 66, 66, 69, 69, 72, - 72, 75, 75, 78, 78, 81, 81, 84, - 84, 87, 87, 90, 90, 93, 93, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 33. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 3, 6, 6, 9, 9, 12, - 12, 15, 15, 18, 18, 21, 21, 24, - 24, 27, 27, 30, 30, 33, 33, 36, - 36, 39, 39, 42, 42, 45, 45, 48, - 48, 51, 51, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, - }, - { /* Fourth byte table 34. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 6, 9, 12, 15, 18, - 21, 24, 27, 30, 33, 36, 39, 42, - 45, 48, 51, 54, 57, 60, 63, 66, - 69, 72, 75, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, - }, - { /* Fourth byte table 35. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 100, 104, 108, 112, 116, 120, 124, - 128, 132, 136, 140, 144, 148, 152, 156, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, - }, - }, -}; - -static const uchar_t u8_tolower_final_tbl[2][2299] = { - { - 0xC3, 0xA0, 0xC3, 0xA1, 0xC3, 0xA2, 0xC3, 0xA3, - 0xC3, 0xA4, 0xC3, 0xA5, 0xC3, 0xA6, 0xC3, 0xA7, - 0xC3, 0xA8, 0xC3, 0xA9, 0xC3, 0xAA, 0xC3, 0xAB, - 0xC3, 0xAC, 0xC3, 0xAD, 0xC3, 0xAE, 0xC3, 0xAF, - 0xC3, 0xB0, 0xC3, 0xB1, 0xC3, 0xB2, 0xC3, 0xB3, - 0xC3, 0xB4, 0xC3, 0xB5, 0xC3, 0xB6, 0xC3, 0xB8, - 0xC3, 0xB9, 0xC3, 0xBA, 0xC3, 0xBB, 0xC3, 0xBC, - 0xC3, 0xBD, 0xC3, 0xBE, 0xC4, 0x81, 0xC4, 0x83, - 0xC4, 0x85, 0xC4, 0x87, 0xC4, 0x89, 0xC4, 0x8B, - 0xC4, 0x8D, 0xC4, 0x8F, 0xC4, 0x91, 0xC4, 0x93, - 0xC4, 0x95, 0xC4, 0x97, 0xC4, 0x99, 0xC4, 0x9B, - 0xC4, 0x9D, 0xC4, 0x9F, 0xC4, 0xA1, 0xC4, 0xA3, - 0xC4, 0xA5, 0xC4, 0xA7, 0xC4, 0xA9, 0xC4, 0xAB, - 0xC4, 0xAD, 0xC4, 0xAF, 0x69, 0xC4, 0xB3, 0xC4, - 0xB5, 0xC4, 0xB7, 0xC4, 0xBA, 0xC4, 0xBC, 0xC4, - 0xBE, 0xC5, 0x80, 0xC5, 0x82, 0xC5, 0x84, 0xC5, - 0x86, 0xC5, 0x88, 0xC5, 0x8B, 0xC5, 0x8D, 0xC5, - 0x8F, 0xC5, 0x91, 0xC5, 0x93, 0xC5, 0x95, 0xC5, - 0x97, 0xC5, 0x99, 0xC5, 0x9B, 0xC5, 0x9D, 0xC5, - 0x9F, 0xC5, 0xA1, 0xC5, 0xA3, 0xC5, 0xA5, 0xC5, - 0xA7, 0xC5, 0xA9, 0xC5, 0xAB, 0xC5, 0xAD, 0xC5, - 0xAF, 0xC5, 0xB1, 0xC5, 0xB3, 0xC5, 0xB5, 0xC5, - 0xB7, 0xC3, 0xBF, 0xC5, 0xBA, 0xC5, 0xBC, 0xC5, - 0xBE, 0xC9, 0x93, 0xC6, 0x83, 0xC6, 0x85, 0xC9, - 0x94, 0xC6, 0x88, 0xC9, 0x96, 0xC9, 0x97, 0xC6, - 0x8C, 0xC7, 0x9D, 0xC9, 0x99, 0xC9, 0x9B, 0xC6, - 0x92, 0xC9, 0xA0, 0xC9, 0xA3, 0xC9, 0xA9, 0xC9, - 0xA8, 0xC6, 0x99, 0xC9, 0xAF, 0xC9, 0xB2, 0xC9, - 0xB5, 0xC6, 0xA1, 0xC6, 0xA3, 0xC6, 0xA5, 0xCA, - 0x80, 0xC6, 0xA8, 0xCA, 0x83, 0xC6, 0xAD, 0xCA, - 0x88, 0xC6, 0xB0, 0xCA, 0x8A, 0xCA, 0x8B, 0xC6, - 0xB4, 0xC6, 0xB6, 0xCA, 0x92, 0xC6, 0xB9, 0xC6, - 0xBD, 0xC7, 0x86, 0xC7, 0x86, 0xC7, 0x89, 0xC7, - 0x89, 0xC7, 0x8C, 0xC7, 0x8C, 0xC7, 0x8E, 0xC7, - 0x90, 0xC7, 0x92, 0xC7, 0x94, 0xC7, 0x96, 0xC7, - 0x98, 0xC7, 0x9A, 0xC7, 0x9C, 0xC7, 0x9F, 0xC7, - 0xA1, 0xC7, 0xA3, 0xC7, 0xA5, 0xC7, 0xA7, 0xC7, - 0xA9, 0xC7, 0xAB, 0xC7, 0xAD, 0xC7, 0xAF, 0xC7, - 0xB3, 0xC7, 0xB3, 0xC7, 0xB5, 0xC6, 0x95, 0xC6, - 0xBF, 0xC7, 0xB9, 0xC7, 0xBB, 0xC7, 0xBD, 0xC7, - 0xBF, 0xC8, 0x81, 0xC8, 0x83, 0xC8, 0x85, 0xC8, - 0x87, 0xC8, 0x89, 0xC8, 0x8B, 0xC8, 0x8D, 0xC8, - 0x8F, 0xC8, 0x91, 0xC8, 0x93, 0xC8, 0x95, 0xC8, - 0x97, 0xC8, 0x99, 0xC8, 0x9B, 0xC8, 0x9D, 0xC8, - 0x9F, 0xC6, 0x9E, 0xC8, 0xA3, 0xC8, 0xA5, 0xC8, - 0xA7, 0xC8, 0xA9, 0xC8, 0xAB, 0xC8, 0xAD, 0xC8, - 0xAF, 0xC8, 0xB1, 0xC8, 0xB3, 0xCE, 0xAC, 0xCE, - 0xAD, 0xCE, 0xAE, 0xCE, 0xAF, 0xCF, 0x8C, 0xCF, - 0x8D, 0xCF, 0x8E, 0xCE, 0xB1, 0xCE, 0xB2, 0xCE, - 0xB3, 0xCE, 0xB4, 0xCE, 0xB5, 0xCE, 0xB6, 0xCE, - 0xB7, 0xCE, 0xB8, 0xCE, 0xB9, 0xCE, 0xBA, 0xCE, - 0xBB, 0xCE, 0xBC, 0xCE, 0xBD, 0xCE, 0xBE, 0xCE, - 0xBF, 0xCF, 0x80, 0xCF, 0x81, 0xCF, 0x83, 0xCF, - 0x84, 0xCF, 0x85, 0xCF, 0x86, 0xCF, 0x87, 0xCF, - 0x88, 0xCF, 0x89, 0xCF, 0x8A, 0xCF, 0x8B, 0xCF, - 0x99, 0xCF, 0x9B, 0xCF, 0x9D, 0xCF, 0x9F, 0xCF, - 0xA1, 0xCF, 0xA3, 0xCF, 0xA5, 0xCF, 0xA7, 0xCF, - 0xA9, 0xCF, 0xAB, 0xCF, 0xAD, 0xCF, 0xAF, 0xCE, - 0xB8, 0xD1, 0x90, 0xD1, 0x91, 0xD1, 0x92, 0xD1, - 0x93, 0xD1, 0x94, 0xD1, 0x95, 0xD1, 0x96, 0xD1, - 0x97, 0xD1, 0x98, 0xD1, 0x99, 0xD1, 0x9A, 0xD1, - 0x9B, 0xD1, 0x9C, 0xD1, 0x9D, 0xD1, 0x9E, 0xD1, - 0x9F, 0xD0, 0xB0, 0xD0, 0xB1, 0xD0, 0xB2, 0xD0, - 0xB3, 0xD0, 0xB4, 0xD0, 0xB5, 0xD0, 0xB6, 0xD0, - 0xB7, 0xD0, 0xB8, 0xD0, 0xB9, 0xD0, 0xBA, 0xD0, - 0xBB, 0xD0, 0xBC, 0xD0, 0xBD, 0xD0, 0xBE, 0xD0, - 0xBF, 0xD1, 0x80, 0xD1, 0x81, 0xD1, 0x82, 0xD1, - 0x83, 0xD1, 0x84, 0xD1, 0x85, 0xD1, 0x86, 0xD1, - 0x87, 0xD1, 0x88, 0xD1, 0x89, 0xD1, 0x8A, 0xD1, - 0x8B, 0xD1, 0x8C, 0xD1, 0x8D, 0xD1, 0x8E, 0xD1, - 0x8F, 0xD1, 0xA1, 0xD1, 0xA3, 0xD1, 0xA5, 0xD1, - 0xA7, 0xD1, 0xA9, 0xD1, 0xAB, 0xD1, 0xAD, 0xD1, - 0xAF, 0xD1, 0xB1, 0xD1, 0xB3, 0xD1, 0xB5, 0xD1, - 0xB7, 0xD1, 0xB9, 0xD1, 0xBB, 0xD1, 0xBD, 0xD1, - 0xBF, 0xD2, 0x81, 0xD2, 0x8B, 0xD2, 0x8D, 0xD2, - 0x8F, 0xD2, 0x91, 0xD2, 0x93, 0xD2, 0x95, 0xD2, - 0x97, 0xD2, 0x99, 0xD2, 0x9B, 0xD2, 0x9D, 0xD2, - 0x9F, 0xD2, 0xA1, 0xD2, 0xA3, 0xD2, 0xA5, 0xD2, - 0xA7, 0xD2, 0xA9, 0xD2, 0xAB, 0xD2, 0xAD, 0xD2, - 0xAF, 0xD2, 0xB1, 0xD2, 0xB3, 0xD2, 0xB5, 0xD2, - 0xB7, 0xD2, 0xB9, 0xD2, 0xBB, 0xD2, 0xBD, 0xD2, - 0xBF, 0xD3, 0x82, 0xD3, 0x84, 0xD3, 0x86, 0xD3, - 0x88, 0xD3, 0x8A, 0xD3, 0x8C, 0xD3, 0x8E, 0xD3, - 0x91, 0xD3, 0x93, 0xD3, 0x95, 0xD3, 0x97, 0xD3, - 0x99, 0xD3, 0x9B, 0xD3, 0x9D, 0xD3, 0x9F, 0xD3, - 0xA1, 0xD3, 0xA3, 0xD3, 0xA5, 0xD3, 0xA7, 0xD3, - 0xA9, 0xD3, 0xAB, 0xD3, 0xAD, 0xD3, 0xAF, 0xD3, - 0xB1, 0xD3, 0xB3, 0xD3, 0xB5, 0xD3, 0xB9, 0xD4, - 0x81, 0xD4, 0x83, 0xD4, 0x85, 0xD4, 0x87, 0xD4, - 0x89, 0xD4, 0x8B, 0xD4, 0x8D, 0xD4, 0x8F, 0xD5, - 0xA1, 0xD5, 0xA2, 0xD5, 0xA3, 0xD5, 0xA4, 0xD5, - 0xA5, 0xD5, 0xA6, 0xD5, 0xA7, 0xD5, 0xA8, 0xD5, - 0xA9, 0xD5, 0xAA, 0xD5, 0xAB, 0xD5, 0xAC, 0xD5, - 0xAD, 0xD5, 0xAE, 0xD5, 0xAF, 0xD5, 0xB0, 0xD5, - 0xB1, 0xD5, 0xB2, 0xD5, 0xB3, 0xD5, 0xB4, 0xD5, - 0xB5, 0xD5, 0xB6, 0xD5, 0xB7, 0xD5, 0xB8, 0xD5, - 0xB9, 0xD5, 0xBA, 0xD5, 0xBB, 0xD5, 0xBC, 0xD5, - 0xBD, 0xD5, 0xBE, 0xD5, 0xBF, 0xD6, 0x80, 0xD6, - 0x81, 0xD6, 0x82, 0xD6, 0x83, 0xD6, 0x84, 0xD6, - 0x85, 0xD6, 0x86, 0xE1, 0xB8, 0x81, 0xE1, 0xB8, - 0x83, 0xE1, 0xB8, 0x85, 0xE1, 0xB8, 0x87, 0xE1, - 0xB8, 0x89, 0xE1, 0xB8, 0x8B, 0xE1, 0xB8, 0x8D, - 0xE1, 0xB8, 0x8F, 0xE1, 0xB8, 0x91, 0xE1, 0xB8, - 0x93, 0xE1, 0xB8, 0x95, 0xE1, 0xB8, 0x97, 0xE1, - 0xB8, 0x99, 0xE1, 0xB8, 0x9B, 0xE1, 0xB8, 0x9D, - 0xE1, 0xB8, 0x9F, 0xE1, 0xB8, 0xA1, 0xE1, 0xB8, - 0xA3, 0xE1, 0xB8, 0xA5, 0xE1, 0xB8, 0xA7, 0xE1, - 0xB8, 0xA9, 0xE1, 0xB8, 0xAB, 0xE1, 0xB8, 0xAD, - 0xE1, 0xB8, 0xAF, 0xE1, 0xB8, 0xB1, 0xE1, 0xB8, - 0xB3, 0xE1, 0xB8, 0xB5, 0xE1, 0xB8, 0xB7, 0xE1, - 0xB8, 0xB9, 0xE1, 0xB8, 0xBB, 0xE1, 0xB8, 0xBD, - 0xE1, 0xB8, 0xBF, 0xE1, 0xB9, 0x81, 0xE1, 0xB9, - 0x83, 0xE1, 0xB9, 0x85, 0xE1, 0xB9, 0x87, 0xE1, - 0xB9, 0x89, 0xE1, 0xB9, 0x8B, 0xE1, 0xB9, 0x8D, - 0xE1, 0xB9, 0x8F, 0xE1, 0xB9, 0x91, 0xE1, 0xB9, - 0x93, 0xE1, 0xB9, 0x95, 0xE1, 0xB9, 0x97, 0xE1, - 0xB9, 0x99, 0xE1, 0xB9, 0x9B, 0xE1, 0xB9, 0x9D, - 0xE1, 0xB9, 0x9F, 0xE1, 0xB9, 0xA1, 0xE1, 0xB9, - 0xA3, 0xE1, 0xB9, 0xA5, 0xE1, 0xB9, 0xA7, 0xE1, - 0xB9, 0xA9, 0xE1, 0xB9, 0xAB, 0xE1, 0xB9, 0xAD, - 0xE1, 0xB9, 0xAF, 0xE1, 0xB9, 0xB1, 0xE1, 0xB9, - 0xB3, 0xE1, 0xB9, 0xB5, 0xE1, 0xB9, 0xB7, 0xE1, - 0xB9, 0xB9, 0xE1, 0xB9, 0xBB, 0xE1, 0xB9, 0xBD, - 0xE1, 0xB9, 0xBF, 0xE1, 0xBA, 0x81, 0xE1, 0xBA, - 0x83, 0xE1, 0xBA, 0x85, 0xE1, 0xBA, 0x87, 0xE1, - 0xBA, 0x89, 0xE1, 0xBA, 0x8B, 0xE1, 0xBA, 0x8D, - 0xE1, 0xBA, 0x8F, 0xE1, 0xBA, 0x91, 0xE1, 0xBA, - 0x93, 0xE1, 0xBA, 0x95, 0xE1, 0xBA, 0xA1, 0xE1, - 0xBA, 0xA3, 0xE1, 0xBA, 0xA5, 0xE1, 0xBA, 0xA7, - 0xE1, 0xBA, 0xA9, 0xE1, 0xBA, 0xAB, 0xE1, 0xBA, - 0xAD, 0xE1, 0xBA, 0xAF, 0xE1, 0xBA, 0xB1, 0xE1, - 0xBA, 0xB3, 0xE1, 0xBA, 0xB5, 0xE1, 0xBA, 0xB7, - 0xE1, 0xBA, 0xB9, 0xE1, 0xBA, 0xBB, 0xE1, 0xBA, - 0xBD, 0xE1, 0xBA, 0xBF, 0xE1, 0xBB, 0x81, 0xE1, - 0xBB, 0x83, 0xE1, 0xBB, 0x85, 0xE1, 0xBB, 0x87, - 0xE1, 0xBB, 0x89, 0xE1, 0xBB, 0x8B, 0xE1, 0xBB, - 0x8D, 0xE1, 0xBB, 0x8F, 0xE1, 0xBB, 0x91, 0xE1, - 0xBB, 0x93, 0xE1, 0xBB, 0x95, 0xE1, 0xBB, 0x97, - 0xE1, 0xBB, 0x99, 0xE1, 0xBB, 0x9B, 0xE1, 0xBB, - 0x9D, 0xE1, 0xBB, 0x9F, 0xE1, 0xBB, 0xA1, 0xE1, - 0xBB, 0xA3, 0xE1, 0xBB, 0xA5, 0xE1, 0xBB, 0xA7, - 0xE1, 0xBB, 0xA9, 0xE1, 0xBB, 0xAB, 0xE1, 0xBB, - 0xAD, 0xE1, 0xBB, 0xAF, 0xE1, 0xBB, 0xB1, 0xE1, - 0xBB, 0xB3, 0xE1, 0xBB, 0xB5, 0xE1, 0xBB, 0xB7, - 0xE1, 0xBB, 0xB9, 0xE1, 0xBC, 0x80, 0xE1, 0xBC, - 0x81, 0xE1, 0xBC, 0x82, 0xE1, 0xBC, 0x83, 0xE1, - 0xBC, 0x84, 0xE1, 0xBC, 0x85, 0xE1, 0xBC, 0x86, - 0xE1, 0xBC, 0x87, 0xE1, 0xBC, 0x90, 0xE1, 0xBC, - 0x91, 0xE1, 0xBC, 0x92, 0xE1, 0xBC, 0x93, 0xE1, - 0xBC, 0x94, 0xE1, 0xBC, 0x95, 0xE1, 0xBC, 0xA0, - 0xE1, 0xBC, 0xA1, 0xE1, 0xBC, 0xA2, 0xE1, 0xBC, - 0xA3, 0xE1, 0xBC, 0xA4, 0xE1, 0xBC, 0xA5, 0xE1, - 0xBC, 0xA6, 0xE1, 0xBC, 0xA7, 0xE1, 0xBC, 0xB0, - 0xE1, 0xBC, 0xB1, 0xE1, 0xBC, 0xB2, 0xE1, 0xBC, - 0xB3, 0xE1, 0xBC, 0xB4, 0xE1, 0xBC, 0xB5, 0xE1, - 0xBC, 0xB6, 0xE1, 0xBC, 0xB7, 0xE1, 0xBD, 0x80, - 0xE1, 0xBD, 0x81, 0xE1, 0xBD, 0x82, 0xE1, 0xBD, - 0x83, 0xE1, 0xBD, 0x84, 0xE1, 0xBD, 0x85, 0xE1, - 0xBD, 0x91, 0xE1, 0xBD, 0x93, 0xE1, 0xBD, 0x95, - 0xE1, 0xBD, 0x97, 0xE1, 0xBD, 0xA0, 0xE1, 0xBD, - 0xA1, 0xE1, 0xBD, 0xA2, 0xE1, 0xBD, 0xA3, 0xE1, - 0xBD, 0xA4, 0xE1, 0xBD, 0xA5, 0xE1, 0xBD, 0xA6, - 0xE1, 0xBD, 0xA7, 0xE1, 0xBE, 0x80, 0xE1, 0xBE, - 0x81, 0xE1, 0xBE, 0x82, 0xE1, 0xBE, 0x83, 0xE1, - 0xBE, 0x84, 0xE1, 0xBE, 0x85, 0xE1, 0xBE, 0x86, - 0xE1, 0xBE, 0x87, 0xE1, 0xBE, 0x90, 0xE1, 0xBE, - 0x91, 0xE1, 0xBE, 0x92, 0xE1, 0xBE, 0x93, 0xE1, - 0xBE, 0x94, 0xE1, 0xBE, 0x95, 0xE1, 0xBE, 0x96, - 0xE1, 0xBE, 0x97, 0xE1, 0xBE, 0xA0, 0xE1, 0xBE, - 0xA1, 0xE1, 0xBE, 0xA2, 0xE1, 0xBE, 0xA3, 0xE1, - 0xBE, 0xA4, 0xE1, 0xBE, 0xA5, 0xE1, 0xBE, 0xA6, - 0xE1, 0xBE, 0xA7, 0xE1, 0xBE, 0xB0, 0xE1, 0xBE, - 0xB1, 0xE1, 0xBD, 0xB0, 0xE1, 0xBD, 0xB1, 0xE1, - 0xBE, 0xB3, 0xE1, 0xBD, 0xB2, 0xE1, 0xBD, 0xB3, - 0xE1, 0xBD, 0xB4, 0xE1, 0xBD, 0xB5, 0xE1, 0xBF, - 0x83, 0xE1, 0xBF, 0x90, 0xE1, 0xBF, 0x91, 0xE1, - 0xBD, 0xB6, 0xE1, 0xBD, 0xB7, 0xE1, 0xBF, 0xA0, - 0xE1, 0xBF, 0xA1, 0xE1, 0xBD, 0xBA, 0xE1, 0xBD, - 0xBB, 0xE1, 0xBF, 0xA5, 0xE1, 0xBD, 0xB8, 0xE1, - 0xBD, 0xB9, 0xE1, 0xBD, 0xBC, 0xE1, 0xBD, 0xBD, - 0xE1, 0xBF, 0xB3, 0xCF, 0x89, 0x6B, 0xC3, 0xA5, - 0xE2, 0x85, 0xB0, 0xE2, 0x85, 0xB1, 0xE2, 0x85, - 0xB2, 0xE2, 0x85, 0xB3, 0xE2, 0x85, 0xB4, 0xE2, - 0x85, 0xB5, 0xE2, 0x85, 0xB6, 0xE2, 0x85, 0xB7, - 0xE2, 0x85, 0xB8, 0xE2, 0x85, 0xB9, 0xE2, 0x85, - 0xBA, 0xE2, 0x85, 0xBB, 0xE2, 0x85, 0xBC, 0xE2, - 0x85, 0xBD, 0xE2, 0x85, 0xBE, 0xE2, 0x85, 0xBF, - 0xE2, 0x93, 0x90, 0xE2, 0x93, 0x91, 0xE2, 0x93, - 0x92, 0xE2, 0x93, 0x93, 0xE2, 0x93, 0x94, 0xE2, - 0x93, 0x95, 0xE2, 0x93, 0x96, 0xE2, 0x93, 0x97, - 0xE2, 0x93, 0x98, 0xE2, 0x93, 0x99, 0xE2, 0x93, - 0x9A, 0xE2, 0x93, 0x9B, 0xE2, 0x93, 0x9C, 0xE2, - 0x93, 0x9D, 0xE2, 0x93, 0x9E, 0xE2, 0x93, 0x9F, - 0xE2, 0x93, 0xA0, 0xE2, 0x93, 0xA1, 0xE2, 0x93, - 0xA2, 0xE2, 0x93, 0xA3, 0xE2, 0x93, 0xA4, 0xE2, - 0x93, 0xA5, 0xE2, 0x93, 0xA6, 0xE2, 0x93, 0xA7, - 0xE2, 0x93, 0xA8, 0xE2, 0x93, 0xA9, 0xEF, 0xBD, - 0x81, 0xEF, 0xBD, 0x82, 0xEF, 0xBD, 0x83, 0xEF, - 0xBD, 0x84, 0xEF, 0xBD, 0x85, 0xEF, 0xBD, 0x86, - 0xEF, 0xBD, 0x87, 0xEF, 0xBD, 0x88, 0xEF, 0xBD, - 0x89, 0xEF, 0xBD, 0x8A, 0xEF, 0xBD, 0x8B, 0xEF, - 0xBD, 0x8C, 0xEF, 0xBD, 0x8D, 0xEF, 0xBD, 0x8E, - 0xEF, 0xBD, 0x8F, 0xEF, 0xBD, 0x90, 0xEF, 0xBD, - 0x91, 0xEF, 0xBD, 0x92, 0xEF, 0xBD, 0x93, 0xEF, - 0xBD, 0x94, 0xEF, 0xBD, 0x95, 0xEF, 0xBD, 0x96, - 0xEF, 0xBD, 0x97, 0xEF, 0xBD, 0x98, 0xEF, 0xBD, - 0x99, 0xEF, 0xBD, 0x9A, 0xF0, 0x90, 0x90, 0xA8, - 0xF0, 0x90, 0x90, 0xA9, 0xF0, 0x90, 0x90, 0xAA, - 0xF0, 0x90, 0x90, 0xAB, 0xF0, 0x90, 0x90, 0xAC, - 0xF0, 0x90, 0x90, 0xAD, 0xF0, 0x90, 0x90, 0xAE, - 0xF0, 0x90, 0x90, 0xAF, 0xF0, 0x90, 0x90, 0xB0, - 0xF0, 0x90, 0x90, 0xB1, 0xF0, 0x90, 0x90, 0xB2, - 0xF0, 0x90, 0x90, 0xB3, 0xF0, 0x90, 0x90, 0xB4, - 0xF0, 0x90, 0x90, 0xB5, 0xF0, 0x90, 0x90, 0xB6, - 0xF0, 0x90, 0x90, 0xB7, 0xF0, 0x90, 0x90, 0xB8, - 0xF0, 0x90, 0x90, 0xB9, 0xF0, 0x90, 0x90, 0xBA, - 0xF0, 0x90, 0x90, 0xBB, 0xF0, 0x90, 0x90, 0xBC, - 0xF0, 0x90, 0x90, 0xBD, 0xF0, 0x90, 0x90, 0xBE, - 0xF0, 0x90, 0x90, 0xBF, 0xF0, 0x90, 0x91, 0x80, - 0xF0, 0x90, 0x91, 0x81, 0xF0, 0x90, 0x91, 0x82, - 0xF0, 0x90, 0x91, 0x83, 0xF0, 0x90, 0x91, 0x84, - 0xF0, 0x90, 0x91, 0x85, 0xF0, 0x90, 0x91, 0x86, - 0xF0, 0x90, 0x91, 0x87, 0xF0, 0x90, 0x91, 0x88, - 0xF0, 0x90, 0x91, 0x89, 0xF0, 0x90, 0x91, 0x8A, - 0xF0, 0x90, 0x91, 0x8B, 0xF0, 0x90, 0x91, 0x8C, - 0xF0, 0x90, 0x91, 0x8D, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, - }, - { - 0xC3, 0xA0, 0xC3, 0xA1, 0xC3, 0xA2, 0xC3, 0xA3, - 0xC3, 0xA4, 0xC3, 0xA5, 0xC3, 0xA6, 0xC3, 0xA7, - 0xC3, 0xA8, 0xC3, 0xA9, 0xC3, 0xAA, 0xC3, 0xAB, - 0xC3, 0xAC, 0xC3, 0xAD, 0xC3, 0xAE, 0xC3, 0xAF, - 0xC3, 0xB0, 0xC3, 0xB1, 0xC3, 0xB2, 0xC3, 0xB3, - 0xC3, 0xB4, 0xC3, 0xB5, 0xC3, 0xB6, 0xC3, 0xB8, - 0xC3, 0xB9, 0xC3, 0xBA, 0xC3, 0xBB, 0xC3, 0xBC, - 0xC3, 0xBD, 0xC3, 0xBE, 0xC4, 0x81, 0xC4, 0x83, - 0xC4, 0x85, 0xC4, 0x87, 0xC4, 0x89, 0xC4, 0x8B, - 0xC4, 0x8D, 0xC4, 0x8F, 0xC4, 0x91, 0xC4, 0x93, - 0xC4, 0x95, 0xC4, 0x97, 0xC4, 0x99, 0xC4, 0x9B, - 0xC4, 0x9D, 0xC4, 0x9F, 0xC4, 0xA1, 0xC4, 0xA3, - 0xC4, 0xA5, 0xC4, 0xA7, 0xC4, 0xA9, 0xC4, 0xAB, - 0xC4, 0xAD, 0xC4, 0xAF, 0x69, 0xC4, 0xB3, 0xC4, - 0xB5, 0xC4, 0xB7, 0xC4, 0xBA, 0xC4, 0xBC, 0xC4, - 0xBE, 0xC5, 0x80, 0xC5, 0x82, 0xC5, 0x84, 0xC5, - 0x86, 0xC5, 0x88, 0xC5, 0x8B, 0xC5, 0x8D, 0xC5, - 0x8F, 0xC5, 0x91, 0xC5, 0x93, 0xC5, 0x95, 0xC5, - 0x97, 0xC5, 0x99, 0xC5, 0x9B, 0xC5, 0x9D, 0xC5, - 0x9F, 0xC5, 0xA1, 0xC5, 0xA3, 0xC5, 0xA5, 0xC5, - 0xA7, 0xC5, 0xA9, 0xC5, 0xAB, 0xC5, 0xAD, 0xC5, - 0xAF, 0xC5, 0xB1, 0xC5, 0xB3, 0xC5, 0xB5, 0xC5, - 0xB7, 0xC3, 0xBF, 0xC5, 0xBA, 0xC5, 0xBC, 0xC5, - 0xBE, 0xC9, 0x93, 0xC6, 0x83, 0xC6, 0x85, 0xC9, - 0x94, 0xC6, 0x88, 0xC9, 0x96, 0xC9, 0x97, 0xC6, - 0x8C, 0xC7, 0x9D, 0xC9, 0x99, 0xC9, 0x9B, 0xC6, - 0x92, 0xC9, 0xA0, 0xC9, 0xA3, 0xC9, 0xA9, 0xC9, - 0xA8, 0xC6, 0x99, 0xC9, 0xAF, 0xC9, 0xB2, 0xC9, - 0xB5, 0xC6, 0xA1, 0xC6, 0xA3, 0xC6, 0xA5, 0xCA, - 0x80, 0xC6, 0xA8, 0xCA, 0x83, 0xC6, 0xAD, 0xCA, - 0x88, 0xC6, 0xB0, 0xCA, 0x8A, 0xCA, 0x8B, 0xC6, - 0xB4, 0xC6, 0xB6, 0xCA, 0x92, 0xC6, 0xB9, 0xC6, - 0xBD, 0xC7, 0x86, 0xC7, 0x86, 0xC7, 0x89, 0xC7, - 0x89, 0xC7, 0x8C, 0xC7, 0x8C, 0xC7, 0x8E, 0xC7, - 0x90, 0xC7, 0x92, 0xC7, 0x94, 0xC7, 0x96, 0xC7, - 0x98, 0xC7, 0x9A, 0xC7, 0x9C, 0xC7, 0x9F, 0xC7, - 0xA1, 0xC7, 0xA3, 0xC7, 0xA5, 0xC7, 0xA7, 0xC7, - 0xA9, 0xC7, 0xAB, 0xC7, 0xAD, 0xC7, 0xAF, 0xC7, - 0xB3, 0xC7, 0xB3, 0xC7, 0xB5, 0xC6, 0x95, 0xC6, - 0xBF, 0xC7, 0xB9, 0xC7, 0xBB, 0xC7, 0xBD, 0xC7, - 0xBF, 0xC8, 0x81, 0xC8, 0x83, 0xC8, 0x85, 0xC8, - 0x87, 0xC8, 0x89, 0xC8, 0x8B, 0xC8, 0x8D, 0xC8, - 0x8F, 0xC8, 0x91, 0xC8, 0x93, 0xC8, 0x95, 0xC8, - 0x97, 0xC8, 0x99, 0xC8, 0x9B, 0xC8, 0x9D, 0xC8, - 0x9F, 0xC6, 0x9E, 0xC8, 0xA3, 0xC8, 0xA5, 0xC8, - 0xA7, 0xC8, 0xA9, 0xC8, 0xAB, 0xC8, 0xAD, 0xC8, - 0xAF, 0xC8, 0xB1, 0xC8, 0xB3, 0xE2, 0xB1, 0xA5, - 0xC8, 0xBC, 0xC6, 0x9A, 0xE2, 0xB1, 0xA6, 0xC9, - 0x82, 0xC6, 0x80, 0xCA, 0x89, 0xCA, 0x8C, 0xC9, - 0x87, 0xC9, 0x89, 0xC9, 0x8B, 0xC9, 0x8D, 0xC9, - 0x8F, 0xCE, 0xAC, 0xCE, 0xAD, 0xCE, 0xAE, 0xCE, - 0xAF, 0xCF, 0x8C, 0xCF, 0x8D, 0xCF, 0x8E, 0xCE, - 0xB1, 0xCE, 0xB2, 0xCE, 0xB3, 0xCE, 0xB4, 0xCE, - 0xB5, 0xCE, 0xB6, 0xCE, 0xB7, 0xCE, 0xB8, 0xCE, - 0xB9, 0xCE, 0xBA, 0xCE, 0xBB, 0xCE, 0xBC, 0xCE, - 0xBD, 0xCE, 0xBE, 0xCE, 0xBF, 0xCF, 0x80, 0xCF, - 0x81, 0xCF, 0x83, 0xCF, 0x84, 0xCF, 0x85, 0xCF, - 0x86, 0xCF, 0x87, 0xCF, 0x88, 0xCF, 0x89, 0xCF, - 0x8A, 0xCF, 0x8B, 0xCF, 0x99, 0xCF, 0x9B, 0xCF, - 0x9D, 0xCF, 0x9F, 0xCF, 0xA1, 0xCF, 0xA3, 0xCF, - 0xA5, 0xCF, 0xA7, 0xCF, 0xA9, 0xCF, 0xAB, 0xCF, - 0xAD, 0xCF, 0xAF, 0xCE, 0xB8, 0xCF, 0xB8, 0xCF, - 0xB2, 0xCF, 0xBB, 0xCD, 0xBB, 0xCD, 0xBC, 0xCD, - 0xBD, 0xD1, 0x90, 0xD1, 0x91, 0xD1, 0x92, 0xD1, - 0x93, 0xD1, 0x94, 0xD1, 0x95, 0xD1, 0x96, 0xD1, - 0x97, 0xD1, 0x98, 0xD1, 0x99, 0xD1, 0x9A, 0xD1, - 0x9B, 0xD1, 0x9C, 0xD1, 0x9D, 0xD1, 0x9E, 0xD1, - 0x9F, 0xD0, 0xB0, 0xD0, 0xB1, 0xD0, 0xB2, 0xD0, - 0xB3, 0xD0, 0xB4, 0xD0, 0xB5, 0xD0, 0xB6, 0xD0, - 0xB7, 0xD0, 0xB8, 0xD0, 0xB9, 0xD0, 0xBA, 0xD0, - 0xBB, 0xD0, 0xBC, 0xD0, 0xBD, 0xD0, 0xBE, 0xD0, - 0xBF, 0xD1, 0x80, 0xD1, 0x81, 0xD1, 0x82, 0xD1, - 0x83, 0xD1, 0x84, 0xD1, 0x85, 0xD1, 0x86, 0xD1, - 0x87, 0xD1, 0x88, 0xD1, 0x89, 0xD1, 0x8A, 0xD1, - 0x8B, 0xD1, 0x8C, 0xD1, 0x8D, 0xD1, 0x8E, 0xD1, - 0x8F, 0xD1, 0xA1, 0xD1, 0xA3, 0xD1, 0xA5, 0xD1, - 0xA7, 0xD1, 0xA9, 0xD1, 0xAB, 0xD1, 0xAD, 0xD1, - 0xAF, 0xD1, 0xB1, 0xD1, 0xB3, 0xD1, 0xB5, 0xD1, - 0xB7, 0xD1, 0xB9, 0xD1, 0xBB, 0xD1, 0xBD, 0xD1, - 0xBF, 0xD2, 0x81, 0xD2, 0x8B, 0xD2, 0x8D, 0xD2, - 0x8F, 0xD2, 0x91, 0xD2, 0x93, 0xD2, 0x95, 0xD2, - 0x97, 0xD2, 0x99, 0xD2, 0x9B, 0xD2, 0x9D, 0xD2, - 0x9F, 0xD2, 0xA1, 0xD2, 0xA3, 0xD2, 0xA5, 0xD2, - 0xA7, 0xD2, 0xA9, 0xD2, 0xAB, 0xD2, 0xAD, 0xD2, - 0xAF, 0xD2, 0xB1, 0xD2, 0xB3, 0xD2, 0xB5, 0xD2, - 0xB7, 0xD2, 0xB9, 0xD2, 0xBB, 0xD2, 0xBD, 0xD2, - 0xBF, 0xD3, 0x8F, 0xD3, 0x82, 0xD3, 0x84, 0xD3, - 0x86, 0xD3, 0x88, 0xD3, 0x8A, 0xD3, 0x8C, 0xD3, - 0x8E, 0xD3, 0x91, 0xD3, 0x93, 0xD3, 0x95, 0xD3, - 0x97, 0xD3, 0x99, 0xD3, 0x9B, 0xD3, 0x9D, 0xD3, - 0x9F, 0xD3, 0xA1, 0xD3, 0xA3, 0xD3, 0xA5, 0xD3, - 0xA7, 0xD3, 0xA9, 0xD3, 0xAB, 0xD3, 0xAD, 0xD3, - 0xAF, 0xD3, 0xB1, 0xD3, 0xB3, 0xD3, 0xB5, 0xD3, - 0xB7, 0xD3, 0xB9, 0xD3, 0xBB, 0xD3, 0xBD, 0xD3, - 0xBF, 0xD4, 0x81, 0xD4, 0x83, 0xD4, 0x85, 0xD4, - 0x87, 0xD4, 0x89, 0xD4, 0x8B, 0xD4, 0x8D, 0xD4, - 0x8F, 0xD4, 0x91, 0xD4, 0x93, 0xD5, 0xA1, 0xD5, - 0xA2, 0xD5, 0xA3, 0xD5, 0xA4, 0xD5, 0xA5, 0xD5, - 0xA6, 0xD5, 0xA7, 0xD5, 0xA8, 0xD5, 0xA9, 0xD5, - 0xAA, 0xD5, 0xAB, 0xD5, 0xAC, 0xD5, 0xAD, 0xD5, - 0xAE, 0xD5, 0xAF, 0xD5, 0xB0, 0xD5, 0xB1, 0xD5, - 0xB2, 0xD5, 0xB3, 0xD5, 0xB4, 0xD5, 0xB5, 0xD5, - 0xB6, 0xD5, 0xB7, 0xD5, 0xB8, 0xD5, 0xB9, 0xD5, - 0xBA, 0xD5, 0xBB, 0xD5, 0xBC, 0xD5, 0xBD, 0xD5, - 0xBE, 0xD5, 0xBF, 0xD6, 0x80, 0xD6, 0x81, 0xD6, - 0x82, 0xD6, 0x83, 0xD6, 0x84, 0xD6, 0x85, 0xD6, - 0x86, 0xE2, 0xB4, 0x80, 0xE2, 0xB4, 0x81, 0xE2, - 0xB4, 0x82, 0xE2, 0xB4, 0x83, 0xE2, 0xB4, 0x84, - 0xE2, 0xB4, 0x85, 0xE2, 0xB4, 0x86, 0xE2, 0xB4, - 0x87, 0xE2, 0xB4, 0x88, 0xE2, 0xB4, 0x89, 0xE2, - 0xB4, 0x8A, 0xE2, 0xB4, 0x8B, 0xE2, 0xB4, 0x8C, - 0xE2, 0xB4, 0x8D, 0xE2, 0xB4, 0x8E, 0xE2, 0xB4, - 0x8F, 0xE2, 0xB4, 0x90, 0xE2, 0xB4, 0x91, 0xE2, - 0xB4, 0x92, 0xE2, 0xB4, 0x93, 0xE2, 0xB4, 0x94, - 0xE2, 0xB4, 0x95, 0xE2, 0xB4, 0x96, 0xE2, 0xB4, - 0x97, 0xE2, 0xB4, 0x98, 0xE2, 0xB4, 0x99, 0xE2, - 0xB4, 0x9A, 0xE2, 0xB4, 0x9B, 0xE2, 0xB4, 0x9C, - 0xE2, 0xB4, 0x9D, 0xE2, 0xB4, 0x9E, 0xE2, 0xB4, - 0x9F, 0xE2, 0xB4, 0xA0, 0xE2, 0xB4, 0xA1, 0xE2, - 0xB4, 0xA2, 0xE2, 0xB4, 0xA3, 0xE2, 0xB4, 0xA4, - 0xE2, 0xB4, 0xA5, 0xE1, 0xB8, 0x81, 0xE1, 0xB8, - 0x83, 0xE1, 0xB8, 0x85, 0xE1, 0xB8, 0x87, 0xE1, - 0xB8, 0x89, 0xE1, 0xB8, 0x8B, 0xE1, 0xB8, 0x8D, - 0xE1, 0xB8, 0x8F, 0xE1, 0xB8, 0x91, 0xE1, 0xB8, - 0x93, 0xE1, 0xB8, 0x95, 0xE1, 0xB8, 0x97, 0xE1, - 0xB8, 0x99, 0xE1, 0xB8, 0x9B, 0xE1, 0xB8, 0x9D, - 0xE1, 0xB8, 0x9F, 0xE1, 0xB8, 0xA1, 0xE1, 0xB8, - 0xA3, 0xE1, 0xB8, 0xA5, 0xE1, 0xB8, 0xA7, 0xE1, - 0xB8, 0xA9, 0xE1, 0xB8, 0xAB, 0xE1, 0xB8, 0xAD, - 0xE1, 0xB8, 0xAF, 0xE1, 0xB8, 0xB1, 0xE1, 0xB8, - 0xB3, 0xE1, 0xB8, 0xB5, 0xE1, 0xB8, 0xB7, 0xE1, - 0xB8, 0xB9, 0xE1, 0xB8, 0xBB, 0xE1, 0xB8, 0xBD, - 0xE1, 0xB8, 0xBF, 0xE1, 0xB9, 0x81, 0xE1, 0xB9, - 0x83, 0xE1, 0xB9, 0x85, 0xE1, 0xB9, 0x87, 0xE1, - 0xB9, 0x89, 0xE1, 0xB9, 0x8B, 0xE1, 0xB9, 0x8D, - 0xE1, 0xB9, 0x8F, 0xE1, 0xB9, 0x91, 0xE1, 0xB9, - 0x93, 0xE1, 0xB9, 0x95, 0xE1, 0xB9, 0x97, 0xE1, - 0xB9, 0x99, 0xE1, 0xB9, 0x9B, 0xE1, 0xB9, 0x9D, - 0xE1, 0xB9, 0x9F, 0xE1, 0xB9, 0xA1, 0xE1, 0xB9, - 0xA3, 0xE1, 0xB9, 0xA5, 0xE1, 0xB9, 0xA7, 0xE1, - 0xB9, 0xA9, 0xE1, 0xB9, 0xAB, 0xE1, 0xB9, 0xAD, - 0xE1, 0xB9, 0xAF, 0xE1, 0xB9, 0xB1, 0xE1, 0xB9, - 0xB3, 0xE1, 0xB9, 0xB5, 0xE1, 0xB9, 0xB7, 0xE1, - 0xB9, 0xB9, 0xE1, 0xB9, 0xBB, 0xE1, 0xB9, 0xBD, - 0xE1, 0xB9, 0xBF, 0xE1, 0xBA, 0x81, 0xE1, 0xBA, - 0x83, 0xE1, 0xBA, 0x85, 0xE1, 0xBA, 0x87, 0xE1, - 0xBA, 0x89, 0xE1, 0xBA, 0x8B, 0xE1, 0xBA, 0x8D, - 0xE1, 0xBA, 0x8F, 0xE1, 0xBA, 0x91, 0xE1, 0xBA, - 0x93, 0xE1, 0xBA, 0x95, 0xE1, 0xBA, 0xA1, 0xE1, - 0xBA, 0xA3, 0xE1, 0xBA, 0xA5, 0xE1, 0xBA, 0xA7, - 0xE1, 0xBA, 0xA9, 0xE1, 0xBA, 0xAB, 0xE1, 0xBA, - 0xAD, 0xE1, 0xBA, 0xAF, 0xE1, 0xBA, 0xB1, 0xE1, - 0xBA, 0xB3, 0xE1, 0xBA, 0xB5, 0xE1, 0xBA, 0xB7, - 0xE1, 0xBA, 0xB9, 0xE1, 0xBA, 0xBB, 0xE1, 0xBA, - 0xBD, 0xE1, 0xBA, 0xBF, 0xE1, 0xBB, 0x81, 0xE1, - 0xBB, 0x83, 0xE1, 0xBB, 0x85, 0xE1, 0xBB, 0x87, - 0xE1, 0xBB, 0x89, 0xE1, 0xBB, 0x8B, 0xE1, 0xBB, - 0x8D, 0xE1, 0xBB, 0x8F, 0xE1, 0xBB, 0x91, 0xE1, - 0xBB, 0x93, 0xE1, 0xBB, 0x95, 0xE1, 0xBB, 0x97, - 0xE1, 0xBB, 0x99, 0xE1, 0xBB, 0x9B, 0xE1, 0xBB, - 0x9D, 0xE1, 0xBB, 0x9F, 0xE1, 0xBB, 0xA1, 0xE1, - 0xBB, 0xA3, 0xE1, 0xBB, 0xA5, 0xE1, 0xBB, 0xA7, - 0xE1, 0xBB, 0xA9, 0xE1, 0xBB, 0xAB, 0xE1, 0xBB, - 0xAD, 0xE1, 0xBB, 0xAF, 0xE1, 0xBB, 0xB1, 0xE1, - 0xBB, 0xB3, 0xE1, 0xBB, 0xB5, 0xE1, 0xBB, 0xB7, - 0xE1, 0xBB, 0xB9, 0xE1, 0xBC, 0x80, 0xE1, 0xBC, - 0x81, 0xE1, 0xBC, 0x82, 0xE1, 0xBC, 0x83, 0xE1, - 0xBC, 0x84, 0xE1, 0xBC, 0x85, 0xE1, 0xBC, 0x86, - 0xE1, 0xBC, 0x87, 0xE1, 0xBC, 0x90, 0xE1, 0xBC, - 0x91, 0xE1, 0xBC, 0x92, 0xE1, 0xBC, 0x93, 0xE1, - 0xBC, 0x94, 0xE1, 0xBC, 0x95, 0xE1, 0xBC, 0xA0, - 0xE1, 0xBC, 0xA1, 0xE1, 0xBC, 0xA2, 0xE1, 0xBC, - 0xA3, 0xE1, 0xBC, 0xA4, 0xE1, 0xBC, 0xA5, 0xE1, - 0xBC, 0xA6, 0xE1, 0xBC, 0xA7, 0xE1, 0xBC, 0xB0, - 0xE1, 0xBC, 0xB1, 0xE1, 0xBC, 0xB2, 0xE1, 0xBC, - 0xB3, 0xE1, 0xBC, 0xB4, 0xE1, 0xBC, 0xB5, 0xE1, - 0xBC, 0xB6, 0xE1, 0xBC, 0xB7, 0xE1, 0xBD, 0x80, - 0xE1, 0xBD, 0x81, 0xE1, 0xBD, 0x82, 0xE1, 0xBD, - 0x83, 0xE1, 0xBD, 0x84, 0xE1, 0xBD, 0x85, 0xE1, - 0xBD, 0x91, 0xE1, 0xBD, 0x93, 0xE1, 0xBD, 0x95, - 0xE1, 0xBD, 0x97, 0xE1, 0xBD, 0xA0, 0xE1, 0xBD, - 0xA1, 0xE1, 0xBD, 0xA2, 0xE1, 0xBD, 0xA3, 0xE1, - 0xBD, 0xA4, 0xE1, 0xBD, 0xA5, 0xE1, 0xBD, 0xA6, - 0xE1, 0xBD, 0xA7, 0xE1, 0xBE, 0x80, 0xE1, 0xBE, - 0x81, 0xE1, 0xBE, 0x82, 0xE1, 0xBE, 0x83, 0xE1, - 0xBE, 0x84, 0xE1, 0xBE, 0x85, 0xE1, 0xBE, 0x86, - 0xE1, 0xBE, 0x87, 0xE1, 0xBE, 0x90, 0xE1, 0xBE, - 0x91, 0xE1, 0xBE, 0x92, 0xE1, 0xBE, 0x93, 0xE1, - 0xBE, 0x94, 0xE1, 0xBE, 0x95, 0xE1, 0xBE, 0x96, - 0xE1, 0xBE, 0x97, 0xE1, 0xBE, 0xA0, 0xE1, 0xBE, - 0xA1, 0xE1, 0xBE, 0xA2, 0xE1, 0xBE, 0xA3, 0xE1, - 0xBE, 0xA4, 0xE1, 0xBE, 0xA5, 0xE1, 0xBE, 0xA6, - 0xE1, 0xBE, 0xA7, 0xE1, 0xBE, 0xB0, 0xE1, 0xBE, - 0xB1, 0xE1, 0xBD, 0xB0, 0xE1, 0xBD, 0xB1, 0xE1, - 0xBE, 0xB3, 0xE1, 0xBD, 0xB2, 0xE1, 0xBD, 0xB3, - 0xE1, 0xBD, 0xB4, 0xE1, 0xBD, 0xB5, 0xE1, 0xBF, - 0x83, 0xE1, 0xBF, 0x90, 0xE1, 0xBF, 0x91, 0xE1, - 0xBD, 0xB6, 0xE1, 0xBD, 0xB7, 0xE1, 0xBF, 0xA0, - 0xE1, 0xBF, 0xA1, 0xE1, 0xBD, 0xBA, 0xE1, 0xBD, - 0xBB, 0xE1, 0xBF, 0xA5, 0xE1, 0xBD, 0xB8, 0xE1, - 0xBD, 0xB9, 0xE1, 0xBD, 0xBC, 0xE1, 0xBD, 0xBD, - 0xE1, 0xBF, 0xB3, 0xCF, 0x89, 0x6B, 0xC3, 0xA5, - 0xE2, 0x85, 0x8E, 0xE2, 0x85, 0xB0, 0xE2, 0x85, - 0xB1, 0xE2, 0x85, 0xB2, 0xE2, 0x85, 0xB3, 0xE2, - 0x85, 0xB4, 0xE2, 0x85, 0xB5, 0xE2, 0x85, 0xB6, - 0xE2, 0x85, 0xB7, 0xE2, 0x85, 0xB8, 0xE2, 0x85, - 0xB9, 0xE2, 0x85, 0xBA, 0xE2, 0x85, 0xBB, 0xE2, - 0x85, 0xBC, 0xE2, 0x85, 0xBD, 0xE2, 0x85, 0xBE, - 0xE2, 0x85, 0xBF, 0xE2, 0x86, 0x84, 0xE2, 0x93, - 0x90, 0xE2, 0x93, 0x91, 0xE2, 0x93, 0x92, 0xE2, - 0x93, 0x93, 0xE2, 0x93, 0x94, 0xE2, 0x93, 0x95, - 0xE2, 0x93, 0x96, 0xE2, 0x93, 0x97, 0xE2, 0x93, - 0x98, 0xE2, 0x93, 0x99, 0xE2, 0x93, 0x9A, 0xE2, - 0x93, 0x9B, 0xE2, 0x93, 0x9C, 0xE2, 0x93, 0x9D, - 0xE2, 0x93, 0x9E, 0xE2, 0x93, 0x9F, 0xE2, 0x93, - 0xA0, 0xE2, 0x93, 0xA1, 0xE2, 0x93, 0xA2, 0xE2, - 0x93, 0xA3, 0xE2, 0x93, 0xA4, 0xE2, 0x93, 0xA5, - 0xE2, 0x93, 0xA6, 0xE2, 0x93, 0xA7, 0xE2, 0x93, - 0xA8, 0xE2, 0x93, 0xA9, 0xE2, 0xB0, 0xB0, 0xE2, - 0xB0, 0xB1, 0xE2, 0xB0, 0xB2, 0xE2, 0xB0, 0xB3, - 0xE2, 0xB0, 0xB4, 0xE2, 0xB0, 0xB5, 0xE2, 0xB0, - 0xB6, 0xE2, 0xB0, 0xB7, 0xE2, 0xB0, 0xB8, 0xE2, - 0xB0, 0xB9, 0xE2, 0xB0, 0xBA, 0xE2, 0xB0, 0xBB, - 0xE2, 0xB0, 0xBC, 0xE2, 0xB0, 0xBD, 0xE2, 0xB0, - 0xBE, 0xE2, 0xB0, 0xBF, 0xE2, 0xB1, 0x80, 0xE2, - 0xB1, 0x81, 0xE2, 0xB1, 0x82, 0xE2, 0xB1, 0x83, - 0xE2, 0xB1, 0x84, 0xE2, 0xB1, 0x85, 0xE2, 0xB1, - 0x86, 0xE2, 0xB1, 0x87, 0xE2, 0xB1, 0x88, 0xE2, - 0xB1, 0x89, 0xE2, 0xB1, 0x8A, 0xE2, 0xB1, 0x8B, - 0xE2, 0xB1, 0x8C, 0xE2, 0xB1, 0x8D, 0xE2, 0xB1, - 0x8E, 0xE2, 0xB1, 0x8F, 0xE2, 0xB1, 0x90, 0xE2, - 0xB1, 0x91, 0xE2, 0xB1, 0x92, 0xE2, 0xB1, 0x93, - 0xE2, 0xB1, 0x94, 0xE2, 0xB1, 0x95, 0xE2, 0xB1, - 0x96, 0xE2, 0xB1, 0x97, 0xE2, 0xB1, 0x98, 0xE2, - 0xB1, 0x99, 0xE2, 0xB1, 0x9A, 0xE2, 0xB1, 0x9B, - 0xE2, 0xB1, 0x9C, 0xE2, 0xB1, 0x9D, 0xE2, 0xB1, - 0x9E, 0xE2, 0xB1, 0xA1, 0xC9, 0xAB, 0xE1, 0xB5, - 0xBD, 0xC9, 0xBD, 0xE2, 0xB1, 0xA8, 0xE2, 0xB1, - 0xAA, 0xE2, 0xB1, 0xAC, 0xE2, 0xB1, 0xB6, 0xE2, - 0xB2, 0x81, 0xE2, 0xB2, 0x83, 0xE2, 0xB2, 0x85, - 0xE2, 0xB2, 0x87, 0xE2, 0xB2, 0x89, 0xE2, 0xB2, - 0x8B, 0xE2, 0xB2, 0x8D, 0xE2, 0xB2, 0x8F, 0xE2, - 0xB2, 0x91, 0xE2, 0xB2, 0x93, 0xE2, 0xB2, 0x95, - 0xE2, 0xB2, 0x97, 0xE2, 0xB2, 0x99, 0xE2, 0xB2, - 0x9B, 0xE2, 0xB2, 0x9D, 0xE2, 0xB2, 0x9F, 0xE2, - 0xB2, 0xA1, 0xE2, 0xB2, 0xA3, 0xE2, 0xB2, 0xA5, - 0xE2, 0xB2, 0xA7, 0xE2, 0xB2, 0xA9, 0xE2, 0xB2, - 0xAB, 0xE2, 0xB2, 0xAD, 0xE2, 0xB2, 0xAF, 0xE2, - 0xB2, 0xB1, 0xE2, 0xB2, 0xB3, 0xE2, 0xB2, 0xB5, - 0xE2, 0xB2, 0xB7, 0xE2, 0xB2, 0xB9, 0xE2, 0xB2, - 0xBB, 0xE2, 0xB2, 0xBD, 0xE2, 0xB2, 0xBF, 0xE2, - 0xB3, 0x81, 0xE2, 0xB3, 0x83, 0xE2, 0xB3, 0x85, - 0xE2, 0xB3, 0x87, 0xE2, 0xB3, 0x89, 0xE2, 0xB3, - 0x8B, 0xE2, 0xB3, 0x8D, 0xE2, 0xB3, 0x8F, 0xE2, - 0xB3, 0x91, 0xE2, 0xB3, 0x93, 0xE2, 0xB3, 0x95, - 0xE2, 0xB3, 0x97, 0xE2, 0xB3, 0x99, 0xE2, 0xB3, - 0x9B, 0xE2, 0xB3, 0x9D, 0xE2, 0xB3, 0x9F, 0xE2, - 0xB3, 0xA1, 0xE2, 0xB3, 0xA3, 0xEF, 0xBD, 0x81, - 0xEF, 0xBD, 0x82, 0xEF, 0xBD, 0x83, 0xEF, 0xBD, - 0x84, 0xEF, 0xBD, 0x85, 0xEF, 0xBD, 0x86, 0xEF, - 0xBD, 0x87, 0xEF, 0xBD, 0x88, 0xEF, 0xBD, 0x89, - 0xEF, 0xBD, 0x8A, 0xEF, 0xBD, 0x8B, 0xEF, 0xBD, - 0x8C, 0xEF, 0xBD, 0x8D, 0xEF, 0xBD, 0x8E, 0xEF, - 0xBD, 0x8F, 0xEF, 0xBD, 0x90, 0xEF, 0xBD, 0x91, - 0xEF, 0xBD, 0x92, 0xEF, 0xBD, 0x93, 0xEF, 0xBD, - 0x94, 0xEF, 0xBD, 0x95, 0xEF, 0xBD, 0x96, 0xEF, - 0xBD, 0x97, 0xEF, 0xBD, 0x98, 0xEF, 0xBD, 0x99, - 0xEF, 0xBD, 0x9A, 0xF0, 0x90, 0x90, 0xA8, 0xF0, - 0x90, 0x90, 0xA9, 0xF0, 0x90, 0x90, 0xAA, 0xF0, - 0x90, 0x90, 0xAB, 0xF0, 0x90, 0x90, 0xAC, 0xF0, - 0x90, 0x90, 0xAD, 0xF0, 0x90, 0x90, 0xAE, 0xF0, - 0x90, 0x90, 0xAF, 0xF0, 0x90, 0x90, 0xB0, 0xF0, - 0x90, 0x90, 0xB1, 0xF0, 0x90, 0x90, 0xB2, 0xF0, - 0x90, 0x90, 0xB3, 0xF0, 0x90, 0x90, 0xB4, 0xF0, - 0x90, 0x90, 0xB5, 0xF0, 0x90, 0x90, 0xB6, 0xF0, - 0x90, 0x90, 0xB7, 0xF0, 0x90, 0x90, 0xB8, 0xF0, - 0x90, 0x90, 0xB9, 0xF0, 0x90, 0x90, 0xBA, 0xF0, - 0x90, 0x90, 0xBB, 0xF0, 0x90, 0x90, 0xBC, 0xF0, - 0x90, 0x90, 0xBD, 0xF0, 0x90, 0x90, 0xBE, 0xF0, - 0x90, 0x90, 0xBF, 0xF0, 0x90, 0x91, 0x80, 0xF0, - 0x90, 0x91, 0x81, 0xF0, 0x90, 0x91, 0x82, 0xF0, - 0x90, 0x91, 0x83, 0xF0, 0x90, 0x91, 0x84, 0xF0, - 0x90, 0x91, 0x85, 0xF0, 0x90, 0x91, 0x86, 0xF0, - 0x90, 0x91, 0x87, 0xF0, 0x90, 0x91, 0x88, 0xF0, - 0x90, 0x91, 0x89, 0xF0, 0x90, 0x91, 0x8A, 0xF0, - 0x90, 0x91, 0x8B, 0xF0, 0x90, 0x91, 0x8C, 0xF0, - 0x90, 0x91, 0x8D, 0xF0, 0x90, 0x91, 0x8E, 0xF0, - 0x90, 0x91, 0x8F, - }, -}; - -static const u8_displacement_t u8_toupper_b3_tbl[2][5][256] = { - { - { /* Third byte table 0. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 0, 0 }, { 1, 2 }, - { 2, 64 }, { 3, 125 }, { 4, 188 }, { 5, 226 }, - { 6, 288 }, { 7, 338 }, { 8, 364 }, { N_, 0 }, - { N_, 0 }, { 9, 376 }, { 10, 378 }, { 11, 416 }, - { 12, 486 }, { 13, 518 }, { 14, 614 }, { 15, 670 }, - { 16, 724 }, { 17, 740 }, { 18, 802 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 1. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 19, 816 }, { 20, 912 }, { 21, 1008 }, { 22, 1092 }, - { 23, 1179 }, { 24, 1269 }, { 25, 1365 }, { 26, 1448 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 2. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 27, 1469 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { 28, 1517 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 3. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 29, 1595 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 4. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 30, 1673 }, { 31, 1769 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - }, - { - { /* Third byte table 0. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { 0, 0 }, { 1, 2 }, - { 2, 64 }, { 3, 125 }, { 4, 188 }, { 5, 230 }, - { 6, 292 }, { 7, 344 }, { 8, 388 }, { N_, 0 }, - { N_, 0 }, { 9, 404 }, { 10, 412 }, { 11, 450 }, - { 12, 524 }, { 13, 556 }, { 14, 652 }, { 15, 708 }, - { 16, 772 }, { 17, 792 }, { 18, 854 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 1. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 19, 868 }, { N_, 0 }, { N_, 0 }, - { 20, 871 }, { 21, 967 }, { 22, 1063 }, { 23, 1147 }, - { 24, 1234 }, { 25, 1324 }, { 26, 1420 }, { 27, 1503 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 2. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 28, 1524 }, { 29, 1575 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { 30, 1578 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 31, 1656 }, { 32, 1704 }, { 33, 1816 }, { 34, 1912 }, - { 35, 1966 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 3. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { 36, 2080 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - { /* Third byte table 4. */ - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { 37, 2158 }, { 38, 2254 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - { N_, 0 }, { N_, 0 }, { N_, 0 }, { N_, 0 }, - }, - }, -}; - -static const uchar_t u8_toupper_b4_tbl[2][39][257] = { - { - { /* Fourth byte table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, - }, - { /* Fourth byte table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 46, 48, 50, 52, 54, 56, 58, 60, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, - }, - { /* Fourth byte table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 4, 4, 6, 6, - 8, 8, 10, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 30, 30, - 32, 32, 34, 34, 36, 36, 38, 38, - 40, 40, 42, 42, 44, 44, 46, 46, - 48, 48, 49, 49, 51, 51, 53, 53, - 55, 55, 55, 57, 57, 59, 59, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, - }, - { /* Fourth byte table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 30, 30, - 32, 32, 34, 34, 36, 36, 38, 38, - 40, 40, 42, 42, 44, 44, 46, 46, - 48, 48, 50, 50, 52, 52, 54, 54, - 56, 56, 56, 58, 58, 60, 60, 62, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, - }, - { /* Fourth byte table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 4, 4, - 4, 6, 6, 6, 6, 8, 8, 8, - 8, 8, 8, 10, 10, 10, 12, 12, - 12, 12, 14, 14, 14, 14, 14, 16, - 16, 16, 18, 18, 20, 20, 22, 22, - 22, 24, 24, 24, 24, 24, 26, 26, - 26, 28, 28, 28, 28, 30, 30, 32, - 32, 32, 34, 34, 34, 34, 36, 36, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, - }, - { /* Fourth byte table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 4, - 4, 6, 8, 8, 10, 12, 12, 14, - 14, 16, 16, 18, 18, 20, 20, 22, - 22, 24, 24, 26, 26, 28, 30, 30, - 32, 32, 34, 34, 36, 36, 38, 38, - 40, 40, 42, 42, 44, 44, 46, 46, - 48, 48, 48, 50, 52, 52, 54, 54, - 54, 54, 56, 56, 58, 58, 60, 60, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, - }, - { /* Fourth byte table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 4, 4, 6, 6, - 8, 8, 10, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 30, 30, - 32, 32, 32, 32, 34, 34, 36, 36, - 38, 38, 40, 40, 42, 42, 44, 44, - 46, 46, 48, 48, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, - 50, - }, - { /* Fourth byte table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 4, 4, 6, - 8, 8, 10, 10, 12, 12, 12, 12, - 12, 14, 14, 14, 16, 16, 16, 16, - 16, 18, 20, 20, 20, 20, 20, 20, - 22, 22, 22, 24, 24, 24, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, - 26, - }, - { /* Fourth byte table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 2, 4, 4, 4, 4, - 4, 6, 6, 8, 10, 10, 10, 10, - 10, 10, 10, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, - }, - { /* Fourth byte table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, - }, - { /* Fourth byte table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 4, 6, - 8, 8, 10, 12, 14, 16, 18, 20, - 22, 24, 26, 28, 30, 32, 34, 36, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, - }, - { /* Fourth byte table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 30, 32, 34, 34, 34, 34, 36, 38, - 38, 38, 40, 40, 42, 42, 44, 44, - 46, 46, 48, 48, 50, 50, 52, 52, - 54, 54, 56, 56, 58, 58, 60, 60, - 62, 64, 66, 68, 68, 68, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, - 70, - }, - { /* Fourth byte table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, - }, - { /* Fourth byte table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 64, 66, 66, 68, 68, 70, 70, - 72, 72, 74, 74, 76, 76, 78, 78, - 80, 80, 82, 82, 84, 84, 86, 86, - 88, 88, 90, 90, 92, 92, 94, 94, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 4, 4, 6, 6, - 8, 8, 10, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 30, 30, - 32, 32, 34, 34, 36, 36, 38, 38, - 40, 40, 42, 42, 44, 44, 46, 46, - 48, 48, 50, 50, 52, 52, 54, 54, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, - }, - { /* Fourth byte table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 4, 4, 6, - 6, 8, 8, 10, 10, 12, 12, 14, - 14, 14, 16, 16, 18, 18, 20, 20, - 22, 22, 24, 24, 26, 26, 28, 28, - 30, 30, 32, 32, 34, 34, 36, 36, - 38, 38, 40, 40, 42, 42, 44, 44, - 46, 46, 48, 48, 50, 50, 52, 52, - 52, 52, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, - }, - { /* Fourth byte table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 4, 4, 6, 6, - 8, 8, 10, 10, 12, 12, 14, 14, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, - }, - { /* Fourth byte table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 4, 6, 8, 10, 12, - 14, 16, 18, 20, 22, 24, 26, 28, - 30, 32, 34, 36, 38, 40, 42, 44, - 46, 48, 50, 52, 54, 56, 58, 60, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, - }, - { /* Fourth byte table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, - }, - { /* Fourth byte table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 6, 6, 9, 9, - 12, 12, 15, 15, 18, 18, 21, 21, - 24, 24, 27, 27, 30, 30, 33, 33, - 36, 36, 39, 39, 42, 42, 45, 45, - 48, 48, 51, 51, 54, 54, 57, 57, - 60, 60, 63, 63, 66, 66, 69, 69, - 72, 72, 75, 75, 78, 78, 81, 81, - 84, 84, 87, 87, 90, 90, 93, 93, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 6, 6, 9, 9, - 12, 12, 15, 15, 18, 18, 21, 21, - 24, 24, 27, 27, 30, 30, 33, 33, - 36, 36, 39, 39, 42, 42, 45, 45, - 48, 48, 51, 51, 54, 54, 57, 57, - 60, 60, 63, 63, 66, 66, 69, 69, - 72, 72, 75, 75, 78, 78, 81, 81, - 84, 84, 87, 87, 90, 90, 93, 93, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 6, 6, 9, 9, - 12, 12, 15, 15, 18, 18, 21, 21, - 24, 24, 27, 27, 30, 30, 33, 33, - 33, 33, 33, 33, 36, 36, 36, 36, - 36, 36, 39, 39, 42, 42, 45, 45, - 48, 48, 51, 51, 54, 54, 57, 57, - 60, 60, 63, 63, 66, 66, 69, 69, - 72, 72, 75, 75, 78, 78, 81, 81, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, - }, - { /* Fourth byte table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 6, 6, 9, 9, - 12, 12, 15, 15, 18, 18, 21, 21, - 24, 24, 27, 27, 30, 30, 33, 33, - 36, 36, 39, 39, 42, 42, 45, 45, - 48, 48, 51, 51, 54, 54, 57, 57, - 60, 60, 63, 63, 66, 66, 69, 69, - 72, 72, 75, 75, 78, 78, 81, 81, - 84, 84, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, - }, - { /* Fourth byte table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 27, 30, 33, 36, 39, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 45, 48, 51, 54, 57, 60, 63, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 69, 72, 75, 78, 81, 84, 87, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, - }, - { /* Fourth byte table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 21, 21, 24, 24, 27, 27, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 33, 36, 39, 42, 45, 48, 51, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 57, 60, 63, 66, 69, 72, 75, - 78, 81, 84, 87, 90, 93, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 75, 78, 78, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, - }, - { /* Fourth byte table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 6, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 12, 15, 15, 15, 15, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, - }, - { /* Fourth byte table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, - }, - { /* Fourth byte table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 6, 9, 12, 15, 18, - 21, 24, 27, 30, 33, 36, 39, 42, - 45, 48, 51, 54, 57, 60, 63, 66, - 69, 72, 75, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, - }, - { /* Fourth byte table 30. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 31. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, - }, - { /* Fourth byte table 32. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 33. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 34. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 35. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 36. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 37. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - { /* Fourth byte table 38. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, - }, - }, - { - { /* Fourth byte table 0. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, - }, - { /* Fourth byte table 1. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 46, 48, 50, 52, 54, 56, 58, 60, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, - }, - { /* Fourth byte table 2. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 4, 4, 6, 6, - 8, 8, 10, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 30, 30, - 32, 32, 34, 34, 36, 36, 38, 38, - 40, 40, 42, 42, 44, 44, 46, 46, - 48, 48, 49, 49, 51, 51, 53, 53, - 55, 55, 55, 57, 57, 59, 59, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 61, 61, 61, - 61, - }, - { /* Fourth byte table 3. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 4, 4, 6, 6, 8, - 8, 10, 10, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 30, 30, - 32, 32, 34, 34, 36, 36, 38, 38, - 40, 40, 42, 42, 44, 44, 46, 46, - 48, 48, 50, 50, 52, 52, 54, 54, - 56, 56, 56, 58, 58, 60, 60, 62, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63, 63, - 63, - }, - { /* Fourth byte table 4. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 2, 4, 4, 6, 6, - 6, 8, 8, 8, 8, 10, 10, 10, - 10, 10, 10, 12, 12, 12, 14, 14, - 14, 14, 16, 18, 18, 18, 18, 20, - 20, 20, 22, 22, 24, 24, 26, 26, - 26, 28, 28, 28, 28, 28, 30, 30, - 30, 32, 32, 32, 32, 34, 34, 36, - 36, 36, 38, 38, 38, 38, 40, 40, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, - }, - { /* Fourth byte table 5. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 4, - 4, 6, 8, 8, 10, 12, 12, 14, - 14, 16, 16, 18, 18, 20, 20, 22, - 22, 24, 24, 26, 26, 28, 30, 30, - 32, 32, 34, 34, 36, 36, 38, 38, - 40, 40, 42, 42, 44, 44, 46, 46, - 48, 48, 48, 50, 52, 52, 54, 54, - 54, 54, 56, 56, 58, 58, 60, 60, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, - }, - { /* Fourth byte table 6. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 4, 4, 6, 6, - 8, 8, 10, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 30, 30, - 32, 32, 32, 32, 34, 34, 36, 36, - 38, 38, 40, 40, 42, 42, 44, 44, - 46, 46, 48, 48, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, - 52, - }, - { /* Fourth byte table 7. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 2, 2, 2, - 4, 4, 6, 6, 8, 8, 10, 10, - 12, 12, 12, 12, 14, 16, 16, 18, - 20, 20, 22, 22, 24, 24, 24, 24, - 24, 26, 26, 26, 28, 28, 28, 28, - 28, 30, 32, 32, 35, 35, 35, 35, - 37, 37, 37, 39, 39, 39, 41, 41, - 41, 41, 41, 41, 41, 41, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, 44, 44, 44, 44, 44, 44, 44, - 44, - }, - { /* Fourth byte table 8. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 2, 4, 4, 4, 4, - 4, 6, 8, 10, 12, 14, 14, 14, - 14, 14, 14, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, - 16, - }, - { /* Fourth byte table 9. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 4, 6, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, - 8, - }, - { /* Fourth byte table 10. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 4, 6, - 8, 8, 10, 12, 14, 16, 18, 20, - 22, 24, 26, 28, 30, 32, 34, 36, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, 38, 38, 38, 38, 38, 38, 38, - 38, - }, - { /* Fourth byte table 11. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 30, 32, 34, 34, 34, 34, 36, 38, - 38, 38, 40, 40, 42, 42, 44, 44, - 46, 46, 48, 48, 50, 50, 52, 52, - 54, 54, 56, 56, 58, 58, 60, 60, - 62, 64, 66, 68, 68, 68, 70, 70, - 70, 72, 72, 72, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, - 74, - }, - { /* Fourth byte table 12. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, - 32, - }, - { /* Fourth byte table 13. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 54, 56, 58, 60, 62, - 64, 64, 66, 66, 68, 68, 70, 70, - 72, 72, 74, 74, 76, 76, 78, 78, - 80, 80, 82, 82, 84, 84, 86, 86, - 88, 88, 90, 90, 92, 92, 94, 94, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 14. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 4, 4, 6, 6, - 8, 8, 10, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 30, 30, - 32, 32, 34, 34, 36, 36, 38, 38, - 40, 40, 42, 42, 44, 44, 46, 46, - 48, 48, 50, 50, 52, 52, 54, 54, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, 56, 56, 56, 56, 56, 56, 56, - 56, - }, - { /* Fourth byte table 15. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 4, 4, 6, - 6, 8, 8, 10, 10, 12, 12, 14, - 16, 16, 18, 18, 20, 20, 22, 22, - 24, 24, 26, 26, 28, 28, 30, 30, - 32, 32, 34, 34, 36, 36, 38, 38, - 40, 40, 42, 42, 44, 44, 46, 46, - 48, 48, 50, 50, 52, 52, 54, 54, - 56, 56, 58, 58, 60, 60, 62, 62, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - { /* Fourth byte table 16. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 4, 4, 6, 6, - 8, 8, 10, 10, 12, 12, 14, 14, - 16, 16, 18, 18, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, - 20, - }, - { /* Fourth byte table 17. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 4, 6, 8, 10, 12, - 14, 16, 18, 20, 22, 24, 26, 28, - 30, 32, 34, 36, 38, 40, 42, 44, - 46, 48, 50, 52, 54, 56, 58, 60, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, - 62, - }, - { /* Fourth byte table 18. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, - 14, - }, - { /* Fourth byte table 19. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 20. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 6, 6, 9, 9, - 12, 12, 15, 15, 18, 18, 21, 21, - 24, 24, 27, 27, 30, 30, 33, 33, - 36, 36, 39, 39, 42, 42, 45, 45, - 48, 48, 51, 51, 54, 54, 57, 57, - 60, 60, 63, 63, 66, 66, 69, 69, - 72, 72, 75, 75, 78, 78, 81, 81, - 84, 84, 87, 87, 90, 90, 93, 93, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 21. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 6, 6, 9, 9, - 12, 12, 15, 15, 18, 18, 21, 21, - 24, 24, 27, 27, 30, 30, 33, 33, - 36, 36, 39, 39, 42, 42, 45, 45, - 48, 48, 51, 51, 54, 54, 57, 57, - 60, 60, 63, 63, 66, 66, 69, 69, - 72, 72, 75, 75, 78, 78, 81, 81, - 84, 84, 87, 87, 90, 90, 93, 93, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 22. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 6, 6, 9, 9, - 12, 12, 15, 15, 18, 18, 21, 21, - 24, 24, 27, 27, 30, 30, 33, 33, - 33, 33, 33, 33, 36, 36, 36, 36, - 36, 36, 39, 39, 42, 42, 45, 45, - 48, 48, 51, 51, 54, 54, 57, 57, - 60, 60, 63, 63, 66, 66, 69, 69, - 72, 72, 75, 75, 78, 78, 81, 81, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, 84, 84, 84, 84, 84, 84, 84, - 84, - }, - { /* Fourth byte table 23. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 6, 6, 9, 9, - 12, 12, 15, 15, 18, 18, 21, 21, - 24, 24, 27, 27, 30, 30, 33, 33, - 36, 36, 39, 39, 42, 42, 45, 45, - 48, 48, 51, 51, 54, 54, 57, 57, - 60, 60, 63, 63, 66, 66, 69, 69, - 72, 72, 75, 75, 78, 78, 81, 81, - 84, 84, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, 87, 87, 87, 87, 87, 87, 87, - 87, - }, - { /* Fourth byte table 24. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 27, 30, 33, 36, 39, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, - 42, 45, 48, 51, 54, 57, 60, 63, - 66, 66, 66, 66, 66, 66, 66, 66, - 66, 69, 72, 75, 78, 81, 84, 87, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, 90, 90, 90, 90, 90, 90, 90, - 90, - }, - { /* Fourth byte table 25. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 21, 21, 24, 24, 27, 27, - 30, 30, 30, 30, 30, 30, 30, 30, - 30, 33, 36, 39, 42, 45, 48, 51, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 57, 60, 63, 66, 69, 72, 75, - 78, 81, 84, 87, 90, 93, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 26. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 24, 24, 24, 24, 24, 24, 24, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 72, 72, 72, 72, 72, 72, 72, - 72, 75, 78, 78, 81, 81, 81, 81, - 81, 81, 81, 81, 81, 81, 81, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 83, 83, - 83, - }, - { /* Fourth byte table 27. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 6, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 12, 15, 15, 15, 15, 18, 18, - 18, 18, 18, 18, 18, 18, 18, 18, - 18, 18, 18, 18, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 21, 21, - 21, - }, - { /* Fourth byte table 28. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 6, 9, 12, 15, 18, 21, 24, - 27, 30, 33, 36, 39, 42, 45, 48, - 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 51, 51, - 51, - }, - { /* Fourth byte table 29. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, - }, - { /* Fourth byte table 30. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, - }, - { /* Fourth byte table 31. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 48, 48, 48, 48, 48, 48, - 48, - }, - { /* Fourth byte table 32. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 93, 93, 96, 96, 96, 96, 98, 100, - 100, 103, 103, 106, 106, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 109, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, 112, 112, 112, 112, 112, 112, 112, - 112, - }, - { /* Fourth byte table 33. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 6, 6, 9, 9, - 12, 12, 15, 15, 18, 18, 21, 21, - 24, 24, 27, 27, 30, 30, 33, 33, - 36, 36, 39, 39, 42, 42, 45, 45, - 48, 48, 51, 51, 54, 54, 57, 57, - 60, 60, 63, 63, 66, 66, 69, 69, - 72, 72, 75, 75, 78, 78, 81, 81, - 84, 84, 87, 87, 90, 90, 93, 93, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 34. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 6, 6, 9, 9, - 12, 12, 15, 15, 18, 18, 21, 21, - 24, 24, 27, 27, 30, 30, 33, 33, - 36, 36, 39, 39, 42, 42, 45, 45, - 48, 48, 51, 51, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 54, 54, 54, 54, - 54, - }, - { /* Fourth byte table 35. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 3, 6, 9, 12, 15, 18, 21, - 24, 27, 30, 33, 36, 39, 42, 45, - 48, 51, 54, 57, 60, 63, 66, 69, - 72, 75, 78, 81, 84, 87, 90, 93, - 96, 99, 102, 105, 108, 111, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, - 114, - }, - { /* Fourth byte table 36. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 6, 9, 12, 15, 18, - 21, 24, 27, 30, 33, 36, 39, 42, - 45, 48, 51, 54, 57, 60, 63, 66, - 69, 72, 75, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, 78, 78, 78, 78, 78, 78, 78, - 78, - }, - { /* Fourth byte table 37. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 68, 72, 76, 80, 84, 88, 92, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, - 96, - }, - { /* Fourth byte table 38. */ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 8, 12, 16, 20, 24, 28, - 32, 36, 40, 44, 48, 52, 56, 60, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, 64, 64, 64, 64, 64, 64, 64, - 64, - }, - }, -}; - -static const uchar_t u8_toupper_final_tbl[2][2318] = { - { - 0xCE, 0x9C, 0xC3, 0x80, 0xC3, 0x81, 0xC3, 0x82, - 0xC3, 0x83, 0xC3, 0x84, 0xC3, 0x85, 0xC3, 0x86, - 0xC3, 0x87, 0xC3, 0x88, 0xC3, 0x89, 0xC3, 0x8A, - 0xC3, 0x8B, 0xC3, 0x8C, 0xC3, 0x8D, 0xC3, 0x8E, - 0xC3, 0x8F, 0xC3, 0x90, 0xC3, 0x91, 0xC3, 0x92, - 0xC3, 0x93, 0xC3, 0x94, 0xC3, 0x95, 0xC3, 0x96, - 0xC3, 0x98, 0xC3, 0x99, 0xC3, 0x9A, 0xC3, 0x9B, - 0xC3, 0x9C, 0xC3, 0x9D, 0xC3, 0x9E, 0xC5, 0xB8, - 0xC4, 0x80, 0xC4, 0x82, 0xC4, 0x84, 0xC4, 0x86, - 0xC4, 0x88, 0xC4, 0x8A, 0xC4, 0x8C, 0xC4, 0x8E, - 0xC4, 0x90, 0xC4, 0x92, 0xC4, 0x94, 0xC4, 0x96, - 0xC4, 0x98, 0xC4, 0x9A, 0xC4, 0x9C, 0xC4, 0x9E, - 0xC4, 0xA0, 0xC4, 0xA2, 0xC4, 0xA4, 0xC4, 0xA6, - 0xC4, 0xA8, 0xC4, 0xAA, 0xC4, 0xAC, 0xC4, 0xAE, - 0x49, 0xC4, 0xB2, 0xC4, 0xB4, 0xC4, 0xB6, 0xC4, - 0xB9, 0xC4, 0xBB, 0xC4, 0xBD, 0xC4, 0xBF, 0xC5, - 0x81, 0xC5, 0x83, 0xC5, 0x85, 0xC5, 0x87, 0xC5, - 0x8A, 0xC5, 0x8C, 0xC5, 0x8E, 0xC5, 0x90, 0xC5, - 0x92, 0xC5, 0x94, 0xC5, 0x96, 0xC5, 0x98, 0xC5, - 0x9A, 0xC5, 0x9C, 0xC5, 0x9E, 0xC5, 0xA0, 0xC5, - 0xA2, 0xC5, 0xA4, 0xC5, 0xA6, 0xC5, 0xA8, 0xC5, - 0xAA, 0xC5, 0xAC, 0xC5, 0xAE, 0xC5, 0xB0, 0xC5, - 0xB2, 0xC5, 0xB4, 0xC5, 0xB6, 0xC5, 0xB9, 0xC5, - 0xBB, 0xC5, 0xBD, 0x53, 0xC6, 0x82, 0xC6, 0x84, - 0xC6, 0x87, 0xC6, 0x8B, 0xC6, 0x91, 0xC7, 0xB6, - 0xC6, 0x98, 0xC8, 0xA0, 0xC6, 0xA0, 0xC6, 0xA2, - 0xC6, 0xA4, 0xC6, 0xA7, 0xC6, 0xAC, 0xC6, 0xAF, - 0xC6, 0xB3, 0xC6, 0xB5, 0xC6, 0xB8, 0xC6, 0xBC, - 0xC7, 0xB7, 0xC7, 0x84, 0xC7, 0x84, 0xC7, 0x87, - 0xC7, 0x87, 0xC7, 0x8A, 0xC7, 0x8A, 0xC7, 0x8D, - 0xC7, 0x8F, 0xC7, 0x91, 0xC7, 0x93, 0xC7, 0x95, - 0xC7, 0x97, 0xC7, 0x99, 0xC7, 0x9B, 0xC6, 0x8E, - 0xC7, 0x9E, 0xC7, 0xA0, 0xC7, 0xA2, 0xC7, 0xA4, - 0xC7, 0xA6, 0xC7, 0xA8, 0xC7, 0xAA, 0xC7, 0xAC, - 0xC7, 0xAE, 0xC7, 0xB1, 0xC7, 0xB1, 0xC7, 0xB4, - 0xC7, 0xB8, 0xC7, 0xBA, 0xC7, 0xBC, 0xC7, 0xBE, - 0xC8, 0x80, 0xC8, 0x82, 0xC8, 0x84, 0xC8, 0x86, - 0xC8, 0x88, 0xC8, 0x8A, 0xC8, 0x8C, 0xC8, 0x8E, - 0xC8, 0x90, 0xC8, 0x92, 0xC8, 0x94, 0xC8, 0x96, - 0xC8, 0x98, 0xC8, 0x9A, 0xC8, 0x9C, 0xC8, 0x9E, - 0xC8, 0xA2, 0xC8, 0xA4, 0xC8, 0xA6, 0xC8, 0xA8, - 0xC8, 0xAA, 0xC8, 0xAC, 0xC8, 0xAE, 0xC8, 0xB0, - 0xC8, 0xB2, 0xC6, 0x81, 0xC6, 0x86, 0xC6, 0x89, - 0xC6, 0x8A, 0xC6, 0x8F, 0xC6, 0x90, 0xC6, 0x93, - 0xC6, 0x94, 0xC6, 0x97, 0xC6, 0x96, 0xC6, 0x9C, - 0xC6, 0x9D, 0xC6, 0x9F, 0xC6, 0xA6, 0xC6, 0xA9, - 0xC6, 0xAE, 0xC6, 0xB1, 0xC6, 0xB2, 0xC6, 0xB7, - 0xCE, 0x99, 0xCE, 0x86, 0xCE, 0x88, 0xCE, 0x89, - 0xCE, 0x8A, 0xCE, 0x91, 0xCE, 0x92, 0xCE, 0x93, - 0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96, 0xCE, 0x97, - 0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A, 0xCE, 0x9B, - 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, 0xCE, 0x9F, - 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0xA3, 0xCE, 0xA3, - 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, 0xCE, 0xA7, - 0xCE, 0xA8, 0xCE, 0xA9, 0xCE, 0xAA, 0xCE, 0xAB, - 0xCE, 0x8C, 0xCE, 0x8E, 0xCE, 0x8F, 0xCE, 0x92, - 0xCE, 0x98, 0xCE, 0xA6, 0xCE, 0xA0, 0xCF, 0x98, - 0xCF, 0x9A, 0xCF, 0x9C, 0xCF, 0x9E, 0xCF, 0xA0, - 0xCF, 0xA2, 0xCF, 0xA4, 0xCF, 0xA6, 0xCF, 0xA8, - 0xCF, 0xAA, 0xCF, 0xAC, 0xCF, 0xAE, 0xCE, 0x9A, - 0xCE, 0xA1, 0xCE, 0xA3, 0xCE, 0x95, 0xD0, 0x90, - 0xD0, 0x91, 0xD0, 0x92, 0xD0, 0x93, 0xD0, 0x94, - 0xD0, 0x95, 0xD0, 0x96, 0xD0, 0x97, 0xD0, 0x98, - 0xD0, 0x99, 0xD0, 0x9A, 0xD0, 0x9B, 0xD0, 0x9C, - 0xD0, 0x9D, 0xD0, 0x9E, 0xD0, 0x9F, 0xD0, 0xA0, - 0xD0, 0xA1, 0xD0, 0xA2, 0xD0, 0xA3, 0xD0, 0xA4, - 0xD0, 0xA5, 0xD0, 0xA6, 0xD0, 0xA7, 0xD0, 0xA8, - 0xD0, 0xA9, 0xD0, 0xAA, 0xD0, 0xAB, 0xD0, 0xAC, - 0xD0, 0xAD, 0xD0, 0xAE, 0xD0, 0xAF, 0xD0, 0x80, - 0xD0, 0x81, 0xD0, 0x82, 0xD0, 0x83, 0xD0, 0x84, - 0xD0, 0x85, 0xD0, 0x86, 0xD0, 0x87, 0xD0, 0x88, - 0xD0, 0x89, 0xD0, 0x8A, 0xD0, 0x8B, 0xD0, 0x8C, - 0xD0, 0x8D, 0xD0, 0x8E, 0xD0, 0x8F, 0xD1, 0xA0, - 0xD1, 0xA2, 0xD1, 0xA4, 0xD1, 0xA6, 0xD1, 0xA8, - 0xD1, 0xAA, 0xD1, 0xAC, 0xD1, 0xAE, 0xD1, 0xB0, - 0xD1, 0xB2, 0xD1, 0xB4, 0xD1, 0xB6, 0xD1, 0xB8, - 0xD1, 0xBA, 0xD1, 0xBC, 0xD1, 0xBE, 0xD2, 0x80, - 0xD2, 0x8A, 0xD2, 0x8C, 0xD2, 0x8E, 0xD2, 0x90, - 0xD2, 0x92, 0xD2, 0x94, 0xD2, 0x96, 0xD2, 0x98, - 0xD2, 0x9A, 0xD2, 0x9C, 0xD2, 0x9E, 0xD2, 0xA0, - 0xD2, 0xA2, 0xD2, 0xA4, 0xD2, 0xA6, 0xD2, 0xA8, - 0xD2, 0xAA, 0xD2, 0xAC, 0xD2, 0xAE, 0xD2, 0xB0, - 0xD2, 0xB2, 0xD2, 0xB4, 0xD2, 0xB6, 0xD2, 0xB8, - 0xD2, 0xBA, 0xD2, 0xBC, 0xD2, 0xBE, 0xD3, 0x81, - 0xD3, 0x83, 0xD3, 0x85, 0xD3, 0x87, 0xD3, 0x89, - 0xD3, 0x8B, 0xD3, 0x8D, 0xD3, 0x90, 0xD3, 0x92, - 0xD3, 0x94, 0xD3, 0x96, 0xD3, 0x98, 0xD3, 0x9A, - 0xD3, 0x9C, 0xD3, 0x9E, 0xD3, 0xA0, 0xD3, 0xA2, - 0xD3, 0xA4, 0xD3, 0xA6, 0xD3, 0xA8, 0xD3, 0xAA, - 0xD3, 0xAC, 0xD3, 0xAE, 0xD3, 0xB0, 0xD3, 0xB2, - 0xD3, 0xB4, 0xD3, 0xB8, 0xD4, 0x80, 0xD4, 0x82, - 0xD4, 0x84, 0xD4, 0x86, 0xD4, 0x88, 0xD4, 0x8A, - 0xD4, 0x8C, 0xD4, 0x8E, 0xD4, 0xB1, 0xD4, 0xB2, - 0xD4, 0xB3, 0xD4, 0xB4, 0xD4, 0xB5, 0xD4, 0xB6, - 0xD4, 0xB7, 0xD4, 0xB8, 0xD4, 0xB9, 0xD4, 0xBA, - 0xD4, 0xBB, 0xD4, 0xBC, 0xD4, 0xBD, 0xD4, 0xBE, - 0xD4, 0xBF, 0xD5, 0x80, 0xD5, 0x81, 0xD5, 0x82, - 0xD5, 0x83, 0xD5, 0x84, 0xD5, 0x85, 0xD5, 0x86, - 0xD5, 0x87, 0xD5, 0x88, 0xD5, 0x89, 0xD5, 0x8A, - 0xD5, 0x8B, 0xD5, 0x8C, 0xD5, 0x8D, 0xD5, 0x8E, - 0xD5, 0x8F, 0xD5, 0x90, 0xD5, 0x91, 0xD5, 0x92, - 0xD5, 0x93, 0xD5, 0x94, 0xD5, 0x95, 0xD5, 0x96, - 0xE1, 0xB8, 0x80, 0xE1, 0xB8, 0x82, 0xE1, 0xB8, - 0x84, 0xE1, 0xB8, 0x86, 0xE1, 0xB8, 0x88, 0xE1, - 0xB8, 0x8A, 0xE1, 0xB8, 0x8C, 0xE1, 0xB8, 0x8E, - 0xE1, 0xB8, 0x90, 0xE1, 0xB8, 0x92, 0xE1, 0xB8, - 0x94, 0xE1, 0xB8, 0x96, 0xE1, 0xB8, 0x98, 0xE1, - 0xB8, 0x9A, 0xE1, 0xB8, 0x9C, 0xE1, 0xB8, 0x9E, - 0xE1, 0xB8, 0xA0, 0xE1, 0xB8, 0xA2, 0xE1, 0xB8, - 0xA4, 0xE1, 0xB8, 0xA6, 0xE1, 0xB8, 0xA8, 0xE1, - 0xB8, 0xAA, 0xE1, 0xB8, 0xAC, 0xE1, 0xB8, 0xAE, - 0xE1, 0xB8, 0xB0, 0xE1, 0xB8, 0xB2, 0xE1, 0xB8, - 0xB4, 0xE1, 0xB8, 0xB6, 0xE1, 0xB8, 0xB8, 0xE1, - 0xB8, 0xBA, 0xE1, 0xB8, 0xBC, 0xE1, 0xB8, 0xBE, - 0xE1, 0xB9, 0x80, 0xE1, 0xB9, 0x82, 0xE1, 0xB9, - 0x84, 0xE1, 0xB9, 0x86, 0xE1, 0xB9, 0x88, 0xE1, - 0xB9, 0x8A, 0xE1, 0xB9, 0x8C, 0xE1, 0xB9, 0x8E, - 0xE1, 0xB9, 0x90, 0xE1, 0xB9, 0x92, 0xE1, 0xB9, - 0x94, 0xE1, 0xB9, 0x96, 0xE1, 0xB9, 0x98, 0xE1, - 0xB9, 0x9A, 0xE1, 0xB9, 0x9C, 0xE1, 0xB9, 0x9E, - 0xE1, 0xB9, 0xA0, 0xE1, 0xB9, 0xA2, 0xE1, 0xB9, - 0xA4, 0xE1, 0xB9, 0xA6, 0xE1, 0xB9, 0xA8, 0xE1, - 0xB9, 0xAA, 0xE1, 0xB9, 0xAC, 0xE1, 0xB9, 0xAE, - 0xE1, 0xB9, 0xB0, 0xE1, 0xB9, 0xB2, 0xE1, 0xB9, - 0xB4, 0xE1, 0xB9, 0xB6, 0xE1, 0xB9, 0xB8, 0xE1, - 0xB9, 0xBA, 0xE1, 0xB9, 0xBC, 0xE1, 0xB9, 0xBE, - 0xE1, 0xBA, 0x80, 0xE1, 0xBA, 0x82, 0xE1, 0xBA, - 0x84, 0xE1, 0xBA, 0x86, 0xE1, 0xBA, 0x88, 0xE1, - 0xBA, 0x8A, 0xE1, 0xBA, 0x8C, 0xE1, 0xBA, 0x8E, - 0xE1, 0xBA, 0x90, 0xE1, 0xBA, 0x92, 0xE1, 0xBA, - 0x94, 0xE1, 0xB9, 0xA0, 0xE1, 0xBA, 0xA0, 0xE1, - 0xBA, 0xA2, 0xE1, 0xBA, 0xA4, 0xE1, 0xBA, 0xA6, - 0xE1, 0xBA, 0xA8, 0xE1, 0xBA, 0xAA, 0xE1, 0xBA, - 0xAC, 0xE1, 0xBA, 0xAE, 0xE1, 0xBA, 0xB0, 0xE1, - 0xBA, 0xB2, 0xE1, 0xBA, 0xB4, 0xE1, 0xBA, 0xB6, - 0xE1, 0xBA, 0xB8, 0xE1, 0xBA, 0xBA, 0xE1, 0xBA, - 0xBC, 0xE1, 0xBA, 0xBE, 0xE1, 0xBB, 0x80, 0xE1, - 0xBB, 0x82, 0xE1, 0xBB, 0x84, 0xE1, 0xBB, 0x86, - 0xE1, 0xBB, 0x88, 0xE1, 0xBB, 0x8A, 0xE1, 0xBB, - 0x8C, 0xE1, 0xBB, 0x8E, 0xE1, 0xBB, 0x90, 0xE1, - 0xBB, 0x92, 0xE1, 0xBB, 0x94, 0xE1, 0xBB, 0x96, - 0xE1, 0xBB, 0x98, 0xE1, 0xBB, 0x9A, 0xE1, 0xBB, - 0x9C, 0xE1, 0xBB, 0x9E, 0xE1, 0xBB, 0xA0, 0xE1, - 0xBB, 0xA2, 0xE1, 0xBB, 0xA4, 0xE1, 0xBB, 0xA6, - 0xE1, 0xBB, 0xA8, 0xE1, 0xBB, 0xAA, 0xE1, 0xBB, - 0xAC, 0xE1, 0xBB, 0xAE, 0xE1, 0xBB, 0xB0, 0xE1, - 0xBB, 0xB2, 0xE1, 0xBB, 0xB4, 0xE1, 0xBB, 0xB6, - 0xE1, 0xBB, 0xB8, 0xE1, 0xBC, 0x88, 0xE1, 0xBC, - 0x89, 0xE1, 0xBC, 0x8A, 0xE1, 0xBC, 0x8B, 0xE1, - 0xBC, 0x8C, 0xE1, 0xBC, 0x8D, 0xE1, 0xBC, 0x8E, - 0xE1, 0xBC, 0x8F, 0xE1, 0xBC, 0x98, 0xE1, 0xBC, - 0x99, 0xE1, 0xBC, 0x9A, 0xE1, 0xBC, 0x9B, 0xE1, - 0xBC, 0x9C, 0xE1, 0xBC, 0x9D, 0xE1, 0xBC, 0xA8, - 0xE1, 0xBC, 0xA9, 0xE1, 0xBC, 0xAA, 0xE1, 0xBC, - 0xAB, 0xE1, 0xBC, 0xAC, 0xE1, 0xBC, 0xAD, 0xE1, - 0xBC, 0xAE, 0xE1, 0xBC, 0xAF, 0xE1, 0xBC, 0xB8, - 0xE1, 0xBC, 0xB9, 0xE1, 0xBC, 0xBA, 0xE1, 0xBC, - 0xBB, 0xE1, 0xBC, 0xBC, 0xE1, 0xBC, 0xBD, 0xE1, - 0xBC, 0xBE, 0xE1, 0xBC, 0xBF, 0xE1, 0xBD, 0x88, - 0xE1, 0xBD, 0x89, 0xE1, 0xBD, 0x8A, 0xE1, 0xBD, - 0x8B, 0xE1, 0xBD, 0x8C, 0xE1, 0xBD, 0x8D, 0xE1, - 0xBD, 0x99, 0xE1, 0xBD, 0x9B, 0xE1, 0xBD, 0x9D, - 0xE1, 0xBD, 0x9F, 0xE1, 0xBD, 0xA8, 0xE1, 0xBD, - 0xA9, 0xE1, 0xBD, 0xAA, 0xE1, 0xBD, 0xAB, 0xE1, - 0xBD, 0xAC, 0xE1, 0xBD, 0xAD, 0xE1, 0xBD, 0xAE, - 0xE1, 0xBD, 0xAF, 0xE1, 0xBE, 0xBA, 0xE1, 0xBE, - 0xBB, 0xE1, 0xBF, 0x88, 0xE1, 0xBF, 0x89, 0xE1, - 0xBF, 0x8A, 0xE1, 0xBF, 0x8B, 0xE1, 0xBF, 0x9A, - 0xE1, 0xBF, 0x9B, 0xE1, 0xBF, 0xB8, 0xE1, 0xBF, - 0xB9, 0xE1, 0xBF, 0xAA, 0xE1, 0xBF, 0xAB, 0xE1, - 0xBF, 0xBA, 0xE1, 0xBF, 0xBB, 0xE1, 0xBE, 0x88, - 0xE1, 0xBE, 0x89, 0xE1, 0xBE, 0x8A, 0xE1, 0xBE, - 0x8B, 0xE1, 0xBE, 0x8C, 0xE1, 0xBE, 0x8D, 0xE1, - 0xBE, 0x8E, 0xE1, 0xBE, 0x8F, 0xE1, 0xBE, 0x98, - 0xE1, 0xBE, 0x99, 0xE1, 0xBE, 0x9A, 0xE1, 0xBE, - 0x9B, 0xE1, 0xBE, 0x9C, 0xE1, 0xBE, 0x9D, 0xE1, - 0xBE, 0x9E, 0xE1, 0xBE, 0x9F, 0xE1, 0xBE, 0xA8, - 0xE1, 0xBE, 0xA9, 0xE1, 0xBE, 0xAA, 0xE1, 0xBE, - 0xAB, 0xE1, 0xBE, 0xAC, 0xE1, 0xBE, 0xAD, 0xE1, - 0xBE, 0xAE, 0xE1, 0xBE, 0xAF, 0xE1, 0xBE, 0xB8, - 0xE1, 0xBE, 0xB9, 0xE1, 0xBE, 0xBC, 0xCE, 0x99, - 0xE1, 0xBF, 0x8C, 0xE1, 0xBF, 0x98, 0xE1, 0xBF, - 0x99, 0xE1, 0xBF, 0xA8, 0xE1, 0xBF, 0xA9, 0xE1, - 0xBF, 0xAC, 0xE1, 0xBF, 0xBC, 0xE2, 0x85, 0xA0, - 0xE2, 0x85, 0xA1, 0xE2, 0x85, 0xA2, 0xE2, 0x85, - 0xA3, 0xE2, 0x85, 0xA4, 0xE2, 0x85, 0xA5, 0xE2, - 0x85, 0xA6, 0xE2, 0x85, 0xA7, 0xE2, 0x85, 0xA8, - 0xE2, 0x85, 0xA9, 0xE2, 0x85, 0xAA, 0xE2, 0x85, - 0xAB, 0xE2, 0x85, 0xAC, 0xE2, 0x85, 0xAD, 0xE2, - 0x85, 0xAE, 0xE2, 0x85, 0xAF, 0xE2, 0x92, 0xB6, - 0xE2, 0x92, 0xB7, 0xE2, 0x92, 0xB8, 0xE2, 0x92, - 0xB9, 0xE2, 0x92, 0xBA, 0xE2, 0x92, 0xBB, 0xE2, - 0x92, 0xBC, 0xE2, 0x92, 0xBD, 0xE2, 0x92, 0xBE, - 0xE2, 0x92, 0xBF, 0xE2, 0x93, 0x80, 0xE2, 0x93, - 0x81, 0xE2, 0x93, 0x82, 0xE2, 0x93, 0x83, 0xE2, - 0x93, 0x84, 0xE2, 0x93, 0x85, 0xE2, 0x93, 0x86, - 0xE2, 0x93, 0x87, 0xE2, 0x93, 0x88, 0xE2, 0x93, - 0x89, 0xE2, 0x93, 0x8A, 0xE2, 0x93, 0x8B, 0xE2, - 0x93, 0x8C, 0xE2, 0x93, 0x8D, 0xE2, 0x93, 0x8E, - 0xE2, 0x93, 0x8F, 0xEF, 0xBC, 0xA1, 0xEF, 0xBC, - 0xA2, 0xEF, 0xBC, 0xA3, 0xEF, 0xBC, 0xA4, 0xEF, - 0xBC, 0xA5, 0xEF, 0xBC, 0xA6, 0xEF, 0xBC, 0xA7, - 0xEF, 0xBC, 0xA8, 0xEF, 0xBC, 0xA9, 0xEF, 0xBC, - 0xAA, 0xEF, 0xBC, 0xAB, 0xEF, 0xBC, 0xAC, 0xEF, - 0xBC, 0xAD, 0xEF, 0xBC, 0xAE, 0xEF, 0xBC, 0xAF, - 0xEF, 0xBC, 0xB0, 0xEF, 0xBC, 0xB1, 0xEF, 0xBC, - 0xB2, 0xEF, 0xBC, 0xB3, 0xEF, 0xBC, 0xB4, 0xEF, - 0xBC, 0xB5, 0xEF, 0xBC, 0xB6, 0xEF, 0xBC, 0xB7, - 0xEF, 0xBC, 0xB8, 0xEF, 0xBC, 0xB9, 0xEF, 0xBC, - 0xBA, 0xF0, 0x90, 0x90, 0x80, 0xF0, 0x90, 0x90, - 0x81, 0xF0, 0x90, 0x90, 0x82, 0xF0, 0x90, 0x90, - 0x83, 0xF0, 0x90, 0x90, 0x84, 0xF0, 0x90, 0x90, - 0x85, 0xF0, 0x90, 0x90, 0x86, 0xF0, 0x90, 0x90, - 0x87, 0xF0, 0x90, 0x90, 0x88, 0xF0, 0x90, 0x90, - 0x89, 0xF0, 0x90, 0x90, 0x8A, 0xF0, 0x90, 0x90, - 0x8B, 0xF0, 0x90, 0x90, 0x8C, 0xF0, 0x90, 0x90, - 0x8D, 0xF0, 0x90, 0x90, 0x8E, 0xF0, 0x90, 0x90, - 0x8F, 0xF0, 0x90, 0x90, 0x90, 0xF0, 0x90, 0x90, - 0x91, 0xF0, 0x90, 0x90, 0x92, 0xF0, 0x90, 0x90, - 0x93, 0xF0, 0x90, 0x90, 0x94, 0xF0, 0x90, 0x90, - 0x95, 0xF0, 0x90, 0x90, 0x96, 0xF0, 0x90, 0x90, - 0x97, 0xF0, 0x90, 0x90, 0x98, 0xF0, 0x90, 0x90, - 0x99, 0xF0, 0x90, 0x90, 0x9A, 0xF0, 0x90, 0x90, - 0x9B, 0xF0, 0x90, 0x90, 0x9C, 0xF0, 0x90, 0x90, - 0x9D, 0xF0, 0x90, 0x90, 0x9E, 0xF0, 0x90, 0x90, - 0x9F, 0xF0, 0x90, 0x90, 0xA0, 0xF0, 0x90, 0x90, - 0xA1, 0xF0, 0x90, 0x90, 0xA2, 0xF0, 0x90, 0x90, - 0xA3, 0xF0, 0x90, 0x90, 0xA4, 0xF0, 0x90, 0x90, - 0xA5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - }, - { - 0xCE, 0x9C, 0xC3, 0x80, 0xC3, 0x81, 0xC3, 0x82, - 0xC3, 0x83, 0xC3, 0x84, 0xC3, 0x85, 0xC3, 0x86, - 0xC3, 0x87, 0xC3, 0x88, 0xC3, 0x89, 0xC3, 0x8A, - 0xC3, 0x8B, 0xC3, 0x8C, 0xC3, 0x8D, 0xC3, 0x8E, - 0xC3, 0x8F, 0xC3, 0x90, 0xC3, 0x91, 0xC3, 0x92, - 0xC3, 0x93, 0xC3, 0x94, 0xC3, 0x95, 0xC3, 0x96, - 0xC3, 0x98, 0xC3, 0x99, 0xC3, 0x9A, 0xC3, 0x9B, - 0xC3, 0x9C, 0xC3, 0x9D, 0xC3, 0x9E, 0xC5, 0xB8, - 0xC4, 0x80, 0xC4, 0x82, 0xC4, 0x84, 0xC4, 0x86, - 0xC4, 0x88, 0xC4, 0x8A, 0xC4, 0x8C, 0xC4, 0x8E, - 0xC4, 0x90, 0xC4, 0x92, 0xC4, 0x94, 0xC4, 0x96, - 0xC4, 0x98, 0xC4, 0x9A, 0xC4, 0x9C, 0xC4, 0x9E, - 0xC4, 0xA0, 0xC4, 0xA2, 0xC4, 0xA4, 0xC4, 0xA6, - 0xC4, 0xA8, 0xC4, 0xAA, 0xC4, 0xAC, 0xC4, 0xAE, - 0x49, 0xC4, 0xB2, 0xC4, 0xB4, 0xC4, 0xB6, 0xC4, - 0xB9, 0xC4, 0xBB, 0xC4, 0xBD, 0xC4, 0xBF, 0xC5, - 0x81, 0xC5, 0x83, 0xC5, 0x85, 0xC5, 0x87, 0xC5, - 0x8A, 0xC5, 0x8C, 0xC5, 0x8E, 0xC5, 0x90, 0xC5, - 0x92, 0xC5, 0x94, 0xC5, 0x96, 0xC5, 0x98, 0xC5, - 0x9A, 0xC5, 0x9C, 0xC5, 0x9E, 0xC5, 0xA0, 0xC5, - 0xA2, 0xC5, 0xA4, 0xC5, 0xA6, 0xC5, 0xA8, 0xC5, - 0xAA, 0xC5, 0xAC, 0xC5, 0xAE, 0xC5, 0xB0, 0xC5, - 0xB2, 0xC5, 0xB4, 0xC5, 0xB6, 0xC5, 0xB9, 0xC5, - 0xBB, 0xC5, 0xBD, 0x53, 0xC9, 0x83, 0xC6, 0x82, - 0xC6, 0x84, 0xC6, 0x87, 0xC6, 0x8B, 0xC6, 0x91, - 0xC7, 0xB6, 0xC6, 0x98, 0xC8, 0xBD, 0xC8, 0xA0, - 0xC6, 0xA0, 0xC6, 0xA2, 0xC6, 0xA4, 0xC6, 0xA7, - 0xC6, 0xAC, 0xC6, 0xAF, 0xC6, 0xB3, 0xC6, 0xB5, - 0xC6, 0xB8, 0xC6, 0xBC, 0xC7, 0xB7, 0xC7, 0x84, - 0xC7, 0x84, 0xC7, 0x87, 0xC7, 0x87, 0xC7, 0x8A, - 0xC7, 0x8A, 0xC7, 0x8D, 0xC7, 0x8F, 0xC7, 0x91, - 0xC7, 0x93, 0xC7, 0x95, 0xC7, 0x97, 0xC7, 0x99, - 0xC7, 0x9B, 0xC6, 0x8E, 0xC7, 0x9E, 0xC7, 0xA0, - 0xC7, 0xA2, 0xC7, 0xA4, 0xC7, 0xA6, 0xC7, 0xA8, - 0xC7, 0xAA, 0xC7, 0xAC, 0xC7, 0xAE, 0xC7, 0xB1, - 0xC7, 0xB1, 0xC7, 0xB4, 0xC7, 0xB8, 0xC7, 0xBA, - 0xC7, 0xBC, 0xC7, 0xBE, 0xC8, 0x80, 0xC8, 0x82, - 0xC8, 0x84, 0xC8, 0x86, 0xC8, 0x88, 0xC8, 0x8A, - 0xC8, 0x8C, 0xC8, 0x8E, 0xC8, 0x90, 0xC8, 0x92, - 0xC8, 0x94, 0xC8, 0x96, 0xC8, 0x98, 0xC8, 0x9A, - 0xC8, 0x9C, 0xC8, 0x9E, 0xC8, 0xA2, 0xC8, 0xA4, - 0xC8, 0xA6, 0xC8, 0xA8, 0xC8, 0xAA, 0xC8, 0xAC, - 0xC8, 0xAE, 0xC8, 0xB0, 0xC8, 0xB2, 0xC8, 0xBB, - 0xC9, 0x81, 0xC9, 0x86, 0xC9, 0x88, 0xC9, 0x8A, - 0xC9, 0x8C, 0xC9, 0x8E, 0xC6, 0x81, 0xC6, 0x86, - 0xC6, 0x89, 0xC6, 0x8A, 0xC6, 0x8F, 0xC6, 0x90, - 0xC6, 0x93, 0xC6, 0x94, 0xC6, 0x97, 0xC6, 0x96, - 0xE2, 0xB1, 0xA2, 0xC6, 0x9C, 0xC6, 0x9D, 0xC6, - 0x9F, 0xE2, 0xB1, 0xA4, 0xC6, 0xA6, 0xC6, 0xA9, - 0xC6, 0xAE, 0xC9, 0x84, 0xC6, 0xB1, 0xC6, 0xB2, - 0xC9, 0x85, 0xC6, 0xB7, 0xCE, 0x99, 0xCF, 0xBD, - 0xCF, 0xBE, 0xCF, 0xBF, 0xCE, 0x86, 0xCE, 0x88, - 0xCE, 0x89, 0xCE, 0x8A, 0xCE, 0x91, 0xCE, 0x92, - 0xCE, 0x93, 0xCE, 0x94, 0xCE, 0x95, 0xCE, 0x96, - 0xCE, 0x97, 0xCE, 0x98, 0xCE, 0x99, 0xCE, 0x9A, - 0xCE, 0x9B, 0xCE, 0x9C, 0xCE, 0x9D, 0xCE, 0x9E, - 0xCE, 0x9F, 0xCE, 0xA0, 0xCE, 0xA1, 0xCE, 0xA3, - 0xCE, 0xA3, 0xCE, 0xA4, 0xCE, 0xA5, 0xCE, 0xA6, - 0xCE, 0xA7, 0xCE, 0xA8, 0xCE, 0xA9, 0xCE, 0xAA, - 0xCE, 0xAB, 0xCE, 0x8C, 0xCE, 0x8E, 0xCE, 0x8F, - 0xCE, 0x92, 0xCE, 0x98, 0xCE, 0xA6, 0xCE, 0xA0, - 0xCF, 0x98, 0xCF, 0x9A, 0xCF, 0x9C, 0xCF, 0x9E, - 0xCF, 0xA0, 0xCF, 0xA2, 0xCF, 0xA4, 0xCF, 0xA6, - 0xCF, 0xA8, 0xCF, 0xAA, 0xCF, 0xAC, 0xCF, 0xAE, - 0xCE, 0x9A, 0xCE, 0xA1, 0xCF, 0xB9, 0xCE, 0x95, - 0xCF, 0xB7, 0xCF, 0xBA, 0xD0, 0x90, 0xD0, 0x91, - 0xD0, 0x92, 0xD0, 0x93, 0xD0, 0x94, 0xD0, 0x95, - 0xD0, 0x96, 0xD0, 0x97, 0xD0, 0x98, 0xD0, 0x99, - 0xD0, 0x9A, 0xD0, 0x9B, 0xD0, 0x9C, 0xD0, 0x9D, - 0xD0, 0x9E, 0xD0, 0x9F, 0xD0, 0xA0, 0xD0, 0xA1, - 0xD0, 0xA2, 0xD0, 0xA3, 0xD0, 0xA4, 0xD0, 0xA5, - 0xD0, 0xA6, 0xD0, 0xA7, 0xD0, 0xA8, 0xD0, 0xA9, - 0xD0, 0xAA, 0xD0, 0xAB, 0xD0, 0xAC, 0xD0, 0xAD, - 0xD0, 0xAE, 0xD0, 0xAF, 0xD0, 0x80, 0xD0, 0x81, - 0xD0, 0x82, 0xD0, 0x83, 0xD0, 0x84, 0xD0, 0x85, - 0xD0, 0x86, 0xD0, 0x87, 0xD0, 0x88, 0xD0, 0x89, - 0xD0, 0x8A, 0xD0, 0x8B, 0xD0, 0x8C, 0xD0, 0x8D, - 0xD0, 0x8E, 0xD0, 0x8F, 0xD1, 0xA0, 0xD1, 0xA2, - 0xD1, 0xA4, 0xD1, 0xA6, 0xD1, 0xA8, 0xD1, 0xAA, - 0xD1, 0xAC, 0xD1, 0xAE, 0xD1, 0xB0, 0xD1, 0xB2, - 0xD1, 0xB4, 0xD1, 0xB6, 0xD1, 0xB8, 0xD1, 0xBA, - 0xD1, 0xBC, 0xD1, 0xBE, 0xD2, 0x80, 0xD2, 0x8A, - 0xD2, 0x8C, 0xD2, 0x8E, 0xD2, 0x90, 0xD2, 0x92, - 0xD2, 0x94, 0xD2, 0x96, 0xD2, 0x98, 0xD2, 0x9A, - 0xD2, 0x9C, 0xD2, 0x9E, 0xD2, 0xA0, 0xD2, 0xA2, - 0xD2, 0xA4, 0xD2, 0xA6, 0xD2, 0xA8, 0xD2, 0xAA, - 0xD2, 0xAC, 0xD2, 0xAE, 0xD2, 0xB0, 0xD2, 0xB2, - 0xD2, 0xB4, 0xD2, 0xB6, 0xD2, 0xB8, 0xD2, 0xBA, - 0xD2, 0xBC, 0xD2, 0xBE, 0xD3, 0x81, 0xD3, 0x83, - 0xD3, 0x85, 0xD3, 0x87, 0xD3, 0x89, 0xD3, 0x8B, - 0xD3, 0x8D, 0xD3, 0x80, 0xD3, 0x90, 0xD3, 0x92, - 0xD3, 0x94, 0xD3, 0x96, 0xD3, 0x98, 0xD3, 0x9A, - 0xD3, 0x9C, 0xD3, 0x9E, 0xD3, 0xA0, 0xD3, 0xA2, - 0xD3, 0xA4, 0xD3, 0xA6, 0xD3, 0xA8, 0xD3, 0xAA, - 0xD3, 0xAC, 0xD3, 0xAE, 0xD3, 0xB0, 0xD3, 0xB2, - 0xD3, 0xB4, 0xD3, 0xB6, 0xD3, 0xB8, 0xD3, 0xBA, - 0xD3, 0xBC, 0xD3, 0xBE, 0xD4, 0x80, 0xD4, 0x82, - 0xD4, 0x84, 0xD4, 0x86, 0xD4, 0x88, 0xD4, 0x8A, - 0xD4, 0x8C, 0xD4, 0x8E, 0xD4, 0x90, 0xD4, 0x92, - 0xD4, 0xB1, 0xD4, 0xB2, 0xD4, 0xB3, 0xD4, 0xB4, - 0xD4, 0xB5, 0xD4, 0xB6, 0xD4, 0xB7, 0xD4, 0xB8, - 0xD4, 0xB9, 0xD4, 0xBA, 0xD4, 0xBB, 0xD4, 0xBC, - 0xD4, 0xBD, 0xD4, 0xBE, 0xD4, 0xBF, 0xD5, 0x80, - 0xD5, 0x81, 0xD5, 0x82, 0xD5, 0x83, 0xD5, 0x84, - 0xD5, 0x85, 0xD5, 0x86, 0xD5, 0x87, 0xD5, 0x88, - 0xD5, 0x89, 0xD5, 0x8A, 0xD5, 0x8B, 0xD5, 0x8C, - 0xD5, 0x8D, 0xD5, 0x8E, 0xD5, 0x8F, 0xD5, 0x90, - 0xD5, 0x91, 0xD5, 0x92, 0xD5, 0x93, 0xD5, 0x94, - 0xD5, 0x95, 0xD5, 0x96, 0xE2, 0xB1, 0xA3, 0xE1, - 0xB8, 0x80, 0xE1, 0xB8, 0x82, 0xE1, 0xB8, 0x84, - 0xE1, 0xB8, 0x86, 0xE1, 0xB8, 0x88, 0xE1, 0xB8, - 0x8A, 0xE1, 0xB8, 0x8C, 0xE1, 0xB8, 0x8E, 0xE1, - 0xB8, 0x90, 0xE1, 0xB8, 0x92, 0xE1, 0xB8, 0x94, - 0xE1, 0xB8, 0x96, 0xE1, 0xB8, 0x98, 0xE1, 0xB8, - 0x9A, 0xE1, 0xB8, 0x9C, 0xE1, 0xB8, 0x9E, 0xE1, - 0xB8, 0xA0, 0xE1, 0xB8, 0xA2, 0xE1, 0xB8, 0xA4, - 0xE1, 0xB8, 0xA6, 0xE1, 0xB8, 0xA8, 0xE1, 0xB8, - 0xAA, 0xE1, 0xB8, 0xAC, 0xE1, 0xB8, 0xAE, 0xE1, - 0xB8, 0xB0, 0xE1, 0xB8, 0xB2, 0xE1, 0xB8, 0xB4, - 0xE1, 0xB8, 0xB6, 0xE1, 0xB8, 0xB8, 0xE1, 0xB8, - 0xBA, 0xE1, 0xB8, 0xBC, 0xE1, 0xB8, 0xBE, 0xE1, - 0xB9, 0x80, 0xE1, 0xB9, 0x82, 0xE1, 0xB9, 0x84, - 0xE1, 0xB9, 0x86, 0xE1, 0xB9, 0x88, 0xE1, 0xB9, - 0x8A, 0xE1, 0xB9, 0x8C, 0xE1, 0xB9, 0x8E, 0xE1, - 0xB9, 0x90, 0xE1, 0xB9, 0x92, 0xE1, 0xB9, 0x94, - 0xE1, 0xB9, 0x96, 0xE1, 0xB9, 0x98, 0xE1, 0xB9, - 0x9A, 0xE1, 0xB9, 0x9C, 0xE1, 0xB9, 0x9E, 0xE1, - 0xB9, 0xA0, 0xE1, 0xB9, 0xA2, 0xE1, 0xB9, 0xA4, - 0xE1, 0xB9, 0xA6, 0xE1, 0xB9, 0xA8, 0xE1, 0xB9, - 0xAA, 0xE1, 0xB9, 0xAC, 0xE1, 0xB9, 0xAE, 0xE1, - 0xB9, 0xB0, 0xE1, 0xB9, 0xB2, 0xE1, 0xB9, 0xB4, - 0xE1, 0xB9, 0xB6, 0xE1, 0xB9, 0xB8, 0xE1, 0xB9, - 0xBA, 0xE1, 0xB9, 0xBC, 0xE1, 0xB9, 0xBE, 0xE1, - 0xBA, 0x80, 0xE1, 0xBA, 0x82, 0xE1, 0xBA, 0x84, - 0xE1, 0xBA, 0x86, 0xE1, 0xBA, 0x88, 0xE1, 0xBA, - 0x8A, 0xE1, 0xBA, 0x8C, 0xE1, 0xBA, 0x8E, 0xE1, - 0xBA, 0x90, 0xE1, 0xBA, 0x92, 0xE1, 0xBA, 0x94, - 0xE1, 0xB9, 0xA0, 0xE1, 0xBA, 0xA0, 0xE1, 0xBA, - 0xA2, 0xE1, 0xBA, 0xA4, 0xE1, 0xBA, 0xA6, 0xE1, - 0xBA, 0xA8, 0xE1, 0xBA, 0xAA, 0xE1, 0xBA, 0xAC, - 0xE1, 0xBA, 0xAE, 0xE1, 0xBA, 0xB0, 0xE1, 0xBA, - 0xB2, 0xE1, 0xBA, 0xB4, 0xE1, 0xBA, 0xB6, 0xE1, - 0xBA, 0xB8, 0xE1, 0xBA, 0xBA, 0xE1, 0xBA, 0xBC, - 0xE1, 0xBA, 0xBE, 0xE1, 0xBB, 0x80, 0xE1, 0xBB, - 0x82, 0xE1, 0xBB, 0x84, 0xE1, 0xBB, 0x86, 0xE1, - 0xBB, 0x88, 0xE1, 0xBB, 0x8A, 0xE1, 0xBB, 0x8C, - 0xE1, 0xBB, 0x8E, 0xE1, 0xBB, 0x90, 0xE1, 0xBB, - 0x92, 0xE1, 0xBB, 0x94, 0xE1, 0xBB, 0x96, 0xE1, - 0xBB, 0x98, 0xE1, 0xBB, 0x9A, 0xE1, 0xBB, 0x9C, - 0xE1, 0xBB, 0x9E, 0xE1, 0xBB, 0xA0, 0xE1, 0xBB, - 0xA2, 0xE1, 0xBB, 0xA4, 0xE1, 0xBB, 0xA6, 0xE1, - 0xBB, 0xA8, 0xE1, 0xBB, 0xAA, 0xE1, 0xBB, 0xAC, - 0xE1, 0xBB, 0xAE, 0xE1, 0xBB, 0xB0, 0xE1, 0xBB, - 0xB2, 0xE1, 0xBB, 0xB4, 0xE1, 0xBB, 0xB6, 0xE1, - 0xBB, 0xB8, 0xE1, 0xBC, 0x88, 0xE1, 0xBC, 0x89, - 0xE1, 0xBC, 0x8A, 0xE1, 0xBC, 0x8B, 0xE1, 0xBC, - 0x8C, 0xE1, 0xBC, 0x8D, 0xE1, 0xBC, 0x8E, 0xE1, - 0xBC, 0x8F, 0xE1, 0xBC, 0x98, 0xE1, 0xBC, 0x99, - 0xE1, 0xBC, 0x9A, 0xE1, 0xBC, 0x9B, 0xE1, 0xBC, - 0x9C, 0xE1, 0xBC, 0x9D, 0xE1, 0xBC, 0xA8, 0xE1, - 0xBC, 0xA9, 0xE1, 0xBC, 0xAA, 0xE1, 0xBC, 0xAB, - 0xE1, 0xBC, 0xAC, 0xE1, 0xBC, 0xAD, 0xE1, 0xBC, - 0xAE, 0xE1, 0xBC, 0xAF, 0xE1, 0xBC, 0xB8, 0xE1, - 0xBC, 0xB9, 0xE1, 0xBC, 0xBA, 0xE1, 0xBC, 0xBB, - 0xE1, 0xBC, 0xBC, 0xE1, 0xBC, 0xBD, 0xE1, 0xBC, - 0xBE, 0xE1, 0xBC, 0xBF, 0xE1, 0xBD, 0x88, 0xE1, - 0xBD, 0x89, 0xE1, 0xBD, 0x8A, 0xE1, 0xBD, 0x8B, - 0xE1, 0xBD, 0x8C, 0xE1, 0xBD, 0x8D, 0xE1, 0xBD, - 0x99, 0xE1, 0xBD, 0x9B, 0xE1, 0xBD, 0x9D, 0xE1, - 0xBD, 0x9F, 0xE1, 0xBD, 0xA8, 0xE1, 0xBD, 0xA9, - 0xE1, 0xBD, 0xAA, 0xE1, 0xBD, 0xAB, 0xE1, 0xBD, - 0xAC, 0xE1, 0xBD, 0xAD, 0xE1, 0xBD, 0xAE, 0xE1, - 0xBD, 0xAF, 0xE1, 0xBE, 0xBA, 0xE1, 0xBE, 0xBB, - 0xE1, 0xBF, 0x88, 0xE1, 0xBF, 0x89, 0xE1, 0xBF, - 0x8A, 0xE1, 0xBF, 0x8B, 0xE1, 0xBF, 0x9A, 0xE1, - 0xBF, 0x9B, 0xE1, 0xBF, 0xB8, 0xE1, 0xBF, 0xB9, - 0xE1, 0xBF, 0xAA, 0xE1, 0xBF, 0xAB, 0xE1, 0xBF, - 0xBA, 0xE1, 0xBF, 0xBB, 0xE1, 0xBE, 0x88, 0xE1, - 0xBE, 0x89, 0xE1, 0xBE, 0x8A, 0xE1, 0xBE, 0x8B, - 0xE1, 0xBE, 0x8C, 0xE1, 0xBE, 0x8D, 0xE1, 0xBE, - 0x8E, 0xE1, 0xBE, 0x8F, 0xE1, 0xBE, 0x98, 0xE1, - 0xBE, 0x99, 0xE1, 0xBE, 0x9A, 0xE1, 0xBE, 0x9B, - 0xE1, 0xBE, 0x9C, 0xE1, 0xBE, 0x9D, 0xE1, 0xBE, - 0x9E, 0xE1, 0xBE, 0x9F, 0xE1, 0xBE, 0xA8, 0xE1, - 0xBE, 0xA9, 0xE1, 0xBE, 0xAA, 0xE1, 0xBE, 0xAB, - 0xE1, 0xBE, 0xAC, 0xE1, 0xBE, 0xAD, 0xE1, 0xBE, - 0xAE, 0xE1, 0xBE, 0xAF, 0xE1, 0xBE, 0xB8, 0xE1, - 0xBE, 0xB9, 0xE1, 0xBE, 0xBC, 0xCE, 0x99, 0xE1, - 0xBF, 0x8C, 0xE1, 0xBF, 0x98, 0xE1, 0xBF, 0x99, - 0xE1, 0xBF, 0xA8, 0xE1, 0xBF, 0xA9, 0xE1, 0xBF, - 0xAC, 0xE1, 0xBF, 0xBC, 0xE2, 0x84, 0xB2, 0xE2, - 0x85, 0xA0, 0xE2, 0x85, 0xA1, 0xE2, 0x85, 0xA2, - 0xE2, 0x85, 0xA3, 0xE2, 0x85, 0xA4, 0xE2, 0x85, - 0xA5, 0xE2, 0x85, 0xA6, 0xE2, 0x85, 0xA7, 0xE2, - 0x85, 0xA8, 0xE2, 0x85, 0xA9, 0xE2, 0x85, 0xAA, - 0xE2, 0x85, 0xAB, 0xE2, 0x85, 0xAC, 0xE2, 0x85, - 0xAD, 0xE2, 0x85, 0xAE, 0xE2, 0x85, 0xAF, 0xE2, - 0x86, 0x83, 0xE2, 0x92, 0xB6, 0xE2, 0x92, 0xB7, - 0xE2, 0x92, 0xB8, 0xE2, 0x92, 0xB9, 0xE2, 0x92, - 0xBA, 0xE2, 0x92, 0xBB, 0xE2, 0x92, 0xBC, 0xE2, - 0x92, 0xBD, 0xE2, 0x92, 0xBE, 0xE2, 0x92, 0xBF, - 0xE2, 0x93, 0x80, 0xE2, 0x93, 0x81, 0xE2, 0x93, - 0x82, 0xE2, 0x93, 0x83, 0xE2, 0x93, 0x84, 0xE2, - 0x93, 0x85, 0xE2, 0x93, 0x86, 0xE2, 0x93, 0x87, - 0xE2, 0x93, 0x88, 0xE2, 0x93, 0x89, 0xE2, 0x93, - 0x8A, 0xE2, 0x93, 0x8B, 0xE2, 0x93, 0x8C, 0xE2, - 0x93, 0x8D, 0xE2, 0x93, 0x8E, 0xE2, 0x93, 0x8F, - 0xE2, 0xB0, 0x80, 0xE2, 0xB0, 0x81, 0xE2, 0xB0, - 0x82, 0xE2, 0xB0, 0x83, 0xE2, 0xB0, 0x84, 0xE2, - 0xB0, 0x85, 0xE2, 0xB0, 0x86, 0xE2, 0xB0, 0x87, - 0xE2, 0xB0, 0x88, 0xE2, 0xB0, 0x89, 0xE2, 0xB0, - 0x8A, 0xE2, 0xB0, 0x8B, 0xE2, 0xB0, 0x8C, 0xE2, - 0xB0, 0x8D, 0xE2, 0xB0, 0x8E, 0xE2, 0xB0, 0x8F, - 0xE2, 0xB0, 0x90, 0xE2, 0xB0, 0x91, 0xE2, 0xB0, - 0x92, 0xE2, 0xB0, 0x93, 0xE2, 0xB0, 0x94, 0xE2, - 0xB0, 0x95, 0xE2, 0xB0, 0x96, 0xE2, 0xB0, 0x97, - 0xE2, 0xB0, 0x98, 0xE2, 0xB0, 0x99, 0xE2, 0xB0, - 0x9A, 0xE2, 0xB0, 0x9B, 0xE2, 0xB0, 0x9C, 0xE2, - 0xB0, 0x9D, 0xE2, 0xB0, 0x9E, 0xE2, 0xB0, 0x9F, - 0xE2, 0xB0, 0xA0, 0xE2, 0xB0, 0xA1, 0xE2, 0xB0, - 0xA2, 0xE2, 0xB0, 0xA3, 0xE2, 0xB0, 0xA4, 0xE2, - 0xB0, 0xA5, 0xE2, 0xB0, 0xA6, 0xE2, 0xB0, 0xA7, - 0xE2, 0xB0, 0xA8, 0xE2, 0xB0, 0xA9, 0xE2, 0xB0, - 0xAA, 0xE2, 0xB0, 0xAB, 0xE2, 0xB0, 0xAC, 0xE2, - 0xB0, 0xAD, 0xE2, 0xB0, 0xAE, 0xE2, 0xB1, 0xA0, - 0xC8, 0xBA, 0xC8, 0xBE, 0xE2, 0xB1, 0xA7, 0xE2, - 0xB1, 0xA9, 0xE2, 0xB1, 0xAB, 0xE2, 0xB1, 0xB5, - 0xE2, 0xB2, 0x80, 0xE2, 0xB2, 0x82, 0xE2, 0xB2, - 0x84, 0xE2, 0xB2, 0x86, 0xE2, 0xB2, 0x88, 0xE2, - 0xB2, 0x8A, 0xE2, 0xB2, 0x8C, 0xE2, 0xB2, 0x8E, - 0xE2, 0xB2, 0x90, 0xE2, 0xB2, 0x92, 0xE2, 0xB2, - 0x94, 0xE2, 0xB2, 0x96, 0xE2, 0xB2, 0x98, 0xE2, - 0xB2, 0x9A, 0xE2, 0xB2, 0x9C, 0xE2, 0xB2, 0x9E, - 0xE2, 0xB2, 0xA0, 0xE2, 0xB2, 0xA2, 0xE2, 0xB2, - 0xA4, 0xE2, 0xB2, 0xA6, 0xE2, 0xB2, 0xA8, 0xE2, - 0xB2, 0xAA, 0xE2, 0xB2, 0xAC, 0xE2, 0xB2, 0xAE, - 0xE2, 0xB2, 0xB0, 0xE2, 0xB2, 0xB2, 0xE2, 0xB2, - 0xB4, 0xE2, 0xB2, 0xB6, 0xE2, 0xB2, 0xB8, 0xE2, - 0xB2, 0xBA, 0xE2, 0xB2, 0xBC, 0xE2, 0xB2, 0xBE, - 0xE2, 0xB3, 0x80, 0xE2, 0xB3, 0x82, 0xE2, 0xB3, - 0x84, 0xE2, 0xB3, 0x86, 0xE2, 0xB3, 0x88, 0xE2, - 0xB3, 0x8A, 0xE2, 0xB3, 0x8C, 0xE2, 0xB3, 0x8E, - 0xE2, 0xB3, 0x90, 0xE2, 0xB3, 0x92, 0xE2, 0xB3, - 0x94, 0xE2, 0xB3, 0x96, 0xE2, 0xB3, 0x98, 0xE2, - 0xB3, 0x9A, 0xE2, 0xB3, 0x9C, 0xE2, 0xB3, 0x9E, - 0xE2, 0xB3, 0xA0, 0xE2, 0xB3, 0xA2, 0xE1, 0x82, - 0xA0, 0xE1, 0x82, 0xA1, 0xE1, 0x82, 0xA2, 0xE1, - 0x82, 0xA3, 0xE1, 0x82, 0xA4, 0xE1, 0x82, 0xA5, - 0xE1, 0x82, 0xA6, 0xE1, 0x82, 0xA7, 0xE1, 0x82, - 0xA8, 0xE1, 0x82, 0xA9, 0xE1, 0x82, 0xAA, 0xE1, - 0x82, 0xAB, 0xE1, 0x82, 0xAC, 0xE1, 0x82, 0xAD, - 0xE1, 0x82, 0xAE, 0xE1, 0x82, 0xAF, 0xE1, 0x82, - 0xB0, 0xE1, 0x82, 0xB1, 0xE1, 0x82, 0xB2, 0xE1, - 0x82, 0xB3, 0xE1, 0x82, 0xB4, 0xE1, 0x82, 0xB5, - 0xE1, 0x82, 0xB6, 0xE1, 0x82, 0xB7, 0xE1, 0x82, - 0xB8, 0xE1, 0x82, 0xB9, 0xE1, 0x82, 0xBA, 0xE1, - 0x82, 0xBB, 0xE1, 0x82, 0xBC, 0xE1, 0x82, 0xBD, - 0xE1, 0x82, 0xBE, 0xE1, 0x82, 0xBF, 0xE1, 0x83, - 0x80, 0xE1, 0x83, 0x81, 0xE1, 0x83, 0x82, 0xE1, - 0x83, 0x83, 0xE1, 0x83, 0x84, 0xE1, 0x83, 0x85, - 0xEF, 0xBC, 0xA1, 0xEF, 0xBC, 0xA2, 0xEF, 0xBC, - 0xA3, 0xEF, 0xBC, 0xA4, 0xEF, 0xBC, 0xA5, 0xEF, - 0xBC, 0xA6, 0xEF, 0xBC, 0xA7, 0xEF, 0xBC, 0xA8, - 0xEF, 0xBC, 0xA9, 0xEF, 0xBC, 0xAA, 0xEF, 0xBC, - 0xAB, 0xEF, 0xBC, 0xAC, 0xEF, 0xBC, 0xAD, 0xEF, - 0xBC, 0xAE, 0xEF, 0xBC, 0xAF, 0xEF, 0xBC, 0xB0, - 0xEF, 0xBC, 0xB1, 0xEF, 0xBC, 0xB2, 0xEF, 0xBC, - 0xB3, 0xEF, 0xBC, 0xB4, 0xEF, 0xBC, 0xB5, 0xEF, - 0xBC, 0xB6, 0xEF, 0xBC, 0xB7, 0xEF, 0xBC, 0xB8, - 0xEF, 0xBC, 0xB9, 0xEF, 0xBC, 0xBA, 0xF0, 0x90, - 0x90, 0x80, 0xF0, 0x90, 0x90, 0x81, 0xF0, 0x90, - 0x90, 0x82, 0xF0, 0x90, 0x90, 0x83, 0xF0, 0x90, - 0x90, 0x84, 0xF0, 0x90, 0x90, 0x85, 0xF0, 0x90, - 0x90, 0x86, 0xF0, 0x90, 0x90, 0x87, 0xF0, 0x90, - 0x90, 0x88, 0xF0, 0x90, 0x90, 0x89, 0xF0, 0x90, - 0x90, 0x8A, 0xF0, 0x90, 0x90, 0x8B, 0xF0, 0x90, - 0x90, 0x8C, 0xF0, 0x90, 0x90, 0x8D, 0xF0, 0x90, - 0x90, 0x8E, 0xF0, 0x90, 0x90, 0x8F, 0xF0, 0x90, - 0x90, 0x90, 0xF0, 0x90, 0x90, 0x91, 0xF0, 0x90, - 0x90, 0x92, 0xF0, 0x90, 0x90, 0x93, 0xF0, 0x90, - 0x90, 0x94, 0xF0, 0x90, 0x90, 0x95, 0xF0, 0x90, - 0x90, 0x96, 0xF0, 0x90, 0x90, 0x97, 0xF0, 0x90, - 0x90, 0x98, 0xF0, 0x90, 0x90, 0x99, 0xF0, 0x90, - 0x90, 0x9A, 0xF0, 0x90, 0x90, 0x9B, 0xF0, 0x90, - 0x90, 0x9C, 0xF0, 0x90, 0x90, 0x9D, 0xF0, 0x90, - 0x90, 0x9E, 0xF0, 0x90, 0x90, 0x9F, 0xF0, 0x90, - 0x90, 0xA0, 0xF0, 0x90, 0x90, 0xA1, 0xF0, 0x90, - 0x90, 0xA2, 0xF0, 0x90, 0x90, 0xA3, 0xF0, 0x90, - 0x90, 0xA4, 0xF0, 0x90, 0x90, 0xA5, 0xF0, 0x90, - 0x90, 0xA6, 0xF0, 0x90, 0x90, 0xA7, - }, -}; - -#undef N_ -#undef FIL_ - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_U8_TEXTPREP_DATA_H */ diff --git a/module/zcommon/Makefile.in b/module/zcommon/Makefile.in index def2b7d97..ee4864ffc 100644 --- a/module/zcommon/Makefile.in +++ b/module/zcommon/Makefile.in @@ -1,18 +1,16 @@ MODULE := zcommon -EXTRA_CFLAGS = -I@MODDIR@/avl/include -EXTRA_CFLAGS += -I@MODDIR@/nvpair/include -EXTRA_CFLAGS += -I@MODDIR@/unicode/include -EXTRA_CFLAGS += -I@MODDIR@/zcommon/include -EXTRA_CFLAGS += -I@MODDIR@/zfs/include -EXTRA_CFLAGS += @KERNELCPPFLAGS@ +EXTRA_CFLAGS = @KERNELCPPFLAGS@ +EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h +EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h +EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@ -obj-m := ${MODULE}.o +obj-m := $(MODULE).o -${MODULE}-objs += zfs_deleg.o -${MODULE}-objs += zfs_prop.o -${MODULE}-objs += zprop_common.o -${MODULE}-objs += zfs_namecheck.o -${MODULE}-objs += zfs_comutil.o -${MODULE}-objs += zfs_fletcher.o -${MODULE}-objs += zpool_prop.o +$(MODULE)-objs += @top_srcdir@/module/zcommon/zfs_deleg.o +$(MODULE)-objs += @top_srcdir@/module/zcommon/zfs_prop.o +$(MODULE)-objs += @top_srcdir@/module/zcommon/zprop_common.o +$(MODULE)-objs += @top_srcdir@/module/zcommon/zfs_namecheck.o +$(MODULE)-objs += @top_srcdir@/module/zcommon/zfs_comutil.o +$(MODULE)-objs += @top_srcdir@/module/zcommon/zfs_fletcher.o +$(MODULE)-objs += @top_srcdir@/module/zcommon/zpool_prop.o diff --git a/module/zcommon/include/sys/fs/zfs.h b/module/zcommon/include/sys/fs/zfs.h deleted file mode 100644 index 25f256251..000000000 --- a/module/zcommon/include/sys/fs/zfs.h +++ /dev/null @@ -1,916 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -/* Portions Copyright 2010 Robert Milkowski */ - -#ifndef _SYS_FS_ZFS_H -#define _SYS_FS_ZFS_H - -#include <sys/time.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Types and constants shared between userland and the kernel. - */ - -/* - * Each dataset can be one of the following types. These constants can be - * combined into masks that can be passed to various functions. - */ -typedef enum { - ZFS_TYPE_FILESYSTEM = 0x1, - ZFS_TYPE_SNAPSHOT = 0x2, - ZFS_TYPE_VOLUME = 0x4, - ZFS_TYPE_POOL = 0x8 -} zfs_type_t; - -#define ZFS_TYPE_DATASET \ - (ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME | ZFS_TYPE_SNAPSHOT) - -#define ZAP_MAXNAMELEN 256 -#define ZAP_MAXVALUELEN (1024 * 8) -#define ZAP_OLDMAXVALUELEN 1024 - -/* - * Dataset properties are identified by these constants and must be added to - * the end of this list to ensure that external consumers are not affected - * by the change. If you make any changes to this list, be sure to update - * the property table in usr/src/common/zfs/zfs_prop.c. - */ -typedef enum { - ZFS_PROP_TYPE, - ZFS_PROP_CREATION, - ZFS_PROP_USED, - ZFS_PROP_AVAILABLE, - ZFS_PROP_REFERENCED, - ZFS_PROP_COMPRESSRATIO, - ZFS_PROP_MOUNTED, - ZFS_PROP_ORIGIN, - ZFS_PROP_QUOTA, - ZFS_PROP_RESERVATION, - ZFS_PROP_VOLSIZE, - ZFS_PROP_VOLBLOCKSIZE, - ZFS_PROP_RECORDSIZE, - ZFS_PROP_MOUNTPOINT, - ZFS_PROP_SHARENFS, - ZFS_PROP_CHECKSUM, - ZFS_PROP_COMPRESSION, - ZFS_PROP_ATIME, - ZFS_PROP_DEVICES, - ZFS_PROP_EXEC, - ZFS_PROP_SETUID, - ZFS_PROP_READONLY, - ZFS_PROP_ZONED, - ZFS_PROP_SNAPDIR, - ZFS_PROP_PRIVATE, /* not exposed to user, temporary */ - ZFS_PROP_ACLINHERIT, - ZFS_PROP_CREATETXG, /* not exposed to the user */ - ZFS_PROP_NAME, /* not exposed to the user */ - ZFS_PROP_CANMOUNT, - ZFS_PROP_ISCSIOPTIONS, /* not exposed to the user */ - ZFS_PROP_XATTR, - ZFS_PROP_NUMCLONES, /* not exposed to the user */ - ZFS_PROP_COPIES, - ZFS_PROP_VERSION, - ZFS_PROP_UTF8ONLY, - ZFS_PROP_NORMALIZE, - ZFS_PROP_CASE, - ZFS_PROP_VSCAN, - ZFS_PROP_NBMAND, - ZFS_PROP_SHARESMB, - ZFS_PROP_REFQUOTA, - ZFS_PROP_REFRESERVATION, - ZFS_PROP_GUID, - ZFS_PROP_PRIMARYCACHE, - ZFS_PROP_SECONDARYCACHE, - ZFS_PROP_USEDSNAP, - ZFS_PROP_USEDDS, - ZFS_PROP_USEDCHILD, - ZFS_PROP_USEDREFRESERV, - ZFS_PROP_USERACCOUNTING, /* not exposed to the user */ - ZFS_PROP_STMF_SHAREINFO, /* not exposed to the user */ - ZFS_PROP_DEFER_DESTROY, - ZFS_PROP_USERREFS, - ZFS_PROP_LOGBIAS, - ZFS_PROP_UNIQUE, /* not exposed to the user */ - ZFS_PROP_OBJSETID, /* not exposed to the user */ - ZFS_PROP_DEDUP, - ZFS_PROP_MLSLABEL, - ZFS_PROP_SYNC, - ZFS_NUM_PROPS -} zfs_prop_t; - -typedef enum { - ZFS_PROP_USERUSED, - ZFS_PROP_USERQUOTA, - ZFS_PROP_GROUPUSED, - ZFS_PROP_GROUPQUOTA, - ZFS_NUM_USERQUOTA_PROPS -} zfs_userquota_prop_t; - -extern const char *zfs_userquota_prop_prefixes[ZFS_NUM_USERQUOTA_PROPS]; - -/* - * Pool properties are identified by these constants and must be added to the - * end of this list to ensure that external consumers are not affected - * by the change. If you make any changes to this list, be sure to update - * the property table in usr/src/common/zfs/zpool_prop.c. - */ -typedef enum { - ZPOOL_PROP_NAME, - ZPOOL_PROP_SIZE, - ZPOOL_PROP_CAPACITY, - ZPOOL_PROP_ALTROOT, - ZPOOL_PROP_HEALTH, - ZPOOL_PROP_GUID, - ZPOOL_PROP_VERSION, - ZPOOL_PROP_BOOTFS, - ZPOOL_PROP_DELEGATION, - ZPOOL_PROP_AUTOREPLACE, - ZPOOL_PROP_CACHEFILE, - ZPOOL_PROP_FAILUREMODE, - ZPOOL_PROP_LISTSNAPS, - ZPOOL_PROP_AUTOEXPAND, - ZPOOL_PROP_DEDUPDITTO, - ZPOOL_PROP_DEDUPRATIO, - ZPOOL_PROP_FREE, - ZPOOL_PROP_ALLOCATED, - ZPOOL_PROP_READONLY, - ZPOOL_NUM_PROPS -} zpool_prop_t; - -#define ZPROP_CONT -2 -#define ZPROP_INVAL -1 - -#define ZPROP_VALUE "value" -#define ZPROP_SOURCE "source" - -typedef enum { - ZPROP_SRC_NONE = 0x1, - ZPROP_SRC_DEFAULT = 0x2, - ZPROP_SRC_TEMPORARY = 0x4, - ZPROP_SRC_LOCAL = 0x8, - ZPROP_SRC_INHERITED = 0x10, - ZPROP_SRC_RECEIVED = 0x20 -} zprop_source_t; - -#define ZPROP_SRC_ALL 0x3f - -#define ZPROP_SOURCE_VAL_RECVD "$recvd" -#define ZPROP_N_MORE_ERRORS "N_MORE_ERRORS" -/* - * Dataset flag implemented as a special entry in the props zap object - * indicating that the dataset has received properties on or after - * SPA_VERSION_RECVD_PROPS. The first such receive blows away local properties - * just as it did in earlier versions, and thereafter, local properties are - * preserved. - */ -#define ZPROP_HAS_RECVD "$hasrecvd" - -typedef enum { - ZPROP_ERR_NOCLEAR = 0x1, /* failure to clear existing props */ - ZPROP_ERR_NORESTORE = 0x2 /* failure to restore props on error */ -} zprop_errflags_t; - -typedef int (*zprop_func)(int, void *); - -/* - * Properties to be set on the root file system of a new pool - * are stuffed into their own nvlist, which is then included in - * the properties nvlist with the pool properties. - */ -#define ZPOOL_ROOTFS_PROPS "root-props-nvl" - -/* - * Dataset property functions shared between libzfs and kernel. - */ -const char *zfs_prop_default_string(zfs_prop_t); -uint64_t zfs_prop_default_numeric(zfs_prop_t); -boolean_t zfs_prop_readonly(zfs_prop_t); -boolean_t zfs_prop_inheritable(zfs_prop_t); -boolean_t zfs_prop_setonce(zfs_prop_t); -const char *zfs_prop_to_name(zfs_prop_t); -zfs_prop_t zfs_name_to_prop(const char *); -boolean_t zfs_prop_user(const char *); -boolean_t zfs_prop_userquota(const char *); -int zfs_prop_index_to_string(zfs_prop_t, uint64_t, const char **); -int zfs_prop_string_to_index(zfs_prop_t, const char *, uint64_t *); -uint64_t zfs_prop_random_value(zfs_prop_t, uint64_t seed); -boolean_t zfs_prop_valid_for_type(int, zfs_type_t); - -/* - * Pool property functions shared between libzfs and kernel. - */ -zpool_prop_t zpool_name_to_prop(const char *); -const char *zpool_prop_to_name(zpool_prop_t); -const char *zpool_prop_default_string(zpool_prop_t); -uint64_t zpool_prop_default_numeric(zpool_prop_t); -boolean_t zpool_prop_readonly(zpool_prop_t); -int zpool_prop_index_to_string(zpool_prop_t, uint64_t, const char **); -int zpool_prop_string_to_index(zpool_prop_t, const char *, uint64_t *); -uint64_t zpool_prop_random_value(zpool_prop_t, uint64_t seed); - -/* - * Definitions for the Delegation. - */ -typedef enum { - ZFS_DELEG_WHO_UNKNOWN = 0, - ZFS_DELEG_USER = 'u', - ZFS_DELEG_USER_SETS = 'U', - ZFS_DELEG_GROUP = 'g', - ZFS_DELEG_GROUP_SETS = 'G', - ZFS_DELEG_EVERYONE = 'e', - ZFS_DELEG_EVERYONE_SETS = 'E', - ZFS_DELEG_CREATE = 'c', - ZFS_DELEG_CREATE_SETS = 'C', - ZFS_DELEG_NAMED_SET = 's', - ZFS_DELEG_NAMED_SET_SETS = 'S' -} zfs_deleg_who_type_t; - -typedef enum { - ZFS_DELEG_NONE = 0, - ZFS_DELEG_PERM_LOCAL = 1, - ZFS_DELEG_PERM_DESCENDENT = 2, - ZFS_DELEG_PERM_LOCALDESCENDENT = 3, - ZFS_DELEG_PERM_CREATE = 4 -} zfs_deleg_inherit_t; - -#define ZFS_DELEG_PERM_UID "uid" -#define ZFS_DELEG_PERM_GID "gid" -#define ZFS_DELEG_PERM_GROUPS "groups" - -#define ZFS_MLSLABEL_DEFAULT "none" - -#define ZFS_SMB_ACL_SRC "src" -#define ZFS_SMB_ACL_TARGET "target" - -typedef enum { - ZFS_CANMOUNT_OFF = 0, - ZFS_CANMOUNT_ON = 1, - ZFS_CANMOUNT_NOAUTO = 2 -} zfs_canmount_type_t; - -typedef enum { - ZFS_LOGBIAS_LATENCY = 0, - ZFS_LOGBIAS_THROUGHPUT = 1 -} zfs_logbias_op_t; - -typedef enum zfs_share_op { - ZFS_SHARE_NFS = 0, - ZFS_UNSHARE_NFS = 1, - ZFS_SHARE_SMB = 2, - ZFS_UNSHARE_SMB = 3 -} zfs_share_op_t; - -typedef enum zfs_smb_acl_op { - ZFS_SMB_ACL_ADD, - ZFS_SMB_ACL_REMOVE, - ZFS_SMB_ACL_RENAME, - ZFS_SMB_ACL_PURGE -} zfs_smb_acl_op_t; - -typedef enum zfs_cache_type { - ZFS_CACHE_NONE = 0, - ZFS_CACHE_METADATA = 1, - ZFS_CACHE_ALL = 2 -} zfs_cache_type_t; - -typedef enum { - ZFS_SYNC_STANDARD = 0, - ZFS_SYNC_ALWAYS = 1, - ZFS_SYNC_DISABLED = 2 -} zfs_sync_type_t; - - -/* - * On-disk version number. - */ -#define SPA_VERSION_1 1ULL -#define SPA_VERSION_2 2ULL -#define SPA_VERSION_3 3ULL -#define SPA_VERSION_4 4ULL -#define SPA_VERSION_5 5ULL -#define SPA_VERSION_6 6ULL -#define SPA_VERSION_7 7ULL -#define SPA_VERSION_8 8ULL -#define SPA_VERSION_9 9ULL -#define SPA_VERSION_10 10ULL -#define SPA_VERSION_11 11ULL -#define SPA_VERSION_12 12ULL -#define SPA_VERSION_13 13ULL -#define SPA_VERSION_14 14ULL -#define SPA_VERSION_15 15ULL -#define SPA_VERSION_16 16ULL -#define SPA_VERSION_17 17ULL -#define SPA_VERSION_18 18ULL -#define SPA_VERSION_19 19ULL -#define SPA_VERSION_20 20ULL -#define SPA_VERSION_21 21ULL -#define SPA_VERSION_22 22ULL -#define SPA_VERSION_23 23ULL -#define SPA_VERSION_24 24ULL -#define SPA_VERSION_25 25ULL -#define SPA_VERSION_26 26ULL -#define SPA_VERSION_27 27ULL -#define SPA_VERSION_28 28ULL - -/* - * When bumping up SPA_VERSION, make sure GRUB ZFS understands the on-disk - * format change. Go to usr/src/grub/grub-0.97/stage2/{zfs-include/, fsys_zfs*}, - * and do the appropriate changes. Also bump the version number in - * usr/src/grub/capability. - */ -#define SPA_VERSION SPA_VERSION_28 -#define SPA_VERSION_STRING "28" - -/* - * Symbolic names for the changes that caused a SPA_VERSION switch. - * Used in the code when checking for presence or absence of a feature. - * Feel free to define multiple symbolic names for each version if there - * were multiple changes to on-disk structures during that version. - * - * NOTE: When checking the current SPA_VERSION in your code, be sure - * to use spa_version() since it reports the version of the - * last synced uberblock. Checking the in-flight version can - * be dangerous in some cases. - */ -#define SPA_VERSION_INITIAL SPA_VERSION_1 -#define SPA_VERSION_DITTO_BLOCKS SPA_VERSION_2 -#define SPA_VERSION_SPARES SPA_VERSION_3 -#define SPA_VERSION_RAIDZ2 SPA_VERSION_3 -#define SPA_VERSION_BPOBJ_ACCOUNT SPA_VERSION_3 -#define SPA_VERSION_RAIDZ_DEFLATE SPA_VERSION_3 -#define SPA_VERSION_DNODE_BYTES SPA_VERSION_3 -#define SPA_VERSION_ZPOOL_HISTORY SPA_VERSION_4 -#define SPA_VERSION_GZIP_COMPRESSION SPA_VERSION_5 -#define SPA_VERSION_BOOTFS SPA_VERSION_6 -#define SPA_VERSION_SLOGS SPA_VERSION_7 -#define SPA_VERSION_DELEGATED_PERMS SPA_VERSION_8 -#define SPA_VERSION_FUID SPA_VERSION_9 -#define SPA_VERSION_REFRESERVATION SPA_VERSION_9 -#define SPA_VERSION_REFQUOTA SPA_VERSION_9 -#define SPA_VERSION_UNIQUE_ACCURATE SPA_VERSION_9 -#define SPA_VERSION_L2CACHE SPA_VERSION_10 -#define SPA_VERSION_NEXT_CLONES SPA_VERSION_11 -#define SPA_VERSION_ORIGIN SPA_VERSION_11 -#define SPA_VERSION_DSL_SCRUB SPA_VERSION_11 -#define SPA_VERSION_SNAP_PROPS SPA_VERSION_12 -#define SPA_VERSION_USED_BREAKDOWN SPA_VERSION_13 -#define SPA_VERSION_PASSTHROUGH_X SPA_VERSION_14 -#define SPA_VERSION_USERSPACE SPA_VERSION_15 -#define SPA_VERSION_STMF_PROP SPA_VERSION_16 -#define SPA_VERSION_RAIDZ3 SPA_VERSION_17 -#define SPA_VERSION_USERREFS SPA_VERSION_18 -#define SPA_VERSION_HOLES SPA_VERSION_19 -#define SPA_VERSION_ZLE_COMPRESSION SPA_VERSION_20 -#define SPA_VERSION_DEDUP SPA_VERSION_21 -#define SPA_VERSION_RECVD_PROPS SPA_VERSION_22 -#define SPA_VERSION_SLIM_ZIL SPA_VERSION_23 -#define SPA_VERSION_SA SPA_VERSION_24 -#define SPA_VERSION_SCAN SPA_VERSION_25 -#define SPA_VERSION_DIR_CLONES SPA_VERSION_26 -#define SPA_VERSION_DEADLISTS SPA_VERSION_26 -#define SPA_VERSION_FAST_SNAP SPA_VERSION_27 -#define SPA_VERSION_MULTI_REPLACE SPA_VERSION_28 - -/* - * ZPL version - rev'd whenever an incompatible on-disk format change - * occurs. This is independent of SPA/DMU/ZAP versioning. You must - * also update the version_table[] and help message in zfs_prop.c. - * - * When changing, be sure to teach GRUB how to read the new format! - * See usr/src/grub/grub-0.97/stage2/{zfs-include/,fsys_zfs*} - */ -#define ZPL_VERSION_1 1ULL -#define ZPL_VERSION_2 2ULL -#define ZPL_VERSION_3 3ULL -#define ZPL_VERSION_4 4ULL -#define ZPL_VERSION_5 5ULL -#define ZPL_VERSION ZPL_VERSION_5 -#define ZPL_VERSION_STRING "5" - -#define ZPL_VERSION_INITIAL ZPL_VERSION_1 -#define ZPL_VERSION_DIRENT_TYPE ZPL_VERSION_2 -#define ZPL_VERSION_FUID ZPL_VERSION_3 -#define ZPL_VERSION_NORMALIZATION ZPL_VERSION_3 -#define ZPL_VERSION_SYSATTR ZPL_VERSION_3 -#define ZPL_VERSION_USERSPACE ZPL_VERSION_4 -#define ZPL_VERSION_SA ZPL_VERSION_5 - -/* Rewind request information */ -#define ZPOOL_NO_REWIND 1 /* No policy - default behavior */ -#define ZPOOL_NEVER_REWIND 2 /* Do not search for best txg or rewind */ -#define ZPOOL_TRY_REWIND 4 /* Search for best txg, but do not rewind */ -#define ZPOOL_DO_REWIND 8 /* Rewind to best txg w/in deferred frees */ -#define ZPOOL_EXTREME_REWIND 16 /* Allow extreme measures to find best txg */ -#define ZPOOL_REWIND_MASK 28 /* All the possible rewind bits */ -#define ZPOOL_REWIND_POLICIES 31 /* All the possible policy bits */ - -typedef struct zpool_rewind_policy { - uint32_t zrp_request; /* rewind behavior requested */ - uint64_t zrp_maxmeta; /* max acceptable meta-data errors */ - uint64_t zrp_maxdata; /* max acceptable data errors */ - uint64_t zrp_txg; /* specific txg to load */ -} zpool_rewind_policy_t; - -/* - * The following are configuration names used in the nvlist describing a pool's - * configuration. - */ -#define ZPOOL_CONFIG_VERSION "version" -#define ZPOOL_CONFIG_POOL_NAME "name" -#define ZPOOL_CONFIG_POOL_STATE "state" -#define ZPOOL_CONFIG_POOL_TXG "txg" -#define ZPOOL_CONFIG_POOL_GUID "pool_guid" -#define ZPOOL_CONFIG_CREATE_TXG "create_txg" -#define ZPOOL_CONFIG_TOP_GUID "top_guid" -#define ZPOOL_CONFIG_VDEV_TREE "vdev_tree" -#define ZPOOL_CONFIG_TYPE "type" -#define ZPOOL_CONFIG_CHILDREN "children" -#define ZPOOL_CONFIG_ID "id" -#define ZPOOL_CONFIG_GUID "guid" -#define ZPOOL_CONFIG_PATH "path" -#define ZPOOL_CONFIG_DEVID "devid" -#define ZPOOL_CONFIG_METASLAB_ARRAY "metaslab_array" -#define ZPOOL_CONFIG_METASLAB_SHIFT "metaslab_shift" -#define ZPOOL_CONFIG_ASHIFT "ashift" -#define ZPOOL_CONFIG_ASIZE "asize" -#define ZPOOL_CONFIG_DTL "DTL" -#define ZPOOL_CONFIG_SCAN_STATS "scan_stats" /* not stored on disk */ -#define ZPOOL_CONFIG_VDEV_STATS "vdev_stats" /* not stored on disk */ -#define ZPOOL_CONFIG_WHOLE_DISK "whole_disk" -#define ZPOOL_CONFIG_ERRCOUNT "error_count" -#define ZPOOL_CONFIG_NOT_PRESENT "not_present" -#define ZPOOL_CONFIG_SPARES "spares" -#define ZPOOL_CONFIG_IS_SPARE "is_spare" -#define ZPOOL_CONFIG_NPARITY "nparity" -#define ZPOOL_CONFIG_HOSTID "hostid" -#define ZPOOL_CONFIG_HOSTNAME "hostname" -#define ZPOOL_CONFIG_LOADED_TIME "initial_load_time" -#define ZPOOL_CONFIG_UNSPARE "unspare" -#define ZPOOL_CONFIG_PHYS_PATH "phys_path" -#define ZPOOL_CONFIG_IS_LOG "is_log" -#define ZPOOL_CONFIG_L2CACHE "l2cache" -#define ZPOOL_CONFIG_HOLE_ARRAY "hole_array" -#define ZPOOL_CONFIG_VDEV_CHILDREN "vdev_children" -#define ZPOOL_CONFIG_IS_HOLE "is_hole" -#define ZPOOL_CONFIG_DDT_HISTOGRAM "ddt_histogram" -#define ZPOOL_CONFIG_DDT_OBJ_STATS "ddt_object_stats" -#define ZPOOL_CONFIG_DDT_STATS "ddt_stats" -#define ZPOOL_CONFIG_SPLIT "splitcfg" -#define ZPOOL_CONFIG_ORIG_GUID "orig_guid" -#define ZPOOL_CONFIG_SPLIT_GUID "split_guid" -#define ZPOOL_CONFIG_SPLIT_LIST "guid_list" -#define ZPOOL_CONFIG_REMOVING "removing" -#define ZPOOL_CONFIG_RESILVERING "resilvering" -#define ZPOOL_CONFIG_SUSPENDED "suspended" /* not stored on disk */ -#define ZPOOL_CONFIG_TIMESTAMP "timestamp" /* not stored on disk */ -#define ZPOOL_CONFIG_BOOTFS "bootfs" /* not stored on disk */ -#define ZPOOL_CONFIG_MISSING_DEVICES "missing_vdevs" /* not stored on disk */ -#define ZPOOL_CONFIG_LOAD_INFO "load_info" /* not stored on disk */ -/* - * The persistent vdev state is stored as separate values rather than a single - * 'vdev_state' entry. This is because a device can be in multiple states, such - * as offline and degraded. - */ -#define ZPOOL_CONFIG_OFFLINE "offline" -#define ZPOOL_CONFIG_FAULTED "faulted" -#define ZPOOL_CONFIG_DEGRADED "degraded" -#define ZPOOL_CONFIG_REMOVED "removed" -#define ZPOOL_CONFIG_FRU "fru" -#define ZPOOL_CONFIG_AUX_STATE "aux_state" - -/* Rewind policy parameters */ -#define ZPOOL_REWIND_POLICY "rewind-policy" -#define ZPOOL_REWIND_REQUEST "rewind-request" -#define ZPOOL_REWIND_REQUEST_TXG "rewind-request-txg" -#define ZPOOL_REWIND_META_THRESH "rewind-meta-thresh" -#define ZPOOL_REWIND_DATA_THRESH "rewind-data-thresh" - -/* Rewind data discovered */ -#define ZPOOL_CONFIG_LOAD_TIME "rewind_txg_ts" -#define ZPOOL_CONFIG_LOAD_DATA_ERRORS "verify_data_errors" -#define ZPOOL_CONFIG_REWIND_TIME "seconds_of_rewind" - -#define VDEV_TYPE_ROOT "root" -#define VDEV_TYPE_MIRROR "mirror" -#define VDEV_TYPE_REPLACING "replacing" -#define VDEV_TYPE_RAIDZ "raidz" -#define VDEV_TYPE_DISK "disk" -#define VDEV_TYPE_FILE "file" -#define VDEV_TYPE_MISSING "missing" -#define VDEV_TYPE_HOLE "hole" -#define VDEV_TYPE_SPARE "spare" -#define VDEV_TYPE_LOG "log" -#define VDEV_TYPE_L2CACHE "l2cache" - -/* - * This is needed in userland to report the minimum necessary device size. - */ -#define SPA_MINDEVSIZE (64ULL << 20) - -/* - * The location of the pool configuration repository, shared between kernel and - * userland. - */ -#define ZPOOL_CACHE "/etc/zfs/zpool.cache" - -/* - * vdev states are ordered from least to most healthy. - * A vdev that's CANT_OPEN or below is considered unusable. - */ -typedef enum vdev_state { - VDEV_STATE_UNKNOWN = 0, /* Uninitialized vdev */ - VDEV_STATE_CLOSED, /* Not currently open */ - VDEV_STATE_OFFLINE, /* Not allowed to open */ - VDEV_STATE_REMOVED, /* Explicitly removed from system */ - VDEV_STATE_CANT_OPEN, /* Tried to open, but failed */ - VDEV_STATE_FAULTED, /* External request to fault device */ - VDEV_STATE_DEGRADED, /* Replicated vdev with unhealthy kids */ - VDEV_STATE_HEALTHY /* Presumed good */ -} vdev_state_t; - -#define VDEV_STATE_ONLINE VDEV_STATE_HEALTHY - -/* - * vdev aux states. When a vdev is in the CANT_OPEN state, the aux field - * of the vdev stats structure uses these constants to distinguish why. - */ -typedef enum vdev_aux { - VDEV_AUX_NONE, /* no error */ - VDEV_AUX_OPEN_FAILED, /* ldi_open_*() or vn_open() failed */ - VDEV_AUX_CORRUPT_DATA, /* bad label or disk contents */ - VDEV_AUX_NO_REPLICAS, /* insufficient number of replicas */ - VDEV_AUX_BAD_GUID_SUM, /* vdev guid sum doesn't match */ - VDEV_AUX_TOO_SMALL, /* vdev size is too small */ - VDEV_AUX_BAD_LABEL, /* the label is OK but invalid */ - VDEV_AUX_VERSION_NEWER, /* on-disk version is too new */ - VDEV_AUX_VERSION_OLDER, /* on-disk version is too old */ - VDEV_AUX_SPARED, /* hot spare used in another pool */ - VDEV_AUX_ERR_EXCEEDED, /* too many errors */ - VDEV_AUX_IO_FAILURE, /* experienced I/O failure */ - VDEV_AUX_BAD_LOG, /* cannot read log chain(s) */ - VDEV_AUX_EXTERNAL, /* external diagnosis */ - VDEV_AUX_SPLIT_POOL /* vdev was split off into another pool */ -} vdev_aux_t; - -/* - * pool state. The following states are written to disk as part of the normal - * SPA lifecycle: ACTIVE, EXPORTED, DESTROYED, SPARE, L2CACHE. The remaining - * states are software abstractions used at various levels to communicate - * pool state. - */ -typedef enum pool_state { - POOL_STATE_ACTIVE = 0, /* In active use */ - POOL_STATE_EXPORTED, /* Explicitly exported */ - POOL_STATE_DESTROYED, /* Explicitly destroyed */ - POOL_STATE_SPARE, /* Reserved for hot spare use */ - POOL_STATE_L2CACHE, /* Level 2 ARC device */ - POOL_STATE_UNINITIALIZED, /* Internal spa_t state */ - POOL_STATE_UNAVAIL, /* Internal libzfs state */ - POOL_STATE_POTENTIALLY_ACTIVE /* Internal libzfs state */ -} pool_state_t; - -/* - * Scan Functions. - */ -typedef enum pool_scan_func { - POOL_SCAN_NONE, - POOL_SCAN_SCRUB, - POOL_SCAN_RESILVER, - POOL_SCAN_FUNCS -} pool_scan_func_t; - -/* - * ZIO types. Needed to interpret vdev statistics below. - */ -typedef enum zio_type { - ZIO_TYPE_NULL = 0, - ZIO_TYPE_READ, - ZIO_TYPE_WRITE, - ZIO_TYPE_FREE, - ZIO_TYPE_CLAIM, - ZIO_TYPE_IOCTL, - ZIO_TYPES -} zio_type_t; - -/* - * Pool statistics. Note: all fields should be 64-bit because this - * is passed between kernel and userland as an nvlist uint64 array. - */ -typedef struct pool_scan_stat { - /* values stored on disk */ - uint64_t pss_func; /* pool_scan_func_t */ - uint64_t pss_state; /* dsl_scan_state_t */ - uint64_t pss_start_time; /* scan start time */ - uint64_t pss_end_time; /* scan end time */ - uint64_t pss_to_examine; /* total bytes to scan */ - uint64_t pss_examined; /* total examined bytes */ - uint64_t pss_to_process; /* total bytes to process */ - uint64_t pss_processed; /* total processed bytes */ - uint64_t pss_errors; /* scan errors */ - - /* values not stored on disk */ - uint64_t pss_pass_exam; /* examined bytes per scan pass */ - uint64_t pss_pass_start; /* start time of a scan pass */ -} pool_scan_stat_t; - -typedef enum dsl_scan_state { - DSS_NONE, - DSS_SCANNING, - DSS_FINISHED, - DSS_CANCELED, - DSS_NUM_STATES -} dsl_scan_state_t; - - -/* - * Vdev statistics. Note: all fields should be 64-bit because this - * is passed between kernel and userland as an nvlist uint64 array. - */ -typedef struct vdev_stat { - hrtime_t vs_timestamp; /* time since vdev load */ - uint64_t vs_state; /* vdev state */ - uint64_t vs_aux; /* see vdev_aux_t */ - uint64_t vs_alloc; /* space allocated */ - uint64_t vs_space; /* total capacity */ - uint64_t vs_dspace; /* deflated capacity */ - uint64_t vs_rsize; /* replaceable dev size */ - uint64_t vs_ops[ZIO_TYPES]; /* operation count */ - uint64_t vs_bytes[ZIO_TYPES]; /* bytes read/written */ - uint64_t vs_read_errors; /* read errors */ - uint64_t vs_write_errors; /* write errors */ - uint64_t vs_checksum_errors; /* checksum errors */ - uint64_t vs_self_healed; /* self-healed bytes */ - uint64_t vs_scan_removing; /* removing? */ - uint64_t vs_scan_processed; /* scan processed bytes */ -} vdev_stat_t; - -/* - * DDT statistics. Note: all fields should be 64-bit because this - * is passed between kernel and userland as an nvlist uint64 array. - */ -typedef struct ddt_object { - uint64_t ddo_count; /* number of elments in ddt */ - uint64_t ddo_dspace; /* size of ddt on disk */ - uint64_t ddo_mspace; /* size of ddt in-core */ -} ddt_object_t; - -typedef struct ddt_stat { - uint64_t dds_blocks; /* blocks */ - uint64_t dds_lsize; /* logical size */ - uint64_t dds_psize; /* physical size */ - uint64_t dds_dsize; /* deflated allocated size */ - uint64_t dds_ref_blocks; /* referenced blocks */ - uint64_t dds_ref_lsize; /* referenced lsize * refcnt */ - uint64_t dds_ref_psize; /* referenced psize * refcnt */ - uint64_t dds_ref_dsize; /* referenced dsize * refcnt */ -} ddt_stat_t; - -typedef struct ddt_histogram { - ddt_stat_t ddh_stat[64]; /* power-of-two histogram buckets */ -} ddt_histogram_t; - -#define ZVOL_DRIVER "zvol" -#define ZFS_DRIVER "zfs" -#define ZFS_DEV "/dev/zfs" - -/* general zvol path */ -#define ZVOL_DIR "/dev" - -#define ZVOL_MAJOR 230 -#define ZVOL_MINOR_BITS 4 -#define ZVOL_MINOR_MASK ((1U << ZVOL_MINOR_BITS) - 1) -#define ZVOL_MINORS (1 << 4) - -#define ZVOL_PROP_NAME "name" -#define ZVOL_DEFAULT_BLOCKSIZE 8192 - -/* - * /dev/zfs ioctl numbers. - */ -#define ZFS_IOC ('Z' << 8) - -typedef enum zfs_ioc { - ZFS_IOC_POOL_CREATE = ZFS_IOC, - ZFS_IOC_POOL_DESTROY, - ZFS_IOC_POOL_IMPORT, - ZFS_IOC_POOL_EXPORT, - ZFS_IOC_POOL_CONFIGS, - ZFS_IOC_POOL_STATS, - ZFS_IOC_POOL_TRYIMPORT, - ZFS_IOC_POOL_SCAN, - ZFS_IOC_POOL_FREEZE, - ZFS_IOC_POOL_UPGRADE, - ZFS_IOC_POOL_GET_HISTORY, - ZFS_IOC_VDEV_ADD, - ZFS_IOC_VDEV_REMOVE, - ZFS_IOC_VDEV_SET_STATE, - ZFS_IOC_VDEV_ATTACH, - ZFS_IOC_VDEV_DETACH, - ZFS_IOC_VDEV_SETPATH, - ZFS_IOC_VDEV_SETFRU, - ZFS_IOC_OBJSET_STATS, - ZFS_IOC_OBJSET_ZPLPROPS, - ZFS_IOC_DATASET_LIST_NEXT, - ZFS_IOC_SNAPSHOT_LIST_NEXT, - ZFS_IOC_SET_PROP, - ZFS_IOC_CREATE_MINOR, - ZFS_IOC_REMOVE_MINOR, - ZFS_IOC_CREATE, - ZFS_IOC_DESTROY, - ZFS_IOC_ROLLBACK, - ZFS_IOC_RENAME, - ZFS_IOC_RECV, - ZFS_IOC_SEND, - ZFS_IOC_INJECT_FAULT, - ZFS_IOC_CLEAR_FAULT, - ZFS_IOC_INJECT_LIST_NEXT, - ZFS_IOC_ERROR_LOG, - ZFS_IOC_CLEAR, - ZFS_IOC_PROMOTE, - ZFS_IOC_DESTROY_SNAPS, - ZFS_IOC_SNAPSHOT, - ZFS_IOC_DSOBJ_TO_DSNAME, - ZFS_IOC_OBJ_TO_PATH, - ZFS_IOC_POOL_SET_PROPS, - ZFS_IOC_POOL_GET_PROPS, - ZFS_IOC_SET_FSACL, - ZFS_IOC_GET_FSACL, - ZFS_IOC_SHARE, - ZFS_IOC_INHERIT_PROP, - ZFS_IOC_SMB_ACL, - ZFS_IOC_USERSPACE_ONE, - ZFS_IOC_USERSPACE_MANY, - ZFS_IOC_USERSPACE_UPGRADE, - ZFS_IOC_HOLD, - ZFS_IOC_RELEASE, - ZFS_IOC_GET_HOLDS, - ZFS_IOC_OBJSET_RECVD_PROPS, - ZFS_IOC_VDEV_SPLIT, - ZFS_IOC_NEXT_OBJ, - ZFS_IOC_DIFF, - ZFS_IOC_TMP_SNAPSHOT, - ZFS_IOC_OBJ_TO_STATS, - ZFS_IOC_EVENTS_NEXT, - ZFS_IOC_EVENTS_CLEAR, -} zfs_ioc_t; - -/* - * Internal SPA load state. Used by FMA diagnosis engine. - */ -typedef enum { - SPA_LOAD_NONE, /* no load in progress */ - SPA_LOAD_OPEN, /* normal open */ - SPA_LOAD_IMPORT, /* import in progress */ - SPA_LOAD_TRYIMPORT, /* tryimport in progress */ - SPA_LOAD_RECOVER, /* recovery requested */ - SPA_LOAD_ERROR /* load failed */ -} spa_load_state_t; - -/* - * Bookmark name values. - */ -#define ZPOOL_ERR_LIST "error list" -#define ZPOOL_ERR_DATASET "dataset" -#define ZPOOL_ERR_OBJECT "object" - -#define HIS_MAX_RECORD_LEN (MAXPATHLEN + MAXPATHLEN + 1) - -/* - * The following are names used in the nvlist describing - * the pool's history log. - */ -#define ZPOOL_HIST_RECORD "history record" -#define ZPOOL_HIST_TIME "history time" -#define ZPOOL_HIST_CMD "history command" -#define ZPOOL_HIST_WHO "history who" -#define ZPOOL_HIST_ZONE "history zone" -#define ZPOOL_HIST_HOST "history hostname" -#define ZPOOL_HIST_TXG "history txg" -#define ZPOOL_HIST_INT_EVENT "history internal event" -#define ZPOOL_HIST_INT_STR "history internal str" - -/* - * Flags for ZFS_IOC_VDEV_SET_STATE - */ -#define ZFS_ONLINE_CHECKREMOVE 0x1 -#define ZFS_ONLINE_UNSPARE 0x2 -#define ZFS_ONLINE_FORCEFAULT 0x4 -#define ZFS_ONLINE_EXPAND 0x8 -#define ZFS_OFFLINE_TEMPORARY 0x1 - -/* - * Flags for ZFS_IOC_POOL_IMPORT - */ -#define ZFS_IMPORT_NORMAL 0x0 -#define ZFS_IMPORT_VERBATIM 0x1 -#define ZFS_IMPORT_ANY_HOST 0x2 -#define ZFS_IMPORT_MISSING_LOG 0x4 -#define ZFS_IMPORT_ONLY 0x8 - -/* - * Sysevent payload members. ZFS will generate the following sysevents with the - * given payloads: - * - * ESC_ZFS_RESILVER_START - * ESC_ZFS_RESILVER_END - * ESC_ZFS_POOL_DESTROY - * - * ZFS_EV_POOL_NAME DATA_TYPE_STRING - * ZFS_EV_POOL_GUID DATA_TYPE_UINT64 - * - * ESC_ZFS_VDEV_REMOVE - * ESC_ZFS_VDEV_CLEAR - * ESC_ZFS_VDEV_CHECK - * - * ZFS_EV_POOL_NAME DATA_TYPE_STRING - * ZFS_EV_POOL_GUID DATA_TYPE_UINT64 - * ZFS_EV_VDEV_PATH DATA_TYPE_STRING (optional) - * ZFS_EV_VDEV_GUID DATA_TYPE_UINT64 - */ -#define ZFS_EV_POOL_NAME "pool_name" -#define ZFS_EV_POOL_GUID "pool_guid" -#define ZFS_EV_VDEV_PATH "vdev_path" -#define ZFS_EV_VDEV_GUID "vdev_guid" - -/* - * Note: This is encoded on-disk, so new events must be added to the - * end, and unused events can not be removed. Be sure to edit - * libzfs_pool.c: hist_event_table[]. - */ -typedef enum history_internal_events { - LOG_NO_EVENT = 0, - LOG_POOL_CREATE, - LOG_POOL_VDEV_ADD, - LOG_POOL_REMOVE, - LOG_POOL_DESTROY, - LOG_POOL_EXPORT, - LOG_POOL_IMPORT, - LOG_POOL_VDEV_ATTACH, - LOG_POOL_VDEV_REPLACE, - LOG_POOL_VDEV_DETACH, - LOG_POOL_VDEV_ONLINE, - LOG_POOL_VDEV_OFFLINE, - LOG_POOL_UPGRADE, - LOG_POOL_CLEAR, - LOG_POOL_SCAN, - LOG_POOL_PROPSET, - LOG_DS_CREATE, - LOG_DS_CLONE, - LOG_DS_DESTROY, - LOG_DS_DESTROY_BEGIN, - LOG_DS_INHERIT, - LOG_DS_PROPSET, - LOG_DS_QUOTA, - LOG_DS_PERM_UPDATE, - LOG_DS_PERM_REMOVE, - LOG_DS_PERM_WHO_REMOVE, - LOG_DS_PROMOTE, - LOG_DS_RECEIVE, - LOG_DS_RENAME, - LOG_DS_RESERVATION, - LOG_DS_REPLAY_INC_SYNC, - LOG_DS_REPLAY_FULL_SYNC, - LOG_DS_ROLLBACK, - LOG_DS_SNAPSHOT, - LOG_DS_UPGRADE, - LOG_DS_REFQUOTA, - LOG_DS_REFRESERV, - LOG_POOL_SCAN_DONE, - LOG_DS_USER_HOLD, - LOG_DS_USER_RELEASE, - LOG_POOL_SPLIT, - LOG_END -} history_internal_events_t; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FS_ZFS_H */ diff --git a/module/zcommon/include/zfs_comutil.h b/module/zcommon/include/zfs_comutil.h deleted file mode 100644 index 61327f9aa..000000000 --- a/module/zcommon/include/zfs_comutil.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _ZFS_COMUTIL_H -#define _ZFS_COMUTIL_H - -#include <sys/fs/zfs.h> -#include <sys/types.h> - -#ifdef __cplusplus -extern "C" { -#endif - -extern boolean_t zfs_allocatable_devs(nvlist_t *); -extern void zpool_get_rewind_policy(nvlist_t *, zpool_rewind_policy_t *); - -extern int zfs_zpl_version_map(int spa_version); -extern int zfs_spa_version_map(int zpl_version); -extern const char *zfs_history_event_names[LOG_END]; - -#ifdef __cplusplus -} -#endif - -#endif /* _ZFS_COMUTIL_H */ diff --git a/module/zcommon/include/zfs_deleg.h b/module/zcommon/include/zfs_deleg.h deleted file mode 100644 index b4cb8e2b4..000000000 --- a/module/zcommon/include/zfs_deleg.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _ZFS_DELEG_H -#define _ZFS_DELEG_H - -#include <sys/fs/zfs.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZFS_DELEG_SET_NAME_CHR '@' /* set name lead char */ -#define ZFS_DELEG_FIELD_SEP_CHR '$' /* field separator */ - -/* - * Max name length for a delegation attribute - */ -#define ZFS_MAX_DELEG_NAME 128 - -#define ZFS_DELEG_LOCAL 'l' -#define ZFS_DELEG_DESCENDENT 'd' -#define ZFS_DELEG_NA '-' - -typedef enum { - ZFS_DELEG_NOTE_CREATE, - ZFS_DELEG_NOTE_DESTROY, - ZFS_DELEG_NOTE_SNAPSHOT, - ZFS_DELEG_NOTE_ROLLBACK, - ZFS_DELEG_NOTE_CLONE, - ZFS_DELEG_NOTE_PROMOTE, - ZFS_DELEG_NOTE_RENAME, - ZFS_DELEG_NOTE_RECEIVE, - ZFS_DELEG_NOTE_ALLOW, - ZFS_DELEG_NOTE_USERPROP, - ZFS_DELEG_NOTE_MOUNT, - ZFS_DELEG_NOTE_SHARE, - ZFS_DELEG_NOTE_USERQUOTA, - ZFS_DELEG_NOTE_GROUPQUOTA, - ZFS_DELEG_NOTE_USERUSED, - ZFS_DELEG_NOTE_GROUPUSED, - ZFS_DELEG_NOTE_HOLD, - ZFS_DELEG_NOTE_RELEASE, - ZFS_DELEG_NOTE_DIFF, - ZFS_DELEG_NOTE_NONE -} zfs_deleg_note_t; - -typedef struct zfs_deleg_perm_tab { - char *z_perm; - zfs_deleg_note_t z_note; -} zfs_deleg_perm_tab_t; - -extern zfs_deleg_perm_tab_t zfs_deleg_perm_tab[]; - -int zfs_deleg_verify_nvlist(nvlist_t *nvlist); -void zfs_deleg_whokey(char *attr, zfs_deleg_who_type_t type, - char checkflag, void *data); -const char *zfs_deleg_canonicalize_perm(const char *perm); - -#ifdef __cplusplus -} -#endif - -#endif /* _ZFS_DELEG_H */ diff --git a/module/zcommon/include/zfs_fletcher.h b/module/zcommon/include/zfs_fletcher.h deleted file mode 100644 index b49df0cf4..000000000 --- a/module/zcommon/include/zfs_fletcher.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _ZFS_FLETCHER_H -#define _ZFS_FLETCHER_H - -#include <sys/types.h> -#include <sys/spa.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * fletcher checksum functions - */ - -void fletcher_2_native(const void *, uint64_t, zio_cksum_t *); -void fletcher_2_byteswap(const void *, uint64_t, zio_cksum_t *); -void fletcher_4_native(const void *, uint64_t, zio_cksum_t *); -void fletcher_4_byteswap(const void *, uint64_t, zio_cksum_t *); -void fletcher_4_incremental_native(const void *, uint64_t, - zio_cksum_t *); -void fletcher_4_incremental_byteswap(const void *, uint64_t, - zio_cksum_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* _ZFS_FLETCHER_H */ diff --git a/module/zcommon/include/zfs_namecheck.h b/module/zcommon/include/zfs_namecheck.h deleted file mode 100644 index 7711da099..000000000 --- a/module/zcommon/include/zfs_namecheck.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _ZFS_NAMECHECK_H -#define _ZFS_NAMECHECK_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum { - NAME_ERR_LEADING_SLASH, /* name begins with leading slash */ - NAME_ERR_EMPTY_COMPONENT, /* name contains an empty component */ - NAME_ERR_TRAILING_SLASH, /* name ends with a slash */ - NAME_ERR_INVALCHAR, /* invalid character found */ - NAME_ERR_MULTIPLE_AT, /* multiple '@' characters found */ - NAME_ERR_NOLETTER, /* pool doesn't begin with a letter */ - NAME_ERR_RESERVED, /* entire name is reserved */ - NAME_ERR_DISKLIKE, /* reserved disk name (c[0-9].*) */ - NAME_ERR_TOOLONG, /* name is too long */ - NAME_ERR_NO_AT, /* permission set is missing '@' */ -} namecheck_err_t; - -#define ZFS_PERMSET_MAXLEN 64 - -int pool_namecheck(const char *, namecheck_err_t *, char *); -int dataset_namecheck(const char *, namecheck_err_t *, char *); -int mountpoint_namecheck(const char *, namecheck_err_t *); -int snapshot_namecheck(const char *, namecheck_err_t *, char *); -int permset_namecheck(const char *, namecheck_err_t *, char *); - -#ifdef __cplusplus -} -#endif - -#endif /* _ZFS_NAMECHECK_H */ diff --git a/module/zcommon/include/zfs_prop.h b/module/zcommon/include/zfs_prop.h deleted file mode 100644 index a63262311..000000000 --- a/module/zcommon/include/zfs_prop.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _ZFS_PROP_H -#define _ZFS_PROP_H - -#include <sys/fs/zfs.h> -#include <sys/types.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * For index types (e.g. compression and checksum), we want the numeric value - * in the kernel, but the string value in userland. - */ -typedef enum { - PROP_TYPE_NUMBER, /* numeric value */ - PROP_TYPE_STRING, /* string value */ - PROP_TYPE_INDEX /* numeric value indexed by string */ -} zprop_type_t; - -typedef enum { - PROP_DEFAULT, - PROP_READONLY, - PROP_INHERIT, - /* - * ONETIME properties are a sort of conglomeration of READONLY - * and INHERIT. They can be set only during object creation, - * after that they are READONLY. If not explicitly set during - * creation, they can be inherited. - */ - PROP_ONETIME -} zprop_attr_t; - -typedef struct zfs_index { - const char *pi_name; - uint64_t pi_value; -} zprop_index_t; - -typedef struct { - const char *pd_name; /* human-readable property name */ - int pd_propnum; /* property number */ - zprop_type_t pd_proptype; /* string, boolean, index, number */ - const char *pd_strdefault; /* default for strings */ - uint64_t pd_numdefault; /* for boolean / index / number */ - zprop_attr_t pd_attr; /* default, readonly, inherit */ - int pd_types; /* bitfield of valid dataset types */ - /* fs | vol | snap; or pool */ - const char *pd_values; /* string telling acceptable values */ - const char *pd_colname; /* column header for "zfs list" */ - boolean_t pd_rightalign; /* column alignment for "zfs list" */ - boolean_t pd_visible; /* do we list this property with the */ - /* "zfs get" help message */ - const zprop_index_t *pd_table; /* for index properties, a table */ - /* defining the possible values */ - size_t pd_table_size; /* number of entries in pd_table[] */ -} zprop_desc_t; - -/* - * zfs dataset property functions - */ -void zfs_prop_init(void); -zprop_type_t zfs_prop_get_type(zfs_prop_t); -boolean_t zfs_prop_delegatable(zfs_prop_t prop); -zprop_desc_t *zfs_prop_get_table(void); - -/* - * zpool property functions - */ -void zpool_prop_init(void); -zprop_type_t zpool_prop_get_type(zpool_prop_t); -zprop_desc_t *zpool_prop_get_table(void); - -/* - * Common routines to initialize property tables - */ -void zprop_register_impl(int, const char *, zprop_type_t, uint64_t, - const char *, zprop_attr_t, int, const char *, const char *, - boolean_t, boolean_t, const zprop_index_t *); -void zprop_register_string(int, const char *, const char *, - zprop_attr_t attr, int, const char *, const char *); -void zprop_register_number(int, const char *, uint64_t, zprop_attr_t, int, - const char *, const char *); -void zprop_register_index(int, const char *, uint64_t, zprop_attr_t, int, - const char *, const char *, const zprop_index_t *); -void zprop_register_hidden(int, const char *, zprop_type_t, zprop_attr_t, - int, const char *); - -/* - * Common routines for zfs and zpool property management - */ -int zprop_iter_common(zprop_func, void *, boolean_t, boolean_t, zfs_type_t); -int zprop_name_to_prop(const char *, zfs_type_t); -int zprop_string_to_index(int, const char *, uint64_t *, zfs_type_t); -int zprop_index_to_string(int, uint64_t, const char **, zfs_type_t); -uint64_t zprop_random_value(int, uint64_t, zfs_type_t); -const char *zprop_values(int, zfs_type_t); -size_t zprop_width(int, boolean_t *, zfs_type_t); -boolean_t zprop_valid_for_type(int, zfs_type_t); - -#ifdef __cplusplus -} -#endif - -#endif /* _ZFS_PROP_H */ diff --git a/module/zfs/Makefile.in b/module/zfs/Makefile.in index ef2e56208..71dbb39fc 100644 --- a/module/zfs/Makefile.in +++ b/module/zfs/Makefile.in @@ -1,90 +1,88 @@ MODULE := zfs -EXTRA_CFLAGS = -I@MODDIR@/zfs/include -EXTRA_CFLAGS += -I@MODDIR@/zcommon/include -EXTRA_CFLAGS += -I@MODDIR@/avl/include -EXTRA_CFLAGS += -I@MODDIR@/nvpair/include -EXTRA_CFLAGS += -I@MODDIR@/unicode/include EXTRA_CFLAGS += @KERNELCPPFLAGS@ +EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h +EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h +EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@ -obj-m := ${MODULE}.o +obj-m := $(MODULE).o -${MODULE}-objs += arc.o -${MODULE}-objs += bplist.o -${MODULE}-objs += bpobj.o -${MODULE}-objs += dbuf.o -${MODULE}-objs += ddt.o -${MODULE}-objs += ddt_zap.o -${MODULE}-objs += dmu.o -${MODULE}-objs += dmu_diff.o -${MODULE}-objs += dmu_object.o -${MODULE}-objs += dmu_objset.o -${MODULE}-objs += dmu_send.o -${MODULE}-objs += dmu_traverse.o -${MODULE}-objs += dmu_tx.o -${MODULE}-objs += dmu_zfetch.o -${MODULE}-objs += dnode.o -${MODULE}-objs += dnode_sync.o -${MODULE}-objs += dsl_dataset.o -${MODULE}-objs += dsl_deadlist.o -${MODULE}-objs += dsl_deleg.o -${MODULE}-objs += dsl_dir.o -${MODULE}-objs += dsl_pool.o -${MODULE}-objs += dsl_prop.o -${MODULE}-objs += dsl_scan.o -${MODULE}-objs += dsl_synctask.o -${MODULE}-objs += fm.o -${MODULE}-objs += gzip.o -${MODULE}-objs += lzjb.o -${MODULE}-objs += metaslab.o -${MODULE}-objs += refcount.o -${MODULE}-objs += rrwlock.o -${MODULE}-objs += sa.o -${MODULE}-objs += sha256.o -${MODULE}-objs += spa.o -${MODULE}-objs += spa_boot.o -${MODULE}-objs += spa_config.o -${MODULE}-objs += spa_errlog.o -${MODULE}-objs += spa_history.o -${MODULE}-objs += spa_misc.o -${MODULE}-objs += space_map.o -${MODULE}-objs += txg.o -${MODULE}-objs += uberblock.o -${MODULE}-objs += unique.o -${MODULE}-objs += vdev.o -${MODULE}-objs += vdev_cache.o -${MODULE}-objs += vdev_disk.o -${MODULE}-objs += vdev_file.o -${MODULE}-objs += vdev_label.o -${MODULE}-objs += vdev_mirror.o -${MODULE}-objs += vdev_missing.o -${MODULE}-objs += vdev_queue.o -${MODULE}-objs += vdev_raidz.o -${MODULE}-objs += vdev_root.o -${MODULE}-objs += zap.o -${MODULE}-objs += zap_leaf.o -${MODULE}-objs += zap_micro.o -${MODULE}-objs += zfs_acl.o -${MODULE}-objs += zfs_byteswap.o -${MODULE}-objs += zfs_ctldir.o -${MODULE}-objs += zfs_debug.o -${MODULE}-objs += zfs_dir.o -${MODULE}-objs += zfs_fm.o -${MODULE}-objs += zfs_fuid.o -${MODULE}-objs += zfs_ioctl.o -${MODULE}-objs += zfs_log.o -${MODULE}-objs += zfs_onexit.o -${MODULE}-objs += zfs_replay.o -${MODULE}-objs += zfs_rlock.o -${MODULE}-objs += zfs_sa.o -${MODULE}-objs += zfs_vfsops.o -${MODULE}-objs += zfs_vnops.o -${MODULE}-objs += zfs_znode.o -${MODULE}-objs += zil.o -${MODULE}-objs += zio.o -${MODULE}-objs += zio_checksum.o -${MODULE}-objs += zio_compress.o -${MODULE}-objs += zio_inject.o -${MODULE}-objs += zle.o -${MODULE}-objs += zrlock.o -${MODULE}-objs += zvol.o +$(MODULE)-objs += @top_srcdir@/module/zfs/arc.o +$(MODULE)-objs += @top_srcdir@/module/zfs/bplist.o +$(MODULE)-objs += @top_srcdir@/module/zfs/bpobj.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dbuf.o +$(MODULE)-objs += @top_srcdir@/module/zfs/ddt.o +$(MODULE)-objs += @top_srcdir@/module/zfs/ddt_zap.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dmu.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_diff.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_object.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_objset.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_send.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_traverse.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_tx.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dmu_zfetch.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dnode.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dnode_sync.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_dataset.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_deadlist.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_deleg.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_dir.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_pool.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_prop.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_scan.o +$(MODULE)-objs += @top_srcdir@/module/zfs/dsl_synctask.o +$(MODULE)-objs += @top_srcdir@/module/zfs/fm.o +$(MODULE)-objs += @top_srcdir@/module/zfs/gzip.o +$(MODULE)-objs += @top_srcdir@/module/zfs/lzjb.o +$(MODULE)-objs += @top_srcdir@/module/zfs/metaslab.o +$(MODULE)-objs += @top_srcdir@/module/zfs/refcount.o +$(MODULE)-objs += @top_srcdir@/module/zfs/rrwlock.o +$(MODULE)-objs += @top_srcdir@/module/zfs/sa.o +$(MODULE)-objs += @top_srcdir@/module/zfs/sha256.o +$(MODULE)-objs += @top_srcdir@/module/zfs/spa.o +$(MODULE)-objs += @top_srcdir@/module/zfs/spa_boot.o +$(MODULE)-objs += @top_srcdir@/module/zfs/spa_config.o +$(MODULE)-objs += @top_srcdir@/module/zfs/spa_errlog.o +$(MODULE)-objs += @top_srcdir@/module/zfs/spa_history.o +$(MODULE)-objs += @top_srcdir@/module/zfs/spa_misc.o +$(MODULE)-objs += @top_srcdir@/module/zfs/space_map.o +$(MODULE)-objs += @top_srcdir@/module/zfs/txg.o +$(MODULE)-objs += @top_srcdir@/module/zfs/uberblock.o +$(MODULE)-objs += @top_srcdir@/module/zfs/unique.o +$(MODULE)-objs += @top_srcdir@/module/zfs/vdev.o +$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_cache.o +$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_disk.o +$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_file.o +$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_label.o +$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_mirror.o +$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_missing.o +$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_queue.o +$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_raidz.o +$(MODULE)-objs += @top_srcdir@/module/zfs/vdev_root.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zap.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zap_leaf.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zap_micro.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_acl.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_byteswap.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_ctldir.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_debug.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_dir.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_fm.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_fuid.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_ioctl.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_log.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_onexit.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_replay.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_rlock.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_sa.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_vfsops.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_vnops.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zfs_znode.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zil.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zio.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zio_checksum.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zio_compress.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zio_inject.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zle.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zrlock.o +$(MODULE)-objs += @top_srcdir@/module/zfs/zvol.o diff --git a/module/zfs/include/sys/arc.h b/module/zfs/include/sys/arc.h deleted file mode 100644 index 8f189c62d..000000000 --- a/module/zfs/include/sys/arc.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_ARC_H -#define _SYS_ARC_H - -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#include <sys/zio.h> -#include <sys/dmu.h> -#include <sys/spa.h> - -typedef struct arc_buf_hdr arc_buf_hdr_t; -typedef struct arc_buf arc_buf_t; -typedef void arc_done_func_t(zio_t *zio, arc_buf_t *buf, void *private); -typedef int arc_evict_func_t(void *private); - -/* generic arc_done_func_t's which you can use */ -arc_done_func_t arc_bcopy_func; -arc_done_func_t arc_getbuf_func; - -struct arc_buf { - arc_buf_hdr_t *b_hdr; - arc_buf_t *b_next; - kmutex_t b_evict_lock; - krwlock_t b_data_lock; - void *b_data; - arc_evict_func_t *b_efunc; - void *b_private; -}; - -typedef enum arc_buf_contents { - ARC_BUFC_DATA, /* buffer contains data */ - ARC_BUFC_METADATA, /* buffer contains metadata */ - ARC_BUFC_NUMTYPES -} arc_buf_contents_t; -/* - * These are the flags we pass into calls to the arc - */ -#define ARC_WAIT (1 << 1) /* perform I/O synchronously */ -#define ARC_NOWAIT (1 << 2) /* perform I/O asynchronously */ -#define ARC_PREFETCH (1 << 3) /* I/O is a prefetch */ -#define ARC_CACHED (1 << 4) /* I/O was already in cache */ -#define ARC_L2CACHE (1 << 5) /* cache in L2ARC */ - -/* - * The following breakdows of arc_size exist for kstat only. - */ -typedef enum arc_space_type { - ARC_SPACE_DATA, - ARC_SPACE_HDRS, - ARC_SPACE_L2HDRS, - ARC_SPACE_OTHER, - ARC_SPACE_NUMTYPES -} arc_space_type_t; - -void arc_space_consume(uint64_t space, arc_space_type_t type); -void arc_space_return(uint64_t space, arc_space_type_t type); -void *arc_data_buf_alloc(uint64_t space); -void arc_data_buf_free(void *buf, uint64_t space); -arc_buf_t *arc_buf_alloc(spa_t *spa, int size, void *tag, - arc_buf_contents_t type); -arc_buf_t *arc_loan_buf(spa_t *spa, int size); -void arc_return_buf(arc_buf_t *buf, void *tag); -void arc_loan_inuse_buf(arc_buf_t *buf, void *tag); -void arc_buf_add_ref(arc_buf_t *buf, void *tag); -int arc_buf_remove_ref(arc_buf_t *buf, void *tag); -int arc_buf_size(arc_buf_t *buf); -void arc_release(arc_buf_t *buf, void *tag); -int arc_release_bp(arc_buf_t *buf, void *tag, blkptr_t *bp, spa_t *spa, - zbookmark_t *zb); -int arc_released(arc_buf_t *buf); -int arc_has_callback(arc_buf_t *buf); -void arc_buf_freeze(arc_buf_t *buf); -void arc_buf_thaw(arc_buf_t *buf); -#ifdef ZFS_DEBUG -int arc_referenced(arc_buf_t *buf); -#endif - -int arc_read(zio_t *pio, spa_t *spa, const blkptr_t *bp, arc_buf_t *pbuf, - arc_done_func_t *done, void *private, int priority, int zio_flags, - uint32_t *arc_flags, const zbookmark_t *zb); -int arc_read_nolock(zio_t *pio, spa_t *spa, const blkptr_t *bp, - arc_done_func_t *done, void *private, int priority, int flags, - uint32_t *arc_flags, const zbookmark_t *zb); -zio_t *arc_write(zio_t *pio, spa_t *spa, uint64_t txg, - blkptr_t *bp, arc_buf_t *buf, boolean_t l2arc, const zio_prop_t *zp, - arc_done_func_t *ready, arc_done_func_t *done, void *private, - int priority, int zio_flags, const zbookmark_t *zb); - -void arc_set_callback(arc_buf_t *buf, arc_evict_func_t *func, void *private); -int arc_buf_evict(arc_buf_t *buf); - -void arc_flush(spa_t *spa); -void arc_tempreserve_clear(uint64_t reserve); -int arc_tempreserve_space(uint64_t reserve, uint64_t txg); - -void arc_init(void); -void arc_fini(void); - -/* - * Level 2 ARC - */ - -void l2arc_add_vdev(spa_t *spa, vdev_t *vd); -void l2arc_remove_vdev(vdev_t *vd); -boolean_t l2arc_vdev_present(vdev_t *vd); -void l2arc_init(void); -void l2arc_fini(void); -void l2arc_start(void); -void l2arc_stop(void); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ARC_H */ diff --git a/module/zfs/include/sys/blkdev.h b/module/zfs/include/sys/blkdev.h deleted file mode 100644 index b84f66aed..000000000 --- a/module/zfs/include/sys/blkdev.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC. - * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). - * Written by Brian Behlendorf <[email protected]>. - * LLNL-CODE-403049. - */ - -#ifndef _SYS_BLKDEV_H -#define _SYS_BLKDEV_H - -#ifdef _KERNEL - -#include <linux/blkdev.h> -#include <linux/elevator.h> - -#ifndef HAVE_FMODE_T -typedef unsigned __bitwise__ fmode_t; -#endif /* HAVE_FMODE_T */ - -#ifndef HAVE_BLK_FETCH_REQUEST -static inline struct request * -blk_fetch_request(struct request_queue *q) -{ - struct request *req; - - req = elv_next_request(q); - if (req) - blkdev_dequeue_request(req); - - return req; -} -#endif /* HAVE_BLK_FETCH_REQUEST */ - -#ifndef HAVE_BLK_REQUEUE_REQUEST -static inline void -blk_requeue_request(request_queue_t *q, struct request *req) -{ - elv_requeue_request(q, req); -} -#endif /* HAVE_BLK_REQUEUE_REQUEST */ - -#ifndef HAVE_BLK_END_REQUEST -static inline bool -__blk_end_request(struct request *req, int error, unsigned int nr_bytes) -{ - LIST_HEAD(list); - - /* - * Request has already been dequeued but 2.6.18 version of - * end_request() unconditionally dequeues the request so we - * add it to a local list to prevent hitting the BUG_ON. - */ - list_add(&req->queuelist, &list); - - /* - * The old API required the driver to end each segment and not - * the entire request. In our case we always need to end the - * entire request partial requests are not supported. - */ - req->hard_cur_sectors = nr_bytes >> 9; - end_request(req, ((error == 0) ? 1 : error)); - - return 0; -} - -static inline bool -blk_end_request(struct request *req, int error, unsigned int nr_bytes) -{ - struct request_queue *q = req->q; - bool rc; - - spin_lock_irq(q->queue_lock); - rc = __blk_end_request(req, error, nr_bytes); - spin_unlock_irq(q->queue_lock); - - return rc; -} -#else -# ifdef HAVE_BLK_END_REQUEST_GPL_ONLY -/* - * Define required to avoid conflicting 2.6.29 non-static prototype for a - * GPL-only version of the helper. As of 2.6.31 the helper is available - * to non-GPL modules and is not explicitly exported GPL-only. - */ -# define __blk_end_request __blk_end_request_x -# define blk_end_request blk_end_request_x - -static inline bool -__blk_end_request_x(struct request *req, int error, unsigned int nr_bytes) -{ - /* - * The old API required the driver to end each segment and not - * the entire request. In our case we always need to end the - * entire request partial requests are not supported. - */ - req->hard_cur_sectors = nr_bytes >> 9; - end_request(req, ((error == 0) ? 1 : error)); - - return 0; -} -static inline bool -blk_end_request_x(struct request *req, int error, unsigned int nr_bytes) -{ - struct request_queue *q = req->q; - bool rc; - - spin_lock_irq(q->queue_lock); - rc = __blk_end_request_x(req, error, nr_bytes); - spin_unlock_irq(q->queue_lock); - - return rc; -} -# endif /* HAVE_BLK_END_REQUEST_GPL_ONLY */ -#endif /* HAVE_BLK_END_REQUEST */ - -#ifndef HAVE_BLK_RQ_POS -static inline sector_t -blk_rq_pos(struct request *req) -{ - return req->sector; -} -#endif /* HAVE_BLK_RQ_POS */ - -#ifndef HAVE_BLK_RQ_SECTORS -static inline unsigned int -blk_rq_sectors(struct request *req) -{ - return req->nr_sectors; -} -#endif /* HAVE_BLK_RQ_SECTORS */ - -#if !defined(HAVE_BLK_RQ_BYTES) || defined(HAVE_BLK_RQ_BYTES_GPL_ONLY) -/* - * Define required to avoid conflicting 2.6.29 non-static prototype for a - * GPL-only version of the helper. As of 2.6.31 the helper is available - * to non-GPL modules in the form of a static inline in the header. - */ -#define blk_rq_bytes __blk_rq_bytes -static inline unsigned int -__blk_rq_bytes(struct request *req) -{ - return blk_rq_sectors(req) << 9; -} -#endif /* !HAVE_BLK_RQ_BYTES || HAVE_BLK_RQ_BYTES_GPL_ONLY */ - -#ifndef HAVE_GET_DISK_RO -static inline int -get_disk_ro(struct gendisk *disk) -{ - int policy = 0; - - if (disk->part[0]) - policy = disk->part[0]->policy; - - return policy; -} -#endif /* HAVE_GET_DISK_RO */ - -#ifndef HAVE_RQ_IS_SYNC -static inline bool -rq_is_sync(struct request *req) -{ - return (req->flags & REQ_RW_SYNC); -} -#endif /* HAVE_RQ_IS_SYNC */ - -#ifndef HAVE_RQ_FOR_EACH_SEGMENT -struct req_iterator { - int i; - struct bio *bio; -}; - -# define for_each_bio(_bio) \ - for (; _bio; _bio = _bio->bi_next) - -# define __rq_for_each_bio(_bio, rq) \ - if ((rq->bio)) \ - for (_bio = (rq)->bio; _bio; _bio = _bio->bi_next) - -# define rq_for_each_segment(bvl, _rq, _iter) \ - __rq_for_each_bio(_iter.bio, _rq) \ - bio_for_each_segment(bvl, _iter.bio, _iter.i) -#endif /* HAVE_RQ_FOR_EACH_SEGMENT */ - -#ifndef DISK_NAME_LEN -#define DISK_NAME_LEN 32 -#endif /* DISK_NAME_LEN */ - -#endif /* KERNEL */ - -#endif /* _SYS_BLKDEV_H */ diff --git a/module/zfs/include/sys/bplist.h b/module/zfs/include/sys/bplist.h deleted file mode 100644 index 471be9047..000000000 --- a/module/zfs/include/sys/bplist.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_BPLIST_H -#define _SYS_BPLIST_H - -#include <sys/zfs_context.h> -#include <sys/spa.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct bplist_entry { - blkptr_t bpe_blk; - list_node_t bpe_node; -} bplist_entry_t; - -typedef struct bplist { - kmutex_t bpl_lock; - list_t bpl_list; -} bplist_t; - -typedef int bplist_itor_t(void *arg, const blkptr_t *bp, dmu_tx_t *tx); - -void bplist_create(bplist_t *bpl); -void bplist_destroy(bplist_t *bpl); -void bplist_append(bplist_t *bpl, const blkptr_t *bp); -void bplist_iterate(bplist_t *bpl, bplist_itor_t *func, - void *arg, dmu_tx_t *tx); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_BPLIST_H */ diff --git a/module/zfs/include/sys/bpobj.h b/module/zfs/include/sys/bpobj.h deleted file mode 100644 index 3771a9541..000000000 --- a/module/zfs/include/sys/bpobj.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_BPOBJ_H -#define _SYS_BPOBJ_H - -#include <sys/dmu.h> -#include <sys/spa.h> -#include <sys/txg.h> -#include <sys/zio.h> -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct bpobj_phys { - /* - * This is the bonus buffer for the dead lists. The object's - * contents is an array of bpo_entries blkptr_t's, representing - * a total of bpo_bytes physical space. - */ - uint64_t bpo_num_blkptrs; - uint64_t bpo_bytes; - uint64_t bpo_comp; - uint64_t bpo_uncomp; - uint64_t bpo_subobjs; - uint64_t bpo_num_subobjs; -} bpobj_phys_t; - -#define BPOBJ_SIZE_V0 (2 * sizeof (uint64_t)) -#define BPOBJ_SIZE_V1 (4 * sizeof (uint64_t)) - -typedef struct bpobj { - kmutex_t bpo_lock; - objset_t *bpo_os; - uint64_t bpo_object; - int bpo_epb; - uint8_t bpo_havecomp; - uint8_t bpo_havesubobj; - bpobj_phys_t *bpo_phys; - dmu_buf_t *bpo_dbuf; - dmu_buf_t *bpo_cached_dbuf; -} bpobj_t; - -typedef int bpobj_itor_t(void *arg, const blkptr_t *bp, dmu_tx_t *tx); - -uint64_t bpobj_alloc(objset_t *mos, int blocksize, dmu_tx_t *tx); -void bpobj_free(objset_t *os, uint64_t obj, dmu_tx_t *tx); - -int bpobj_open(bpobj_t *bpo, objset_t *mos, uint64_t object); -void bpobj_close(bpobj_t *bpo); - -int bpobj_iterate(bpobj_t *bpo, bpobj_itor_t func, void *arg, dmu_tx_t *tx); -int bpobj_iterate_nofree(bpobj_t *bpo, bpobj_itor_t func, void *, dmu_tx_t *); -int bpobj_iterate_dbg(bpobj_t *bpo, uint64_t *itorp, blkptr_t *bp); - -void bpobj_enqueue_subobj(bpobj_t *bpo, uint64_t subobj, dmu_tx_t *tx); -void bpobj_enqueue(bpobj_t *bpo, const blkptr_t *bp, dmu_tx_t *tx); - -int bpobj_space(bpobj_t *bpo, - uint64_t *usedp, uint64_t *compp, uint64_t *uncompp); -int bpobj_space_range(bpobj_t *bpo, uint64_t mintxg, uint64_t maxtxg, - uint64_t *usedp, uint64_t *compp, uint64_t *uncompp); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_BPOBJ_H */ diff --git a/module/zfs/include/sys/dbuf.h b/module/zfs/include/sys/dbuf.h deleted file mode 100644 index cf1bbc030..000000000 --- a/module/zfs/include/sys/dbuf.h +++ /dev/null @@ -1,375 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DBUF_H -#define _SYS_DBUF_H - -#include <sys/dmu.h> -#include <sys/spa.h> -#include <sys/txg.h> -#include <sys/zio.h> -#include <sys/arc.h> -#include <sys/zfs_context.h> -#include <sys/refcount.h> -#include <sys/zrlock.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define IN_DMU_SYNC 2 - -/* - * define flags for dbuf_read - */ - -#define DB_RF_MUST_SUCCEED (1 << 0) -#define DB_RF_CANFAIL (1 << 1) -#define DB_RF_HAVESTRUCT (1 << 2) -#define DB_RF_NOPREFETCH (1 << 3) -#define DB_RF_NEVERWAIT (1 << 4) -#define DB_RF_CACHED (1 << 5) - -/* - * The simplified state transition diagram for dbufs looks like: - * - * +----> READ ----+ - * | | - * | V - * (alloc)-->UNCACHED CACHED-->EVICTING-->(free) - * | ^ ^ - * | | | - * +----> FILL ----+ | - * | | - * | | - * +--------> NOFILL -------+ - */ -typedef enum dbuf_states { - DB_UNCACHED, - DB_FILL, - DB_NOFILL, - DB_READ, - DB_CACHED, - DB_EVICTING -} dbuf_states_t; - -struct dnode; -struct dmu_tx; - -/* - * level = 0 means the user data - * level = 1 means the single indirect block - * etc. - */ - -struct dmu_buf_impl; - -typedef enum override_states { - DR_NOT_OVERRIDDEN, - DR_IN_DMU_SYNC, - DR_OVERRIDDEN -} override_states_t; - -typedef struct dbuf_dirty_record { - /* link on our parents dirty list */ - list_node_t dr_dirty_node; - - /* transaction group this data will sync in */ - uint64_t dr_txg; - - /* zio of outstanding write IO */ - zio_t *dr_zio; - - /* pointer back to our dbuf */ - struct dmu_buf_impl *dr_dbuf; - - /* pointer to next dirty record */ - struct dbuf_dirty_record *dr_next; - - /* pointer to parent dirty record */ - struct dbuf_dirty_record *dr_parent; - - union dirty_types { - struct dirty_indirect { - - /* protect access to list */ - kmutex_t dr_mtx; - - /* Our list of dirty children */ - list_t dr_children; - } di; - struct dirty_leaf { - - /* - * dr_data is set when we dirty the buffer - * so that we can retain the pointer even if it - * gets COW'd in a subsequent transaction group. - */ - arc_buf_t *dr_data; - blkptr_t dr_overridden_by; - override_states_t dr_override_state; - uint8_t dr_copies; - } dl; - } dt; -} dbuf_dirty_record_t; - -typedef struct dmu_buf_impl { - /* - * The following members are immutable, with the exception of - * db.db_data, which is protected by db_mtx. - */ - - /* the publicly visible structure */ - dmu_buf_t db; - - /* the objset we belong to */ - struct objset *db_objset; - - /* - * handle to safely access the dnode we belong to (NULL when evicted) - */ - struct dnode_handle *db_dnode_handle; - - /* - * our parent buffer; if the dnode points to us directly, - * db_parent == db_dnode_handle->dnh_dnode->dn_dbuf - * only accessed by sync thread ??? - * (NULL when evicted) - * May change from NULL to non-NULL under the protection of db_mtx - * (see dbuf_check_blkptr()) - */ - struct dmu_buf_impl *db_parent; - - /* - * link for hash table of all dmu_buf_impl_t's - */ - struct dmu_buf_impl *db_hash_next; - - /* our block number */ - uint64_t db_blkid; - - /* - * Pointer to the blkptr_t which points to us. May be NULL if we - * don't have one yet. (NULL when evicted) - */ - blkptr_t *db_blkptr; - - /* - * Our indirection level. Data buffers have db_level==0. - * Indirect buffers which point to data buffers have - * db_level==1. etc. Buffers which contain dnodes have - * db_level==0, since the dnodes are stored in a file. - */ - uint8_t db_level; - - /* db_mtx protects the members below */ - kmutex_t db_mtx; - - /* - * Current state of the buffer - */ - dbuf_states_t db_state; - - /* - * Refcount accessed by dmu_buf_{hold,rele}. - * If nonzero, the buffer can't be destroyed. - * Protected by db_mtx. - */ - refcount_t db_holds; - - /* buffer holding our data */ - arc_buf_t *db_buf; - - kcondvar_t db_changed; - dbuf_dirty_record_t *db_data_pending; - - /* pointer to most recent dirty record for this buffer */ - dbuf_dirty_record_t *db_last_dirty; - - /* - * Our link on the owner dnodes's dn_dbufs list. - * Protected by its dn_dbufs_mtx. - */ - list_node_t db_link; - - /* Data which is unique to data (leaf) blocks: */ - - /* stuff we store for the user (see dmu_buf_set_user) */ - void *db_user_ptr; - void **db_user_data_ptr_ptr; - dmu_buf_evict_func_t *db_evict_func; - - uint8_t db_immediate_evict; - uint8_t db_freed_in_flight; - - uint8_t db_dirtycnt; -} dmu_buf_impl_t; - -/* Note: the dbuf hash table is exposed only for the mdb module */ -#define DBUF_MUTEXES 256 -#define DBUF_HASH_MUTEX(h, idx) (&(h)->hash_mutexes[(idx) & (DBUF_MUTEXES-1)]) -typedef struct dbuf_hash_table { - uint64_t hash_table_mask; - dmu_buf_impl_t **hash_table; - kmutex_t hash_mutexes[DBUF_MUTEXES]; -} dbuf_hash_table_t; - - -uint64_t dbuf_whichblock(struct dnode *di, uint64_t offset); - -dmu_buf_impl_t *dbuf_create_tlib(struct dnode *dn, char *data); -void dbuf_create_bonus(struct dnode *dn); -int dbuf_spill_set_blksz(dmu_buf_t *db, uint64_t blksz, dmu_tx_t *tx); -void dbuf_spill_hold(struct dnode *dn, dmu_buf_impl_t **dbp, void *tag); - -void dbuf_rm_spill(struct dnode *dn, dmu_tx_t *tx); - -dmu_buf_impl_t *dbuf_hold(struct dnode *dn, uint64_t blkid, void *tag); -dmu_buf_impl_t *dbuf_hold_level(struct dnode *dn, int level, uint64_t blkid, - void *tag); -int dbuf_hold_impl(struct dnode *dn, uint8_t level, uint64_t blkid, int create, - void *tag, dmu_buf_impl_t **dbp); - -void dbuf_prefetch(struct dnode *dn, uint64_t blkid); - -void dbuf_add_ref(dmu_buf_impl_t *db, void *tag); -uint64_t dbuf_refcount(dmu_buf_impl_t *db); - -void dbuf_rele(dmu_buf_impl_t *db, void *tag); -void dbuf_rele_and_unlock(dmu_buf_impl_t *db, void *tag); - -dmu_buf_impl_t *dbuf_find(struct dnode *dn, uint8_t level, uint64_t blkid); - -int dbuf_read(dmu_buf_impl_t *db, zio_t *zio, uint32_t flags); -void dbuf_will_dirty(dmu_buf_impl_t *db, dmu_tx_t *tx); -void dbuf_fill_done(dmu_buf_impl_t *db, dmu_tx_t *tx); -void dmu_buf_will_not_fill(dmu_buf_t *db, dmu_tx_t *tx); -void dmu_buf_will_fill(dmu_buf_t *db, dmu_tx_t *tx); -void dmu_buf_fill_done(dmu_buf_t *db, dmu_tx_t *tx); -void dbuf_assign_arcbuf(dmu_buf_impl_t *db, arc_buf_t *buf, dmu_tx_t *tx); -dbuf_dirty_record_t *dbuf_dirty(dmu_buf_impl_t *db, dmu_tx_t *tx); -arc_buf_t *dbuf_loan_arcbuf(dmu_buf_impl_t *db); - -void dbuf_clear(dmu_buf_impl_t *db); -void dbuf_evict(dmu_buf_impl_t *db); - -void dbuf_setdirty(dmu_buf_impl_t *db, dmu_tx_t *tx); -void dbuf_unoverride(dbuf_dirty_record_t *dr); -void dbuf_sync_list(list_t *list, dmu_tx_t *tx); -void dbuf_release_bp(dmu_buf_impl_t *db); - -void dbuf_free_range(struct dnode *dn, uint64_t start, uint64_t end, - struct dmu_tx *); - -void dbuf_new_size(dmu_buf_impl_t *db, int size, dmu_tx_t *tx); - -#define DB_DNODE(_db) ((_db)->db_dnode_handle->dnh_dnode) -#define DB_DNODE_LOCK(_db) ((_db)->db_dnode_handle->dnh_zrlock) -#define DB_DNODE_ENTER(_db) (zrl_add(&DB_DNODE_LOCK(_db))) -#define DB_DNODE_EXIT(_db) (zrl_remove(&DB_DNODE_LOCK(_db))) -#define DB_DNODE_HELD(_db) (!zrl_is_zero(&DB_DNODE_LOCK(_db))) -#define DB_GET_SPA(_spa_p, _db) { \ - dnode_t *__dn; \ - DB_DNODE_ENTER(_db); \ - __dn = DB_DNODE(_db); \ - *(_spa_p) = __dn->dn_objset->os_spa; \ - DB_DNODE_EXIT(_db); \ -} -#define DB_GET_OBJSET(_os_p, _db) { \ - dnode_t *__dn; \ - DB_DNODE_ENTER(_db); \ - __dn = DB_DNODE(_db); \ - *(_os_p) = __dn->dn_objset; \ - DB_DNODE_EXIT(_db); \ -} - -void dbuf_init(void); -void dbuf_fini(void); - -boolean_t dbuf_is_metadata(dmu_buf_impl_t *db); - -#define DBUF_IS_METADATA(_db) \ - (dbuf_is_metadata(_db)) - -#define DBUF_GET_BUFC_TYPE(_db) \ - (DBUF_IS_METADATA(_db) ? ARC_BUFC_METADATA : ARC_BUFC_DATA) - -#define DBUF_IS_CACHEABLE(_db) \ - ((_db)->db_objset->os_primary_cache == ZFS_CACHE_ALL || \ - (DBUF_IS_METADATA(_db) && \ - ((_db)->db_objset->os_primary_cache == ZFS_CACHE_METADATA))) - -#define DBUF_IS_L2CACHEABLE(_db) \ - ((_db)->db_objset->os_secondary_cache == ZFS_CACHE_ALL || \ - (DBUF_IS_METADATA(_db) && \ - ((_db)->db_objset->os_secondary_cache == ZFS_CACHE_METADATA))) - -#ifdef ZFS_DEBUG - -/* - * There should be a ## between the string literal and fmt, to make it - * clear that we're joining two strings together, but gcc does not - * support that preprocessor token. - */ -#define dprintf_dbuf(dbuf, fmt, ...) do { \ - if (zfs_flags & ZFS_DEBUG_DPRINTF) { \ - char __db_buf[32]; \ - uint64_t __db_obj = (dbuf)->db.db_object; \ - if (__db_obj == DMU_META_DNODE_OBJECT) \ - (void) strcpy(__db_buf, "mdn"); \ - else \ - (void) snprintf(__db_buf, sizeof (__db_buf), "%lld", \ - (u_longlong_t)__db_obj); \ - dprintf_ds((dbuf)->db_objset->os_dsl_dataset, \ - "obj=%s lvl=%u blkid=%lld " fmt, \ - __db_buf, (dbuf)->db_level, \ - (u_longlong_t)(dbuf)->db_blkid, __VA_ARGS__); \ - } \ -_NOTE(CONSTCOND) } while (0) - -#define dprintf_dbuf_bp(db, bp, fmt, ...) do { \ - if (zfs_flags & ZFS_DEBUG_DPRINTF) { \ - char *__blkbuf = kmem_alloc(BP_SPRINTF_LEN, KM_SLEEP); \ - sprintf_blkptr(__blkbuf, bp); \ - dprintf_dbuf(db, fmt " %s\n", __VA_ARGS__, __blkbuf); \ - kmem_free(__blkbuf, BP_SPRINTF_LEN); \ - } \ -_NOTE(CONSTCOND) } while (0) - -#define DBUF_VERIFY(db) dbuf_verify(db) - -#else - -#define dprintf_dbuf(db, fmt, ...) -#define dprintf_dbuf_bp(db, bp, fmt, ...) -#define DBUF_VERIFY(db) - -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DBUF_H */ diff --git a/module/zfs/include/sys/ddt.h b/module/zfs/include/sys/ddt.h deleted file mode 100644 index 9724d6ece..000000000 --- a/module/zfs/include/sys/ddt.h +++ /dev/null @@ -1,246 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DDT_H -#define _SYS_DDT_H - -#include <sys/sysmacros.h> -#include <sys/types.h> -#include <sys/fs/zfs.h> -#include <sys/zio.h> -#include <sys/dmu.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * On-disk DDT formats, in the desired search order (newest version first). - */ -enum ddt_type { - DDT_TYPE_ZAP = 0, - DDT_TYPES -}; - -/* - * DDT classes, in the desired search order (highest replication level first). - */ -enum ddt_class { - DDT_CLASS_DITTO = 0, - DDT_CLASS_DUPLICATE, - DDT_CLASS_UNIQUE, - DDT_CLASSES -}; - -#define DDT_TYPE_CURRENT 0 - -#define DDT_COMPRESS_BYTEORDER_MASK 0x80 -#define DDT_COMPRESS_FUNCTION_MASK 0x7f - -/* - * On-disk ddt entry: key (name) and physical storage (value). - */ -typedef struct ddt_key { - zio_cksum_t ddk_cksum; /* 256-bit block checksum */ - uint64_t ddk_prop; /* LSIZE, PSIZE, compression */ -} ddt_key_t; - -/* - * ddk_prop layout: - * - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * | 0 | 0 | 0 | comp | PSIZE | LSIZE | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - */ -#define DDK_GET_LSIZE(ddk) \ - BF64_GET_SB((ddk)->ddk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1) -#define DDK_SET_LSIZE(ddk, x) \ - BF64_SET_SB((ddk)->ddk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1, x) - -#define DDK_GET_PSIZE(ddk) \ - BF64_GET_SB((ddk)->ddk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1) -#define DDK_SET_PSIZE(ddk, x) \ - BF64_SET_SB((ddk)->ddk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1, x) - -#define DDK_GET_COMPRESS(ddk) BF64_GET((ddk)->ddk_prop, 32, 8) -#define DDK_SET_COMPRESS(ddk, x) BF64_SET((ddk)->ddk_prop, 32, 8, x) - -#define DDT_KEY_WORDS (sizeof (ddt_key_t) / sizeof (uint64_t)) - -typedef struct ddt_phys { - dva_t ddp_dva[SPA_DVAS_PER_BP]; - uint64_t ddp_refcnt; - uint64_t ddp_phys_birth; -} ddt_phys_t; - -enum ddt_phys_type { - DDT_PHYS_DITTO = 0, - DDT_PHYS_SINGLE = 1, - DDT_PHYS_DOUBLE = 2, - DDT_PHYS_TRIPLE = 3, - DDT_PHYS_TYPES -}; - -/* - * In-core ddt entry - */ -struct ddt_entry { - ddt_key_t dde_key; - ddt_phys_t dde_phys[DDT_PHYS_TYPES]; - zio_t *dde_lead_zio[DDT_PHYS_TYPES]; - void *dde_repair_data; - enum ddt_type dde_type; - enum ddt_class dde_class; - uint8_t dde_loading; - uint8_t dde_loaded; - kcondvar_t dde_cv; - avl_node_t dde_node; -}; - -/* - * In-core ddt - */ -struct ddt { - kmutex_t ddt_lock; - avl_tree_t ddt_tree; - avl_tree_t ddt_repair_tree; - enum zio_checksum ddt_checksum; - spa_t *ddt_spa; - objset_t *ddt_os; - uint64_t ddt_stat_object; - uint64_t ddt_object[DDT_TYPES][DDT_CLASSES]; - ddt_histogram_t ddt_histogram[DDT_TYPES][DDT_CLASSES]; - ddt_histogram_t ddt_histogram_cache[DDT_TYPES][DDT_CLASSES]; - ddt_object_t ddt_object_stats[DDT_TYPES][DDT_CLASSES]; - avl_node_t ddt_node; -}; - -/* - * In-core and on-disk bookmark for DDT walks - */ -typedef struct ddt_bookmark { - uint64_t ddb_class; - uint64_t ddb_type; - uint64_t ddb_checksum; - uint64_t ddb_cursor; -} ddt_bookmark_t; - -/* - * Ops vector to access a specific DDT object type. - */ -typedef struct ddt_ops { - char ddt_op_name[32]; - int (*ddt_op_create)(objset_t *os, uint64_t *object, dmu_tx_t *tx, - boolean_t prehash); - int (*ddt_op_destroy)(objset_t *os, uint64_t object, dmu_tx_t *tx); - int (*ddt_op_lookup)(objset_t *os, uint64_t object, ddt_entry_t *dde); - void (*ddt_op_prefetch)(objset_t *os, uint64_t object, - ddt_entry_t *dde); - int (*ddt_op_update)(objset_t *os, uint64_t object, ddt_entry_t *dde, - dmu_tx_t *tx); - int (*ddt_op_remove)(objset_t *os, uint64_t object, ddt_entry_t *dde, - dmu_tx_t *tx); - int (*ddt_op_walk)(objset_t *os, uint64_t object, ddt_entry_t *dde, - uint64_t *walk); - uint64_t (*ddt_op_count)(objset_t *os, uint64_t object); -} ddt_ops_t; - -#define DDT_NAMELEN 80 - -extern void ddt_object_name(ddt_t *ddt, enum ddt_type type, - enum ddt_class class, char *name); -extern int ddt_object_walk(ddt_t *ddt, enum ddt_type type, - enum ddt_class class, uint64_t *walk, ddt_entry_t *dde); -extern uint64_t ddt_object_count(ddt_t *ddt, enum ddt_type type, - enum ddt_class class); -extern int ddt_object_info(ddt_t *ddt, enum ddt_type type, - enum ddt_class class, dmu_object_info_t *); -extern boolean_t ddt_object_exists(ddt_t *ddt, enum ddt_type type, - enum ddt_class class); - -extern void ddt_bp_fill(const ddt_phys_t *ddp, blkptr_t *bp, - uint64_t txg); -extern void ddt_bp_create(enum zio_checksum checksum, const ddt_key_t *ddk, - const ddt_phys_t *ddp, blkptr_t *bp); - -extern void ddt_key_fill(ddt_key_t *ddk, const blkptr_t *bp); - -extern void ddt_phys_fill(ddt_phys_t *ddp, const blkptr_t *bp); -extern void ddt_phys_clear(ddt_phys_t *ddp); -extern void ddt_phys_addref(ddt_phys_t *ddp); -extern void ddt_phys_decref(ddt_phys_t *ddp); -extern void ddt_phys_free(ddt_t *ddt, ddt_key_t *ddk, ddt_phys_t *ddp, - uint64_t txg); -extern ddt_phys_t *ddt_phys_select(const ddt_entry_t *dde, const blkptr_t *bp); -extern uint64_t ddt_phys_total_refcnt(const ddt_entry_t *dde); - -extern void ddt_stat_add(ddt_stat_t *dst, const ddt_stat_t *src, uint64_t neg); - -extern void ddt_histogram_add(ddt_histogram_t *dst, const ddt_histogram_t *src); -extern void ddt_histogram_stat(ddt_stat_t *dds, const ddt_histogram_t *ddh); -extern boolean_t ddt_histogram_empty(const ddt_histogram_t *ddh); -extern void ddt_get_dedup_object_stats(spa_t *spa, ddt_object_t *ddo); -extern void ddt_get_dedup_histogram(spa_t *spa, ddt_histogram_t *ddh); -extern void ddt_get_dedup_stats(spa_t *spa, ddt_stat_t *dds_total); - -extern uint64_t ddt_get_dedup_dspace(spa_t *spa); -extern uint64_t ddt_get_pool_dedup_ratio(spa_t *spa); - -extern int ddt_ditto_copies_needed(ddt_t *ddt, ddt_entry_t *dde, - ddt_phys_t *ddp_willref); -extern int ddt_ditto_copies_present(ddt_entry_t *dde); - -extern size_t ddt_compress(void *src, uchar_t *dst, size_t s_len, size_t d_len); -extern void ddt_decompress(uchar_t *src, void *dst, size_t s_len, size_t d_len); - -extern ddt_t *ddt_select(spa_t *spa, const blkptr_t *bp); -extern void ddt_enter(ddt_t *ddt); -extern void ddt_exit(ddt_t *ddt); -extern ddt_entry_t *ddt_lookup(ddt_t *ddt, const blkptr_t *bp, boolean_t add); -extern void ddt_prefetch(spa_t *spa, const blkptr_t *bp); -extern void ddt_remove(ddt_t *ddt, ddt_entry_t *dde); - -extern boolean_t ddt_class_contains(spa_t *spa, enum ddt_class max_class, - const blkptr_t *bp); - -extern ddt_entry_t *ddt_repair_start(ddt_t *ddt, const blkptr_t *bp); -extern void ddt_repair_done(ddt_t *ddt, ddt_entry_t *dde); - -extern int ddt_entry_compare(const void *x1, const void *x2); - -extern void ddt_create(spa_t *spa); -extern int ddt_load(spa_t *spa); -extern void ddt_unload(spa_t *spa); -extern void ddt_sync(spa_t *spa, uint64_t txg); -extern int ddt_walk(spa_t *spa, ddt_bookmark_t *ddb, ddt_entry_t *dde); -extern int ddt_object_update(ddt_t *ddt, enum ddt_type type, - enum ddt_class class, ddt_entry_t *dde, dmu_tx_t *tx); - -extern const ddt_ops_t ddt_zap_ops; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DDT_H */ diff --git a/module/zfs/include/sys/dmu.h b/module/zfs/include/sys/dmu.h deleted file mode 100644 index 575cb2d10..000000000 --- a/module/zfs/include/sys/dmu.h +++ /dev/null @@ -1,743 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -/* Portions Copyright 2010 Robert Milkowski */ - -#ifndef _SYS_DMU_H -#define _SYS_DMU_H - -/* - * This file describes the interface that the DMU provides for its - * consumers. - * - * The DMU also interacts with the SPA. That interface is described in - * dmu_spa.h. - */ - -#include <sys/inttypes.h> -#include <sys/types.h> -#include <sys/param.h> -#include <sys/cred.h> -#include <sys/time.h> -#include <sys/uio.h> -#ifdef _KERNEL -#include <sys/blkdev.h> -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -struct page; -struct vnode; -struct spa; -struct zilog; -struct zio; -struct blkptr; -struct zap_cursor; -struct dsl_dataset; -struct dsl_pool; -struct dnode; -struct drr_begin; -struct drr_end; -struct zbookmark; -struct spa; -struct nvlist; -struct arc_buf; -struct zio_prop; -struct sa_handle; - -typedef struct objset objset_t; -typedef struct dmu_tx dmu_tx_t; -typedef struct dsl_dir dsl_dir_t; - -typedef enum dmu_object_type { - DMU_OT_NONE, - /* general: */ - DMU_OT_OBJECT_DIRECTORY, /* ZAP */ - DMU_OT_OBJECT_ARRAY, /* UINT64 */ - DMU_OT_PACKED_NVLIST, /* UINT8 (XDR by nvlist_pack/unpack) */ - DMU_OT_PACKED_NVLIST_SIZE, /* UINT64 */ - DMU_OT_BPOBJ, /* UINT64 */ - DMU_OT_BPOBJ_HDR, /* UINT64 */ - /* spa: */ - DMU_OT_SPACE_MAP_HEADER, /* UINT64 */ - DMU_OT_SPACE_MAP, /* UINT64 */ - /* zil: */ - DMU_OT_INTENT_LOG, /* UINT64 */ - /* dmu: */ - DMU_OT_DNODE, /* DNODE */ - DMU_OT_OBJSET, /* OBJSET */ - /* dsl: */ - DMU_OT_DSL_DIR, /* UINT64 */ - DMU_OT_DSL_DIR_CHILD_MAP, /* ZAP */ - DMU_OT_DSL_DS_SNAP_MAP, /* ZAP */ - DMU_OT_DSL_PROPS, /* ZAP */ - DMU_OT_DSL_DATASET, /* UINT64 */ - /* zpl: */ - DMU_OT_ZNODE, /* ZNODE */ - DMU_OT_OLDACL, /* Old ACL */ - DMU_OT_PLAIN_FILE_CONTENTS, /* UINT8 */ - DMU_OT_DIRECTORY_CONTENTS, /* ZAP */ - DMU_OT_MASTER_NODE, /* ZAP */ - DMU_OT_UNLINKED_SET, /* ZAP */ - /* zvol: */ - DMU_OT_ZVOL, /* UINT8 */ - DMU_OT_ZVOL_PROP, /* ZAP */ - /* other; for testing only! */ - DMU_OT_PLAIN_OTHER, /* UINT8 */ - DMU_OT_UINT64_OTHER, /* UINT64 */ - DMU_OT_ZAP_OTHER, /* ZAP */ - /* new object types: */ - DMU_OT_ERROR_LOG, /* ZAP */ - DMU_OT_SPA_HISTORY, /* UINT8 */ - DMU_OT_SPA_HISTORY_OFFSETS, /* spa_his_phys_t */ - DMU_OT_POOL_PROPS, /* ZAP */ - DMU_OT_DSL_PERMS, /* ZAP */ - DMU_OT_ACL, /* ACL */ - DMU_OT_SYSACL, /* SYSACL */ - DMU_OT_FUID, /* FUID table (Packed NVLIST UINT8) */ - DMU_OT_FUID_SIZE, /* FUID table size UINT64 */ - DMU_OT_NEXT_CLONES, /* ZAP */ - DMU_OT_SCAN_QUEUE, /* ZAP */ - DMU_OT_USERGROUP_USED, /* ZAP */ - DMU_OT_USERGROUP_QUOTA, /* ZAP */ - DMU_OT_USERREFS, /* ZAP */ - DMU_OT_DDT_ZAP, /* ZAP */ - DMU_OT_DDT_STATS, /* ZAP */ - DMU_OT_SA, /* System attr */ - DMU_OT_SA_MASTER_NODE, /* ZAP */ - DMU_OT_SA_ATTR_REGISTRATION, /* ZAP */ - DMU_OT_SA_ATTR_LAYOUTS, /* ZAP */ - DMU_OT_SCAN_XLATE, /* ZAP */ - DMU_OT_DEDUP, /* fake dedup BP from ddt_bp_create() */ - DMU_OT_DEADLIST, /* ZAP */ - DMU_OT_DEADLIST_HDR, /* UINT64 */ - DMU_OT_DSL_CLONES, /* ZAP */ - DMU_OT_BPOBJ_SUBOBJ, /* UINT64 */ - DMU_OT_NUMTYPES -} dmu_object_type_t; - -typedef enum dmu_objset_type { - DMU_OST_NONE, - DMU_OST_META, - DMU_OST_ZFS, - DMU_OST_ZVOL, - DMU_OST_OTHER, /* For testing only! */ - DMU_OST_ANY, /* Be careful! */ - DMU_OST_NUMTYPES -} dmu_objset_type_t; - -void byteswap_uint64_array(void *buf, size_t size); -void byteswap_uint32_array(void *buf, size_t size); -void byteswap_uint16_array(void *buf, size_t size); -void byteswap_uint8_array(void *buf, size_t size); -void zap_byteswap(void *buf, size_t size); -void zfs_oldacl_byteswap(void *buf, size_t size); -void zfs_acl_byteswap(void *buf, size_t size); -void zfs_znode_byteswap(void *buf, size_t size); - -#define DS_FIND_SNAPSHOTS (1<<0) -#define DS_FIND_CHILDREN (1<<1) - -/* - * The maximum number of bytes that can be accessed as part of one - * operation, including metadata. - */ -#define DMU_MAX_ACCESS (10<<20) /* 10MB */ -#define DMU_MAX_DELETEBLKCNT (20480) /* ~5MB of indirect blocks */ - -#define DMU_USERUSED_OBJECT (-1ULL) -#define DMU_GROUPUSED_OBJECT (-2ULL) -#define DMU_DEADLIST_OBJECT (-3ULL) - -/* - * artificial blkids for bonus buffer and spill blocks - */ -#define DMU_BONUS_BLKID (-1ULL) -#define DMU_SPILL_BLKID (-2ULL) -/* - * Public routines to create, destroy, open, and close objsets. - */ -int dmu_objset_hold(const char *name, void *tag, objset_t **osp); -int dmu_objset_own(const char *name, dmu_objset_type_t type, - boolean_t readonly, void *tag, objset_t **osp); -void dmu_objset_rele(objset_t *os, void *tag); -void dmu_objset_disown(objset_t *os, void *tag); -int dmu_objset_open_ds(struct dsl_dataset *ds, objset_t **osp); - -int dmu_objset_evict_dbufs(objset_t *os); -int dmu_objset_create(const char *name, dmu_objset_type_t type, uint64_t flags, - void (*func)(objset_t *os, void *arg, cred_t *cr, dmu_tx_t *tx), void *arg); -int dmu_objset_clone(const char *name, struct dsl_dataset *clone_origin, - uint64_t flags); -int dmu_objset_destroy(const char *name, boolean_t defer); -int dmu_snapshots_destroy(char *fsname, char *snapname, boolean_t defer); -int dmu_objset_snapshot(char *fsname, char *snapname, char *tag, - struct nvlist *props, boolean_t recursive, boolean_t temporary, int fd); -int dmu_objset_rename(const char *name, const char *newname, - boolean_t recursive); -int dmu_objset_find(char *name, int func(const char *, void *), void *arg, - int flags); -void dmu_objset_byteswap(void *buf, size_t size); - -typedef struct dmu_buf { - uint64_t db_object; /* object that this buffer is part of */ - uint64_t db_offset; /* byte offset in this object */ - uint64_t db_size; /* size of buffer in bytes */ - void *db_data; /* data in buffer */ -} dmu_buf_t; - -typedef void dmu_buf_evict_func_t(struct dmu_buf *db, void *user_ptr); - -/* - * The names of zap entries in the DIRECTORY_OBJECT of the MOS. - */ -#define DMU_POOL_DIRECTORY_OBJECT 1 -#define DMU_POOL_CONFIG "config" -#define DMU_POOL_ROOT_DATASET "root_dataset" -#define DMU_POOL_SYNC_BPOBJ "sync_bplist" -#define DMU_POOL_ERRLOG_SCRUB "errlog_scrub" -#define DMU_POOL_ERRLOG_LAST "errlog_last" -#define DMU_POOL_SPARES "spares" -#define DMU_POOL_DEFLATE "deflate" -#define DMU_POOL_HISTORY "history" -#define DMU_POOL_PROPS "pool_props" -#define DMU_POOL_L2CACHE "l2cache" -#define DMU_POOL_TMP_USERREFS "tmp_userrefs" -#define DMU_POOL_DDT "DDT-%s-%s-%s" -#define DMU_POOL_DDT_STATS "DDT-statistics" -#define DMU_POOL_CREATION_VERSION "creation_version" -#define DMU_POOL_SCAN "scan" -#define DMU_POOL_FREE_BPOBJ "free_bpobj" - -/* - * Allocate an object from this objset. The range of object numbers - * available is (0, DN_MAX_OBJECT). Object 0 is the meta-dnode. - * - * The transaction must be assigned to a txg. The newly allocated - * object will be "held" in the transaction (ie. you can modify the - * newly allocated object in this transaction). - * - * dmu_object_alloc() chooses an object and returns it in *objectp. - * - * dmu_object_claim() allocates a specific object number. If that - * number is already allocated, it fails and returns EEXIST. - * - * Return 0 on success, or ENOSPC or EEXIST as specified above. - */ -uint64_t dmu_object_alloc(objset_t *os, dmu_object_type_t ot, - int blocksize, dmu_object_type_t bonus_type, int bonus_len, dmu_tx_t *tx); -int dmu_object_claim(objset_t *os, uint64_t object, dmu_object_type_t ot, - int blocksize, dmu_object_type_t bonus_type, int bonus_len, dmu_tx_t *tx); -int dmu_object_reclaim(objset_t *os, uint64_t object, dmu_object_type_t ot, - int blocksize, dmu_object_type_t bonustype, int bonuslen); - -/* - * Free an object from this objset. - * - * The object's data will be freed as well (ie. you don't need to call - * dmu_free(object, 0, -1, tx)). - * - * The object need not be held in the transaction. - * - * If there are any holds on this object's buffers (via dmu_buf_hold()), - * or tx holds on the object (via dmu_tx_hold_object()), you can not - * free it; it fails and returns EBUSY. - * - * If the object is not allocated, it fails and returns ENOENT. - * - * Return 0 on success, or EBUSY or ENOENT as specified above. - */ -int dmu_object_free(objset_t *os, uint64_t object, dmu_tx_t *tx); - -/* - * Find the next allocated or free object. - * - * The objectp parameter is in-out. It will be updated to be the next - * object which is allocated. Ignore objects which have not been - * modified since txg. - * - * XXX Can only be called on a objset with no dirty data. - * - * Returns 0 on success, or ENOENT if there are no more objects. - */ -int dmu_object_next(objset_t *os, uint64_t *objectp, - boolean_t hole, uint64_t txg); - -/* - * Set the data blocksize for an object. - * - * The object cannot have any blocks allcated beyond the first. If - * the first block is allocated already, the new size must be greater - * than the current block size. If these conditions are not met, - * ENOTSUP will be returned. - * - * Returns 0 on success, or EBUSY if there are any holds on the object - * contents, or ENOTSUP as described above. - */ -int dmu_object_set_blocksize(objset_t *os, uint64_t object, uint64_t size, - int ibs, dmu_tx_t *tx); - -/* - * Set the checksum property on a dnode. The new checksum algorithm will - * apply to all newly written blocks; existing blocks will not be affected. - */ -void dmu_object_set_checksum(objset_t *os, uint64_t object, uint8_t checksum, - dmu_tx_t *tx); - -/* - * Set the compress property on a dnode. The new compression algorithm will - * apply to all newly written blocks; existing blocks will not be affected. - */ -void dmu_object_set_compress(objset_t *os, uint64_t object, uint8_t compress, - dmu_tx_t *tx); - -/* - * Decide how to write a block: checksum, compression, number of copies, etc. - */ -#define WP_NOFILL 0x1 -#define WP_DMU_SYNC 0x2 -#define WP_SPILL 0x4 - -void dmu_write_policy(objset_t *os, struct dnode *dn, int level, int wp, - struct zio_prop *zp); -/* - * The bonus data is accessed more or less like a regular buffer. - * You must dmu_bonus_hold() to get the buffer, which will give you a - * dmu_buf_t with db_offset==-1ULL, and db_size = the size of the bonus - * data. As with any normal buffer, you must call dmu_buf_read() to - * read db_data, dmu_buf_will_dirty() before modifying it, and the - * object must be held in an assigned transaction before calling - * dmu_buf_will_dirty. You may use dmu_buf_set_user() on the bonus - * buffer as well. You must release your hold with dmu_buf_rele(). - */ -int dmu_bonus_hold(objset_t *os, uint64_t object, void *tag, dmu_buf_t **); -int dmu_bonus_max(void); -int dmu_set_bonus(dmu_buf_t *, int, dmu_tx_t *); -int dmu_set_bonustype(dmu_buf_t *, dmu_object_type_t, dmu_tx_t *); -dmu_object_type_t dmu_get_bonustype(dmu_buf_t *); -int dmu_rm_spill(objset_t *, uint64_t, dmu_tx_t *); - -/* - * Special spill buffer support used by "SA" framework - */ - -int dmu_spill_hold_by_bonus(dmu_buf_t *bonus, void *tag, dmu_buf_t **dbp); -int dmu_spill_hold_by_dnode(struct dnode *dn, uint32_t flags, - void *tag, dmu_buf_t **dbp); -int dmu_spill_hold_existing(dmu_buf_t *bonus, void *tag, dmu_buf_t **dbp); - -/* - * Obtain the DMU buffer from the specified object which contains the - * specified offset. dmu_buf_hold() puts a "hold" on the buffer, so - * that it will remain in memory. You must release the hold with - * dmu_buf_rele(). You musn't access the dmu_buf_t after releasing your - * hold. You must have a hold on any dmu_buf_t* you pass to the DMU. - * - * You must call dmu_buf_read, dmu_buf_will_dirty, or dmu_buf_will_fill - * on the returned buffer before reading or writing the buffer's - * db_data. The comments for those routines describe what particular - * operations are valid after calling them. - * - * The object number must be a valid, allocated object number. - */ -int dmu_buf_hold(objset_t *os, uint64_t object, uint64_t offset, - void *tag, dmu_buf_t **, int flags); -void dmu_buf_add_ref(dmu_buf_t *db, void* tag); -void dmu_buf_rele(dmu_buf_t *db, void *tag); -uint64_t dmu_buf_refcount(dmu_buf_t *db); - -/* - * dmu_buf_hold_array holds the DMU buffers which contain all bytes in a - * range of an object. A pointer to an array of dmu_buf_t*'s is - * returned (in *dbpp). - * - * dmu_buf_rele_array releases the hold on an array of dmu_buf_t*'s, and - * frees the array. The hold on the array of buffers MUST be released - * with dmu_buf_rele_array. You can NOT release the hold on each buffer - * individually with dmu_buf_rele. - */ -int dmu_buf_hold_array_by_bonus(dmu_buf_t *db, uint64_t offset, - uint64_t length, int read, void *tag, int *numbufsp, dmu_buf_t ***dbpp); -void dmu_buf_rele_array(dmu_buf_t **, int numbufs, void *tag); - -/* - * Returns NULL on success, or the existing user ptr if it's already - * been set. - * - * user_ptr is for use by the user and can be obtained via dmu_buf_get_user(). - * - * user_data_ptr_ptr should be NULL, or a pointer to a pointer which - * will be set to db->db_data when you are allowed to access it. Note - * that db->db_data (the pointer) can change when you do dmu_buf_read(), - * dmu_buf_tryupgrade(), dmu_buf_will_dirty(), or dmu_buf_will_fill(). - * *user_data_ptr_ptr will be set to the new value when it changes. - * - * If non-NULL, pageout func will be called when this buffer is being - * excised from the cache, so that you can clean up the data structure - * pointed to by user_ptr. - * - * dmu_evict_user() will call the pageout func for all buffers in a - * objset with a given pageout func. - */ -void *dmu_buf_set_user(dmu_buf_t *db, void *user_ptr, void *user_data_ptr_ptr, - dmu_buf_evict_func_t *pageout_func); -/* - * set_user_ie is the same as set_user, but request immediate eviction - * when hold count goes to zero. - */ -void *dmu_buf_set_user_ie(dmu_buf_t *db, void *user_ptr, - void *user_data_ptr_ptr, dmu_buf_evict_func_t *pageout_func); -void *dmu_buf_update_user(dmu_buf_t *db_fake, void *old_user_ptr, - void *user_ptr, void *user_data_ptr_ptr, - dmu_buf_evict_func_t *pageout_func); -void dmu_evict_user(objset_t *os, dmu_buf_evict_func_t *func); - -/* - * Returns the user_ptr set with dmu_buf_set_user(), or NULL if not set. - */ -void *dmu_buf_get_user(dmu_buf_t *db); - -/* - * Indicate that you are going to modify the buffer's data (db_data). - * - * The transaction (tx) must be assigned to a txg (ie. you've called - * dmu_tx_assign()). The buffer's object must be held in the tx - * (ie. you've called dmu_tx_hold_object(tx, db->db_object)). - */ -void dmu_buf_will_dirty(dmu_buf_t *db, dmu_tx_t *tx); - -/* - * Tells if the given dbuf is freeable. - */ -boolean_t dmu_buf_freeable(dmu_buf_t *); - -/* - * You must create a transaction, then hold the objects which you will - * (or might) modify as part of this transaction. Then you must assign - * the transaction to a transaction group. Once the transaction has - * been assigned, you can modify buffers which belong to held objects as - * part of this transaction. You can't modify buffers before the - * transaction has been assigned; you can't modify buffers which don't - * belong to objects which this transaction holds; you can't hold - * objects once the transaction has been assigned. You may hold an - * object which you are going to free (with dmu_object_free()), but you - * don't have to. - * - * You can abort the transaction before it has been assigned. - * - * Note that you may hold buffers (with dmu_buf_hold) at any time, - * regardless of transaction state. - */ - -#define DMU_NEW_OBJECT (-1ULL) -#define DMU_OBJECT_END (-1ULL) - -dmu_tx_t *dmu_tx_create(objset_t *os); -void dmu_tx_hold_write(dmu_tx_t *tx, uint64_t object, uint64_t off, int len); -void dmu_tx_hold_free(dmu_tx_t *tx, uint64_t object, uint64_t off, - uint64_t len); -void dmu_tx_hold_zap(dmu_tx_t *tx, uint64_t object, int add, const char *name); -void dmu_tx_hold_bonus(dmu_tx_t *tx, uint64_t object); -void dmu_tx_hold_spill(dmu_tx_t *tx, uint64_t object); -void dmu_tx_hold_sa(dmu_tx_t *tx, struct sa_handle *hdl, boolean_t may_grow); -void dmu_tx_hold_sa_create(dmu_tx_t *tx, int total_size); -void dmu_tx_abort(dmu_tx_t *tx); -int dmu_tx_assign(dmu_tx_t *tx, uint64_t txg_how); -void dmu_tx_wait(dmu_tx_t *tx); -void dmu_tx_commit(dmu_tx_t *tx); - -/* - * To register a commit callback, dmu_tx_callback_register() must be called. - * - * dcb_data is a pointer to caller private data that is passed on as a - * callback parameter. The caller is responsible for properly allocating and - * freeing it. - * - * When registering a callback, the transaction must be already created, but - * it cannot be committed or aborted. It can be assigned to a txg or not. - * - * The callback will be called after the transaction has been safely written - * to stable storage and will also be called if the dmu_tx is aborted. - * If there is any error which prevents the transaction from being committed to - * disk, the callback will be called with a value of error != 0. - */ -typedef void dmu_tx_callback_func_t(void *dcb_data, int error); - -void dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *dcb_func, - void *dcb_data); - -/* - * Free up the data blocks for a defined range of a file. If size is - * zero, the range from offset to end-of-file is freed. - */ -int dmu_free_range(objset_t *os, uint64_t object, uint64_t offset, - uint64_t size, dmu_tx_t *tx); -int dmu_free_long_range(objset_t *os, uint64_t object, uint64_t offset, - uint64_t size); -int dmu_free_object(objset_t *os, uint64_t object); - -/* - * Convenience functions. - * - * Canfail routines will return 0 on success, or an errno if there is a - * nonrecoverable I/O error. - */ -#define DMU_READ_PREFETCH 0 /* prefetch */ -#define DMU_READ_NO_PREFETCH 1 /* don't prefetch */ -int dmu_read(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, - void *buf, uint32_t flags); -void dmu_write(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, - const void *buf, dmu_tx_t *tx); -void dmu_prealloc(objset_t *os, uint64_t object, uint64_t offset, uint64_t size, - dmu_tx_t *tx); -#ifdef _KERNEL -int dmu_read_req(objset_t *os, uint64_t object, struct request *req); -int dmu_write_req(objset_t *os, uint64_t object, struct request *req, dmu_tx_t *tx); -#endif -#ifdef HAVE_ZPL -int dmu_write_pages(objset_t *os, uint64_t object, uint64_t offset, - uint64_t size, struct page *pp, dmu_tx_t *tx); -#endif -struct arc_buf *dmu_request_arcbuf(dmu_buf_t *handle, int size); -void dmu_return_arcbuf(struct arc_buf *buf); -void dmu_assign_arcbuf(dmu_buf_t *handle, uint64_t offset, struct arc_buf *buf, - dmu_tx_t *tx); -int dmu_xuio_init(struct xuio *uio, int niov); -void dmu_xuio_fini(struct xuio *uio); -int dmu_xuio_add(struct xuio *uio, struct arc_buf *abuf, offset_t off, - size_t n); -int dmu_xuio_cnt(struct xuio *uio); -struct arc_buf *dmu_xuio_arcbuf(struct xuio *uio, int i); -void dmu_xuio_clear(struct xuio *uio, int i); -void xuio_stat_wbuf_copied(void); -void xuio_stat_wbuf_nocopy(void); - -extern int zfs_prefetch_disable; - -/* - * Asynchronously try to read in the data. - */ -void dmu_prefetch(objset_t *os, uint64_t object, uint64_t offset, - uint64_t len); - -typedef struct dmu_object_info { - /* All sizes are in bytes unless otherwise indicated. */ - uint32_t doi_data_block_size; - uint32_t doi_metadata_block_size; - dmu_object_type_t doi_type; - dmu_object_type_t doi_bonus_type; - uint64_t doi_bonus_size; - uint8_t doi_indirection; /* 2 = dnode->indirect->data */ - uint8_t doi_checksum; - uint8_t doi_compress; - uint8_t doi_pad[5]; - uint64_t doi_physical_blocks_512; /* data + metadata, 512b blks */ - uint64_t doi_max_offset; - uint64_t doi_fill_count; /* number of non-empty blocks */ -} dmu_object_info_t; - -typedef void arc_byteswap_func_t(void *buf, size_t size); - -typedef struct dmu_object_type_info { - arc_byteswap_func_t *ot_byteswap; - boolean_t ot_metadata; - char *ot_name; -} dmu_object_type_info_t; - -extern const dmu_object_type_info_t dmu_ot[DMU_OT_NUMTYPES]; - -/* - * Get information on a DMU object. - * - * Return 0 on success or ENOENT if object is not allocated. - * - * If doi is NULL, just indicates whether the object exists. - */ -int dmu_object_info(objset_t *os, uint64_t object, dmu_object_info_t *doi); -void dmu_object_info_from_dnode(struct dnode *dn, dmu_object_info_t *doi); -void dmu_object_info_from_db(dmu_buf_t *db, dmu_object_info_t *doi); -void dmu_object_size_from_db(dmu_buf_t *db, uint32_t *blksize, - u_longlong_t *nblk512); - -typedef struct dmu_objset_stats { - uint64_t dds_num_clones; /* number of clones of this */ - uint64_t dds_creation_txg; - uint64_t dds_guid; - dmu_objset_type_t dds_type; - uint8_t dds_is_snapshot; - uint8_t dds_inconsistent; - char dds_origin[MAXNAMELEN]; -} dmu_objset_stats_t; - -/* - * Get stats on a dataset. - */ -void dmu_objset_fast_stat(objset_t *os, dmu_objset_stats_t *stat); - -/* - * Add entries to the nvlist for all the objset's properties. See - * zfs_prop_table[] and zfs(1m) for details on the properties. - */ -void dmu_objset_stats(objset_t *os, struct nvlist *nv); - -/* - * Get the space usage statistics for statvfs(). - * - * refdbytes is the amount of space "referenced" by this objset. - * availbytes is the amount of space available to this objset, taking - * into account quotas & reservations, assuming that no other objsets - * use the space first. These values correspond to the 'referenced' and - * 'available' properties, described in the zfs(1m) manpage. - * - * usedobjs and availobjs are the number of objects currently allocated, - * and available. - */ -void dmu_objset_space(objset_t *os, uint64_t *refdbytesp, uint64_t *availbytesp, - uint64_t *usedobjsp, uint64_t *availobjsp); - -/* - * The fsid_guid is a 56-bit ID that can change to avoid collisions. - * (Contrast with the ds_guid which is a 64-bit ID that will never - * change, so there is a small probability that it will collide.) - */ -uint64_t dmu_objset_fsid_guid(objset_t *os); - -/* - * Get the [cm]time for an objset's snapshot dir - */ -timestruc_t dmu_objset_snap_cmtime(objset_t *os); - -int dmu_objset_is_snapshot(objset_t *os); - -extern struct spa *dmu_objset_spa(objset_t *os); -extern struct zilog *dmu_objset_zil(objset_t *os); -extern struct dsl_pool *dmu_objset_pool(objset_t *os); -extern struct dsl_dataset *dmu_objset_ds(objset_t *os); -extern void dmu_objset_name(objset_t *os, char *buf); -extern dmu_objset_type_t dmu_objset_type(objset_t *os); -extern uint64_t dmu_objset_id(objset_t *os); -extern uint64_t dmu_objset_syncprop(objset_t *os); -extern uint64_t dmu_objset_logbias(objset_t *os); -extern int dmu_snapshot_list_next(objset_t *os, int namelen, char *name, - uint64_t *id, uint64_t *offp, boolean_t *case_conflict); -extern int dmu_snapshot_realname(objset_t *os, char *name, char *real, - int maxlen, boolean_t *conflict); -extern int dmu_dir_list_next(objset_t *os, int namelen, char *name, - uint64_t *idp, uint64_t *offp); - -typedef int objset_used_cb_t(dmu_object_type_t bonustype, - void *bonus, uint64_t *userp, uint64_t *groupp); -extern void dmu_objset_register_type(dmu_objset_type_t ost, - objset_used_cb_t *cb); -extern void dmu_objset_set_user(objset_t *os, void *user_ptr); -extern void *dmu_objset_get_user(objset_t *os); - -/* - * Return the txg number for the given assigned transaction. - */ -uint64_t dmu_tx_get_txg(dmu_tx_t *tx); - -/* - * Synchronous write. - * If a parent zio is provided this function initiates a write on the - * provided buffer as a child of the parent zio. - * In the absence of a parent zio, the write is completed synchronously. - * At write completion, blk is filled with the bp of the written block. - * Note that while the data covered by this function will be on stable - * storage when the write completes this new data does not become a - * permanent part of the file until the associated transaction commits. - */ - -/* - * {zfs,zvol,ztest}_get_done() args - */ -typedef struct zgd { - struct zilog *zgd_zilog; - struct blkptr *zgd_bp; - dmu_buf_t *zgd_db; - struct rl *zgd_rl; - void *zgd_private; -} zgd_t; - -typedef void dmu_sync_cb_t(zgd_t *arg, int error); -int dmu_sync(struct zio *zio, uint64_t txg, dmu_sync_cb_t *done, zgd_t *zgd); - -/* - * Find the next hole or data block in file starting at *off - * Return found offset in *off. Return ESRCH for end of file. - */ -int dmu_offset_next(objset_t *os, uint64_t object, boolean_t hole, - uint64_t *off); - -/* - * Initial setup and final teardown. - */ -extern void dmu_init(void); -extern void dmu_fini(void); - -typedef void (*dmu_traverse_cb_t)(objset_t *os, void *arg, struct blkptr *bp, - uint64_t object, uint64_t offset, int len); -void dmu_traverse_objset(objset_t *os, uint64_t txg_start, - dmu_traverse_cb_t cb, void *arg); - -int dmu_sendbackup(objset_t *tosnap, objset_t *fromsnap, boolean_t fromorigin, - struct vnode *vp, offset_t *off); - -typedef struct dmu_recv_cookie { - /* - * This structure is opaque! - * - * If logical and real are different, we are recving the stream - * into the "real" temporary clone, and then switching it with - * the "logical" target. - */ - struct dsl_dataset *drc_logical_ds; - struct dsl_dataset *drc_real_ds; - struct drr_begin *drc_drrb; - char *drc_tosnap; - char *drc_top_ds; - boolean_t drc_newfs; - boolean_t drc_force; -} dmu_recv_cookie_t; - -int dmu_recv_begin(char *tofs, char *tosnap, char *topds, struct drr_begin *, - boolean_t force, objset_t *origin, dmu_recv_cookie_t *); -int dmu_recv_stream(dmu_recv_cookie_t *drc, struct vnode *vp, offset_t *voffp, - int cleanup_fd, uint64_t *action_handlep); -int dmu_recv_end(dmu_recv_cookie_t *drc); - -int dmu_diff(objset_t *tosnap, objset_t *fromsnap, struct vnode *vp, - offset_t *off); - -/* CRC64 table */ -#define ZFS_CRC64_POLY 0xC96C5795D7870F42ULL /* ECMA-182, reflected form */ -extern uint64_t zfs_crc64_table[256]; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DMU_H */ diff --git a/module/zfs/include/sys/dmu_impl.h b/module/zfs/include/sys/dmu_impl.h deleted file mode 100644 index 0b8748df1..000000000 --- a/module/zfs/include/sys/dmu_impl.h +++ /dev/null @@ -1,246 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_DMU_IMPL_H -#define _SYS_DMU_IMPL_H - -#include <sys/txg_impl.h> -#include <sys/zio.h> -#include <sys/dnode.h> -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This is the locking strategy for the DMU. Numbers in parenthesis are - * cases that use that lock order, referenced below: - * - * ARC is self-contained - * bplist is self-contained - * refcount is self-contained - * txg is self-contained (hopefully!) - * zst_lock - * zf_rwlock - * - * XXX try to improve evicting path? - * - * dp_config_rwlock > os_obj_lock > dn_struct_rwlock > - * dn_dbufs_mtx > hash_mutexes > db_mtx > dd_lock > leafs - * - * dp_config_rwlock - * must be held before: everything - * protects dd namespace changes - * protects property changes globally - * held from: - * dsl_dir_open/r: - * dsl_dir_create_sync/w: - * dsl_dir_sync_destroy/w: - * dsl_dir_rename_sync/w: - * dsl_prop_changed_notify/r: - * - * os_obj_lock - * must be held before: - * everything except dp_config_rwlock - * protects os_obj_next - * held from: - * dmu_object_alloc: dn_dbufs_mtx, db_mtx, hash_mutexes, dn_struct_rwlock - * - * dn_struct_rwlock - * must be held before: - * everything except dp_config_rwlock and os_obj_lock - * protects structure of dnode (eg. nlevels) - * db_blkptr can change when syncing out change to nlevels - * dn_maxblkid - * dn_nlevels - * dn_*blksz* - * phys nlevels, maxblkid, physical blkptr_t's (?) - * held from: - * callers of dbuf_read_impl, dbuf_hold[_impl], dbuf_prefetch - * dmu_object_info_from_dnode: dn_dirty_mtx (dn_datablksz) - * dmu_tx_count_free: - * dbuf_read_impl: db_mtx, dmu_zfetch() - * dmu_zfetch: zf_rwlock/r, zst_lock, dbuf_prefetch() - * dbuf_new_size: db_mtx - * dbuf_dirty: db_mtx - * dbuf_findbp: (callers, phys? - the real need) - * dbuf_create: dn_dbufs_mtx, hash_mutexes, db_mtx (phys?) - * dbuf_prefetch: dn_dirty_mtx, hash_mutexes, db_mtx, dn_dbufs_mtx - * dbuf_hold_impl: hash_mutexes, db_mtx, dn_dbufs_mtx, dbuf_findbp() - * dnode_sync/w (increase_indirection): db_mtx (phys) - * dnode_set_blksz/w: dn_dbufs_mtx (dn_*blksz*) - * dnode_new_blkid/w: (dn_maxblkid) - * dnode_free_range/w: dn_dirty_mtx (dn_maxblkid) - * dnode_next_offset: (phys) - * - * dn_dbufs_mtx - * must be held before: - * db_mtx, hash_mutexes - * protects: - * dn_dbufs - * dn_evicted - * held from: - * dmu_evict_user: db_mtx (dn_dbufs) - * dbuf_free_range: db_mtx (dn_dbufs) - * dbuf_remove_ref: db_mtx, callees: - * dbuf_hash_remove: hash_mutexes, db_mtx - * dbuf_create: hash_mutexes, db_mtx (dn_dbufs) - * dnode_set_blksz: (dn_dbufs) - * - * hash_mutexes (global) - * must be held before: - * db_mtx - * protects dbuf_hash_table (global) and db_hash_next - * held from: - * dbuf_find: db_mtx - * dbuf_hash_insert: db_mtx - * dbuf_hash_remove: db_mtx - * - * db_mtx (meta-leaf) - * must be held before: - * dn_mtx, dn_dirty_mtx, dd_lock (leaf mutexes) - * protects: - * db_state - * db_holds - * db_buf - * db_changed - * db_data_pending - * db_dirtied - * db_link - * db_dirty_node (??) - * db_dirtycnt - * db_d.* - * db.* - * held from: - * dbuf_dirty: dn_mtx, dn_dirty_mtx - * dbuf_dirty->dsl_dir_willuse_space: dd_lock - * dbuf_dirty->dbuf_new_block->dsl_dataset_block_freeable: dd_lock - * dbuf_undirty: dn_dirty_mtx (db_d) - * dbuf_write_done: dn_dirty_mtx (db_state) - * dbuf_* - * dmu_buf_update_user: none (db_d) - * dmu_evict_user: none (db_d) (maybe can eliminate) - * dbuf_find: none (db_holds) - * dbuf_hash_insert: none (db_holds) - * dmu_buf_read_array_impl: none (db_state, db_changed) - * dmu_sync: none (db_dirty_node, db_d) - * dnode_reallocate: none (db) - * - * dn_mtx (leaf) - * protects: - * dn_dirty_dbufs - * dn_ranges - * phys accounting - * dn_allocated_txg - * dn_free_txg - * dn_assigned_txg - * dd_assigned_tx - * dn_notxholds - * dn_dirtyctx - * dn_dirtyctx_firstset - * (dn_phys copy fields?) - * (dn_phys contents?) - * held from: - * dnode_* - * dbuf_dirty: none - * dbuf_sync: none (phys accounting) - * dbuf_undirty: none (dn_ranges, dn_dirty_dbufs) - * dbuf_write_done: none (phys accounting) - * dmu_object_info_from_dnode: none (accounting) - * dmu_tx_commit: none - * dmu_tx_hold_object_impl: none - * dmu_tx_try_assign: dn_notxholds(cv) - * dmu_tx_unassign: none - * - * dd_lock - * must be held before: - * ds_lock - * ancestors' dd_lock - * protects: - * dd_prop_cbs - * dd_sync_* - * dd_used_bytes - * dd_tempreserved - * dd_space_towrite - * dd_myname - * dd_phys accounting? - * held from: - * dsl_dir_* - * dsl_prop_changed_notify: none (dd_prop_cbs) - * dsl_prop_register: none (dd_prop_cbs) - * dsl_prop_unregister: none (dd_prop_cbs) - * dsl_dataset_block_freeable: none (dd_sync_*) - * - * os_lock (leaf) - * protects: - * os_dirty_dnodes - * os_free_dnodes - * os_dnodes - * os_downgraded_dbufs - * dn_dirtyblksz - * dn_dirty_link - * held from: - * dnode_create: none (os_dnodes) - * dnode_destroy: none (os_dnodes) - * dnode_setdirty: none (dn_dirtyblksz, os_*_dnodes) - * dnode_free: none (dn_dirtyblksz, os_*_dnodes) - * - * ds_lock - * protects: - * ds_objset - * ds_open_refcount - * ds_snapname - * ds_phys accounting - * ds_phys userrefs zapobj - * ds_reserved - * held from: - * dsl_dataset_* - * - * dr_mtx (leaf) - * protects: - * dr_children - * held from: - * dbuf_dirty - * dbuf_undirty - * dbuf_sync_indirect - * dnode_new_blkid - */ - -struct objset; -struct dmu_pool; - -typedef struct dmu_xuio { - int next; - int cnt; - struct arc_buf **bufs; - iovec_t *iovp; -} dmu_xuio_t; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DMU_IMPL_H */ diff --git a/module/zfs/include/sys/dmu_objset.h b/module/zfs/include/sys/dmu_objset.h deleted file mode 100644 index c6d202e2e..000000000 --- a/module/zfs/include/sys/dmu_objset.h +++ /dev/null @@ -1,183 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -/* Portions Copyright 2010 Robert Milkowski */ - -#ifndef _SYS_DMU_OBJSET_H -#define _SYS_DMU_OBJSET_H - -#include <sys/spa.h> -#include <sys/arc.h> -#include <sys/txg.h> -#include <sys/zfs_context.h> -#include <sys/dnode.h> -#include <sys/zio.h> -#include <sys/zil.h> -#include <sys/sa.h> - -#ifdef __cplusplus -extern "C" { -#endif - -extern krwlock_t os_lock; - -struct dsl_dataset; -struct dmu_tx; - -#define OBJSET_PHYS_SIZE 2048 -#define OBJSET_OLD_PHYS_SIZE 1024 - -#define OBJSET_BUF_HAS_USERUSED(buf) \ - (arc_buf_size(buf) > OBJSET_OLD_PHYS_SIZE) - -#define OBJSET_FLAG_USERACCOUNTING_COMPLETE (1ULL<<0) - -typedef struct objset_phys { - dnode_phys_t os_meta_dnode; - zil_header_t os_zil_header; - uint64_t os_type; - uint64_t os_flags; - char os_pad[OBJSET_PHYS_SIZE - sizeof (dnode_phys_t)*3 - - sizeof (zil_header_t) - sizeof (uint64_t)*2]; - dnode_phys_t os_userused_dnode; - dnode_phys_t os_groupused_dnode; -} objset_phys_t; - -struct objset { - /* Immutable: */ - struct dsl_dataset *os_dsl_dataset; - spa_t *os_spa; - arc_buf_t *os_phys_buf; - objset_phys_t *os_phys; - /* - * The following "special" dnodes have no parent and are exempt from - * dnode_move(), but they root their descendents in this objset using - * handles anyway, so that all access to dnodes from dbufs consistently - * uses handles. - */ - dnode_handle_t os_meta_dnode; - dnode_handle_t os_userused_dnode; - dnode_handle_t os_groupused_dnode; - zilog_t *os_zil; - - /* can change, under dsl_dir's locks: */ - uint8_t os_checksum; - uint8_t os_compress; - uint8_t os_copies; - uint8_t os_dedup_checksum; - uint8_t os_dedup_verify; - uint8_t os_logbias; - uint8_t os_primary_cache; - uint8_t os_secondary_cache; - uint8_t os_sync; - - /* no lock needed: */ - struct dmu_tx *os_synctx; /* XXX sketchy */ - blkptr_t *os_rootbp; - zil_header_t os_zil_header; - list_t os_synced_dnodes; - uint64_t os_flags; - - /* Protected by os_obj_lock */ - kmutex_t os_obj_lock; - uint64_t os_obj_next; - - /* Protected by os_lock */ - kmutex_t os_lock; - list_t os_dirty_dnodes[TXG_SIZE]; - list_t os_free_dnodes[TXG_SIZE]; - list_t os_dnodes; - list_t os_downgraded_dbufs; - - /* stuff we store for the user */ - kmutex_t os_user_ptr_lock; - void *os_user_ptr; - - /* SA layout/attribute registration */ - sa_os_t *os_sa; -}; - -#define DMU_META_OBJSET 0 -#define DMU_META_DNODE_OBJECT 0 -#define DMU_OBJECT_IS_SPECIAL(obj) ((int64_t)(obj) <= 0) -#define DMU_META_DNODE(os) ((os)->os_meta_dnode.dnh_dnode) -#define DMU_USERUSED_DNODE(os) ((os)->os_userused_dnode.dnh_dnode) -#define DMU_GROUPUSED_DNODE(os) ((os)->os_groupused_dnode.dnh_dnode) - -#define DMU_OS_IS_L2CACHEABLE(os) \ - ((os)->os_secondary_cache == ZFS_CACHE_ALL || \ - (os)->os_secondary_cache == ZFS_CACHE_METADATA) - -/* called from zpl */ -int dmu_objset_hold(const char *name, void *tag, objset_t **osp); -int dmu_objset_own(const char *name, dmu_objset_type_t type, - boolean_t readonly, void *tag, objset_t **osp); -void dmu_objset_rele(objset_t *os, void *tag); -void dmu_objset_disown(objset_t *os, void *tag); -int dmu_objset_from_ds(struct dsl_dataset *ds, objset_t **osp); - -int dmu_objset_create(const char *name, dmu_objset_type_t type, uint64_t flags, - void (*func)(objset_t *os, void *arg, cred_t *cr, dmu_tx_t *tx), void *arg); -int dmu_objset_clone(const char *name, struct dsl_dataset *clone_origin, - uint64_t flags); -int dmu_objset_destroy(const char *name, boolean_t defer); -int dmu_objset_snapshot(char *fsname, char *snapname, char *tag, - struct nvlist *props, boolean_t recursive, boolean_t temporary, int fd); -void dmu_objset_stats(objset_t *os, nvlist_t *nv); -void dmu_objset_fast_stat(objset_t *os, dmu_objset_stats_t *stat); -void dmu_objset_space(objset_t *os, uint64_t *refdbytesp, uint64_t *availbytesp, - uint64_t *usedobjsp, uint64_t *availobjsp); -uint64_t dmu_objset_fsid_guid(objset_t *os); -int dmu_objset_find(char *name, int func(const char *, void *), void *arg, - int flags); -int dmu_objset_find_spa(spa_t *spa, const char *name, - int func(spa_t *, uint64_t, const char *, void *), void *arg, int flags); -int dmu_objset_prefetch(const char *name, void *arg); -void dmu_objset_byteswap(void *buf, size_t size); -int dmu_objset_evict_dbufs(objset_t *os); -timestruc_t dmu_objset_snap_cmtime(objset_t *os); - -/* called from dsl */ -void dmu_objset_sync(objset_t *os, zio_t *zio, dmu_tx_t *tx); -boolean_t dmu_objset_is_dirty(objset_t *os, uint64_t txg); -boolean_t dmu_objset_is_dirty_anywhere(objset_t *os); -objset_t *dmu_objset_create_impl(spa_t *spa, struct dsl_dataset *ds, - blkptr_t *bp, dmu_objset_type_t type, dmu_tx_t *tx); -int dmu_objset_open_impl(spa_t *spa, struct dsl_dataset *ds, blkptr_t *bp, - objset_t **osp); -void dmu_objset_evict(objset_t *os); -void dmu_objset_do_userquota_updates(objset_t *os, dmu_tx_t *tx); -void dmu_objset_userquota_get_ids(dnode_t *dn, boolean_t before, dmu_tx_t *tx); -boolean_t dmu_objset_userused_enabled(objset_t *os); -int dmu_objset_userspace_upgrade(objset_t *os); -boolean_t dmu_objset_userspace_present(objset_t *os); - -void dmu_objset_init(void); -void dmu_objset_fini(void); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DMU_OBJSET_H */ diff --git a/module/zfs/include/sys/dmu_traverse.h b/module/zfs/include/sys/dmu_traverse.h deleted file mode 100644 index 5b326cd99..000000000 --- a/module/zfs/include/sys/dmu_traverse.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DMU_TRAVERSE_H -#define _SYS_DMU_TRAVERSE_H - -#include <sys/zfs_context.h> -#include <sys/spa.h> -#include <sys/zio.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct dnode_phys; -struct dsl_dataset; -struct zilog; -struct arc_buf; - -typedef int (blkptr_cb_t)(spa_t *spa, zilog_t *zilog, const blkptr_t *bp, - struct arc_buf *pbuf, const zbookmark_t *zb, const struct dnode_phys *dnp, - void *arg); - -#define TRAVERSE_PRE (1<<0) -#define TRAVERSE_POST (1<<1) -#define TRAVERSE_PREFETCH_METADATA (1<<2) -#define TRAVERSE_PREFETCH_DATA (1<<3) -#define TRAVERSE_PREFETCH (TRAVERSE_PREFETCH_METADATA | TRAVERSE_PREFETCH_DATA) -#define TRAVERSE_HARD (1<<4) - -/* Special traverse error return value to indicate skipping of children */ -#define TRAVERSE_VISIT_NO_CHILDREN -1 - -int traverse_dataset(struct dsl_dataset *ds, - uint64_t txg_start, int flags, blkptr_cb_t func, void *arg); -int traverse_pool(spa_t *spa, - uint64_t txg_start, int flags, blkptr_cb_t func, void *arg); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DMU_TRAVERSE_H */ diff --git a/module/zfs/include/sys/dmu_tx.h b/module/zfs/include/sys/dmu_tx.h deleted file mode 100644 index c5ea50fa8..000000000 --- a/module/zfs/include/sys/dmu_tx.h +++ /dev/null @@ -1,148 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_DMU_TX_H -#define _SYS_DMU_TX_H - -#include <sys/inttypes.h> -#include <sys/dmu.h> -#include <sys/txg.h> -#include <sys/refcount.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct dmu_buf_impl; -struct dmu_tx_hold; -struct dnode_link; -struct dsl_pool; -struct dnode; -struct dsl_dir; - -struct dmu_tx { - /* - * No synchronization is needed because a tx can only be handled - * by one thread. - */ - list_t tx_holds; /* list of dmu_tx_hold_t */ - objset_t *tx_objset; - struct dsl_dir *tx_dir; - struct dsl_pool *tx_pool; - uint64_t tx_txg; - uint64_t tx_lastsnap_txg; - uint64_t tx_lasttried_txg; - txg_handle_t tx_txgh; - void *tx_tempreserve_cookie; - struct dmu_tx_hold *tx_needassign_txh; - list_t tx_callbacks; /* list of dmu_tx_callback_t on this dmu_tx */ - uint8_t tx_anyobj; - int tx_err; -#ifdef ZFS_DEBUG - uint64_t tx_space_towrite; - uint64_t tx_space_tofree; - uint64_t tx_space_tooverwrite; - uint64_t tx_space_tounref; - refcount_t tx_space_written; - refcount_t tx_space_freed; -#endif -}; - -enum dmu_tx_hold_type { - THT_NEWOBJECT, - THT_WRITE, - THT_BONUS, - THT_FREE, - THT_ZAP, - THT_SPACE, - THT_SPILL, - THT_NUMTYPES -}; - -typedef struct dmu_tx_hold { - dmu_tx_t *txh_tx; - list_node_t txh_node; - struct dnode *txh_dnode; - uint64_t txh_space_towrite; - uint64_t txh_space_tofree; - uint64_t txh_space_tooverwrite; - uint64_t txh_space_tounref; - uint64_t txh_memory_tohold; - uint64_t txh_fudge; -#ifdef ZFS_DEBUG - enum dmu_tx_hold_type txh_type; - uint64_t txh_arg1; - uint64_t txh_arg2; -#endif -} dmu_tx_hold_t; - -typedef struct dmu_tx_callback { - list_node_t dcb_node; /* linked to tx_callbacks list */ - dmu_tx_callback_func_t *dcb_func; /* caller function pointer */ - void *dcb_data; /* caller private data */ -} dmu_tx_callback_t; - -/* - * These routines are defined in dmu.h, and are called by the user. - */ -dmu_tx_t *dmu_tx_create(objset_t *dd); -int dmu_tx_assign(dmu_tx_t *tx, uint64_t txg_how); -void dmu_tx_commit(dmu_tx_t *tx); -void dmu_tx_abort(dmu_tx_t *tx); -uint64_t dmu_tx_get_txg(dmu_tx_t *tx); -void dmu_tx_wait(dmu_tx_t *tx); - -void dmu_tx_callback_register(dmu_tx_t *tx, dmu_tx_callback_func_t *dcb_func, - void *dcb_data); -void dmu_tx_do_callbacks(list_t *cb_list, int error); - -/* - * These routines are defined in dmu_spa.h, and are called by the SPA. - */ -extern dmu_tx_t *dmu_tx_create_assigned(struct dsl_pool *dp, uint64_t txg); - -/* - * These routines are only called by the DMU. - */ -dmu_tx_t *dmu_tx_create_dd(dsl_dir_t *dd); -int dmu_tx_is_syncing(dmu_tx_t *tx); -int dmu_tx_private_ok(dmu_tx_t *tx); -void dmu_tx_add_new_object(dmu_tx_t *tx, objset_t *os, uint64_t object); -void dmu_tx_willuse_space(dmu_tx_t *tx, int64_t delta); -void dmu_tx_dirty_buf(dmu_tx_t *tx, struct dmu_buf_impl *db); -int dmu_tx_holds(dmu_tx_t *tx, uint64_t object); -void dmu_tx_hold_space(dmu_tx_t *tx, uint64_t space); - -#ifdef ZFS_DEBUG -#define DMU_TX_DIRTY_BUF(tx, db) dmu_tx_dirty_buf(tx, db) -#else -#define DMU_TX_DIRTY_BUF(tx, db) -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DMU_TX_H */ diff --git a/module/zfs/include/sys/dmu_zfetch.h b/module/zfs/include/sys/dmu_zfetch.h deleted file mode 100644 index 78cadd2b1..000000000 --- a/module/zfs/include/sys/dmu_zfetch.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _DFETCH_H -#define _DFETCH_H - -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -extern uint64_t zfetch_array_rd_sz; - -struct dnode; /* so we can reference dnode */ - -typedef enum zfetch_dirn { - ZFETCH_FORWARD = 1, /* prefetch increasing block numbers */ - ZFETCH_BACKWARD = -1 /* prefetch decreasing block numbers */ -} zfetch_dirn_t; - -typedef struct zstream { - uint64_t zst_offset; /* offset of starting block in range */ - uint64_t zst_len; /* length of range, in blocks */ - zfetch_dirn_t zst_direction; /* direction of prefetch */ - uint64_t zst_stride; /* length of stride, in blocks */ - uint64_t zst_ph_offset; /* prefetch offset, in blocks */ - uint64_t zst_cap; /* prefetch limit (cap), in blocks */ - kmutex_t zst_lock; /* protects stream */ - clock_t zst_last; /* lbolt of last prefetch */ - avl_node_t zst_node; /* embed avl node here */ -} zstream_t; - -typedef struct zfetch { - krwlock_t zf_rwlock; /* protects zfetch structure */ - list_t zf_stream; /* AVL tree of zstream_t's */ - struct dnode *zf_dnode; /* dnode that owns this zfetch */ - uint32_t zf_stream_cnt; /* # of active streams */ - uint64_t zf_alloc_fail; /* # of failed attempts to alloc strm */ -} zfetch_t; - -void zfetch_init(void); -void zfetch_fini(void); - -void dmu_zfetch_init(zfetch_t *, struct dnode *); -void dmu_zfetch_rele(zfetch_t *); -void dmu_zfetch(zfetch_t *, uint64_t, uint64_t, int); - - -#ifdef __cplusplus -} -#endif - -#endif /* _DFETCH_H */ diff --git a/module/zfs/include/sys/dnode.h b/module/zfs/include/sys/dnode.h deleted file mode 100644 index 9ad4be36b..000000000 --- a/module/zfs/include/sys/dnode.h +++ /dev/null @@ -1,329 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DNODE_H -#define _SYS_DNODE_H - -#include <sys/zfs_context.h> -#include <sys/avl.h> -#include <sys/spa.h> -#include <sys/txg.h> -#include <sys/zio.h> -#include <sys/refcount.h> -#include <sys/dmu_zfetch.h> -#include <sys/zrlock.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * dnode_hold() flags. - */ -#define DNODE_MUST_BE_ALLOCATED 1 -#define DNODE_MUST_BE_FREE 2 - -/* - * dnode_next_offset() flags. - */ -#define DNODE_FIND_HOLE 1 -#define DNODE_FIND_BACKWARDS 2 -#define DNODE_FIND_HAVELOCK 4 - -/* - * Fixed constants. - */ -#define DNODE_SHIFT 9 /* 512 bytes */ -#define DN_MIN_INDBLKSHIFT 10 /* 1k */ -#define DN_MAX_INDBLKSHIFT 14 /* 16k */ -#define DNODE_BLOCK_SHIFT 14 /* 16k */ -#define DNODE_CORE_SIZE 64 /* 64 bytes for dnode sans blkptrs */ -#define DN_MAX_OBJECT_SHIFT 48 /* 256 trillion (zfs_fid_t limit) */ -#define DN_MAX_OFFSET_SHIFT 64 /* 2^64 bytes in a dnode */ - -/* - * dnode id flags - * - * Note: a file will never ever have its - * ids moved from bonus->spill - * and only in a crypto environment would it be on spill - */ -#define DN_ID_CHKED_BONUS 0x1 -#define DN_ID_CHKED_SPILL 0x2 -#define DN_ID_OLD_EXIST 0x4 -#define DN_ID_NEW_EXIST 0x8 - -/* - * Derived constants. - */ -#define DNODE_SIZE (1 << DNODE_SHIFT) -#define DN_MAX_NBLKPTR ((DNODE_SIZE - DNODE_CORE_SIZE) >> SPA_BLKPTRSHIFT) -#define DN_MAX_BONUSLEN (DNODE_SIZE - DNODE_CORE_SIZE - (1 << SPA_BLKPTRSHIFT)) -#define DN_MAX_OBJECT (1ULL << DN_MAX_OBJECT_SHIFT) -#define DN_ZERO_BONUSLEN (DN_MAX_BONUSLEN + 1) -#define DN_KILL_SPILLBLK (1) - -#define DNODES_PER_BLOCK_SHIFT (DNODE_BLOCK_SHIFT - DNODE_SHIFT) -#define DNODES_PER_BLOCK (1ULL << DNODES_PER_BLOCK_SHIFT) -#define DNODES_PER_LEVEL_SHIFT (DN_MAX_INDBLKSHIFT - SPA_BLKPTRSHIFT) -#define DNODES_PER_LEVEL (1ULL << DNODES_PER_LEVEL_SHIFT) - -/* The +2 here is a cheesy way to round up */ -#define DN_MAX_LEVELS (2 + ((DN_MAX_OFFSET_SHIFT - SPA_MINBLOCKSHIFT) / \ - (DN_MIN_INDBLKSHIFT - SPA_BLKPTRSHIFT))) - -#define DN_BONUS(dnp) ((void*)((dnp)->dn_bonus + \ - (((dnp)->dn_nblkptr - 1) * sizeof (blkptr_t)))) - -#define DN_USED_BYTES(dnp) (((dnp)->dn_flags & DNODE_FLAG_USED_BYTES) ? \ - (dnp)->dn_used : (dnp)->dn_used << SPA_MINBLOCKSHIFT) - -#define EPB(blkshift, typeshift) (1 << (blkshift - typeshift)) - -struct dmu_buf_impl; -struct objset; -struct zio; - -enum dnode_dirtycontext { - DN_UNDIRTIED, - DN_DIRTY_OPEN, - DN_DIRTY_SYNC -}; - -/* Is dn_used in bytes? if not, it's in multiples of SPA_MINBLOCKSIZE */ -#define DNODE_FLAG_USED_BYTES (1<<0) -#define DNODE_FLAG_USERUSED_ACCOUNTED (1<<1) - -/* Does dnode have a SA spill blkptr in bonus? */ -#define DNODE_FLAG_SPILL_BLKPTR (1<<2) - -typedef struct dnode_phys { - uint8_t dn_type; /* dmu_object_type_t */ - uint8_t dn_indblkshift; /* ln2(indirect block size) */ - uint8_t dn_nlevels; /* 1=dn_blkptr->data blocks */ - uint8_t dn_nblkptr; /* length of dn_blkptr */ - uint8_t dn_bonustype; /* type of data in bonus buffer */ - uint8_t dn_checksum; /* ZIO_CHECKSUM type */ - uint8_t dn_compress; /* ZIO_COMPRESS type */ - uint8_t dn_flags; /* DNODE_FLAG_* */ - uint16_t dn_datablkszsec; /* data block size in 512b sectors */ - uint16_t dn_bonuslen; /* length of dn_bonus */ - uint8_t dn_pad2[4]; - - /* accounting is protected by dn_dirty_mtx */ - uint64_t dn_maxblkid; /* largest allocated block ID */ - uint64_t dn_used; /* bytes (or sectors) of disk space */ - - uint64_t dn_pad3[4]; - - blkptr_t dn_blkptr[1]; - uint8_t dn_bonus[DN_MAX_BONUSLEN - sizeof (blkptr_t)]; - blkptr_t dn_spill; -} dnode_phys_t; - -typedef struct dnode { - /* - * dn_struct_rwlock protects the structure of the dnode, - * including the number of levels of indirection (dn_nlevels), - * dn_maxblkid, and dn_next_* - */ - krwlock_t dn_struct_rwlock; - - /* Our link on dn_objset->os_dnodes list; protected by os_lock. */ - list_node_t dn_link; - - /* immutable: */ - struct objset *dn_objset; - uint64_t dn_object; - struct dmu_buf_impl *dn_dbuf; - struct dnode_handle *dn_handle; - dnode_phys_t *dn_phys; /* pointer into dn->dn_dbuf->db.db_data */ - - /* - * Copies of stuff in dn_phys. They're valid in the open - * context (eg. even before the dnode is first synced). - * Where necessary, these are protected by dn_struct_rwlock. - */ - dmu_object_type_t dn_type; /* object type */ - uint16_t dn_bonuslen; /* bonus length */ - uint8_t dn_bonustype; /* bonus type */ - uint8_t dn_nblkptr; /* number of blkptrs (immutable) */ - uint8_t dn_checksum; /* ZIO_CHECKSUM type */ - uint8_t dn_compress; /* ZIO_COMPRESS type */ - uint8_t dn_nlevels; - uint8_t dn_indblkshift; - uint8_t dn_datablkshift; /* zero if blksz not power of 2! */ - uint8_t dn_moved; /* Has this dnode been moved? */ - uint16_t dn_datablkszsec; /* in 512b sectors */ - uint32_t dn_datablksz; /* in bytes */ - uint64_t dn_maxblkid; - uint8_t dn_next_nblkptr[TXG_SIZE]; - uint8_t dn_next_nlevels[TXG_SIZE]; - uint8_t dn_next_indblkshift[TXG_SIZE]; - uint8_t dn_next_bonustype[TXG_SIZE]; - uint8_t dn_rm_spillblk[TXG_SIZE]; /* for removing spill blk */ - uint16_t dn_next_bonuslen[TXG_SIZE]; - uint32_t dn_next_blksz[TXG_SIZE]; /* next block size in bytes */ - - /* protected by dn_dbufs_mtx; declared here to fill 32-bit hole */ - uint32_t dn_dbufs_count; /* count of dn_dbufs */ - - /* protected by os_lock: */ - list_node_t dn_dirty_link[TXG_SIZE]; /* next on dataset's dirty */ - - /* protected by dn_mtx: */ - kmutex_t dn_mtx; - list_t dn_dirty_records[TXG_SIZE]; - avl_tree_t dn_ranges[TXG_SIZE]; - uint64_t dn_allocated_txg; - uint64_t dn_free_txg; - uint64_t dn_assigned_txg; - kcondvar_t dn_notxholds; - enum dnode_dirtycontext dn_dirtyctx; - uint8_t *dn_dirtyctx_firstset; /* dbg: contents meaningless */ - - /* protected by own devices */ - refcount_t dn_tx_holds; - refcount_t dn_holds; - - kmutex_t dn_dbufs_mtx; - list_t dn_dbufs; /* descendent dbufs */ - - /* protected by dn_struct_rwlock */ - struct dmu_buf_impl *dn_bonus; /* bonus buffer dbuf */ - - boolean_t dn_have_spill; /* have spill or are spilling */ - - /* parent IO for current sync write */ - zio_t *dn_zio; - - /* used in syncing context */ - uint64_t dn_oldused; /* old phys used bytes */ - uint64_t dn_oldflags; /* old phys dn_flags */ - uint64_t dn_olduid, dn_oldgid; - uint64_t dn_newuid, dn_newgid; - int dn_id_flags; - - /* holds prefetch structure */ - struct zfetch dn_zfetch; -} dnode_t; - -/* - * Adds a level of indirection between the dbuf and the dnode to avoid - * iterating descendent dbufs in dnode_move(). Handles are not allocated - * individually, but as an array of child dnodes in dnode_hold_impl(). - */ -typedef struct dnode_handle { - /* Protects dnh_dnode from modification by dnode_move(). */ - zrlock_t dnh_zrlock; - dnode_t *dnh_dnode; -} dnode_handle_t; - -typedef struct dnode_children { - size_t dnc_count; /* number of children */ - dnode_handle_t dnc_children[1]; /* sized dynamically */ -} dnode_children_t; - -typedef struct free_range { - avl_node_t fr_node; - uint64_t fr_blkid; - uint64_t fr_nblks; -} free_range_t; - -dnode_t *dnode_special_open(struct objset *dd, dnode_phys_t *dnp, - uint64_t object, dnode_handle_t *dnh); -void dnode_special_close(dnode_handle_t *dnh); - -void dnode_setbonuslen(dnode_t *dn, int newsize, dmu_tx_t *tx); -void dnode_setbonus_type(dnode_t *dn, dmu_object_type_t, dmu_tx_t *tx); -void dnode_rm_spill(dnode_t *dn, dmu_tx_t *tx); - -int dnode_hold(struct objset *dd, uint64_t object, - void *ref, dnode_t **dnp); -int dnode_hold_impl(struct objset *dd, uint64_t object, int flag, - void *ref, dnode_t **dnp); -boolean_t dnode_add_ref(dnode_t *dn, void *ref); -void dnode_rele(dnode_t *dn, void *ref); -void dnode_setdirty(dnode_t *dn, dmu_tx_t *tx); -void dnode_sync(dnode_t *dn, dmu_tx_t *tx); -void dnode_allocate(dnode_t *dn, dmu_object_type_t ot, int blocksize, int ibs, - dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx); -void dnode_reallocate(dnode_t *dn, dmu_object_type_t ot, int blocksize, - dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx); -void dnode_free(dnode_t *dn, dmu_tx_t *tx); -void dnode_byteswap(dnode_phys_t *dnp); -void dnode_buf_byteswap(void *buf, size_t size); -void dnode_verify(dnode_t *dn); -int dnode_set_blksz(dnode_t *dn, uint64_t size, int ibs, dmu_tx_t *tx); -uint64_t dnode_current_max_length(dnode_t *dn); -void dnode_free_range(dnode_t *dn, uint64_t off, uint64_t len, dmu_tx_t *tx); -void dnode_clear_range(dnode_t *dn, uint64_t blkid, - uint64_t nblks, dmu_tx_t *tx); -void dnode_diduse_space(dnode_t *dn, int64_t space); -void dnode_willuse_space(dnode_t *dn, int64_t space, dmu_tx_t *tx); -void dnode_new_blkid(dnode_t *dn, uint64_t blkid, dmu_tx_t *tx, boolean_t); -uint64_t dnode_block_freed(dnode_t *dn, uint64_t blkid); -void dnode_init(void); -void dnode_fini(void); -int dnode_next_offset(dnode_t *dn, int flags, uint64_t *off, - int minlvl, uint64_t blkfill, uint64_t txg); -void dnode_evict_dbufs(dnode_t *dn); - -#ifdef ZFS_DEBUG - -/* - * There should be a ## between the string literal and fmt, to make it - * clear that we're joining two strings together, but that piece of shit - * gcc doesn't support that preprocessor token. - */ -#define dprintf_dnode(dn, fmt, ...) do { \ - if (zfs_flags & ZFS_DEBUG_DPRINTF) { \ - char __db_buf[32]; \ - uint64_t __db_obj = (dn)->dn_object; \ - if (__db_obj == DMU_META_DNODE_OBJECT) \ - (void) strcpy(__db_buf, "mdn"); \ - else \ - (void) snprintf(__db_buf, sizeof (__db_buf), "%lld", \ - (u_longlong_t)__db_obj);\ - dprintf_ds((dn)->dn_objset->os_dsl_dataset, "obj=%s " fmt, \ - __db_buf, __VA_ARGS__); \ - } \ -_NOTE(CONSTCOND) } while (0) - -#define DNODE_VERIFY(dn) dnode_verify(dn) -#define FREE_VERIFY(db, start, end, tx) free_verify(db, start, end, tx) - -#else - -#define dprintf_dnode(db, fmt, ...) -#define DNODE_VERIFY(dn) -#define FREE_VERIFY(db, start, end, tx) - -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DNODE_H */ diff --git a/module/zfs/include/sys/dsl_dataset.h b/module/zfs/include/sys/dsl_dataset.h deleted file mode 100644 index 22733d070..000000000 --- a/module/zfs/include/sys/dsl_dataset.h +++ /dev/null @@ -1,283 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DSL_DATASET_H -#define _SYS_DSL_DATASET_H - -#include <sys/dmu.h> -#include <sys/spa.h> -#include <sys/txg.h> -#include <sys/zio.h> -#include <sys/bplist.h> -#include <sys/dsl_synctask.h> -#include <sys/zfs_context.h> -#include <sys/dsl_deadlist.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct dsl_dataset; -struct dsl_dir; -struct dsl_pool; - -#define DS_FLAG_INCONSISTENT (1ULL<<0) -#define DS_IS_INCONSISTENT(ds) \ - ((ds)->ds_phys->ds_flags & DS_FLAG_INCONSISTENT) -/* - * NB: nopromote can not yet be set, but we want support for it in this - * on-disk version, so that we don't need to upgrade for it later. It - * will be needed when we implement 'zfs split' (where the split off - * clone should not be promoted). - */ -#define DS_FLAG_NOPROMOTE (1ULL<<1) - -/* - * DS_FLAG_UNIQUE_ACCURATE is set if ds_unique_bytes has been correctly - * calculated for head datasets (starting with SPA_VERSION_UNIQUE_ACCURATE, - * refquota/refreservations). - */ -#define DS_FLAG_UNIQUE_ACCURATE (1ULL<<2) - -/* - * DS_FLAG_DEFER_DESTROY is set after 'zfs destroy -d' has been called - * on a dataset. This allows the dataset to be destroyed using 'zfs release'. - */ -#define DS_FLAG_DEFER_DESTROY (1ULL<<3) -#define DS_IS_DEFER_DESTROY(ds) \ - ((ds)->ds_phys->ds_flags & DS_FLAG_DEFER_DESTROY) - -/* - * DS_FLAG_CI_DATASET is set if the dataset contains a file system whose - * name lookups should be performed case-insensitively. - */ -#define DS_FLAG_CI_DATASET (1ULL<<16) - -typedef struct dsl_dataset_phys { - uint64_t ds_dir_obj; /* DMU_OT_DSL_DIR */ - uint64_t ds_prev_snap_obj; /* DMU_OT_DSL_DATASET */ - uint64_t ds_prev_snap_txg; - uint64_t ds_next_snap_obj; /* DMU_OT_DSL_DATASET */ - uint64_t ds_snapnames_zapobj; /* DMU_OT_DSL_DS_SNAP_MAP 0 for snaps */ - uint64_t ds_num_children; /* clone/snap children; ==0 for head */ - uint64_t ds_creation_time; /* seconds since 1970 */ - uint64_t ds_creation_txg; - uint64_t ds_deadlist_obj; /* DMU_OT_DEADLIST */ - uint64_t ds_used_bytes; - uint64_t ds_compressed_bytes; - uint64_t ds_uncompressed_bytes; - uint64_t ds_unique_bytes; /* only relevant to snapshots */ - /* - * The ds_fsid_guid is a 56-bit ID that can change to avoid - * collisions. The ds_guid is a 64-bit ID that will never - * change, so there is a small probability that it will collide. - */ - uint64_t ds_fsid_guid; - uint64_t ds_guid; - uint64_t ds_flags; /* DS_FLAG_* */ - blkptr_t ds_bp; - uint64_t ds_next_clones_obj; /* DMU_OT_DSL_CLONES */ - uint64_t ds_props_obj; /* DMU_OT_DSL_PROPS for snaps */ - uint64_t ds_userrefs_obj; /* DMU_OT_USERREFS */ - uint64_t ds_pad[5]; /* pad out to 320 bytes for good measure */ -} dsl_dataset_phys_t; - -typedef struct dsl_dataset { - /* Immutable: */ - struct dsl_dir *ds_dir; - dsl_dataset_phys_t *ds_phys; - dmu_buf_t *ds_dbuf; - uint64_t ds_object; - uint64_t ds_fsid_guid; - - /* only used in syncing context, only valid for non-snapshots: */ - struct dsl_dataset *ds_prev; - - /* has internal locking: */ - dsl_deadlist_t ds_deadlist; - bplist_t ds_pending_deadlist; - - /* to protect against multiple concurrent incremental recv */ - kmutex_t ds_recvlock; - - /* protected by lock on pool's dp_dirty_datasets list */ - txg_node_t ds_dirty_link; - list_node_t ds_synced_link; - - /* - * ds_phys->ds_<accounting> is also protected by ds_lock. - * Protected by ds_lock: - */ - kmutex_t ds_lock; - objset_t *ds_objset; - uint64_t ds_userrefs; - - /* - * ds_owner is protected by the ds_rwlock and the ds_lock - */ - krwlock_t ds_rwlock; - kcondvar_t ds_exclusive_cv; - void *ds_owner; - - /* no locking; only for making guesses */ - uint64_t ds_trysnap_txg; - - /* for objset_open() */ - kmutex_t ds_opening_lock; - - uint64_t ds_reserved; /* cached refreservation */ - uint64_t ds_quota; /* cached refquota */ - - /* Protected by ds_lock; keep at end of struct for better locality */ - char ds_snapname[MAXNAMELEN]; -} dsl_dataset_t; - -struct dsl_ds_destroyarg { - dsl_dataset_t *ds; /* ds to destroy */ - dsl_dataset_t *rm_origin; /* also remove our origin? */ - boolean_t is_origin_rm; /* set if removing origin snap */ - boolean_t defer; /* destroy -d requested? */ - boolean_t releasing; /* destroying due to release? */ - boolean_t need_prep; /* do we need to retry due to EBUSY? */ -}; - -/* - * The max length of a temporary tag prefix is the number of hex digits - * required to express UINT64_MAX plus one for the hyphen. - */ -#define MAX_TAG_PREFIX_LEN 17 - -struct dsl_ds_holdarg { - dsl_sync_task_group_t *dstg; - char *htag; - char *snapname; - boolean_t recursive; - boolean_t gotone; - boolean_t temphold; - char failed[MAXPATHLEN]; -}; - -#define dsl_dataset_is_snapshot(ds) \ - ((ds)->ds_phys->ds_num_children != 0) - -#define DS_UNIQUE_IS_ACCURATE(ds) \ - (((ds)->ds_phys->ds_flags & DS_FLAG_UNIQUE_ACCURATE) != 0) - -int dsl_dataset_hold(const char *name, void *tag, dsl_dataset_t **dsp); -int dsl_dataset_hold_obj(struct dsl_pool *dp, uint64_t dsobj, - void *tag, dsl_dataset_t **); -int dsl_dataset_own(const char *name, boolean_t inconsistentok, - void *tag, dsl_dataset_t **dsp); -int dsl_dataset_own_obj(struct dsl_pool *dp, uint64_t dsobj, - boolean_t inconsistentok, void *tag, dsl_dataset_t **dsp); -void dsl_dataset_name(dsl_dataset_t *ds, char *name); -void dsl_dataset_rele(dsl_dataset_t *ds, void *tag); -void dsl_dataset_disown(dsl_dataset_t *ds, void *tag); -void dsl_dataset_drop_ref(dsl_dataset_t *ds, void *tag); -boolean_t dsl_dataset_tryown(dsl_dataset_t *ds, boolean_t inconsistentok, - void *tag); -void dsl_dataset_make_exclusive(dsl_dataset_t *ds, void *tag); -void dsl_register_onexit_hold_cleanup(dsl_dataset_t *ds, const char *htag, - minor_t minor); -uint64_t dsl_dataset_create_sync(dsl_dir_t *pds, const char *lastname, - dsl_dataset_t *origin, uint64_t flags, cred_t *, dmu_tx_t *); -uint64_t dsl_dataset_create_sync_dd(dsl_dir_t *dd, dsl_dataset_t *origin, - uint64_t flags, dmu_tx_t *tx); -int dsl_dataset_destroy(dsl_dataset_t *ds, void *tag, boolean_t defer); -int dsl_snapshots_destroy(char *fsname, char *snapname, boolean_t defer); -dsl_checkfunc_t dsl_dataset_destroy_check; -dsl_syncfunc_t dsl_dataset_destroy_sync; -dsl_checkfunc_t dsl_dataset_snapshot_check; -dsl_syncfunc_t dsl_dataset_snapshot_sync; -dsl_syncfunc_t dsl_dataset_user_hold_sync; -int dsl_dataset_rename(char *name, const char *newname, boolean_t recursive); -int dsl_dataset_promote(const char *name, char *conflsnap); -int dsl_dataset_clone_swap(dsl_dataset_t *clone, dsl_dataset_t *origin_head, - boolean_t force); -int dsl_dataset_user_hold(char *dsname, char *snapname, char *htag, - boolean_t recursive, boolean_t temphold, int cleanup_fd); -int dsl_dataset_user_hold_for_send(dsl_dataset_t *ds, char *htag, - boolean_t temphold); -int dsl_dataset_user_release(char *dsname, char *snapname, char *htag, - boolean_t recursive); -int dsl_dataset_user_release_tmp(struct dsl_pool *dp, uint64_t dsobj, - char *htag, boolean_t retry); -int dsl_dataset_get_holds(const char *dsname, nvlist_t **nvp); - -blkptr_t *dsl_dataset_get_blkptr(dsl_dataset_t *ds); -void dsl_dataset_set_blkptr(dsl_dataset_t *ds, blkptr_t *bp, dmu_tx_t *tx); - -spa_t *dsl_dataset_get_spa(dsl_dataset_t *ds); - -boolean_t dsl_dataset_modified_since_lastsnap(dsl_dataset_t *ds); - -void dsl_dataset_sync(dsl_dataset_t *os, zio_t *zio, dmu_tx_t *tx); - -void dsl_dataset_block_born(dsl_dataset_t *ds, const blkptr_t *bp, - dmu_tx_t *tx); -int dsl_dataset_block_kill(dsl_dataset_t *ds, const blkptr_t *bp, - dmu_tx_t *tx, boolean_t async); -boolean_t dsl_dataset_block_freeable(dsl_dataset_t *ds, const blkptr_t *bp, - uint64_t blk_birth); -uint64_t dsl_dataset_prev_snap_txg(dsl_dataset_t *ds); - -void dsl_dataset_dirty(dsl_dataset_t *ds, dmu_tx_t *tx); -void dsl_dataset_stats(dsl_dataset_t *os, nvlist_t *nv); -void dsl_dataset_fast_stat(dsl_dataset_t *ds, dmu_objset_stats_t *stat); -void dsl_dataset_space(dsl_dataset_t *ds, - uint64_t *refdbytesp, uint64_t *availbytesp, - uint64_t *usedobjsp, uint64_t *availobjsp); -uint64_t dsl_dataset_fsid_guid(dsl_dataset_t *ds); - -int dsl_dsobj_to_dsname(char *pname, uint64_t obj, char *buf); - -int dsl_dataset_check_quota(dsl_dataset_t *ds, boolean_t check_quota, - uint64_t asize, uint64_t inflight, uint64_t *used, - uint64_t *ref_rsrv); -int dsl_dataset_set_quota(const char *dsname, zprop_source_t source, - uint64_t quota); -dsl_syncfunc_t dsl_dataset_set_quota_sync; -int dsl_dataset_set_reservation(const char *dsname, zprop_source_t source, - uint64_t reservation); - -int dsl_destroy_inconsistent(const char *dsname, void *arg); - -#ifdef ZFS_DEBUG -#define dprintf_ds(ds, fmt, ...) do { \ - if (zfs_flags & ZFS_DEBUG_DPRINTF) { \ - char *__ds_name = kmem_alloc(MAXNAMELEN, KM_SLEEP); \ - dsl_dataset_name(ds, __ds_name); \ - dprintf("ds=%s " fmt, __ds_name, __VA_ARGS__); \ - kmem_free(__ds_name, MAXNAMELEN); \ - } \ -_NOTE(CONSTCOND) } while (0) -#else -#define dprintf_ds(dd, fmt, ...) -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DSL_DATASET_H */ diff --git a/module/zfs/include/sys/dsl_deadlist.h b/module/zfs/include/sys/dsl_deadlist.h deleted file mode 100644 index d2c16d72c..000000000 --- a/module/zfs/include/sys/dsl_deadlist.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DSL_DEADLIST_H -#define _SYS_DSL_DEADLIST_H - -#include <sys/bpobj.h> -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct dmu_buf; -struct dsl_dataset; - -typedef struct dsl_deadlist_phys { - uint64_t dl_used; - uint64_t dl_comp; - uint64_t dl_uncomp; - uint64_t dl_pad[37]; /* pad out to 320b for future expansion */ -} dsl_deadlist_phys_t; - -typedef struct dsl_deadlist { - objset_t *dl_os; - uint64_t dl_object; - avl_tree_t dl_tree; - boolean_t dl_havetree; - struct dmu_buf *dl_dbuf; - dsl_deadlist_phys_t *dl_phys; - kmutex_t dl_lock; - - /* if it's the old on-disk format: */ - bpobj_t dl_bpobj; - boolean_t dl_oldfmt; -} dsl_deadlist_t; - -typedef struct dsl_deadlist_entry { - avl_node_t dle_node; - uint64_t dle_mintxg; - bpobj_t dle_bpobj; -} dsl_deadlist_entry_t; - -void dsl_deadlist_open(dsl_deadlist_t *dl, objset_t *os, uint64_t object); -void dsl_deadlist_close(dsl_deadlist_t *dl); -uint64_t dsl_deadlist_alloc(objset_t *os, dmu_tx_t *tx); -void dsl_deadlist_free(objset_t *os, uint64_t dlobj, dmu_tx_t *tx); -void dsl_deadlist_insert(dsl_deadlist_t *dl, const blkptr_t *bp, dmu_tx_t *tx); -void dsl_deadlist_add_key(dsl_deadlist_t *dl, uint64_t mintxg, dmu_tx_t *tx); -void dsl_deadlist_remove_key(dsl_deadlist_t *dl, uint64_t mintxg, dmu_tx_t *tx); -uint64_t dsl_deadlist_clone(dsl_deadlist_t *dl, uint64_t maxtxg, - uint64_t mrs_obj, dmu_tx_t *tx); -void dsl_deadlist_space(dsl_deadlist_t *dl, - uint64_t *usedp, uint64_t *compp, uint64_t *uncompp); -void dsl_deadlist_space_range(dsl_deadlist_t *dl, - uint64_t mintxg, uint64_t maxtxg, - uint64_t *usedp, uint64_t *compp, uint64_t *uncompp); -void dsl_deadlist_merge(dsl_deadlist_t *dl, uint64_t obj, dmu_tx_t *tx); -void dsl_deadlist_move_bpobj(dsl_deadlist_t *dl, bpobj_t *bpo, uint64_t mintxg, - dmu_tx_t *tx); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DSL_DEADLIST_H */ diff --git a/module/zfs/include/sys/dsl_deleg.h b/module/zfs/include/sys/dsl_deleg.h deleted file mode 100644 index 73c43bd23..000000000 --- a/module/zfs/include/sys/dsl_deleg.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DSL_DELEG_H -#define _SYS_DSL_DELEG_H - -#include <sys/dmu.h> -#include <sys/dsl_pool.h> -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZFS_DELEG_PERM_NONE "" -#define ZFS_DELEG_PERM_CREATE "create" -#define ZFS_DELEG_PERM_DESTROY "destroy" -#define ZFS_DELEG_PERM_SNAPSHOT "snapshot" -#define ZFS_DELEG_PERM_ROLLBACK "rollback" -#define ZFS_DELEG_PERM_CLONE "clone" -#define ZFS_DELEG_PERM_PROMOTE "promote" -#define ZFS_DELEG_PERM_RENAME "rename" -#define ZFS_DELEG_PERM_MOUNT "mount" -#define ZFS_DELEG_PERM_SHARE "share" -#define ZFS_DELEG_PERM_SEND "send" -#define ZFS_DELEG_PERM_RECEIVE "receive" -#define ZFS_DELEG_PERM_ALLOW "allow" -#define ZFS_DELEG_PERM_USERPROP "userprop" -#define ZFS_DELEG_PERM_VSCAN "vscan" -#define ZFS_DELEG_PERM_USERQUOTA "userquota" -#define ZFS_DELEG_PERM_GROUPQUOTA "groupquota" -#define ZFS_DELEG_PERM_USERUSED "userused" -#define ZFS_DELEG_PERM_GROUPUSED "groupused" -#define ZFS_DELEG_PERM_HOLD "hold" -#define ZFS_DELEG_PERM_RELEASE "release" -#define ZFS_DELEG_PERM_DIFF "diff" - -/* - * Note: the names of properties that are marked delegatable are also - * valid delegated permissions - */ - -int dsl_deleg_get(const char *ddname, nvlist_t **nvp); -int dsl_deleg_set(const char *ddname, nvlist_t *nvp, boolean_t unset); -int dsl_deleg_access(const char *ddname, const char *perm, cred_t *cr); -int dsl_deleg_access_impl(struct dsl_dataset *ds, const char *perm, cred_t *cr); -void dsl_deleg_set_create_perms(dsl_dir_t *dd, dmu_tx_t *tx, cred_t *cr); -int dsl_deleg_can_allow(char *ddname, nvlist_t *nvp, cred_t *cr); -int dsl_deleg_can_unallow(char *ddname, nvlist_t *nvp, cred_t *cr); -int dsl_deleg_destroy(objset_t *os, uint64_t zapobj, dmu_tx_t *tx); -boolean_t dsl_delegation_on(objset_t *os); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DSL_DELEG_H */ diff --git a/module/zfs/include/sys/dsl_dir.h b/module/zfs/include/sys/dsl_dir.h deleted file mode 100644 index 2191635dd..000000000 --- a/module/zfs/include/sys/dsl_dir.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DSL_DIR_H -#define _SYS_DSL_DIR_H - -#include <sys/dmu.h> -#include <sys/dsl_pool.h> -#include <sys/dsl_synctask.h> -#include <sys/refcount.h> -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct dsl_dataset; - -typedef enum dd_used { - DD_USED_HEAD, - DD_USED_SNAP, - DD_USED_CHILD, - DD_USED_CHILD_RSRV, - DD_USED_REFRSRV, - DD_USED_NUM -} dd_used_t; - -#define DD_FLAG_USED_BREAKDOWN (1<<0) - -typedef struct dsl_dir_phys { - uint64_t dd_creation_time; /* not actually used */ - uint64_t dd_head_dataset_obj; - uint64_t dd_parent_obj; - uint64_t dd_origin_obj; - uint64_t dd_child_dir_zapobj; - /* - * how much space our children are accounting for; for leaf - * datasets, == physical space used by fs + snaps - */ - uint64_t dd_used_bytes; - uint64_t dd_compressed_bytes; - uint64_t dd_uncompressed_bytes; - /* Administrative quota setting */ - uint64_t dd_quota; - /* Administrative reservation setting */ - uint64_t dd_reserved; - uint64_t dd_props_zapobj; - uint64_t dd_deleg_zapobj; /* dataset delegation permissions */ - uint64_t dd_flags; - uint64_t dd_used_breakdown[DD_USED_NUM]; - uint64_t dd_clones; /* dsl_dir objects */ - uint64_t dd_pad[13]; /* pad out to 256 bytes for good measure */ -} dsl_dir_phys_t; - -struct dsl_dir { - /* These are immutable; no lock needed: */ - uint64_t dd_object; - dsl_dir_phys_t *dd_phys; - dmu_buf_t *dd_dbuf; - dsl_pool_t *dd_pool; - - /* protected by lock on pool's dp_dirty_dirs list */ - txg_node_t dd_dirty_link; - - /* protected by dp_config_rwlock */ - dsl_dir_t *dd_parent; - - /* Protected by dd_lock */ - kmutex_t dd_lock; - list_t dd_prop_cbs; /* list of dsl_prop_cb_record_t's */ - timestruc_t dd_snap_cmtime; /* last time snapshot namespace changed */ - uint64_t dd_origin_txg; - - /* gross estimate of space used by in-flight tx's */ - uint64_t dd_tempreserved[TXG_SIZE]; - /* amount of space we expect to write; == amount of dirty data */ - int64_t dd_space_towrite[TXG_SIZE]; - - /* protected by dd_lock; keep at end of struct for better locality */ - char dd_myname[MAXNAMELEN]; -}; - -void dsl_dir_close(dsl_dir_t *dd, void *tag); -int dsl_dir_open(const char *name, void *tag, dsl_dir_t **, const char **tail); -int dsl_dir_open_spa(spa_t *spa, const char *name, void *tag, dsl_dir_t **, - const char **tailp); -int dsl_dir_open_obj(dsl_pool_t *dp, uint64_t ddobj, - const char *tail, void *tag, dsl_dir_t **); -void dsl_dir_name(dsl_dir_t *dd, char *buf); -int dsl_dir_namelen(dsl_dir_t *dd); -uint64_t dsl_dir_create_sync(dsl_pool_t *dp, dsl_dir_t *pds, - const char *name, dmu_tx_t *tx); -dsl_checkfunc_t dsl_dir_destroy_check; -dsl_syncfunc_t dsl_dir_destroy_sync; -void dsl_dir_stats(dsl_dir_t *dd, nvlist_t *nv); -uint64_t dsl_dir_space_available(dsl_dir_t *dd, - dsl_dir_t *ancestor, int64_t delta, int ondiskonly); -void dsl_dir_dirty(dsl_dir_t *dd, dmu_tx_t *tx); -void dsl_dir_sync(dsl_dir_t *dd, dmu_tx_t *tx); -int dsl_dir_tempreserve_space(dsl_dir_t *dd, uint64_t mem, - uint64_t asize, uint64_t fsize, uint64_t usize, void **tr_cookiep, - dmu_tx_t *tx); -void dsl_dir_tempreserve_clear(void *tr_cookie, dmu_tx_t *tx); -void dsl_dir_willuse_space(dsl_dir_t *dd, int64_t space, dmu_tx_t *tx); -void dsl_dir_diduse_space(dsl_dir_t *dd, dd_used_t type, - int64_t used, int64_t compressed, int64_t uncompressed, dmu_tx_t *tx); -void dsl_dir_transfer_space(dsl_dir_t *dd, int64_t delta, - dd_used_t oldtype, dd_used_t newtype, dmu_tx_t *tx); -int dsl_dir_set_quota(const char *ddname, zprop_source_t source, - uint64_t quota); -int dsl_dir_set_reservation(const char *ddname, zprop_source_t source, - uint64_t reservation); -int dsl_dir_rename(dsl_dir_t *dd, const char *newname); -int dsl_dir_transfer_possible(dsl_dir_t *sdd, dsl_dir_t *tdd, uint64_t space); -int dsl_dir_set_reservation_check(void *arg1, void *arg2, dmu_tx_t *tx); -boolean_t dsl_dir_is_clone(dsl_dir_t *dd); -void dsl_dir_new_refreservation(dsl_dir_t *dd, struct dsl_dataset *ds, - uint64_t reservation, cred_t *cr, dmu_tx_t *tx); -void dsl_dir_snap_cmtime_update(dsl_dir_t *dd); -timestruc_t dsl_dir_snap_cmtime(dsl_dir_t *dd); - -/* internal reserved dir name */ -#define MOS_DIR_NAME "$MOS" -#define ORIGIN_DIR_NAME "$ORIGIN" -#define XLATION_DIR_NAME "$XLATION" -#define FREE_DIR_NAME "$FREE" - -#ifdef ZFS_DEBUG -#define dprintf_dd(dd, fmt, ...) do { \ - if (zfs_flags & ZFS_DEBUG_DPRINTF) { \ - char *__ds_name = kmem_alloc(MAXNAMELEN + strlen(MOS_DIR_NAME) + 1, \ - KM_SLEEP); \ - dsl_dir_name(dd, __ds_name); \ - dprintf("dd=%s " fmt, __ds_name, __VA_ARGS__); \ - kmem_free(__ds_name, MAXNAMELEN + strlen(MOS_DIR_NAME) + 1); \ - } \ -_NOTE(CONSTCOND) } while (0) -#else -#define dprintf_dd(dd, fmt, ...) -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DSL_DIR_H */ diff --git a/module/zfs/include/sys/dsl_pool.h b/module/zfs/include/sys/dsl_pool.h deleted file mode 100644 index 7d25bd7c0..000000000 --- a/module/zfs/include/sys/dsl_pool.h +++ /dev/null @@ -1,151 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DSL_POOL_H -#define _SYS_DSL_POOL_H - -#include <sys/spa.h> -#include <sys/txg.h> -#include <sys/txg_impl.h> -#include <sys/zfs_context.h> -#include <sys/zio.h> -#include <sys/dnode.h> -#include <sys/ddt.h> -#include <sys/arc.h> -#include <sys/bpobj.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct objset; -struct dsl_dir; -struct dsl_dataset; -struct dsl_pool; -struct dmu_tx; -struct dsl_scan; - -/* These macros are for indexing into the zfs_all_blkstats_t. */ -#define DMU_OT_DEFERRED DMU_OT_NONE -#define DMU_OT_TOTAL DMU_OT_NUMTYPES - -typedef struct zfs_blkstat { - uint64_t zb_count; - uint64_t zb_asize; - uint64_t zb_lsize; - uint64_t zb_psize; - uint64_t zb_gangs; - uint64_t zb_ditto_2_of_2_samevdev; - uint64_t zb_ditto_2_of_3_samevdev; - uint64_t zb_ditto_3_of_3_samevdev; -} zfs_blkstat_t; - -typedef struct zfs_all_blkstats { - zfs_blkstat_t zab_type[DN_MAX_LEVELS + 1][DMU_OT_TOTAL + 1]; -} zfs_all_blkstats_t; - - -typedef struct dsl_pool { - /* Immutable */ - spa_t *dp_spa; - struct objset *dp_meta_objset; - struct dsl_dir *dp_root_dir; - struct dsl_dir *dp_mos_dir; - struct dsl_dir *dp_free_dir; - struct dsl_dataset *dp_origin_snap; - uint64_t dp_root_dir_obj; - struct taskq *dp_vnrele_taskq; - - /* No lock needed - sync context only */ - blkptr_t dp_meta_rootbp; - list_t dp_synced_datasets; - hrtime_t dp_read_overhead; - uint64_t dp_throughput; /* bytes per millisec */ - uint64_t dp_write_limit; - uint64_t dp_tmp_userrefs_obj; - bpobj_t dp_free_bpobj; - - struct dsl_scan *dp_scan; - - /* Uses dp_lock */ - kmutex_t dp_lock; - uint64_t dp_space_towrite[TXG_SIZE]; - uint64_t dp_tempreserved[TXG_SIZE]; - - /* Has its own locking */ - tx_state_t dp_tx; - txg_list_t dp_dirty_datasets; - txg_list_t dp_dirty_dirs; - txg_list_t dp_sync_tasks; - - /* - * Protects administrative changes (properties, namespace) - * It is only held for write in syncing context. Therefore - * syncing context does not need to ever have it for read, since - * nobody else could possibly have it for write. - */ - krwlock_t dp_config_rwlock; - - zfs_all_blkstats_t *dp_blkstats; -} dsl_pool_t; - -int dsl_pool_open(spa_t *spa, uint64_t txg, dsl_pool_t **dpp); -void dsl_pool_close(dsl_pool_t *dp); -dsl_pool_t *dsl_pool_create(spa_t *spa, nvlist_t *zplprops, uint64_t txg); -void dsl_pool_sync(dsl_pool_t *dp, uint64_t txg); -void dsl_pool_sync_done(dsl_pool_t *dp, uint64_t txg); -int dsl_pool_sync_context(dsl_pool_t *dp); -uint64_t dsl_pool_adjustedsize(dsl_pool_t *dp, boolean_t netfree); -uint64_t dsl_pool_adjustedfree(dsl_pool_t *dp, boolean_t netfree); -int dsl_pool_tempreserve_space(dsl_pool_t *dp, uint64_t space, dmu_tx_t *tx); -void dsl_pool_tempreserve_clear(dsl_pool_t *dp, int64_t space, dmu_tx_t *tx); -void dsl_pool_memory_pressure(dsl_pool_t *dp); -void dsl_pool_willuse_space(dsl_pool_t *dp, int64_t space, dmu_tx_t *tx); -void dsl_free(dsl_pool_t *dp, uint64_t txg, const blkptr_t *bpp); -void dsl_free_sync(zio_t *pio, dsl_pool_t *dp, uint64_t txg, - const blkptr_t *bpp); -int dsl_read(zio_t *pio, spa_t *spa, const blkptr_t *bpp, arc_buf_t *pbuf, - arc_done_func_t *done, void *private, int priority, int zio_flags, - uint32_t *arc_flags, const zbookmark_t *zb); -int dsl_read_nolock(zio_t *pio, spa_t *spa, const blkptr_t *bpp, - arc_done_func_t *done, void *private, int priority, int zio_flags, - uint32_t *arc_flags, const zbookmark_t *zb); -void dsl_pool_create_origin(dsl_pool_t *dp, dmu_tx_t *tx); -void dsl_pool_upgrade_clones(dsl_pool_t *dp, dmu_tx_t *tx); -void dsl_pool_upgrade_dir_clones(dsl_pool_t *dp, dmu_tx_t *tx); - -taskq_t *dsl_pool_vnrele_taskq(dsl_pool_t *dp); - -extern int dsl_pool_user_hold(dsl_pool_t *dp, uint64_t dsobj, - const char *tag, uint64_t *now, dmu_tx_t *tx); -extern int dsl_pool_user_release(dsl_pool_t *dp, uint64_t dsobj, - const char *tag, dmu_tx_t *tx); -extern void dsl_pool_clean_tmp_userrefs(dsl_pool_t *dp); -int dsl_pool_open_special_dir(dsl_pool_t *dp, const char *name, dsl_dir_t **); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DSL_POOL_H */ diff --git a/module/zfs/include/sys/dsl_prop.h b/module/zfs/include/sys/dsl_prop.h deleted file mode 100644 index a636ad350..000000000 --- a/module/zfs/include/sys/dsl_prop.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DSL_PROP_H -#define _SYS_DSL_PROP_H - -#include <sys/dmu.h> -#include <sys/dsl_pool.h> -#include <sys/zfs_context.h> -#include <sys/dsl_synctask.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct dsl_dataset; -struct dsl_dir; - -/* The callback func may not call into the DMU or DSL! */ -typedef void (dsl_prop_changed_cb_t)(void *arg, uint64_t newval); - -typedef struct dsl_prop_cb_record { - list_node_t cbr_node; /* link on dd_prop_cbs */ - struct dsl_dataset *cbr_ds; - const char *cbr_propname; - dsl_prop_changed_cb_t *cbr_func; - void *cbr_arg; -} dsl_prop_cb_record_t; - -typedef struct dsl_props_arg { - nvlist_t *pa_props; - zprop_source_t pa_source; -} dsl_props_arg_t; - -typedef struct dsl_prop_set_arg { - const char *psa_name; - zprop_source_t psa_source; - int psa_intsz; - int psa_numints; - const void *psa_value; - - /* - * Used to handle the special requirements of the quota and reservation - * properties. - */ - uint64_t psa_effective_value; -} dsl_prop_setarg_t; - -int dsl_prop_register(struct dsl_dataset *ds, const char *propname, - dsl_prop_changed_cb_t *callback, void *cbarg); -int dsl_prop_unregister(struct dsl_dataset *ds, const char *propname, - dsl_prop_changed_cb_t *callback, void *cbarg); -int dsl_prop_numcb(struct dsl_dataset *ds); - -int dsl_prop_get(const char *ddname, const char *propname, - int intsz, int numints, void *buf, char *setpoint); -int dsl_prop_get_integer(const char *ddname, const char *propname, - uint64_t *valuep, char *setpoint); -int dsl_prop_get_all(objset_t *os, nvlist_t **nvp); -int dsl_prop_get_received(objset_t *os, nvlist_t **nvp); -int dsl_prop_get_ds(struct dsl_dataset *ds, const char *propname, - int intsz, int numints, void *buf, char *setpoint); -int dsl_prop_get_dd(struct dsl_dir *dd, const char *propname, - int intsz, int numints, void *buf, char *setpoint, - boolean_t snapshot); - -dsl_syncfunc_t dsl_props_set_sync; -int dsl_prop_set(const char *ddname, const char *propname, - zprop_source_t source, int intsz, int numints, const void *buf); -int dsl_props_set(const char *dsname, zprop_source_t source, nvlist_t *nvl); -void dsl_dir_prop_set_uint64_sync(dsl_dir_t *dd, const char *name, uint64_t val, - dmu_tx_t *tx); - -void dsl_prop_setarg_init_uint64(dsl_prop_setarg_t *psa, const char *propname, - zprop_source_t source, uint64_t *value); -int dsl_prop_predict_sync(dsl_dir_t *dd, dsl_prop_setarg_t *psa); -#ifdef ZFS_DEBUG -void dsl_prop_check_prediction(dsl_dir_t *dd, dsl_prop_setarg_t *psa); -#define DSL_PROP_CHECK_PREDICTION(dd, psa) \ - dsl_prop_check_prediction((dd), (psa)) -#else -#define DSL_PROP_CHECK_PREDICTION(dd, psa) /* nothing */ -#endif - -/* flag first receive on or after SPA_VERSION_RECVD_PROPS */ -boolean_t dsl_prop_get_hasrecvd(objset_t *os); -void dsl_prop_set_hasrecvd(objset_t *os); -void dsl_prop_unset_hasrecvd(objset_t *os); - -void dsl_prop_nvlist_add_uint64(nvlist_t *nv, zfs_prop_t prop, uint64_t value); -void dsl_prop_nvlist_add_string(nvlist_t *nv, - zfs_prop_t prop, const char *value); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DSL_PROP_H */ diff --git a/module/zfs/include/sys/dsl_scan.h b/module/zfs/include/sys/dsl_scan.h deleted file mode 100644 index c79666e67..000000000 --- a/module/zfs/include/sys/dsl_scan.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DSL_SCAN_H -#define _SYS_DSL_SCAN_H - -#include <sys/zfs_context.h> -#include <sys/zio.h> -#include <sys/ddt.h> -#include <sys/bplist.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct objset; -struct dsl_dir; -struct dsl_dataset; -struct dsl_pool; -struct dmu_tx; - -/* - * All members of this structure must be uint64_t, for byteswap - * purposes. - */ -typedef struct dsl_scan_phys { - uint64_t scn_func; /* pool_scan_func_t */ - uint64_t scn_state; /* dsl_scan_state_t */ - uint64_t scn_queue_obj; - uint64_t scn_min_txg; - uint64_t scn_max_txg; - uint64_t scn_cur_min_txg; - uint64_t scn_cur_max_txg; - uint64_t scn_start_time; - uint64_t scn_end_time; - uint64_t scn_to_examine; /* total bytes to be scanned */ - uint64_t scn_examined; /* bytes scanned so far */ - uint64_t scn_to_process; - uint64_t scn_processed; - uint64_t scn_errors; /* scan I/O error count */ - uint64_t scn_ddt_class_max; - ddt_bookmark_t scn_ddt_bookmark; - zbookmark_t scn_bookmark; - uint64_t scn_flags; /* dsl_scan_flags_t */ -} dsl_scan_phys_t; - -#define SCAN_PHYS_NUMINTS (sizeof (dsl_scan_phys_t) / sizeof (uint64_t)) - -typedef enum dsl_scan_flags { - DSF_VISIT_DS_AGAIN = 1<<0, -} dsl_scan_flags_t; - -typedef struct dsl_scan { - struct dsl_pool *scn_dp; - - boolean_t scn_pausing; - uint64_t scn_restart_txg; - uint64_t scn_sync_start_time; - zio_t *scn_zio_root; - - /* for debugging / information */ - uint64_t scn_visited_this_txg; - - dsl_scan_phys_t scn_phys; -} dsl_scan_t; - -int dsl_scan_init(struct dsl_pool *dp, uint64_t txg); -void dsl_scan_fini(struct dsl_pool *dp); -void dsl_scan_sync(struct dsl_pool *, dmu_tx_t *); -int dsl_scan_cancel(struct dsl_pool *); -int dsl_scan(struct dsl_pool *, pool_scan_func_t); -void dsl_resilver_restart(struct dsl_pool *, uint64_t txg); -boolean_t dsl_scan_resilvering(struct dsl_pool *dp); -boolean_t dsl_dataset_unstable(struct dsl_dataset *ds); -void dsl_scan_ddt_entry(dsl_scan_t *scn, enum zio_checksum checksum, - ddt_entry_t *dde, dmu_tx_t *tx); -void dsl_scan_ds_destroyed(struct dsl_dataset *ds, struct dmu_tx *tx); -void dsl_scan_ds_snapshotted(struct dsl_dataset *ds, struct dmu_tx *tx); -void dsl_scan_ds_clone_swapped(struct dsl_dataset *ds1, struct dsl_dataset *ds2, - struct dmu_tx *tx); -boolean_t dsl_scan_active(dsl_scan_t *scn); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DSL_SCAN_H */ diff --git a/module/zfs/include/sys/dsl_synctask.h b/module/zfs/include/sys/dsl_synctask.h deleted file mode 100644 index 9126290cd..000000000 --- a/module/zfs/include/sys/dsl_synctask.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_DSL_SYNCTASK_H -#define _SYS_DSL_SYNCTASK_H - -#include <sys/txg.h> -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct dsl_pool; - -typedef int (dsl_checkfunc_t)(void *, void *, dmu_tx_t *); -typedef void (dsl_syncfunc_t)(void *, void *, dmu_tx_t *); - -typedef struct dsl_sync_task { - list_node_t dst_node; - dsl_checkfunc_t *dst_checkfunc; - dsl_syncfunc_t *dst_syncfunc; - void *dst_arg1; - void *dst_arg2; - int dst_err; -} dsl_sync_task_t; - -typedef struct dsl_sync_task_group { - txg_node_t dstg_node; - list_t dstg_tasks; - struct dsl_pool *dstg_pool; - uint64_t dstg_txg; - int dstg_err; - int dstg_space; - boolean_t dstg_nowaiter; -} dsl_sync_task_group_t; - -dsl_sync_task_group_t *dsl_sync_task_group_create(struct dsl_pool *dp); -void dsl_sync_task_create(dsl_sync_task_group_t *dstg, - dsl_checkfunc_t *, dsl_syncfunc_t *, - void *arg1, void *arg2, int blocks_modified); -int dsl_sync_task_group_wait(dsl_sync_task_group_t *dstg); -void dsl_sync_task_group_nowait(dsl_sync_task_group_t *dstg, dmu_tx_t *tx); -void dsl_sync_task_group_destroy(dsl_sync_task_group_t *dstg); -void dsl_sync_task_group_sync(dsl_sync_task_group_t *dstg, dmu_tx_t *tx); - -int dsl_sync_task_do(struct dsl_pool *dp, - dsl_checkfunc_t *checkfunc, dsl_syncfunc_t *syncfunc, - void *arg1, void *arg2, int blocks_modified); -void dsl_sync_task_do_nowait(struct dsl_pool *dp, - dsl_checkfunc_t *checkfunc, dsl_syncfunc_t *syncfunc, - void *arg1, void *arg2, int blocks_modified, dmu_tx_t *tx); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_DSL_SYNCTASK_H */ diff --git a/module/zfs/include/sys/fm/fs/zfs.h b/module/zfs/include/sys/fm/fs/zfs.h deleted file mode 100644 index d5c71d174..000000000 --- a/module/zfs/include/sys/fm/fs/zfs.h +++ /dev/null @@ -1,109 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_FM_FS_ZFS_H -#define _SYS_FM_FS_ZFS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZFS_ERROR_CLASS "fs.zfs" - -#define FM_EREPORT_ZFS_CHECKSUM "checksum" -#define FM_EREPORT_ZFS_IO "io" -#define FM_EREPORT_ZFS_DATA "data" -#define FM_EREPORT_ZFS_CONFIG_SYNC "config.sync" -#define FM_EREPORT_ZFS_POOL "zpool" -#define FM_EREPORT_ZFS_POOL_DESTROY "zpool.destroy" -#define FM_EREPORT_ZFS_DEVICE_UNKNOWN "vdev.unknown" -#define FM_EREPORT_ZFS_DEVICE_OPEN_FAILED "vdev.open_failed" -#define FM_EREPORT_ZFS_DEVICE_CORRUPT_DATA "vdev.corrupt_data" -#define FM_EREPORT_ZFS_DEVICE_NO_REPLICAS "vdev.no_replicas" -#define FM_EREPORT_ZFS_DEVICE_BAD_GUID_SUM "vdev.bad_guid_sum" -#define FM_EREPORT_ZFS_DEVICE_TOO_SMALL "vdev.too_small" -#define FM_EREPORT_ZFS_DEVICE_BAD_LABEL "vdev.bad_label" -#define FM_EREPORT_ZFS_DEVICE_REMOVE "vdev.remove" -#define FM_EREPORT_ZFS_DEVICE_CLEAR "vdev.clear" -#define FM_EREPORT_ZFS_DEVICE_CHECK "vdev.check" -#define FM_EREPORT_ZFS_DEVICE_SPARE "vdev.spare" -#define FM_EREPORT_ZFS_DEVICE_AUTOEXPAND "vdev.autoexpand" -#define FM_EREPORT_ZFS_IO_FAILURE "io_failure" -#define FM_EREPORT_ZFS_PROBE_FAILURE "probe_failure" -#define FM_EREPORT_ZFS_LOG_REPLAY "log_replay" -#define FM_EREPORT_ZFS_RESILVER_START "resilver.start" -#define FM_EREPORT_ZFS_RESILVER_FINISH "resilver.finish" -#define FM_EREPORT_ZFS_SCRUB_START "scrub.start" -#define FM_EREPORT_ZFS_SCRUB_FINISH "scrub.finish" -#define FM_EREPORT_ZFS_BOOTFS_VDEV_ATTACH "bootfs.vdev.attach" - -#define FM_EREPORT_PAYLOAD_ZFS_POOL "pool" -#define FM_EREPORT_PAYLOAD_ZFS_POOL_FAILMODE "pool_failmode" -#define FM_EREPORT_PAYLOAD_ZFS_POOL_GUID "pool_guid" -#define FM_EREPORT_PAYLOAD_ZFS_POOL_CONTEXT "pool_context" -#define FM_EREPORT_PAYLOAD_ZFS_VDEV_GUID "vdev_guid" -#define FM_EREPORT_PAYLOAD_ZFS_VDEV_TYPE "vdev_type" -#define FM_EREPORT_PAYLOAD_ZFS_VDEV_PATH "vdev_path" -#define FM_EREPORT_PAYLOAD_ZFS_VDEV_DEVID "vdev_devid" -#define FM_EREPORT_PAYLOAD_ZFS_VDEV_FRU "vdev_fru" -#define FM_EREPORT_PAYLOAD_ZFS_VDEV_STATE "vdev_state" -#define FM_EREPORT_PAYLOAD_ZFS_PARENT_GUID "parent_guid" -#define FM_EREPORT_PAYLOAD_ZFS_PARENT_TYPE "parent_type" -#define FM_EREPORT_PAYLOAD_ZFS_PARENT_PATH "parent_path" -#define FM_EREPORT_PAYLOAD_ZFS_PARENT_DEVID "parent_devid" -#define FM_EREPORT_PAYLOAD_ZFS_ZIO_OBJSET "zio_objset" -#define FM_EREPORT_PAYLOAD_ZFS_ZIO_OBJECT "zio_object" -#define FM_EREPORT_PAYLOAD_ZFS_ZIO_LEVEL "zio_level" -#define FM_EREPORT_PAYLOAD_ZFS_ZIO_BLKID "zio_blkid" -#define FM_EREPORT_PAYLOAD_ZFS_ZIO_ERR "zio_err" -#define FM_EREPORT_PAYLOAD_ZFS_ZIO_OFFSET "zio_offset" -#define FM_EREPORT_PAYLOAD_ZFS_ZIO_SIZE "zio_size" -#define FM_EREPORT_PAYLOAD_ZFS_PREV_STATE "prev_state" -#define FM_EREPORT_PAYLOAD_ZFS_CKSUM_EXPECTED "cksum_expected" -#define FM_EREPORT_PAYLOAD_ZFS_CKSUM_ACTUAL "cksum_actual" -#define FM_EREPORT_PAYLOAD_ZFS_CKSUM_ALGO "cksum_algorithm" -#define FM_EREPORT_PAYLOAD_ZFS_CKSUM_BYTESWAP "cksum_byteswap" -#define FM_EREPORT_PAYLOAD_ZFS_BAD_OFFSET_RANGES "bad_ranges" -#define FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_MIN_GAP "bad_ranges_min_gap" -#define FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_SETS "bad_range_sets" -#define FM_EREPORT_PAYLOAD_ZFS_BAD_RANGE_CLEARS "bad_range_clears" -#define FM_EREPORT_PAYLOAD_ZFS_BAD_SET_BITS "bad_set_bits" -#define FM_EREPORT_PAYLOAD_ZFS_BAD_CLEARED_BITS "bad_cleared_bits" -#define FM_EREPORT_PAYLOAD_ZFS_BAD_SET_HISTOGRAM "bad_set_histogram" -#define FM_EREPORT_PAYLOAD_ZFS_BAD_CLEARED_HISTOGRAM "bad_cleared_histogram" - -#define FM_EREPORT_FAILMODE_WAIT "wait" -#define FM_EREPORT_FAILMODE_CONTINUE "continue" -#define FM_EREPORT_FAILMODE_PANIC "panic" - -#define FM_EREPORT_RESOURCE_REMOVED "removed" -#define FM_EREPORT_RESOURCE_AUTOREPLACE "autoreplace" -#define FM_EREPORT_RESOURCE_STATECHANGE "statechange" - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FM_FS_ZFS_H */ diff --git a/module/zfs/include/sys/fm/protocol.h b/module/zfs/include/sys/fm/protocol.h deleted file mode 100644 index 1ee221286..000000000 --- a/module/zfs/include/sys/fm/protocol.h +++ /dev/null @@ -1,367 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_FM_PROTOCOL_H -#define _SYS_FM_PROTOCOL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _KERNEL -#include <sys/varargs.h> -#include <sys/nvpair.h> -#else -#include <libnvpair.h> -#include <stdarg.h> -#endif -#include <sys/processor.h> - -/* FM common member names */ -#define FM_CLASS "class" -#define FM_VERSION "version" - -/* FM protocol category 1 class names */ -#define FM_EREPORT_CLASS "ereport" -#define FM_FAULT_CLASS "fault" -#define FM_DEFECT_CLASS "defect" -#define FM_RSRC_CLASS "resource" -#define FM_LIST_EVENT "list" -#define FM_IREPORT_CLASS "ireport" - -/* FM list.* event class values */ -#define FM_LIST_SUSPECT_CLASS FM_LIST_EVENT ".suspect" -#define FM_LIST_ISOLATED_CLASS FM_LIST_EVENT ".isolated" -#define FM_LIST_REPAIRED_CLASS FM_LIST_EVENT ".repaired" -#define FM_LIST_UPDATED_CLASS FM_LIST_EVENT ".updated" -#define FM_LIST_RESOLVED_CLASS FM_LIST_EVENT ".resolved" - -/* ereport class subcategory values */ -#define FM_ERROR_CPU "cpu" -#define FM_ERROR_IO "io" - -/* ereport version and payload member names */ -#define FM_EREPORT_VERS0 0 -#define FM_EREPORT_VERSION FM_EREPORT_VERS0 - -/* ereport payload member names */ -#define FM_EREPORT_DETECTOR "detector" -#define FM_EREPORT_ENA "ena" -#define FM_EREPORT_TIME "time" - -/* list.* event payload member names */ -#define FM_LIST_EVENT_SIZE "list-sz" - -/* ireport.* event payload member names */ -#define FM_IREPORT_DETECTOR "detector" -#define FM_IREPORT_UUID "uuid" -#define FM_IREPORT_PRIORITY "pri" -#define FM_IREPORT_ATTRIBUTES "attr" - -/* - * list.suspect, isolated, updated, repaired and resolved - * versions/payload member names. - */ -#define FM_SUSPECT_UUID "uuid" -#define FM_SUSPECT_DIAG_CODE "code" -#define FM_SUSPECT_DIAG_TIME "diag-time" -#define FM_SUSPECT_DE "de" -#define FM_SUSPECT_FAULT_LIST "fault-list" -#define FM_SUSPECT_FAULT_SZ "fault-list-sz" -#define FM_SUSPECT_FAULT_STATUS "fault-status" -#define FM_SUSPECT_INJECTED "__injected" -#define FM_SUSPECT_MESSAGE "message" -#define FM_SUSPECT_RETIRE "retire" -#define FM_SUSPECT_RESPONSE "response" -#define FM_SUSPECT_SEVERITY "severity" - -#define FM_SUSPECT_VERS0 0 -#define FM_SUSPECT_VERSION FM_SUSPECT_VERS0 - -#define FM_SUSPECT_FAULTY 0x1 -#define FM_SUSPECT_UNUSABLE 0x2 -#define FM_SUSPECT_NOT_PRESENT 0x4 -#define FM_SUSPECT_DEGRADED 0x8 -#define FM_SUSPECT_REPAIRED 0x10 -#define FM_SUSPECT_REPLACED 0x20 -#define FM_SUSPECT_ACQUITTED 0x40 - -/* fault event versions and payload member names */ -#define FM_FAULT_VERS0 0 -#define FM_FAULT_VERSION FM_FAULT_VERS0 - -#define FM_FAULT_ASRU "asru" -#define FM_FAULT_FRU "fru" -#define FM_FAULT_FRU_LABEL "fru-label" -#define FM_FAULT_CERTAINTY "certainty" -#define FM_FAULT_RESOURCE "resource" -#define FM_FAULT_LOCATION "location" - -/* resource event versions and payload member names */ -#define FM_RSRC_VERS0 0 -#define FM_RSRC_VERSION FM_RSRC_VERS0 -#define FM_RSRC_RESOURCE "resource" - -/* resource.fm.asru.* payload member names */ -#define FM_RSRC_ASRU_UUID "uuid" -#define FM_RSRC_ASRU_CODE "code" -#define FM_RSRC_ASRU_FAULTY "faulty" -#define FM_RSRC_ASRU_REPAIRED "repaired" -#define FM_RSRC_ASRU_REPLACED "replaced" -#define FM_RSRC_ASRU_ACQUITTED "acquitted" -#define FM_RSRC_ASRU_RESOLVED "resolved" -#define FM_RSRC_ASRU_UNUSABLE "unusable" -#define FM_RSRC_ASRU_EVENT "event" - -/* resource.fm.xprt.* versions and payload member names */ -#define FM_RSRC_XPRT_VERS0 0 -#define FM_RSRC_XPRT_VERSION FM_RSRC_XPRT_VERS0 -#define FM_RSRC_XPRT_UUID "uuid" -#define FM_RSRC_XPRT_SUBCLASS "subclass" -#define FM_RSRC_XPRT_FAULT_STATUS "fault-status" -#define FM_RSRC_XPRT_FAULT_HAS_ASRU "fault-has-asru" - -/* - * FM ENA Format Macros - */ -#define ENA_FORMAT_MASK 0x3 -#define ENA_FORMAT(ena) ((ena) & ENA_FORMAT_MASK) - -/* ENA format types */ -#define FM_ENA_FMT0 0 -#define FM_ENA_FMT1 1 -#define FM_ENA_FMT2 2 - -/* Format 1 */ -#define ENA_FMT1_GEN_MASK 0x00000000000003FCull -#define ENA_FMT1_ID_MASK 0xFFFFFFFFFFFFFC00ull -#define ENA_FMT1_CPUID_MASK 0x00000000000FFC00ull -#define ENA_FMT1_TIME_MASK 0xFFFFFFFFFFF00000ull -#define ENA_FMT1_GEN_SHFT 2 -#define ENA_FMT1_ID_SHFT 10 -#define ENA_FMT1_CPUID_SHFT ENA_FMT1_ID_SHFT -#define ENA_FMT1_TIME_SHFT 20 - -/* Format 2 */ -#define ENA_FMT2_GEN_MASK 0x00000000000003FCull -#define ENA_FMT2_ID_MASK 0xFFFFFFFFFFFFFC00ull -#define ENA_FMT2_TIME_MASK ENA_FMT2_ID_MASK -#define ENA_FMT2_GEN_SHFT 2 -#define ENA_FMT2_ID_SHFT 10 -#define ENA_FMT2_TIME_SHFT ENA_FMT2_ID_SHFT - -/* Common FMRI type names */ -#define FM_FMRI_AUTHORITY "authority" -#define FM_FMRI_SCHEME "scheme" -#define FM_FMRI_SVC_AUTHORITY "svc-authority" -#define FM_FMRI_FACILITY "facility" - -/* FMRI authority-type member names */ -#define FM_FMRI_AUTH_CHASSIS "chassis-id" -#define FM_FMRI_AUTH_PRODUCT_SN "product-sn" -#define FM_FMRI_AUTH_PRODUCT "product-id" -#define FM_FMRI_AUTH_DOMAIN "domain-id" -#define FM_FMRI_AUTH_SERVER "server-id" -#define FM_FMRI_AUTH_HOST "host-id" - -#define FM_AUTH_VERS0 0 -#define FM_FMRI_AUTH_VERSION FM_AUTH_VERS0 - -/* scheme name values */ -#define FM_FMRI_SCHEME_FMD "fmd" -#define FM_FMRI_SCHEME_DEV "dev" -#define FM_FMRI_SCHEME_HC "hc" -#define FM_FMRI_SCHEME_SVC "svc" -#define FM_FMRI_SCHEME_CPU "cpu" -#define FM_FMRI_SCHEME_MEM "mem" -#define FM_FMRI_SCHEME_MOD "mod" -#define FM_FMRI_SCHEME_PKG "pkg" -#define FM_FMRI_SCHEME_LEGACY "legacy-hc" -#define FM_FMRI_SCHEME_ZFS "zfs" -#define FM_FMRI_SCHEME_SW "sw" - -/* Scheme versions */ -#define FMD_SCHEME_VERSION0 0 -#define FM_FMD_SCHEME_VERSION FMD_SCHEME_VERSION0 -#define DEV_SCHEME_VERSION0 0 -#define FM_DEV_SCHEME_VERSION DEV_SCHEME_VERSION0 -#define FM_HC_VERS0 0 -#define FM_HC_SCHEME_VERSION FM_HC_VERS0 -#define CPU_SCHEME_VERSION0 0 -#define CPU_SCHEME_VERSION1 1 -#define FM_CPU_SCHEME_VERSION CPU_SCHEME_VERSION1 -#define MEM_SCHEME_VERSION0 0 -#define FM_MEM_SCHEME_VERSION MEM_SCHEME_VERSION0 -#define MOD_SCHEME_VERSION0 0 -#define FM_MOD_SCHEME_VERSION MOD_SCHEME_VERSION0 -#define PKG_SCHEME_VERSION0 0 -#define FM_PKG_SCHEME_VERSION PKG_SCHEME_VERSION0 -#define LEGACY_SCHEME_VERSION0 0 -#define FM_LEGACY_SCHEME_VERSION LEGACY_SCHEME_VERSION0 -#define SVC_SCHEME_VERSION0 0 -#define FM_SVC_SCHEME_VERSION SVC_SCHEME_VERSION0 -#define ZFS_SCHEME_VERSION0 0 -#define FM_ZFS_SCHEME_VERSION ZFS_SCHEME_VERSION0 -#define SW_SCHEME_VERSION0 0 -#define FM_SW_SCHEME_VERSION SW_SCHEME_VERSION0 - -/* hc scheme member names */ -#define FM_FMRI_HC_SERIAL_ID "serial" -#define FM_FMRI_HC_PART "part" -#define FM_FMRI_HC_REVISION "revision" -#define FM_FMRI_HC_ROOT "hc-root" -#define FM_FMRI_HC_LIST_SZ "hc-list-sz" -#define FM_FMRI_HC_LIST "hc-list" -#define FM_FMRI_HC_SPECIFIC "hc-specific" - -/* facility member names */ -#define FM_FMRI_FACILITY_NAME "facility-name" -#define FM_FMRI_FACILITY_TYPE "facility-type" - -/* hc-list version and member names */ -#define FM_FMRI_HC_NAME "hc-name" -#define FM_FMRI_HC_ID "hc-id" - -#define HC_LIST_VERSION0 0 -#define FM_HC_LIST_VERSION HC_LIST_VERSION0 - -/* hc-specific member names */ -#define FM_FMRI_HC_SPECIFIC_OFFSET "offset" -#define FM_FMRI_HC_SPECIFIC_PHYSADDR "physaddr" - -/* fmd module scheme member names */ -#define FM_FMRI_FMD_NAME "mod-name" -#define FM_FMRI_FMD_VERSION "mod-version" - -/* dev scheme member names */ -#define FM_FMRI_DEV_ID "devid" -#define FM_FMRI_DEV_TGTPTLUN0 "target-port-l0id" -#define FM_FMRI_DEV_PATH "device-path" - -/* pkg scheme member names */ -#define FM_FMRI_PKG_BASEDIR "pkg-basedir" -#define FM_FMRI_PKG_INST "pkg-inst" -#define FM_FMRI_PKG_VERSION "pkg-version" - -/* svc scheme member names */ -#define FM_FMRI_SVC_NAME "svc-name" -#define FM_FMRI_SVC_INSTANCE "svc-instance" -#define FM_FMRI_SVC_CONTRACT_ID "svc-contract-id" - -/* svc-authority member names */ -#define FM_FMRI_SVC_AUTH_SCOPE "scope" -#define FM_FMRI_SVC_AUTH_SYSTEM_FQN "system-fqn" - -/* cpu scheme member names */ -#define FM_FMRI_CPU_ID "cpuid" -#define FM_FMRI_CPU_SERIAL_ID "serial" -#define FM_FMRI_CPU_MASK "cpumask" -#define FM_FMRI_CPU_VID "cpuvid" -#define FM_FMRI_CPU_CPUFRU "cpufru" -#define FM_FMRI_CPU_CACHE_INDEX "cacheindex" -#define FM_FMRI_CPU_CACHE_WAY "cacheway" -#define FM_FMRI_CPU_CACHE_BIT "cachebit" -#define FM_FMRI_CPU_CACHE_TYPE "cachetype" - -#define FM_FMRI_CPU_CACHE_TYPE_L2 0 -#define FM_FMRI_CPU_CACHE_TYPE_L3 1 - -/* legacy-hc scheme member names */ -#define FM_FMRI_LEGACY_HC "component" -#define FM_FMRI_LEGACY_HC_PREFIX FM_FMRI_SCHEME_HC":///" \ - FM_FMRI_LEGACY_HC"=" - -/* mem scheme member names */ -#define FM_FMRI_MEM_UNUM "unum" -#define FM_FMRI_MEM_SERIAL_ID "serial" -#define FM_FMRI_MEM_PHYSADDR "physaddr" -#define FM_FMRI_MEM_MEMCONFIG "memconfig" -#define FM_FMRI_MEM_OFFSET "offset" - -/* mod scheme member names */ -#define FM_FMRI_MOD_PKG "mod-pkg" -#define FM_FMRI_MOD_NAME "mod-name" -#define FM_FMRI_MOD_ID "mod-id" -#define FM_FMRI_MOD_DESC "mod-desc" - -/* zfs scheme member names */ -#define FM_FMRI_ZFS_POOL "pool" -#define FM_FMRI_ZFS_VDEV "vdev" - -/* sw scheme member names - extra indentation for members of an nvlist */ -#define FM_FMRI_SW_OBJ "object" -#define FM_FMRI_SW_OBJ_PATH "path" -#define FM_FMRI_SW_OBJ_ROOT "root" -#define FM_FMRI_SW_OBJ_PKG "pkg" -#define FM_FMRI_SW_SITE "site" -#define FM_FMRI_SW_SITE_TOKEN "token" -#define FM_FMRI_SW_SITE_MODULE "module" -#define FM_FMRI_SW_SITE_FILE "file" -#define FM_FMRI_SW_SITE_LINE "line" -#define FM_FMRI_SW_SITE_FUNC "func" -#define FM_FMRI_SW_CTXT "context" -#define FM_FMRI_SW_CTXT_ORIGIN "origin" -#define FM_FMRI_SW_CTXT_EXECNAME "execname" -#define FM_FMRI_SW_CTXT_PID "pid" -#define FM_FMRI_SW_CTXT_ZONE "zone" -#define FM_FMRI_SW_CTXT_CTID "ctid" -#define FM_FMRI_SW_CTXT_STACK "stack" -#define FM_NVA_FREE 0 /* free allocator on nvlist_destroy */ -#define FM_NVA_RETAIN 1 /* keep allocator on nvlist_destroy */ - -extern nv_alloc_t *fm_nva_xcreate(char *, size_t); -extern void fm_nva_xdestroy(nv_alloc_t *); -extern nvlist_t *fm_nvlist_create(nv_alloc_t *); -extern void fm_nvlist_destroy(nvlist_t *, int); -extern void fm_ereport_set(nvlist_t *, int, const char *, uint64_t, - const nvlist_t *, ...); -extern void fm_payload_set(nvlist_t *, ...); -extern int i_fm_payload_set(nvlist_t *, const char *, va_list); -extern void fm_fmri_hc_set(nvlist_t *, int, const nvlist_t *, nvlist_t *, - int, ...); -extern void fm_fmri_dev_set(nvlist_t *, int, const nvlist_t *, const char *, - const char *, const char *); -extern void fm_fmri_de_set(nvlist_t *, int, const nvlist_t *, const char *); -extern void fm_fmri_cpu_set(nvlist_t *, int, const nvlist_t *, uint32_t, - uint8_t *, const char *); -extern void fm_fmri_mem_set(nvlist_t *, int, const nvlist_t *, const char *, - const char *, uint64_t); -extern void fm_fmri_zfs_set(nvlist_t *, int, uint64_t, uint64_t); -extern void fm_fmri_hc_create(nvlist_t *, int, const nvlist_t *, nvlist_t *, - nvlist_t *, int, ...); - -extern uint64_t fm_ena_increment(uint64_t); -extern uint64_t fm_ena_generate(uint64_t, uchar_t); -extern uint64_t fm_ena_generate_cpu(uint64_t, processorid_t, uchar_t); -extern uint64_t fm_ena_generation_get(uint64_t); -extern uchar_t fm_ena_format_get(uint64_t); -extern uint64_t fm_ena_id_get(uint64_t); -extern uint64_t fm_ena_time_get(uint64_t); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FM_PROTOCOL_H */ diff --git a/module/zfs/include/sys/fm/util.h b/module/zfs/include/sys/fm/util.h deleted file mode 100644 index 94947d67c..000000000 --- a/module/zfs/include/sys/fm/util.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_FM_UTIL_H -#define _SYS_FM_UTIL_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <sys/nvpair.h> - -/* - * Shared user/kernel definitions for class length, error channel name, - * and kernel event publisher string. - */ -#define FM_MAX_CLASS 100 -#define FM_ERROR_CHAN "com.sun:fm:error" -#define FM_PUB "fm" - -/* - * ereport dump device transport support - * - * Ereports are written out to the dump device at a proscribed offset from the - * end, similar to in-transit log messages. The ereports are represented as a - * erpt_dump_t header followed by ed_size bytes of packed native nvlist data. - * - * NOTE: All of these constants and the header must be defined so they have the - * same representation for *both* 32-bit and 64-bit producers and consumers. - */ -#define ERPT_MAGIC 0xf00d4eddU -#define ERPT_MAX_ERRS 16 -#define ERPT_DATA_SZ (6 * 1024) -#define ERPT_EVCH_MAX 256 -#define ERPT_HIWAT 64 - -typedef struct erpt_dump { - uint32_t ed_magic; /* ERPT_MAGIC or zero to indicate end */ - uint32_t ed_chksum; /* checksum32() of packed nvlist data */ - uint32_t ed_size; /* ereport (nvl) fixed buf size */ - uint32_t ed_pad; /* reserved for future use */ - hrtime_t ed_hrt_nsec; /* hrtime of this ereport */ - hrtime_t ed_hrt_base; /* hrtime sample corresponding to ed_tod_base */ - struct { - uint64_t sec; /* seconds since gettimeofday() Epoch */ - uint64_t nsec; /* nanoseconds past ed_tod_base.sec */ - } ed_tod_base; -} erpt_dump_t; - -#ifdef _KERNEL - -#define ZEVENT_SHUTDOWN 0x1 - -typedef void zevent_cb_t(nvlist_t *, nvlist_t *); - -typedef struct zevent_s { - nvlist_t *ev_nvl; /* protected by the zevent_lock */ - nvlist_t *ev_detector; /* " */ - list_t ev_ze_list; /* " */ - list_node_t ev_node; /* " */ - zevent_cb_t *ev_cb; /* " */ -} zevent_t; - -typedef struct zfs_zevent { - zevent_t *ze_zevent; /* protected by the zevent_lock */ - list_node_t ze_node; /* " */ - uint64_t ze_dropped; /* " */ -} zfs_zevent_t; - -extern void fm_init(void); -extern void fm_fini(void); -extern void fm_nvprint(nvlist_t *); -extern void zfs_zevent_post(nvlist_t *, nvlist_t *, zevent_cb_t *); -extern void zfs_zevent_drain_all(int *); -extern int zfs_zevent_fd_hold(int, minor_t *, zfs_zevent_t **); -extern void zfs_zevent_fd_rele(int); -extern int zfs_zevent_next(zfs_zevent_t *, nvlist_t **, uint64_t *); -extern int zfs_zevent_wait(zfs_zevent_t *); -extern void zfs_zevent_init(zfs_zevent_t **); -extern void zfs_zevent_destroy(zfs_zevent_t *); - -#else - -static inline void fm_init(void) { } -static inline void fm_fini(void) { } - -#endif /* _KERNEL */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FM_UTIL_H */ diff --git a/module/zfs/include/sys/metaslab.h b/module/zfs/include/sys/metaslab.h deleted file mode 100644 index 583d6303b..000000000 --- a/module/zfs/include/sys/metaslab.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_METASLAB_H -#define _SYS_METASLAB_H - -#include <sys/spa.h> -#include <sys/space_map.h> -#include <sys/txg.h> -#include <sys/zio.h> -#include <sys/avl.h> - -#ifdef __cplusplus -extern "C" { -#endif - -extern space_map_ops_t *zfs_metaslab_ops; - -extern metaslab_t *metaslab_init(metaslab_group_t *mg, space_map_obj_t *smo, - uint64_t start, uint64_t size, uint64_t txg); -extern void metaslab_fini(metaslab_t *msp); -extern void metaslab_sync(metaslab_t *msp, uint64_t txg); -extern void metaslab_sync_done(metaslab_t *msp, uint64_t txg); -extern void metaslab_sync_reassess(metaslab_group_t *mg); - -#define METASLAB_HINTBP_FAVOR 0x0 -#define METASLAB_HINTBP_AVOID 0x1 -#define METASLAB_GANG_HEADER 0x2 - -extern int metaslab_alloc(spa_t *spa, metaslab_class_t *mc, uint64_t psize, - blkptr_t *bp, int ncopies, uint64_t txg, blkptr_t *hintbp, int flags); -extern void metaslab_free(spa_t *spa, const blkptr_t *bp, uint64_t txg, - boolean_t now); -extern int metaslab_claim(spa_t *spa, const blkptr_t *bp, uint64_t txg); - -extern metaslab_class_t *metaslab_class_create(spa_t *spa, - space_map_ops_t *ops); -extern void metaslab_class_destroy(metaslab_class_t *mc); -extern int metaslab_class_validate(metaslab_class_t *mc); - -extern void metaslab_class_space_update(metaslab_class_t *mc, - int64_t alloc_delta, int64_t defer_delta, - int64_t space_delta, int64_t dspace_delta); -extern uint64_t metaslab_class_get_alloc(metaslab_class_t *mc); -extern uint64_t metaslab_class_get_space(metaslab_class_t *mc); -extern uint64_t metaslab_class_get_dspace(metaslab_class_t *mc); -extern uint64_t metaslab_class_get_deferred(metaslab_class_t *mc); - -extern metaslab_group_t *metaslab_group_create(metaslab_class_t *mc, - vdev_t *vd); -extern void metaslab_group_destroy(metaslab_group_t *mg); -extern void metaslab_group_activate(metaslab_group_t *mg); -extern void metaslab_group_passivate(metaslab_group_t *mg); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_METASLAB_H */ diff --git a/module/zfs/include/sys/metaslab_impl.h b/module/zfs/include/sys/metaslab_impl.h deleted file mode 100644 index 07988dd51..000000000 --- a/module/zfs/include/sys/metaslab_impl.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_METASLAB_IMPL_H -#define _SYS_METASLAB_IMPL_H - -#include <sys/metaslab.h> -#include <sys/space_map.h> -#include <sys/vdev.h> -#include <sys/txg.h> -#include <sys/avl.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct metaslab_class { - spa_t *mc_spa; - metaslab_group_t *mc_rotor; - space_map_ops_t *mc_ops; - uint64_t mc_aliquot; - uint64_t mc_alloc; /* total allocated space */ - uint64_t mc_deferred; /* total deferred frees */ - uint64_t mc_space; /* total space (alloc + free) */ - uint64_t mc_dspace; /* total deflated space */ -}; - -struct metaslab_group { - kmutex_t mg_lock; - avl_tree_t mg_metaslab_tree; - uint64_t mg_aliquot; - uint64_t mg_bonus_area; - int64_t mg_bias; - int64_t mg_activation_count; - metaslab_class_t *mg_class; - vdev_t *mg_vd; - metaslab_group_t *mg_prev; - metaslab_group_t *mg_next; -}; - -/* - * Each metaslab's free space is tracked in space map object in the MOS, - * which is only updated in syncing context. Each time we sync a txg, - * we append the allocs and frees from that txg to the space map object. - * When the txg is done syncing, metaslab_sync_done() updates ms_smo - * to ms_smo_syncing. Everything in ms_smo is always safe to allocate. - */ -struct metaslab { - kmutex_t ms_lock; /* metaslab lock */ - space_map_obj_t ms_smo; /* synced space map object */ - space_map_obj_t ms_smo_syncing; /* syncing space map object */ - space_map_t ms_allocmap[TXG_SIZE]; /* allocated this txg */ - space_map_t ms_freemap[TXG_SIZE]; /* freed this txg */ - space_map_t ms_defermap[TXG_DEFER_SIZE]; /* deferred frees */ - space_map_t ms_map; /* in-core free space map */ - int64_t ms_deferspace; /* sum of ms_defermap[] space */ - uint64_t ms_weight; /* weight vs. others in group */ - metaslab_group_t *ms_group; /* metaslab group */ - avl_node_t ms_group_node; /* node in metaslab group tree */ - txg_node_t ms_txg_node; /* per-txg dirty metaslab links */ -}; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_METASLAB_IMPL_H */ diff --git a/module/zfs/include/sys/refcount.h b/module/zfs/include/sys/refcount.h deleted file mode 100644 index 1752c64e3..000000000 --- a/module/zfs/include/sys/refcount.h +++ /dev/null @@ -1,107 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_REFCOUNT_H -#define _SYS_REFCOUNT_H - -#include <sys/inttypes.h> -#include <sys/list.h> -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * If the reference is held only by the calling function and not any - * particular object, use FTAG (which is a string) for the holder_tag. - * Otherwise, use the object that holds the reference. - */ -#define FTAG ((char *)__func__) - -#ifdef ZFS_DEBUG -typedef struct reference { - list_node_t ref_link; - void *ref_holder; - uint64_t ref_number; - uint8_t *ref_removed; -} reference_t; - -typedef struct refcount { - kmutex_t rc_mtx; - list_t rc_list; - list_t rc_removed; - int64_t rc_count; - int64_t rc_removed_count; -} refcount_t; - -/* Note: refcount_t must be initialized with refcount_create() */ - -void refcount_create(refcount_t *rc); -void refcount_destroy(refcount_t *rc); -void refcount_destroy_many(refcount_t *rc, uint64_t number); -int refcount_is_zero(refcount_t *rc); -int64_t refcount_count(refcount_t *rc); -int64_t refcount_add(refcount_t *rc, void *holder_tag); -int64_t refcount_remove(refcount_t *rc, void *holder_tag); -int64_t refcount_add_many(refcount_t *rc, uint64_t number, void *holder_tag); -int64_t refcount_remove_many(refcount_t *rc, uint64_t number, void *holder_tag); -void refcount_transfer(refcount_t *dst, refcount_t *src); - -void refcount_init(void); -void refcount_fini(void); - -#else /* ZFS_DEBUG */ - -typedef struct refcount { - uint64_t rc_count; -} refcount_t; - -#define refcount_create(rc) ((rc)->rc_count = 0) -#define refcount_destroy(rc) ((rc)->rc_count = 0) -#define refcount_destroy_many(rc, number) ((rc)->rc_count = 0) -#define refcount_is_zero(rc) ((rc)->rc_count == 0) -#define refcount_count(rc) ((rc)->rc_count) -#define refcount_add(rc, holder) atomic_add_64_nv(&(rc)->rc_count, 1) -#define refcount_remove(rc, holder) atomic_add_64_nv(&(rc)->rc_count, -1) -#define refcount_add_many(rc, number, holder) \ - atomic_add_64_nv(&(rc)->rc_count, number) -#define refcount_remove_many(rc, number, holder) \ - atomic_add_64_nv(&(rc)->rc_count, -number) -#define refcount_transfer(dst, src) { \ - uint64_t __tmp = (src)->rc_count; \ - atomic_add_64(&(src)->rc_count, -__tmp); \ - atomic_add_64(&(dst)->rc_count, __tmp); \ -} - -#define refcount_init() -#define refcount_fini() - -#endif /* ZFS_DEBUG */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_REFCOUNT_H */ diff --git a/module/zfs/include/sys/rrwlock.h b/module/zfs/include/sys/rrwlock.h deleted file mode 100644 index 798a015d1..000000000 --- a/module/zfs/include/sys/rrwlock.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_RR_RW_LOCK_H -#define _SYS_RR_RW_LOCK_H - - - -#ifdef __cplusplus -extern "C" { -#endif - -#include <sys/inttypes.h> -#include <sys/zfs_context.h> -#include <sys/refcount.h> - -/* - * A reader-writer lock implementation that allows re-entrant reads, but - * still gives writers priority on "new" reads. - * - * See rrwlock.c for more details about the implementation. - * - * Fields of the rrwlock_t structure: - * - rr_lock: protects modification and reading of rrwlock_t fields - * - rr_cv: cv for waking up readers or waiting writers - * - rr_writer: thread id of the current writer - * - rr_anon_rount: number of active anonymous readers - * - rr_linked_rcount: total number of non-anonymous active readers - * - rr_writer_wanted: a writer wants the lock - */ -typedef struct rrwlock { - kmutex_t rr_lock; - kcondvar_t rr_cv; - kthread_t *rr_writer; - refcount_t rr_anon_rcount; - refcount_t rr_linked_rcount; - boolean_t rr_writer_wanted; -} rrwlock_t; - -/* - * 'tag' is used in reference counting tracking. The - * 'tag' must be the same in a rrw_enter() as in its - * corresponding rrw_exit(). - */ -void rrw_init(rrwlock_t *rrl); -void rrw_destroy(rrwlock_t *rrl); -void rrw_enter(rrwlock_t *rrl, krw_t rw, void *tag); -void rrw_exit(rrwlock_t *rrl, void *tag); -boolean_t rrw_held(rrwlock_t *rrl, krw_t rw); - -#define RRW_READ_HELD(x) rrw_held(x, RW_READER) -#define RRW_WRITE_HELD(x) rrw_held(x, RW_WRITER) - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_RR_RW_LOCK_H */ diff --git a/module/zfs/include/sys/sa.h b/module/zfs/include/sys/sa.h deleted file mode 100644 index c8b924771..000000000 --- a/module/zfs/include/sys/sa.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_SA_H -#define _SYS_SA_H - -#include <sys/dmu.h> - -/* - * Currently available byteswap functions. - * If it all possible new attributes should used - * one of the already defined byteswap functions. - * If a new byteswap function is added then the - * ZPL/Pool version will need to be bumped. - */ - -typedef enum sa_bswap_type { - SA_UINT64_ARRAY, - SA_UINT32_ARRAY, - SA_UINT16_ARRAY, - SA_UINT8_ARRAY, - SA_ACL, -} sa_bswap_type_t; - -typedef uint16_t sa_attr_type_t; - -/* - * Attribute to register support for. - */ -typedef struct sa_attr_reg { - char *sa_name; /* attribute name */ - uint16_t sa_length; - sa_bswap_type_t sa_byteswap; /* bswap functon enum */ - sa_attr_type_t sa_attr; /* filled in during registration */ -} sa_attr_reg_t; - - -typedef void (sa_data_locator_t)(void **, uint32_t *, uint32_t, - boolean_t, void *userptr); - -/* - * array of attributes to store. - * - * This array should be treated as opaque/private data. - * The SA_BULK_ADD_ATTR() macro should be used for manipulating - * the array. - * - * When sa_replace_all_by_template() is used the attributes - * will be stored in the order defined in the array, except that - * the attributes may be split between the bonus and the spill buffer - * - */ -typedef struct sa_bulk_attr { - void *sa_data; - sa_data_locator_t *sa_data_func; - uint16_t sa_length; - sa_attr_type_t sa_attr; - /* the following are private to the sa framework */ - void *sa_addr; - uint16_t sa_buftype; - uint16_t sa_size; -} sa_bulk_attr_t; - - -/* - * special macro for adding entries for bulk attr support - * bulk - sa_bulk_attr_t - * count - integer that will be incremented during each add - * attr - attribute to manipulate - * func - function for accessing data. - * data - pointer to data. - * len - length of data - */ - -#define SA_ADD_BULK_ATTR(b, idx, attr, func, data, len) \ -{ \ - b[idx].sa_attr = attr;\ - b[idx].sa_data_func = func; \ - b[idx].sa_data = data; \ - b[idx++].sa_length = len; \ -} - -typedef struct sa_os sa_os_t; - -typedef enum sa_handle_type { - SA_HDL_SHARED, - SA_HDL_PRIVATE -} sa_handle_type_t; - -struct sa_handle; -typedef void *sa_lookup_tab_t; -typedef struct sa_handle sa_handle_t; - -typedef void (sa_update_cb_t)(sa_handle_t *, dmu_tx_t *tx); - -int sa_handle_get(objset_t *, uint64_t, void *userp, - sa_handle_type_t, sa_handle_t **); -int sa_handle_get_from_db(objset_t *, dmu_buf_t *, void *userp, - sa_handle_type_t, sa_handle_t **); -void sa_handle_destroy(sa_handle_t *); -int sa_buf_hold(objset_t *, uint64_t, void *, dmu_buf_t **); -void sa_buf_rele(dmu_buf_t *, void *); -int sa_lookup(sa_handle_t *, sa_attr_type_t, void *buf, uint32_t buflen); -int sa_update(sa_handle_t *, sa_attr_type_t, void *buf, - uint32_t buflen, dmu_tx_t *); -int sa_remove(sa_handle_t *, sa_attr_type_t, dmu_tx_t *); -int sa_bulk_lookup(sa_handle_t *, sa_bulk_attr_t *, int count); -int sa_bulk_lookup_locked(sa_handle_t *, sa_bulk_attr_t *, int count); -int sa_bulk_update(sa_handle_t *, sa_bulk_attr_t *, int count, dmu_tx_t *); -int sa_size(sa_handle_t *, sa_attr_type_t, int *); -int sa_update_from_cb(sa_handle_t *, sa_attr_type_t, - uint32_t buflen, sa_data_locator_t *, void *userdata, dmu_tx_t *); -void sa_object_info(sa_handle_t *, dmu_object_info_t *); -void sa_object_size(sa_handle_t *, uint32_t *, u_longlong_t *); -void sa_update_user(sa_handle_t *, sa_handle_t *); -void *sa_get_userdata(sa_handle_t *); -void sa_set_userp(sa_handle_t *, void *); -dmu_buf_t *sa_get_db(sa_handle_t *); -uint64_t sa_handle_object(sa_handle_t *); -boolean_t sa_attr_would_spill(sa_handle_t *, sa_attr_type_t, int size); -void sa_register_update_callback(objset_t *, sa_update_cb_t *); -int sa_setup(objset_t *, uint64_t, sa_attr_reg_t *, int, sa_attr_type_t **); -void sa_tear_down(objset_t *); -int sa_replace_all_by_template(sa_handle_t *, sa_bulk_attr_t *, - int, dmu_tx_t *); -int sa_replace_all_by_template_locked(sa_handle_t *, sa_bulk_attr_t *, - int, dmu_tx_t *); -boolean_t sa_enabled(objset_t *); -void sa_cache_init(void); -void sa_cache_fini(void); -int sa_set_sa_object(objset_t *, uint64_t); -int sa_hdrsize(void *); -void sa_handle_lock(sa_handle_t *); -void sa_handle_unlock(sa_handle_t *); - -#ifdef _KERNEL -int sa_lookup_uio(sa_handle_t *, sa_attr_type_t, uio_t *); -#endif - -#ifdef __cplusplus -extern "C" { -#endif - - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_SA_H */ diff --git a/module/zfs/include/sys/sa_impl.h b/module/zfs/include/sys/sa_impl.h deleted file mode 100644 index 6661e47cf..000000000 --- a/module/zfs/include/sys/sa_impl.h +++ /dev/null @@ -1,287 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_SA_IMPL_H -#define _SYS_SA_IMPL_H - -#include <sys/dmu.h> -#include <sys/refcount.h> -#include <sys/list.h> - -/* - * Array of known attributes and their - * various characteristics. - */ -typedef struct sa_attr_table { - sa_attr_type_t sa_attr; - uint8_t sa_registered; - uint16_t sa_length; - sa_bswap_type_t sa_byteswap; - char *sa_name; -} sa_attr_table_t; - -/* - * Zap attribute format for attribute registration - * - * 64 56 48 40 32 24 16 8 0 - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * | unused | len | bswap | attr num | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * - * Zap attribute format for layout information. - * - * layout information is stored as an array of attribute numbers - * The name of the attribute is the layout number (0, 1, 2, ...) - * - * 16 0 - * +---- ---+ - * | attr # | - * +--------+ - * | attr # | - * +--- ----+ - * ...... - * - */ - -#define ATTR_BSWAP(x) BF32_GET(x, 16, 8) -#define ATTR_LENGTH(x) BF32_GET(x, 24, 16) -#define ATTR_NUM(x) BF32_GET(x, 0, 16) -#define ATTR_ENCODE(x, attr, length, bswap) \ -{ \ - BF64_SET(x, 24, 16, length); \ - BF64_SET(x, 16, 8, bswap); \ - BF64_SET(x, 0, 16, attr); \ -} - -#define TOC_OFF(x) BF32_GET(x, 0, 23) -#define TOC_ATTR_PRESENT(x) BF32_GET(x, 31, 1) -#define TOC_LEN_IDX(x) BF32_GET(x, 24, 4) -#define TOC_ATTR_ENCODE(x, len_idx, offset) \ -{ \ - BF32_SET(x, 31, 1, 1); \ - BF32_SET(x, 24, 7, len_idx); \ - BF32_SET(x, 0, 24, offset); \ -} - -#define SA_LAYOUTS "LAYOUTS" -#define SA_REGISTRY "REGISTRY" - -/* - * Each unique layout will have their own table - * sa_lot (layout_table) - */ -typedef struct sa_lot { - avl_node_t lot_num_node; - avl_node_t lot_hash_node; - uint64_t lot_num; - uint64_t lot_hash; - sa_attr_type_t *lot_attrs; /* array of attr #'s */ - uint32_t lot_var_sizes; /* how many aren't fixed size */ - uint32_t lot_attr_count; /* total attr count */ - list_t lot_idx_tab; /* should be only a couple of entries */ - int lot_instance; /* used with lot_hash to identify entry */ -} sa_lot_t; - -/* index table of offsets */ -typedef struct sa_idx_tab { - list_node_t sa_next; - sa_lot_t *sa_layout; - uint16_t *sa_variable_lengths; - refcount_t sa_refcount; - uint32_t *sa_idx_tab; /* array of offsets */ -} sa_idx_tab_t; - -/* - * Since the offset/index information into the actual data - * will usually be identical we can share that information with - * all handles that have the exact same offsets. - * - * You would typically only have a large number of different table of - * contents if you had a several variable sized attributes. - * - * Two AVL trees are used to track the attribute layout numbers. - * one is keyed by number and will be consulted when a DMU_OT_SA - * object is first read. The second tree is keyed by the hash signature - * of the attributes and will be consulted when an attribute is added - * to determine if we already have an instance of that layout. Both - * of these tree's are interconnected. The only difference is that - * when an entry is found in the "hash" tree the list of attributes will - * need to be compared against the list of attributes you have in hand. - * The assumption is that typically attributes will just be updated and - * adding a completely new attribute is a very rare operation. - */ -struct sa_os { - kmutex_t sa_lock; - boolean_t sa_need_attr_registration; - boolean_t sa_force_spill; - uint64_t sa_master_obj; - uint64_t sa_reg_attr_obj; - uint64_t sa_layout_attr_obj; - int sa_num_attrs; - sa_attr_table_t *sa_attr_table; /* private attr table */ - sa_update_cb_t *sa_update_cb; - avl_tree_t sa_layout_num_tree; /* keyed by layout number */ - avl_tree_t sa_layout_hash_tree; /* keyed by layout hash value */ - int sa_user_table_sz; - sa_attr_type_t *sa_user_table; /* user name->attr mapping table */ -}; - -/* - * header for all bonus and spill buffers. - * The header has a fixed portion with a variable number - * of "lengths" depending on the number of variable sized - * attribues which are determined by the "layout number" - */ - -#define SA_MAGIC 0x2F505A /* ZFS SA */ -typedef struct sa_hdr_phys { - uint32_t sa_magic; - uint16_t sa_layout_info; /* Encoded with hdrsize and layout number */ - uint16_t sa_lengths[1]; /* optional sizes for variable length attrs */ - /* ... Data follows the lengths. */ -} sa_hdr_phys_t; - -/* - * sa_hdr_phys -> sa_layout_info - * - * 16 10 0 - * +--------+-------+ - * | hdrsz |layout | - * +--------+-------+ - * - * Bits 0-10 are the layout number - * Bits 11-16 are the size of the header. - * The hdrsize is the number * 8 - * - * For example. - * hdrsz of 1 ==> 8 byte header - * 2 ==> 16 byte header - * - */ - -#define SA_HDR_LAYOUT_NUM(hdr) BF32_GET(hdr->sa_layout_info, 0, 10) -#define SA_HDR_SIZE(hdr) BF32_GET_SB(hdr->sa_layout_info, 10, 16, 3, 0) -#define SA_HDR_LAYOUT_INFO_ENCODE(x, num, size) \ -{ \ - BF32_SET_SB(x, 10, 6, 3, 0, size); \ - BF32_SET(x, 0, 10, num); \ -} - -typedef enum sa_buf_type { - SA_BONUS = 1, - SA_SPILL = 2 -} sa_buf_type_t; - -typedef enum sa_data_op { - SA_LOOKUP, - SA_UPDATE, - SA_ADD, - SA_REPLACE, - SA_REMOVE -} sa_data_op_t; - -/* - * Opaque handle used for most sa functions - * - * This needs to be kept as small as possible. - */ - -struct sa_handle { - kmutex_t sa_lock; - dmu_buf_t *sa_bonus; - dmu_buf_t *sa_spill; - objset_t *sa_os; - void *sa_userp; - sa_idx_tab_t *sa_bonus_tab; /* idx of bonus */ - sa_idx_tab_t *sa_spill_tab; /* only present if spill activated */ -}; - -#define SA_GET_DB(hdl, type) \ - (dmu_buf_impl_t *)((type == SA_BONUS) ? hdl->sa_bonus : hdl->sa_spill) - -#define SA_GET_HDR(hdl, type) \ - ((sa_hdr_phys_t *)((dmu_buf_impl_t *)(SA_GET_DB(hdl, \ - type))->db.db_data)) - -#define SA_IDX_TAB_GET(hdl, type) \ - (type == SA_BONUS ? hdl->sa_bonus_tab : hdl->sa_spill_tab) - -#define IS_SA_BONUSTYPE(a) \ - ((a == DMU_OT_SA) ? B_TRUE : B_FALSE) - -#define SA_BONUSTYPE_FROM_DB(db) \ - (dmu_get_bonustype((dmu_buf_t *)db)) - -#define SA_BLKPTR_SPACE (DN_MAX_BONUSLEN - sizeof (blkptr_t)) - -#define SA_LAYOUT_NUM(x, type) \ - ((!IS_SA_BONUSTYPE(type) ? 0 : (((IS_SA_BONUSTYPE(type)) && \ - ((SA_HDR_LAYOUT_NUM(x)) == 0)) ? 1 : SA_HDR_LAYOUT_NUM(x)))) - - -#define SA_REGISTERED_LEN(sa, attr) sa->sa_attr_table[attr].sa_length - -#define SA_ATTR_LEN(sa, idx, attr, hdr) ((SA_REGISTERED_LEN(sa, attr) == 0) ?\ - hdr->sa_lengths[TOC_LEN_IDX(idx->sa_idx_tab[attr])] : \ - SA_REGISTERED_LEN(sa, attr)) - -#define SA_SET_HDR(hdr, num, size) \ - { \ - hdr->sa_magic = SA_MAGIC; \ - SA_HDR_LAYOUT_INFO_ENCODE(hdr->sa_layout_info, num, size); \ - } - -#define SA_ATTR_INFO(sa, idx, hdr, attr, bulk, type, hdl) \ - { \ - bulk.sa_size = SA_ATTR_LEN(sa, idx, attr, hdr); \ - bulk.sa_buftype = type; \ - bulk.sa_addr = \ - (void *)((uintptr_t)TOC_OFF(idx->sa_idx_tab[attr]) + \ - (uintptr_t)hdr); \ -} - -#define SA_HDR_SIZE_MATCH_LAYOUT(hdr, tb) \ - (SA_HDR_SIZE(hdr) == (sizeof (sa_hdr_phys_t) + \ - (tb->lot_var_sizes > 1 ? P2ROUNDUP((tb->lot_var_sizes - 1) * \ - sizeof (uint16_t), 8) : 0))) - -int sa_add_impl(sa_handle_t *, sa_attr_type_t, - uint32_t, sa_data_locator_t, void *, dmu_tx_t *); - -void sa_register_update_callback_locked(objset_t *, sa_update_cb_t *); -int sa_size_locked(sa_handle_t *, sa_attr_type_t, int *); - -void sa_default_locator(void **, uint32_t *, uint32_t, boolean_t, void *); -int sa_attr_size(sa_os_t *, sa_idx_tab_t *, sa_attr_type_t, - uint16_t *, sa_hdr_phys_t *); - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_SA_IMPL_H */ diff --git a/module/zfs/include/sys/spa.h b/module/zfs/include/sys/spa.h deleted file mode 100644 index 52737ebc2..000000000 --- a/module/zfs/include/sys/spa.h +++ /dev/null @@ -1,707 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_SPA_H -#define _SYS_SPA_H - -#include <sys/avl.h> -#include <sys/zfs_context.h> -#include <sys/nvpair.h> -#include <sys/sysmacros.h> -#include <sys/types.h> -#include <sys/fs/zfs.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Forward references that lots of things need. - */ -typedef struct spa spa_t; -typedef struct vdev vdev_t; -typedef struct metaslab metaslab_t; -typedef struct metaslab_group metaslab_group_t; -typedef struct metaslab_class metaslab_class_t; -typedef struct zio zio_t; -typedef struct zilog zilog_t; -typedef struct spa_aux_vdev spa_aux_vdev_t; -typedef struct ddt ddt_t; -typedef struct ddt_entry ddt_entry_t; -struct dsl_pool; - -/* - * General-purpose 32-bit and 64-bit bitfield encodings. - */ -#define BF32_DECODE(x, low, len) P2PHASE((x) >> (low), 1U << (len)) -#define BF64_DECODE(x, low, len) P2PHASE((x) >> (low), 1ULL << (len)) -#define BF32_ENCODE(x, low, len) (P2PHASE((x), 1U << (len)) << (low)) -#define BF64_ENCODE(x, low, len) (P2PHASE((x), 1ULL << (len)) << (low)) - -#define BF32_GET(x, low, len) BF32_DECODE(x, low, len) -#define BF64_GET(x, low, len) BF64_DECODE(x, low, len) - -#define BF32_SET(x, low, len, val) \ - ((x) ^= BF32_ENCODE((x >> low) ^ (val), low, len)) -#define BF64_SET(x, low, len, val) \ - ((x) ^= BF64_ENCODE((x >> low) ^ (val), low, len)) - -#define BF32_GET_SB(x, low, len, shift, bias) \ - ((BF32_GET(x, low, len) + (bias)) << (shift)) -#define BF64_GET_SB(x, low, len, shift, bias) \ - ((BF64_GET(x, low, len) + (bias)) << (shift)) - -#define BF32_SET_SB(x, low, len, shift, bias, val) \ - BF32_SET(x, low, len, ((val) >> (shift)) - (bias)) -#define BF64_SET_SB(x, low, len, shift, bias, val) \ - BF64_SET(x, low, len, ((val) >> (shift)) - (bias)) - -/* - * We currently support nine block sizes, from 512 bytes to 128K. - * We could go higher, but the benefits are near-zero and the cost - * of COWing a giant block to modify one byte would become excessive. - */ -#define SPA_MINBLOCKSHIFT 9 -#define SPA_MAXBLOCKSHIFT 17 -#define SPA_MINBLOCKSIZE (1ULL << SPA_MINBLOCKSHIFT) -#define SPA_MAXBLOCKSIZE (1ULL << SPA_MAXBLOCKSHIFT) - -#define SPA_BLOCKSIZES (SPA_MAXBLOCKSHIFT - SPA_MINBLOCKSHIFT + 1) - -/* - * Size of block to hold the configuration data (a packed nvlist) - */ -#define SPA_CONFIG_BLOCKSIZE (1 << 14) - -/* - * The DVA size encodings for LSIZE and PSIZE support blocks up to 32MB. - * The ASIZE encoding should be at least 64 times larger (6 more bits) - * to support up to 4-way RAID-Z mirror mode with worst-case gang block - * overhead, three DVAs per bp, plus one more bit in case we do anything - * else that expands the ASIZE. - */ -#define SPA_LSIZEBITS 16 /* LSIZE up to 32M (2^16 * 512) */ -#define SPA_PSIZEBITS 16 /* PSIZE up to 32M (2^16 * 512) */ -#define SPA_ASIZEBITS 24 /* ASIZE up to 64 times larger */ - -/* - * All SPA data is represented by 128-bit data virtual addresses (DVAs). - * The members of the dva_t should be considered opaque outside the SPA. - */ -typedef struct dva { - uint64_t dva_word[2]; -} dva_t; - -/* - * Each block has a 256-bit checksum -- strong enough for cryptographic hashes. - */ -typedef struct zio_cksum { - uint64_t zc_word[4]; -} zio_cksum_t; - -/* - * Each block is described by its DVAs, time of birth, checksum, etc. - * The word-by-word, bit-by-bit layout of the blkptr is as follows: - * - * 64 56 48 40 32 24 16 8 0 - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * 0 | vdev1 | GRID | ASIZE | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * 1 |G| offset1 | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * 2 | vdev2 | GRID | ASIZE | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * 3 |G| offset2 | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * 4 | vdev3 | GRID | ASIZE | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * 5 |G| offset3 | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * 6 |BDX|lvl| type | cksum | comp | PSIZE | LSIZE | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * 7 | padding | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * 8 | padding | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * 9 | physical birth txg | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * a | logical birth txg | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * b | fill count | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * c | checksum[0] | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * d | checksum[1] | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * e | checksum[2] | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * f | checksum[3] | - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * - * Legend: - * - * vdev virtual device ID - * offset offset into virtual device - * LSIZE logical size - * PSIZE physical size (after compression) - * ASIZE allocated size (including RAID-Z parity and gang block headers) - * GRID RAID-Z layout information (reserved for future use) - * cksum checksum function - * comp compression function - * G gang block indicator - * B byteorder (endianness) - * D dedup - * X unused - * lvl level of indirection - * type DMU object type - * phys birth txg of block allocation; zero if same as logical birth txg - * log. birth transaction group in which the block was logically born - * fill count number of non-zero blocks under this bp - * checksum[4] 256-bit checksum of the data this bp describes - */ -#define SPA_BLKPTRSHIFT 7 /* blkptr_t is 128 bytes */ -#define SPA_DVAS_PER_BP 3 /* Number of DVAs in a bp */ - -typedef struct blkptr { - dva_t blk_dva[SPA_DVAS_PER_BP]; /* Data Virtual Addresses */ - uint64_t blk_prop; /* size, compression, type, etc */ - uint64_t blk_pad[2]; /* Extra space for the future */ - uint64_t blk_phys_birth; /* txg when block was allocated */ - uint64_t blk_birth; /* transaction group at birth */ - uint64_t blk_fill; /* fill count */ - zio_cksum_t blk_cksum; /* 256-bit checksum */ -} blkptr_t; - -/* - * Macros to get and set fields in a bp or DVA. - */ -#define DVA_GET_ASIZE(dva) \ - BF64_GET_SB((dva)->dva_word[0], 0, 24, SPA_MINBLOCKSHIFT, 0) -#define DVA_SET_ASIZE(dva, x) \ - BF64_SET_SB((dva)->dva_word[0], 0, 24, SPA_MINBLOCKSHIFT, 0, x) - -#define DVA_GET_GRID(dva) BF64_GET((dva)->dva_word[0], 24, 8) -#define DVA_SET_GRID(dva, x) BF64_SET((dva)->dva_word[0], 24, 8, x) - -#define DVA_GET_VDEV(dva) BF64_GET((dva)->dva_word[0], 32, 32) -#define DVA_SET_VDEV(dva, x) BF64_SET((dva)->dva_word[0], 32, 32, x) - -#define DVA_GET_OFFSET(dva) \ - BF64_GET_SB((dva)->dva_word[1], 0, 63, SPA_MINBLOCKSHIFT, 0) -#define DVA_SET_OFFSET(dva, x) \ - BF64_SET_SB((dva)->dva_word[1], 0, 63, SPA_MINBLOCKSHIFT, 0, x) - -#define DVA_GET_GANG(dva) BF64_GET((dva)->dva_word[1], 63, 1) -#define DVA_SET_GANG(dva, x) BF64_SET((dva)->dva_word[1], 63, 1, x) - -#define BP_GET_LSIZE(bp) \ - BF64_GET_SB((bp)->blk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1) -#define BP_SET_LSIZE(bp, x) \ - BF64_SET_SB((bp)->blk_prop, 0, 16, SPA_MINBLOCKSHIFT, 1, x) - -#define BP_GET_PSIZE(bp) \ - BF64_GET_SB((bp)->blk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1) -#define BP_SET_PSIZE(bp, x) \ - BF64_SET_SB((bp)->blk_prop, 16, 16, SPA_MINBLOCKSHIFT, 1, x) - -#define BP_GET_COMPRESS(bp) BF64_GET((bp)->blk_prop, 32, 8) -#define BP_SET_COMPRESS(bp, x) BF64_SET((bp)->blk_prop, 32, 8, x) - -#define BP_GET_CHECKSUM(bp) BF64_GET((bp)->blk_prop, 40, 8) -#define BP_SET_CHECKSUM(bp, x) BF64_SET((bp)->blk_prop, 40, 8, x) - -#define BP_GET_TYPE(bp) BF64_GET((bp)->blk_prop, 48, 8) -#define BP_SET_TYPE(bp, x) BF64_SET((bp)->blk_prop, 48, 8, x) - -#define BP_GET_LEVEL(bp) BF64_GET((bp)->blk_prop, 56, 5) -#define BP_SET_LEVEL(bp, x) BF64_SET((bp)->blk_prop, 56, 5, x) - -#define BP_GET_PROP_BIT_61(bp) BF64_GET((bp)->blk_prop, 61, 1) -#define BP_SET_PROP_BIT_61(bp, x) BF64_SET((bp)->blk_prop, 61, 1, x) - -#define BP_GET_DEDUP(bp) BF64_GET((bp)->blk_prop, 62, 1) -#define BP_SET_DEDUP(bp, x) BF64_SET((bp)->blk_prop, 62, 1, x) - -#define BP_GET_BYTEORDER(bp) (0 - BF64_GET((bp)->blk_prop, 63, 1)) -#define BP_SET_BYTEORDER(bp, x) BF64_SET((bp)->blk_prop, 63, 1, x) - -#define BP_PHYSICAL_BIRTH(bp) \ - ((bp)->blk_phys_birth ? (bp)->blk_phys_birth : (bp)->blk_birth) - -#define BP_SET_BIRTH(bp, logical, physical) \ -{ \ - (bp)->blk_birth = (logical); \ - (bp)->blk_phys_birth = ((logical) == (physical) ? 0 : (physical)); \ -} - -#define BP_GET_ASIZE(bp) \ - (DVA_GET_ASIZE(&(bp)->blk_dva[0]) + DVA_GET_ASIZE(&(bp)->blk_dva[1]) + \ - DVA_GET_ASIZE(&(bp)->blk_dva[2])) - -#define BP_GET_UCSIZE(bp) \ - ((BP_GET_LEVEL(bp) > 0 || dmu_ot[BP_GET_TYPE(bp)].ot_metadata) ? \ - BP_GET_PSIZE(bp) : BP_GET_LSIZE(bp)) - -#define BP_GET_NDVAS(bp) \ - (!!DVA_GET_ASIZE(&(bp)->blk_dva[0]) + \ - !!DVA_GET_ASIZE(&(bp)->blk_dva[1]) + \ - !!DVA_GET_ASIZE(&(bp)->blk_dva[2])) - -#define BP_COUNT_GANG(bp) \ - (DVA_GET_GANG(&(bp)->blk_dva[0]) + \ - DVA_GET_GANG(&(bp)->blk_dva[1]) + \ - DVA_GET_GANG(&(bp)->blk_dva[2])) - -#define DVA_EQUAL(dva1, dva2) \ - ((dva1)->dva_word[1] == (dva2)->dva_word[1] && \ - (dva1)->dva_word[0] == (dva2)->dva_word[0]) - -#define BP_EQUAL(bp1, bp2) \ - (BP_PHYSICAL_BIRTH(bp1) == BP_PHYSICAL_BIRTH(bp2) && \ - DVA_EQUAL(&(bp1)->blk_dva[0], &(bp2)->blk_dva[0]) && \ - DVA_EQUAL(&(bp1)->blk_dva[1], &(bp2)->blk_dva[1]) && \ - DVA_EQUAL(&(bp1)->blk_dva[2], &(bp2)->blk_dva[2])) - -#define ZIO_CHECKSUM_EQUAL(zc1, zc2) \ - (0 == (((zc1).zc_word[0] - (zc2).zc_word[0]) | \ - ((zc1).zc_word[1] - (zc2).zc_word[1]) | \ - ((zc1).zc_word[2] - (zc2).zc_word[2]) | \ - ((zc1).zc_word[3] - (zc2).zc_word[3]))) - -#define DVA_IS_VALID(dva) (DVA_GET_ASIZE(dva) != 0) - -#define ZIO_SET_CHECKSUM(zcp, w0, w1, w2, w3) \ -{ \ - (zcp)->zc_word[0] = w0; \ - (zcp)->zc_word[1] = w1; \ - (zcp)->zc_word[2] = w2; \ - (zcp)->zc_word[3] = w3; \ -} - -#define BP_IDENTITY(bp) (&(bp)->blk_dva[0]) -#define BP_IS_GANG(bp) DVA_GET_GANG(BP_IDENTITY(bp)) -#define BP_IS_HOLE(bp) ((bp)->blk_birth == 0) - -/* BP_IS_RAIDZ(bp) assumes no block compression */ -#define BP_IS_RAIDZ(bp) (DVA_GET_ASIZE(&(bp)->blk_dva[0]) > \ - BP_GET_PSIZE(bp)) - -#define BP_ZERO(bp) \ -{ \ - (bp)->blk_dva[0].dva_word[0] = 0; \ - (bp)->blk_dva[0].dva_word[1] = 0; \ - (bp)->blk_dva[1].dva_word[0] = 0; \ - (bp)->blk_dva[1].dva_word[1] = 0; \ - (bp)->blk_dva[2].dva_word[0] = 0; \ - (bp)->blk_dva[2].dva_word[1] = 0; \ - (bp)->blk_prop = 0; \ - (bp)->blk_pad[0] = 0; \ - (bp)->blk_pad[1] = 0; \ - (bp)->blk_phys_birth = 0; \ - (bp)->blk_birth = 0; \ - (bp)->blk_fill = 0; \ - ZIO_SET_CHECKSUM(&(bp)->blk_cksum, 0, 0, 0, 0); \ -} - -/* - * Note: the byteorder is either 0 or -1, both of which are palindromes. - * This simplifies the endianness handling a bit. - */ -#ifdef _BIG_ENDIAN -#define ZFS_HOST_BYTEORDER (0ULL) -#else -#define ZFS_HOST_BYTEORDER (-1ULL) -#endif - -#define BP_SHOULD_BYTESWAP(bp) (BP_GET_BYTEORDER(bp) != ZFS_HOST_BYTEORDER) - -#define BP_SPRINTF_LEN 320 - -/* - * This macro allows code sharing between zfs, libzpool, and mdb. - * 'func' is either snprintf() or mdb_snprintf(). - * 'ws' (whitespace) can be ' ' for single-line format, '\n' for multi-line. - */ -#define SPRINTF_BLKPTR(func, ws, buf, bp, type, checksum, compress) \ -{ \ - static const char *copyname[] = \ - { "zero", "single", "double", "triple" }; \ - int size = BP_SPRINTF_LEN; \ - int len = 0; \ - int copies = 0; \ - int d; \ - \ - if (bp == NULL) { \ - len = func(buf + len, size - len, "<NULL>"); \ - } else if (BP_IS_HOLE(bp)) { \ - len = func(buf + len, size - len, "<hole>"); \ - } else { \ - for (d = 0; d < BP_GET_NDVAS(bp); d++) { \ - const dva_t *dva = &bp->blk_dva[d]; \ - if (DVA_IS_VALID(dva)) \ - copies++; \ - len += func(buf + len, size - len, \ - "DVA[%d]=<%llu:%llx:%llx>%c", d, \ - (u_longlong_t)DVA_GET_VDEV(dva), \ - (u_longlong_t)DVA_GET_OFFSET(dva), \ - (u_longlong_t)DVA_GET_ASIZE(dva), \ - ws); \ - } \ - if (BP_IS_GANG(bp) && \ - DVA_GET_ASIZE(&bp->blk_dva[2]) <= \ - DVA_GET_ASIZE(&bp->blk_dva[1]) / 2) \ - copies--; \ - len += func(buf + len, size - len, \ - "[L%llu %s] %s %s %s %s %s %s%c" \ - "size=%llxL/%llxP birth=%lluL/%lluP fill=%llu%c" \ - "cksum=%llx:%llx:%llx:%llx", \ - (u_longlong_t)BP_GET_LEVEL(bp), \ - type, \ - checksum, \ - compress, \ - BP_GET_BYTEORDER(bp) == 0 ? "BE" : "LE", \ - BP_IS_GANG(bp) ? "gang" : "contiguous", \ - BP_GET_DEDUP(bp) ? "dedup" : "unique", \ - copyname[copies], \ - ws, \ - (u_longlong_t)BP_GET_LSIZE(bp), \ - (u_longlong_t)BP_GET_PSIZE(bp), \ - (u_longlong_t)bp->blk_birth, \ - (u_longlong_t)BP_PHYSICAL_BIRTH(bp), \ - (u_longlong_t)bp->blk_fill, \ - ws, \ - (u_longlong_t)bp->blk_cksum.zc_word[0], \ - (u_longlong_t)bp->blk_cksum.zc_word[1], \ - (u_longlong_t)bp->blk_cksum.zc_word[2], \ - (u_longlong_t)bp->blk_cksum.zc_word[3]); \ - } \ - ASSERT(len < size); \ -} - -#include <sys/dmu.h> - -#define BP_GET_BUFC_TYPE(bp) \ - (((BP_GET_LEVEL(bp) > 0) || (dmu_ot[BP_GET_TYPE(bp)].ot_metadata)) ? \ - ARC_BUFC_METADATA : ARC_BUFC_DATA); - -typedef enum spa_import_type { - SPA_IMPORT_EXISTING, - SPA_IMPORT_ASSEMBLE -} spa_import_type_t; - -/* state manipulation functions */ -extern int spa_open(const char *pool, spa_t **, void *tag); -extern int spa_open_rewind(const char *pool, spa_t **, void *tag, - nvlist_t *policy, nvlist_t **config); -extern int spa_get_stats(const char *pool, nvlist_t **config, - char *altroot, size_t buflen); -extern int spa_create(const char *pool, nvlist_t *config, nvlist_t *props, - const char *history_str, nvlist_t *zplprops); -extern int spa_import_rootpool(char *devpath, char *devid); -extern int spa_import(const char *pool, nvlist_t *config, nvlist_t *props, - uint64_t flags); -extern nvlist_t *spa_tryimport(nvlist_t *tryconfig); -extern int spa_destroy(char *pool); -extern int spa_export(char *pool, nvlist_t **oldconfig, boolean_t force, - boolean_t hardforce); -extern int spa_reset(char *pool); -extern void spa_async_request(spa_t *spa, int flag); -extern void spa_async_unrequest(spa_t *spa, int flag); -extern void spa_async_suspend(spa_t *spa); -extern void spa_async_resume(spa_t *spa); -extern spa_t *spa_inject_addref(char *pool); -extern void spa_inject_delref(spa_t *spa); -extern void spa_scan_stat_init(spa_t *spa); -extern int spa_scan_get_stats(spa_t *spa, pool_scan_stat_t *ps); - -#define SPA_ASYNC_CONFIG_UPDATE 0x01 -#define SPA_ASYNC_REMOVE 0x02 -#define SPA_ASYNC_PROBE 0x04 -#define SPA_ASYNC_RESILVER_DONE 0x08 -#define SPA_ASYNC_RESILVER 0x10 -#define SPA_ASYNC_AUTOEXPAND 0x20 -#define SPA_ASYNC_REMOVE_DONE 0x40 -#define SPA_ASYNC_REMOVE_STOP 0x80 - -/* - * Controls the behavior of spa_vdev_remove(). - */ -#define SPA_REMOVE_UNSPARE 0x01 -#define SPA_REMOVE_DONE 0x02 - -/* device manipulation */ -extern int spa_vdev_add(spa_t *spa, nvlist_t *nvroot); -extern int spa_vdev_attach(spa_t *spa, uint64_t guid, nvlist_t *nvroot, - int replacing); -extern int spa_vdev_detach(spa_t *spa, uint64_t guid, uint64_t pguid, - int replace_done); -extern int spa_vdev_remove(spa_t *spa, uint64_t guid, boolean_t unspare); -extern boolean_t spa_vdev_remove_active(spa_t *spa); -extern int spa_vdev_setpath(spa_t *spa, uint64_t guid, const char *newpath); -extern int spa_vdev_setfru(spa_t *spa, uint64_t guid, const char *newfru); -extern int spa_vdev_split_mirror(spa_t *spa, char *newname, nvlist_t *config, - nvlist_t *props, boolean_t exp); - -/* spare state (which is global across all pools) */ -extern void spa_spare_add(vdev_t *vd); -extern void spa_spare_remove(vdev_t *vd); -extern boolean_t spa_spare_exists(uint64_t guid, uint64_t *pool, int *refcnt); -extern void spa_spare_activate(vdev_t *vd); - -/* L2ARC state (which is global across all pools) */ -extern void spa_l2cache_add(vdev_t *vd); -extern void spa_l2cache_remove(vdev_t *vd); -extern boolean_t spa_l2cache_exists(uint64_t guid, uint64_t *pool); -extern void spa_l2cache_activate(vdev_t *vd); -extern void spa_l2cache_drop(spa_t *spa); - -/* scanning */ -extern int spa_scan(spa_t *spa, pool_scan_func_t func); -extern int spa_scan_stop(spa_t *spa); - -/* spa syncing */ -extern void spa_sync(spa_t *spa, uint64_t txg); /* only for DMU use */ -extern void spa_sync_allpools(void); - -/* - * DEFERRED_FREE must be large enough that regular blocks are not - * deferred. XXX so can't we change it back to 1? - */ -#define SYNC_PASS_DEFERRED_FREE 2 /* defer frees after this pass */ -#define SYNC_PASS_DONT_COMPRESS 4 /* don't compress after this pass */ -#define SYNC_PASS_REWRITE 1 /* rewrite new bps after this pass */ - -/* spa namespace global mutex */ -extern kmutex_t spa_namespace_lock; - -/* - * SPA configuration functions in spa_config.c - */ - -#define SPA_CONFIG_UPDATE_POOL 0 -#define SPA_CONFIG_UPDATE_VDEVS 1 - -extern void spa_config_sync(spa_t *, boolean_t, boolean_t); -extern void spa_config_load(void); -extern nvlist_t *spa_all_configs(uint64_t *); -extern void spa_config_set(spa_t *spa, nvlist_t *config); -extern nvlist_t *spa_config_generate(spa_t *spa, vdev_t *vd, uint64_t txg, - int getstats); -extern void spa_config_update(spa_t *spa, int what); - -/* - * Miscellaneous SPA routines in spa_misc.c - */ - -/* Namespace manipulation */ -extern spa_t *spa_lookup(const char *name); -extern spa_t *spa_add(const char *name, nvlist_t *config, const char *altroot); -extern void spa_remove(spa_t *spa); -extern spa_t *spa_next(spa_t *prev); - -/* Refcount functions */ -extern void spa_open_ref(spa_t *spa, void *tag); -extern void spa_close(spa_t *spa, void *tag); -extern boolean_t spa_refcount_zero(spa_t *spa); - -#define SCL_NONE 0x00 -#define SCL_CONFIG 0x01 -#define SCL_STATE 0x02 -#define SCL_L2ARC 0x04 /* hack until L2ARC 2.0 */ -#define SCL_ALLOC 0x08 -#define SCL_ZIO 0x10 -#define SCL_FREE 0x20 -#define SCL_VDEV 0x40 -#define SCL_LOCKS 7 -#define SCL_ALL ((1 << SCL_LOCKS) - 1) -#define SCL_STATE_ALL (SCL_STATE | SCL_L2ARC | SCL_ZIO) - -/* Pool configuration locks */ -extern int spa_config_tryenter(spa_t *spa, int locks, void *tag, krw_t rw); -extern void spa_config_enter(spa_t *spa, int locks, void *tag, krw_t rw); -extern void spa_config_exit(spa_t *spa, int locks, void *tag); -extern int spa_config_held(spa_t *spa, int locks, krw_t rw); - -/* Pool vdev add/remove lock */ -extern uint64_t spa_vdev_enter(spa_t *spa); -extern uint64_t spa_vdev_config_enter(spa_t *spa); -extern void spa_vdev_config_exit(spa_t *spa, vdev_t *vd, uint64_t txg, - int error, char *tag); -extern int spa_vdev_exit(spa_t *spa, vdev_t *vd, uint64_t txg, int error); - -/* Pool vdev state change lock */ -extern void spa_vdev_state_enter(spa_t *spa, int oplock); -extern int spa_vdev_state_exit(spa_t *spa, vdev_t *vd, int error); - -/* Log state */ -typedef enum spa_log_state { - SPA_LOG_UNKNOWN = 0, /* unknown log state */ - SPA_LOG_MISSING, /* missing log(s) */ - SPA_LOG_CLEAR, /* clear the log(s) */ - SPA_LOG_GOOD, /* log(s) are good */ -} spa_log_state_t; - -extern spa_log_state_t spa_get_log_state(spa_t *spa); -extern void spa_set_log_state(spa_t *spa, spa_log_state_t state); -extern int spa_offline_log(spa_t *spa); - -/* Log claim callback */ -extern void spa_claim_notify(zio_t *zio); - -/* Accessor functions */ -extern boolean_t spa_shutting_down(spa_t *spa); -extern struct dsl_pool *spa_get_dsl(spa_t *spa); -extern blkptr_t *spa_get_rootblkptr(spa_t *spa); -extern void spa_set_rootblkptr(spa_t *spa, const blkptr_t *bp); -extern void spa_altroot(spa_t *, char *, size_t); -extern int spa_sync_pass(spa_t *spa); -extern char *spa_name(spa_t *spa); -extern uint64_t spa_guid(spa_t *spa); -extern uint64_t spa_last_synced_txg(spa_t *spa); -extern uint64_t spa_first_txg(spa_t *spa); -extern uint64_t spa_syncing_txg(spa_t *spa); -extern uint64_t spa_version(spa_t *spa); -extern pool_state_t spa_state(spa_t *spa); -extern spa_load_state_t spa_load_state(spa_t *spa); -extern uint64_t spa_freeze_txg(spa_t *spa); -extern uint64_t spa_get_asize(spa_t *spa, uint64_t lsize); -extern uint64_t spa_get_dspace(spa_t *spa); -extern void spa_update_dspace(spa_t *spa); -extern uint64_t spa_version(spa_t *spa); -extern boolean_t spa_deflate(spa_t *spa); -extern metaslab_class_t *spa_normal_class(spa_t *spa); -extern metaslab_class_t *spa_log_class(spa_t *spa); -extern int spa_max_replication(spa_t *spa); -extern int spa_prev_software_version(spa_t *spa); -extern int spa_busy(void); -extern uint8_t spa_get_failmode(spa_t *spa); -extern boolean_t spa_suspended(spa_t *spa); -extern uint64_t spa_bootfs(spa_t *spa); -extern uint64_t spa_delegation(spa_t *spa); -extern objset_t *spa_meta_objset(spa_t *spa); - -/* Miscellaneous support routines */ -extern int spa_rename(const char *oldname, const char *newname); -extern spa_t *spa_by_guid(uint64_t pool_guid, uint64_t device_guid); -extern boolean_t spa_guid_exists(uint64_t pool_guid, uint64_t device_guid); -extern char *spa_strdup(const char *); -extern void spa_strfree(char *); -extern uint64_t spa_get_random(uint64_t range); -extern uint64_t spa_generate_guid(spa_t *spa); -extern void sprintf_blkptr(char *buf, const blkptr_t *bp); -extern void spa_freeze(spa_t *spa); -extern void spa_upgrade(spa_t *spa, uint64_t version); -extern void spa_evict_all(void); -extern vdev_t *spa_lookup_by_guid(spa_t *spa, uint64_t guid, - boolean_t l2cache); -extern boolean_t spa_has_spare(spa_t *, uint64_t guid); -extern uint64_t dva_get_dsize_sync(spa_t *spa, const dva_t *dva); -extern uint64_t bp_get_dsize_sync(spa_t *spa, const blkptr_t *bp); -extern uint64_t bp_get_dsize(spa_t *spa, const blkptr_t *bp); -extern boolean_t spa_has_slogs(spa_t *spa); -extern boolean_t spa_is_root(spa_t *spa); -extern boolean_t spa_writeable(spa_t *spa); - -extern int spa_mode(spa_t *spa); -extern uint64_t strtonum(const char *str, char **nptr); - -/* history logging */ -typedef enum history_log_type { - LOG_CMD_POOL_CREATE, - LOG_CMD_NORMAL, - LOG_INTERNAL -} history_log_type_t; - -typedef struct history_arg { - char *ha_history_str; - history_log_type_t ha_log_type; - history_internal_events_t ha_event; - char *ha_zone; - uid_t ha_uid; -} history_arg_t; - -extern char *spa_his_ievent_table[]; - -extern void spa_history_create_obj(spa_t *spa, dmu_tx_t *tx); -extern int spa_history_get(spa_t *spa, uint64_t *offset, uint64_t *len_read, - char *his_buf); -extern int spa_history_log(spa_t *spa, const char *his_buf, - history_log_type_t what); -extern void spa_history_log_internal(history_internal_events_t event, - spa_t *spa, dmu_tx_t *tx, const char *fmt, ...); -extern void spa_history_log_version(spa_t *spa, history_internal_events_t evt); - -/* error handling */ -struct zbookmark; -extern void spa_log_error(spa_t *spa, zio_t *zio); -extern void zfs_ereport_post(const char *class, spa_t *spa, vdev_t *vd, - zio_t *zio, uint64_t stateoroffset, uint64_t length); -extern void zfs_post_remove(spa_t *spa, vdev_t *vd); -extern void zfs_post_state_change(spa_t *spa, vdev_t *vd); -extern void zfs_post_autoreplace(spa_t *spa, vdev_t *vd); -extern uint64_t spa_get_errlog_size(spa_t *spa); -extern int spa_get_errlog(spa_t *spa, void *uaddr, size_t *count); -extern void spa_errlog_rotate(spa_t *spa); -extern void spa_errlog_drain(spa_t *spa); -extern void spa_errlog_sync(spa_t *spa, uint64_t txg); -extern void spa_get_errlists(spa_t *spa, avl_tree_t *last, avl_tree_t *scrub); - -/* vdev cache */ -extern void vdev_cache_stat_init(void); -extern void vdev_cache_stat_fini(void); - -/* Initialization and termination */ -extern void spa_init(int flags); -extern void spa_fini(void); -extern void spa_boot_init(void); - -/* properties */ -extern int spa_prop_set(spa_t *spa, nvlist_t *nvp); -extern int spa_prop_get(spa_t *spa, nvlist_t **nvp); -extern void spa_prop_clear_bootfs(spa_t *spa, uint64_t obj, dmu_tx_t *tx); -extern void spa_configfile_set(spa_t *, nvlist_t *, boolean_t); - -/* asynchronous event notification */ -extern void spa_event_notify(spa_t *spa, vdev_t *vdev, const char *name); - -#ifdef ZFS_DEBUG -#define dprintf_bp(bp, fmt, ...) do { \ - if (zfs_flags & ZFS_DEBUG_DPRINTF) { \ - char *__blkbuf = kmem_alloc(BP_SPRINTF_LEN, KM_SLEEP); \ - sprintf_blkptr(__blkbuf, (bp)); \ - dprintf(fmt " %s\n", __VA_ARGS__, __blkbuf); \ - kmem_free(__blkbuf, BP_SPRINTF_LEN); \ - } \ -_NOTE(CONSTCOND) } while (0) -#else -#define dprintf_bp(bp, fmt, ...) -#endif - -extern int spa_mode_global; /* mode, e.g. FREAD | FWRITE */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_SPA_H */ diff --git a/module/zfs/include/sys/spa_boot.h b/module/zfs/include/sys/spa_boot.h deleted file mode 100644 index 1d3622f5a..000000000 --- a/module/zfs/include/sys/spa_boot.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_SPA_BOOT_H -#define _SYS_SPA_BOOT_H - -#include <sys/nvpair.h> - -#ifdef __cplusplus -extern "C" { -#endif - -extern char *spa_get_bootprop(char *prop); -extern void spa_free_bootprop(char *prop); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_SPA_BOOT_H */ diff --git a/module/zfs/include/sys/spa_impl.h b/module/zfs/include/sys/spa_impl.h deleted file mode 100644 index 1c34873b6..000000000 --- a/module/zfs/include/sys/spa_impl.h +++ /dev/null @@ -1,235 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_SPA_IMPL_H -#define _SYS_SPA_IMPL_H - -#include <sys/spa.h> -#include <sys/vdev.h> -#include <sys/metaslab.h> -#include <sys/dmu.h> -#include <sys/dsl_pool.h> -#include <sys/uberblock_impl.h> -#include <sys/zfs_context.h> -#include <sys/avl.h> -#include <sys/refcount.h> -#include <sys/bplist.h> -#include <sys/bpobj.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct spa_error_entry { - zbookmark_t se_bookmark; - char *se_name; - avl_node_t se_avl; -} spa_error_entry_t; - -typedef struct spa_history_phys { - uint64_t sh_pool_create_len; /* ending offset of zpool create */ - uint64_t sh_phys_max_off; /* physical EOF */ - uint64_t sh_bof; /* logical BOF */ - uint64_t sh_eof; /* logical EOF */ - uint64_t sh_records_lost; /* num of records overwritten */ -} spa_history_phys_t; - -struct spa_aux_vdev { - uint64_t sav_object; /* MOS object for device list */ - nvlist_t *sav_config; /* cached device config */ - vdev_t **sav_vdevs; /* devices */ - int sav_count; /* number devices */ - boolean_t sav_sync; /* sync the device list */ - nvlist_t **sav_pending; /* pending device additions */ - uint_t sav_npending; /* # pending devices */ -}; - -typedef struct spa_config_lock { - kmutex_t scl_lock; - kthread_t *scl_writer; - int scl_write_wanted; - kcondvar_t scl_cv; - refcount_t scl_count; -} spa_config_lock_t; - -typedef struct spa_config_dirent { - list_node_t scd_link; - char *scd_path; -} spa_config_dirent_t; - -enum zio_taskq_type { - ZIO_TASKQ_ISSUE = 0, - ZIO_TASKQ_ISSUE_HIGH, - ZIO_TASKQ_INTERRUPT, - ZIO_TASKQ_INTERRUPT_HIGH, - ZIO_TASKQ_TYPES -}; - -/* - * State machine for the zpool-pooname process. The states transitions - * are done as follows: - * - * From To Routine - * PROC_NONE -> PROC_CREATED spa_activate() - * PROC_CREATED -> PROC_ACTIVE spa_thread() - * PROC_ACTIVE -> PROC_DEACTIVATE spa_deactivate() - * PROC_DEACTIVATE -> PROC_GONE spa_thread() - * PROC_GONE -> PROC_NONE spa_deactivate() - */ -typedef enum spa_proc_state { - SPA_PROC_NONE, /* spa_proc = &p0, no process created */ - SPA_PROC_CREATED, /* spa_activate() has proc, is waiting */ - SPA_PROC_ACTIVE, /* taskqs created, spa_proc set */ - SPA_PROC_DEACTIVATE, /* spa_deactivate() requests process exit */ - SPA_PROC_GONE /* spa_thread() is exiting, spa_proc = &p0 */ -} spa_proc_state_t; - -struct spa { - /* - * Fields protected by spa_namespace_lock. - */ - char spa_name[MAXNAMELEN]; /* pool name */ - avl_node_t spa_avl; /* node in spa_namespace_avl */ - nvlist_t *spa_config; /* last synced config */ - nvlist_t *spa_config_syncing; /* currently syncing config */ - nvlist_t *spa_config_splitting; /* config for splitting */ - nvlist_t *spa_load_info; /* info and errors from load */ - uint64_t spa_config_txg; /* txg of last config change */ - int spa_sync_pass; /* iterate-to-convergence */ - pool_state_t spa_state; /* pool state */ - int spa_inject_ref; /* injection references */ - uint8_t spa_sync_on; /* sync threads are running */ - spa_load_state_t spa_load_state; /* current load operation */ - uint64_t spa_import_flags; /* import specific flags */ - taskq_t *spa_zio_taskq[ZIO_TYPES][ZIO_TASKQ_TYPES]; - dsl_pool_t *spa_dsl_pool; - metaslab_class_t *spa_normal_class; /* normal data class */ - metaslab_class_t *spa_log_class; /* intent log data class */ - uint64_t spa_first_txg; /* first txg after spa_open() */ - uint64_t spa_final_txg; /* txg of export/destroy */ - uint64_t spa_freeze_txg; /* freeze pool at this txg */ - uint64_t spa_load_max_txg; /* best initial ub_txg */ - uint64_t spa_claim_max_txg; /* highest claimed birth txg */ - timespec_t spa_loaded_ts; /* 1st successful open time */ - objset_t *spa_meta_objset; /* copy of dp->dp_meta_objset */ - txg_list_t spa_vdev_txg_list; /* per-txg dirty vdev list */ - vdev_t *spa_root_vdev; /* top-level vdev container */ - uint64_t spa_load_guid; /* initial guid for spa_load */ - list_t spa_config_dirty_list; /* vdevs with dirty config */ - list_t spa_state_dirty_list; /* vdevs with dirty state */ - spa_aux_vdev_t spa_spares; /* hot spares */ - spa_aux_vdev_t spa_l2cache; /* L2ARC cache devices */ - uint64_t spa_config_object; /* MOS object for pool config */ - uint64_t spa_config_generation; /* config generation number */ - uint64_t spa_syncing_txg; /* txg currently syncing */ - bpobj_t spa_deferred_bpobj; /* deferred-free bplist */ - bplist_t spa_free_bplist[TXG_SIZE]; /* bplist of stuff to free */ - uberblock_t spa_ubsync; /* last synced uberblock */ - uberblock_t spa_uberblock; /* current uberblock */ - boolean_t spa_extreme_rewind; /* rewind past deferred frees */ - uint64_t spa_last_io; /* lbolt of last non-scan I/O */ - kmutex_t spa_scrub_lock; /* resilver/scrub lock */ - uint64_t spa_scrub_inflight; /* in-flight scrub I/Os */ - kcondvar_t spa_scrub_io_cv; /* scrub I/O completion */ - uint8_t spa_scrub_active; /* active or suspended? */ - uint8_t spa_scrub_type; /* type of scrub we're doing */ - uint8_t spa_scrub_finished; /* indicator to rotate logs */ - uint8_t spa_scrub_started; /* started since last boot */ - uint8_t spa_scrub_reopen; /* scrub doing vdev_reopen */ - uint64_t spa_scan_pass_start; /* start time per pass/reboot */ - uint64_t spa_scan_pass_exam; /* examined bytes per pass */ - kmutex_t spa_async_lock; /* protect async state */ - kthread_t *spa_async_thread; /* thread doing async task */ - int spa_async_suspended; /* async tasks suspended */ - kcondvar_t spa_async_cv; /* wait for thread_exit() */ - uint16_t spa_async_tasks; /* async task mask */ - char *spa_root; /* alternate root directory */ - uint64_t spa_ena; /* spa-wide ereport ENA */ - int spa_last_open_failed; /* error if last open failed */ - uint64_t spa_last_ubsync_txg; /* "best" uberblock txg */ - uint64_t spa_last_ubsync_txg_ts; /* timestamp from that ub */ - uint64_t spa_load_txg; /* ub txg that loaded */ - uint64_t spa_load_txg_ts; /* timestamp from that ub */ - uint64_t spa_load_meta_errors; /* verify metadata err count */ - uint64_t spa_load_data_errors; /* verify data err count */ - uint64_t spa_verify_min_txg; /* start txg of verify scrub */ - kmutex_t spa_errlog_lock; /* error log lock */ - uint64_t spa_errlog_last; /* last error log object */ - uint64_t spa_errlog_scrub; /* scrub error log object */ - kmutex_t spa_errlist_lock; /* error list/ereport lock */ - avl_tree_t spa_errlist_last; /* last error list */ - avl_tree_t spa_errlist_scrub; /* scrub error list */ - uint64_t spa_deflate; /* should we deflate? */ - uint64_t spa_history; /* history object */ - kmutex_t spa_history_lock; /* history lock */ - vdev_t *spa_pending_vdev; /* pending vdev additions */ - kmutex_t spa_props_lock; /* property lock */ - uint64_t spa_pool_props_object; /* object for properties */ - uint64_t spa_bootfs; /* default boot filesystem */ - uint64_t spa_failmode; /* failure mode for the pool */ - uint64_t spa_delegation; /* delegation on/off */ - list_t spa_config_list; /* previous cache file(s) */ - zio_t *spa_async_zio_root; /* root of all async I/O */ - zio_t *spa_suspend_zio_root; /* root of all suspended I/O */ - kmutex_t spa_suspend_lock; /* protects suspend_zio_root */ - kcondvar_t spa_suspend_cv; /* notification of resume */ - uint8_t spa_suspended; /* pool is suspended */ - uint8_t spa_claiming; /* pool is doing zil_claim() */ - boolean_t spa_is_root; /* pool is root */ - int spa_minref; /* num refs when first opened */ - int spa_mode; /* FREAD | FWRITE */ - spa_log_state_t spa_log_state; /* log state */ - uint64_t spa_autoexpand; /* lun expansion on/off */ - ddt_t *spa_ddt[ZIO_CHECKSUM_FUNCTIONS]; /* in-core DDTs */ - uint64_t spa_ddt_stat_object; /* DDT statistics */ - uint64_t spa_dedup_ditto; /* dedup ditto threshold */ - uint64_t spa_dedup_checksum; /* default dedup checksum */ - uint64_t spa_dspace; /* dspace in normal class */ - kmutex_t spa_vdev_top_lock; /* dueling offline/remove */ - kmutex_t spa_proc_lock; /* protects spa_proc* */ - kcondvar_t spa_proc_cv; /* spa_proc_state transitions */ - spa_proc_state_t spa_proc_state; /* see definition */ - proc_t *spa_proc; /* "zpool-poolname" process */ - uint64_t spa_did; /* if procp != p0, did of t1 */ - boolean_t spa_autoreplace; /* autoreplace set in open */ - int spa_vdev_locks; /* locks grabbed */ - uint64_t spa_creation_version; /* version at pool creation */ - uint64_t spa_prev_software_version; - /* - * spa_refcnt & spa_config_lock must be the last elements - * because refcount_t changes size based on compilation options. - * In order for the MDB module to function correctly, the other - * fields must remain in the same location. - */ - spa_config_lock_t spa_config_lock[SCL_LOCKS]; /* config changes */ - refcount_t spa_refcount; /* number of opens */ -}; - -extern char *spa_config_path; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_SPA_IMPL_H */ diff --git a/module/zfs/include/sys/space_map.h b/module/zfs/include/sys/space_map.h deleted file mode 100644 index 6f935c9db..000000000 --- a/module/zfs/include/sys/space_map.h +++ /dev/null @@ -1,179 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_SPACE_MAP_H -#define _SYS_SPACE_MAP_H - -#include <sys/avl.h> -#include <sys/dmu.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct space_map_ops space_map_ops_t; - -typedef struct space_map { - avl_tree_t sm_root; /* AVL tree of map segments */ - uint64_t sm_space; /* sum of all segments in the map */ - uint64_t sm_start; /* start of map */ - uint64_t sm_size; /* size of map */ - uint8_t sm_shift; /* unit shift */ - uint8_t sm_pad[3]; /* unused */ - uint8_t sm_loaded; /* map loaded? */ - uint8_t sm_loading; /* map loading? */ - kcondvar_t sm_load_cv; /* map load completion */ - space_map_ops_t *sm_ops; /* space map block picker ops vector */ - avl_tree_t *sm_pp_root; /* picker-private AVL tree */ - void *sm_ppd; /* picker-private data */ - kmutex_t *sm_lock; /* pointer to lock that protects map */ -} space_map_t; - -typedef struct space_seg { - avl_node_t ss_node; /* AVL node */ - avl_node_t ss_pp_node; /* AVL picker-private node */ - uint64_t ss_start; /* starting offset of this segment */ - uint64_t ss_end; /* ending offset (non-inclusive) */ -} space_seg_t; - -typedef struct space_ref { - avl_node_t sr_node; /* AVL node */ - uint64_t sr_offset; /* offset (start or end) */ - int64_t sr_refcnt; /* associated reference count */ -} space_ref_t; - -typedef struct space_map_obj { - uint64_t smo_object; /* on-disk space map object */ - uint64_t smo_objsize; /* size of the object */ - uint64_t smo_alloc; /* space allocated from the map */ -} space_map_obj_t; - -struct space_map_ops { - void (*smop_load)(space_map_t *sm); - void (*smop_unload)(space_map_t *sm); - uint64_t (*smop_alloc)(space_map_t *sm, uint64_t size); - void (*smop_claim)(space_map_t *sm, uint64_t start, uint64_t size); - void (*smop_free)(space_map_t *sm, uint64_t start, uint64_t size); - uint64_t (*smop_max)(space_map_t *sm); - boolean_t (*smop_fragmented)(space_map_t *sm); -}; - -/* - * debug entry - * - * 1 3 10 50 - * ,---+--------+------------+---------------------------------. - * | 1 | action | syncpass | txg (lower bits) | - * `---+--------+------------+---------------------------------' - * 63 62 60 59 50 49 0 - * - * - * - * non-debug entry - * - * 1 47 1 15 - * ,-----------------------------------------------------------. - * | 0 | offset (sm_shift units) | type | run | - * `-----------------------------------------------------------' - * 63 62 17 16 15 0 - */ - -/* All this stuff takes and returns bytes */ -#define SM_RUN_DECODE(x) (BF64_DECODE(x, 0, 15) + 1) -#define SM_RUN_ENCODE(x) BF64_ENCODE((x) - 1, 0, 15) -#define SM_TYPE_DECODE(x) BF64_DECODE(x, 15, 1) -#define SM_TYPE_ENCODE(x) BF64_ENCODE(x, 15, 1) -#define SM_OFFSET_DECODE(x) BF64_DECODE(x, 16, 47) -#define SM_OFFSET_ENCODE(x) BF64_ENCODE(x, 16, 47) -#define SM_DEBUG_DECODE(x) BF64_DECODE(x, 63, 1) -#define SM_DEBUG_ENCODE(x) BF64_ENCODE(x, 63, 1) - -#define SM_DEBUG_ACTION_DECODE(x) BF64_DECODE(x, 60, 3) -#define SM_DEBUG_ACTION_ENCODE(x) BF64_ENCODE(x, 60, 3) - -#define SM_DEBUG_SYNCPASS_DECODE(x) BF64_DECODE(x, 50, 10) -#define SM_DEBUG_SYNCPASS_ENCODE(x) BF64_ENCODE(x, 50, 10) - -#define SM_DEBUG_TXG_DECODE(x) BF64_DECODE(x, 0, 50) -#define SM_DEBUG_TXG_ENCODE(x) BF64_ENCODE(x, 0, 50) - -#define SM_RUN_MAX SM_RUN_DECODE(~0ULL) - -#define SM_ALLOC 0x0 -#define SM_FREE 0x1 - -/* - * The data for a given space map can be kept on blocks of any size. - * Larger blocks entail fewer i/o operations, but they also cause the - * DMU to keep more data in-core, and also to waste more i/o bandwidth - * when only a few blocks have changed since the last transaction group. - * This could use a lot more research, but for now, set the freelist - * block size to 4k (2^12). - */ -#define SPACE_MAP_BLOCKSHIFT 12 - -typedef void space_map_func_t(space_map_t *sm, uint64_t start, uint64_t size); - -extern void space_map_create(space_map_t *sm, uint64_t start, uint64_t size, - uint8_t shift, kmutex_t *lp); -extern void space_map_destroy(space_map_t *sm); -extern void space_map_add(space_map_t *sm, uint64_t start, uint64_t size); -extern void space_map_remove(space_map_t *sm, uint64_t start, uint64_t size); -extern boolean_t space_map_contains(space_map_t *sm, - uint64_t start, uint64_t size); -extern void space_map_vacate(space_map_t *sm, - space_map_func_t *func, space_map_t *mdest); -extern void space_map_walk(space_map_t *sm, - space_map_func_t *func, space_map_t *mdest); - -extern void space_map_load_wait(space_map_t *sm); -extern int space_map_load(space_map_t *sm, space_map_ops_t *ops, - uint8_t maptype, space_map_obj_t *smo, objset_t *os); -extern void space_map_unload(space_map_t *sm); - -extern uint64_t space_map_alloc(space_map_t *sm, uint64_t size); -extern void space_map_claim(space_map_t *sm, uint64_t start, uint64_t size); -extern void space_map_free(space_map_t *sm, uint64_t start, uint64_t size); -extern uint64_t space_map_maxsize(space_map_t *sm); - -extern void space_map_sync(space_map_t *sm, uint8_t maptype, - space_map_obj_t *smo, objset_t *os, dmu_tx_t *tx); -extern void space_map_truncate(space_map_obj_t *smo, - objset_t *os, dmu_tx_t *tx); - -extern void space_map_ref_create(avl_tree_t *t); -extern void space_map_ref_destroy(avl_tree_t *t); -extern void space_map_ref_add_seg(avl_tree_t *t, - uint64_t start, uint64_t end, int64_t refcnt); -extern void space_map_ref_add_map(avl_tree_t *t, - space_map_t *sm, int64_t refcnt); -extern void space_map_ref_generate_map(avl_tree_t *t, - space_map_t *sm, int64_t minref); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_SPACE_MAP_H */ diff --git a/module/zfs/include/sys/txg.h b/module/zfs/include/sys/txg.h deleted file mode 100644 index e323d5efa..000000000 --- a/module/zfs/include/sys/txg.h +++ /dev/null @@ -1,131 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_TXG_H -#define _SYS_TXG_H - -#include <sys/spa.h> -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define TXG_CONCURRENT_STATES 3 /* open, quiescing, syncing */ -#define TXG_SIZE 4 /* next power of 2 */ -#define TXG_MASK (TXG_SIZE - 1) /* mask for size */ -#define TXG_INITIAL TXG_SIZE /* initial txg */ -#define TXG_IDX (txg & TXG_MASK) - -/* Number of txgs worth of frees we defer adding to in-core spacemaps */ -#define TXG_DEFER_SIZE 2 - -#define TXG_WAIT 1ULL -#define TXG_NOWAIT 2ULL - -typedef struct tx_cpu tx_cpu_t; - -typedef struct txg_handle { - tx_cpu_t *th_cpu; - uint64_t th_txg; -} txg_handle_t; - -typedef struct txg_node { - struct txg_node *tn_next[TXG_SIZE]; - uint8_t tn_member[TXG_SIZE]; -} txg_node_t; - -typedef struct txg_list { - kmutex_t tl_lock; - size_t tl_offset; - txg_node_t *tl_head[TXG_SIZE]; -} txg_list_t; - -struct dsl_pool; - -extern void txg_init(struct dsl_pool *dp, uint64_t txg); -extern void txg_fini(struct dsl_pool *dp); -extern void txg_sync_start(struct dsl_pool *dp); -extern void txg_sync_stop(struct dsl_pool *dp); -extern uint64_t txg_hold_open(struct dsl_pool *dp, txg_handle_t *txghp); -extern void txg_rele_to_quiesce(txg_handle_t *txghp); -extern void txg_rele_to_sync(txg_handle_t *txghp); -extern void txg_register_callbacks(txg_handle_t *txghp, list_t *tx_callbacks); - -/* - * Delay the caller by the specified number of ticks or until - * the txg closes (whichever comes first). This is intended - * to be used to throttle writers when the system nears its - * capacity. - */ -extern void txg_delay(struct dsl_pool *dp, uint64_t txg, int ticks); - -/* - * Wait until the given transaction group has finished syncing. - * Try to make this happen as soon as possible (eg. kick off any - * necessary syncs immediately). If txg==0, wait for the currently open - * txg to finish syncing. - */ -extern void txg_wait_synced(struct dsl_pool *dp, uint64_t txg); - -/* - * Wait until the given transaction group, or one after it, is - * the open transaction group. Try to make this happen as soon - * as possible (eg. kick off any necessary syncs immediately). - * If txg == 0, wait for the next open txg. - */ -extern void txg_wait_open(struct dsl_pool *dp, uint64_t txg); - -/* - * Returns TRUE if we are "backed up" waiting for the syncing - * transaction to complete; otherwise returns FALSE. - */ -extern boolean_t txg_stalled(struct dsl_pool *dp); - -/* returns TRUE if someone is waiting for the next txg to sync */ -extern boolean_t txg_sync_waiting(struct dsl_pool *dp); - -/* - * Per-txg object lists. - */ - -#define TXG_CLEAN(txg) ((txg) - 1) - -extern void txg_list_create(txg_list_t *tl, size_t offset); -extern void txg_list_destroy(txg_list_t *tl); -extern int txg_list_empty(txg_list_t *tl, uint64_t txg); -extern int txg_list_add(txg_list_t *tl, void *p, uint64_t txg); -extern int txg_list_add_tail(txg_list_t *tl, void *p, uint64_t txg); -extern void *txg_list_remove(txg_list_t *tl, uint64_t txg); -extern void *txg_list_remove_this(txg_list_t *tl, void *p, uint64_t txg); -extern int txg_list_member(txg_list_t *tl, void *p, uint64_t txg); -extern void *txg_list_head(txg_list_t *tl, uint64_t txg); -extern void *txg_list_next(txg_list_t *tl, void *p, uint64_t txg); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_TXG_H */ diff --git a/module/zfs/include/sys/txg_impl.h b/module/zfs/include/sys/txg_impl.h deleted file mode 100644 index 7b356eac1..000000000 --- a/module/zfs/include/sys/txg_impl.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_TXG_IMPL_H -#define _SYS_TXG_IMPL_H - -#include <sys/spa.h> -#include <sys/txg.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct tx_cpu { - kmutex_t tc_lock; - kcondvar_t tc_cv[TXG_SIZE]; - uint64_t tc_count[TXG_SIZE]; - list_t tc_callbacks[TXG_SIZE]; /* commit cb list */ - char tc_pad[16]; -}; - -typedef struct tx_state { - tx_cpu_t *tx_cpu; /* protects right to enter txg */ - kmutex_t tx_sync_lock; /* protects tx_state_t */ - uint64_t tx_open_txg; /* currently open txg id */ - uint64_t tx_quiesced_txg; /* quiesced txg waiting for sync */ - uint64_t tx_syncing_txg; /* currently syncing txg id */ - uint64_t tx_synced_txg; /* last synced txg id */ - - uint64_t tx_sync_txg_waiting; /* txg we're waiting to sync */ - uint64_t tx_quiesce_txg_waiting; /* txg we're waiting to open */ - - kcondvar_t tx_sync_more_cv; - kcondvar_t tx_sync_done_cv; - kcondvar_t tx_quiesce_more_cv; - kcondvar_t tx_quiesce_done_cv; - kcondvar_t tx_timeout_cv; - kcondvar_t tx_exit_cv; /* wait for all threads to exit */ - - uint8_t tx_threads; /* number of threads */ - uint8_t tx_exiting; /* set when we're exiting */ - - kthread_t *tx_sync_thread; - kthread_t *tx_quiesce_thread; - - taskq_t *tx_commit_cb_taskq; /* commit callback taskq */ -} tx_state_t; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_TXG_IMPL_H */ diff --git a/module/zfs/include/sys/uberblock.h b/module/zfs/include/sys/uberblock.h deleted file mode 100644 index b5bb91573..000000000 --- a/module/zfs/include/sys/uberblock.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_UBERBLOCK_H -#define _SYS_UBERBLOCK_H - -#include <sys/spa.h> -#include <sys/vdev.h> -#include <sys/zio.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct uberblock uberblock_t; - -extern int uberblock_verify(uberblock_t *ub); -extern int uberblock_update(uberblock_t *ub, vdev_t *rvd, uint64_t txg); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_UBERBLOCK_H */ diff --git a/module/zfs/include/sys/uberblock_impl.h b/module/zfs/include/sys/uberblock_impl.h deleted file mode 100644 index 6ab6aa313..000000000 --- a/module/zfs/include/sys/uberblock_impl.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_UBERBLOCK_IMPL_H -#define _SYS_UBERBLOCK_IMPL_H - -#include <sys/uberblock.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The uberblock version is incremented whenever an incompatible on-disk - * format change is made to the SPA, DMU, or ZAP. - * - * Note: the first two fields should never be moved. When a storage pool - * is opened, the uberblock must be read off the disk before the version - * can be checked. If the ub_version field is moved, we may not detect - * version mismatch. If the ub_magic field is moved, applications that - * expect the magic number in the first word won't work. - */ -#define UBERBLOCK_MAGIC 0x00bab10c /* oo-ba-bloc! */ -#define UBERBLOCK_SHIFT 10 /* up to 1K */ - -struct uberblock { - uint64_t ub_magic; /* UBERBLOCK_MAGIC */ - uint64_t ub_version; /* SPA_VERSION */ - uint64_t ub_txg; /* txg of last sync */ - uint64_t ub_guid_sum; /* sum of all vdev guids */ - uint64_t ub_timestamp; /* UTC time of last sync */ - blkptr_t ub_rootbp; /* MOS objset_phys_t */ - - /* highest SPA_VERSION supported by software that wrote this txg */ - uint64_t ub_software_version; -}; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_UBERBLOCK_IMPL_H */ diff --git a/module/zfs/include/sys/unique.h b/module/zfs/include/sys/unique.h deleted file mode 100644 index d97175286..000000000 --- a/module/zfs/include/sys/unique.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_UNIQUE_H -#define _SYS_UNIQUE_H - - - -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* The number of significant bits in each unique value. */ -#define UNIQUE_BITS 56 - -void unique_init(void); -void unique_fini(void); - -/* - * Return a new unique value (which will not be uniquified against until - * it is unique_insert()-ed. - */ -uint64_t unique_create(void); - -/* Return a unique value, which equals the one passed in if possible. */ -uint64_t unique_insert(uint64_t value); - -/* Indicate that this value no longer needs to be uniquified against. */ -void unique_remove(uint64_t value); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_UNIQUE_H */ diff --git a/module/zfs/include/sys/vdev.h b/module/zfs/include/sys/vdev.h deleted file mode 100644 index 941f234dc..000000000 --- a/module/zfs/include/sys/vdev.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_VDEV_H -#define _SYS_VDEV_H - -#include <sys/spa.h> -#include <sys/zio.h> -#include <sys/dmu.h> -#include <sys/space_map.h> -#include <sys/fs/zfs.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum vdev_dtl_type { - DTL_MISSING, /* 0% replication: no copies of the data */ - DTL_PARTIAL, /* less than 100% replication: some copies missing */ - DTL_SCRUB, /* unable to fully repair during scrub/resilver */ - DTL_OUTAGE, /* temporarily missing (used to attempt detach) */ - DTL_TYPES -} vdev_dtl_type_t; - -extern boolean_t zfs_nocacheflush; - -extern int vdev_open(vdev_t *); -extern void vdev_open_children(vdev_t *); -extern boolean_t vdev_uses_zvols(vdev_t *); -extern int vdev_validate(vdev_t *); -extern void vdev_close(vdev_t *); -extern int vdev_create(vdev_t *, uint64_t txg, boolean_t isreplace); -extern void vdev_reopen(vdev_t *); -extern int vdev_validate_aux(vdev_t *vd); -extern zio_t *vdev_probe(vdev_t *vd, zio_t *pio); - -extern boolean_t vdev_is_bootable(vdev_t *vd); -extern vdev_t *vdev_lookup_top(spa_t *spa, uint64_t vdev); -extern vdev_t *vdev_lookup_by_guid(vdev_t *vd, uint64_t guid); -extern void vdev_dtl_dirty(vdev_t *vd, vdev_dtl_type_t d, - uint64_t txg, uint64_t size); -extern boolean_t vdev_dtl_contains(vdev_t *vd, vdev_dtl_type_t d, - uint64_t txg, uint64_t size); -extern boolean_t vdev_dtl_empty(vdev_t *vd, vdev_dtl_type_t d); -extern void vdev_dtl_reassess(vdev_t *vd, uint64_t txg, uint64_t scrub_txg, - int scrub_done); -extern boolean_t vdev_dtl_required(vdev_t *vd); -extern boolean_t vdev_resilver_needed(vdev_t *vd, - uint64_t *minp, uint64_t *maxp); - -extern void vdev_hold(vdev_t *); -extern void vdev_rele(vdev_t *); - -extern int vdev_metaslab_init(vdev_t *vd, uint64_t txg); -extern void vdev_metaslab_fini(vdev_t *vd); -extern void vdev_metaslab_set_size(vdev_t *); -extern void vdev_expand(vdev_t *vd, uint64_t txg); -extern void vdev_split(vdev_t *vd); - - -extern void vdev_get_stats(vdev_t *vd, vdev_stat_t *vs); -extern void vdev_clear_stats(vdev_t *vd); -extern void vdev_stat_update(zio_t *zio, uint64_t psize); -extern void vdev_scan_stat_init(vdev_t *vd); -extern void vdev_propagate_state(vdev_t *vd); -extern void vdev_set_state(vdev_t *vd, boolean_t isopen, vdev_state_t state, - vdev_aux_t aux); - -extern void vdev_space_update(vdev_t *vd, - int64_t alloc_delta, int64_t defer_delta, int64_t space_delta); - -extern uint64_t vdev_psize_to_asize(vdev_t *vd, uint64_t psize); - -extern int vdev_fault(spa_t *spa, uint64_t guid, vdev_aux_t aux); -extern int vdev_degrade(spa_t *spa, uint64_t guid, vdev_aux_t aux); -extern int vdev_online(spa_t *spa, uint64_t guid, uint64_t flags, - vdev_state_t *); -extern int vdev_offline(spa_t *spa, uint64_t guid, uint64_t flags); -extern void vdev_clear(spa_t *spa, vdev_t *vd); - -extern boolean_t vdev_is_dead(vdev_t *vd); -extern boolean_t vdev_readable(vdev_t *vd); -extern boolean_t vdev_writeable(vdev_t *vd); -extern boolean_t vdev_allocatable(vdev_t *vd); -extern boolean_t vdev_accessible(vdev_t *vd, zio_t *zio); - -extern void vdev_cache_init(vdev_t *vd); -extern void vdev_cache_fini(vdev_t *vd); -extern int vdev_cache_read(zio_t *zio); -extern void vdev_cache_write(zio_t *zio); -extern void vdev_cache_purge(vdev_t *vd); - -extern void vdev_queue_init(vdev_t *vd); -extern void vdev_queue_fini(vdev_t *vd); -extern zio_t *vdev_queue_io(zio_t *zio); -extern void vdev_queue_io_done(zio_t *zio); - -extern void vdev_config_dirty(vdev_t *vd); -extern void vdev_config_clean(vdev_t *vd); -extern int vdev_config_sync(vdev_t **svd, int svdcount, uint64_t txg, - boolean_t); - -extern void vdev_state_dirty(vdev_t *vd); -extern void vdev_state_clean(vdev_t *vd); - -typedef enum vdev_config_flag { - VDEV_CONFIG_SPARE = 1 << 0, - VDEV_CONFIG_L2CACHE = 1 << 1, - VDEV_CONFIG_REMOVING = 1 << 2 -} vdev_config_flag_t; - -extern void vdev_top_config_generate(spa_t *spa, nvlist_t *config); -extern nvlist_t *vdev_config_generate(spa_t *spa, vdev_t *vd, - boolean_t getstats, vdev_config_flag_t flags); - -/* - * Label routines - */ -struct uberblock; -extern uint64_t vdev_label_offset(uint64_t psize, int l, uint64_t offset); -extern int vdev_label_number(uint64_t psise, uint64_t offset); -extern nvlist_t *vdev_label_read_config(vdev_t *vd); -extern void vdev_uberblock_load(zio_t *zio, vdev_t *vd, struct uberblock *ub); - -typedef enum { - VDEV_LABEL_CREATE, /* create/add a new device */ - VDEV_LABEL_REPLACE, /* replace an existing device */ - VDEV_LABEL_SPARE, /* add a new hot spare */ - VDEV_LABEL_REMOVE, /* remove an existing device */ - VDEV_LABEL_L2CACHE, /* add an L2ARC cache device */ - VDEV_LABEL_SPLIT /* generating new label for split-off dev */ -} vdev_labeltype_t; - -extern int vdev_label_init(vdev_t *vd, uint64_t txg, vdev_labeltype_t reason); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_VDEV_H */ diff --git a/module/zfs/include/sys/vdev_disk.h b/module/zfs/include/sys/vdev_disk.h deleted file mode 100644 index 986c33624..000000000 --- a/module/zfs/include/sys/vdev_disk.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC. - * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). - * Written by Brian Behlendorf <[email protected]>. - * LLNL-CODE-403049. - */ - -#ifndef _SYS_VDEV_DISK_H -#define _SYS_VDEV_DISK_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _KERNEL -#include <sys/vdev.h> -#include <sys/ddi.h> -#include <sys/sunldi.h> -#include <sys/sunddi.h> - -typedef struct vdev_disk { - ddi_devid_t vd_devid; - char *vd_minor; - struct block_device *vd_bdev; -} vdev_disk_t; - -extern int vdev_disk_physio(struct block_device *, caddr_t, - size_t, uint64_t, int); -extern int vdev_disk_read_rootlabel(char *, char *, nvlist_t **); - -/* 2.6.24 API change */ -#ifdef HAVE_2ARGS_BIO_END_IO_T -# define BIO_END_IO_PROTO(fn, x, y, z) static void fn(struct bio *x, int z) -# define BIO_END_IO_RETURN(rc) return -#else -# define BIO_END_IO_PROTO(fn, x, y, z) static int fn(struct bio *x, \ - unsigned int y, int z) -# define BIO_END_IO_RETURN(rc) return rc -#endif /* HAVE_2ARGS_BIO_END_IO_T */ - -/* 2.6.29 API change */ -#ifdef HAVE_BIO_RW_SYNCIO -# define DIO_RW_SYNCIO BIO_RW_SYNCIO -#else -# define DIO_RW_SYNCIO BIO_RW_SYNC -#endif /* HAVE_BIO_RW_SYNCIO */ - -/* 2.6.28 API change */ -#ifdef HAVE_OPEN_BDEV_EXCLUSIVE -# define vdev_bdev_open(path, md, hld) open_bdev_exclusive(path, md, hld) -# define vdev_bdev_close(bdev, md) close_bdev_exclusive(bdev, md) -#else -# define vdev_bdev_open(path, md, hld) open_bdev_excl(path, md, hld) -# define vdev_bdev_close(bdev, md) close_bdev_excl(bdev) -#endif /* HAVE_OPEN_BDEV_EXCLUSIVE */ - -/* 2.6.22 API change */ -#ifdef HAVE_1ARG_INVALIDATE_BDEV -# define vdev_bdev_invalidate(bdev) invalidate_bdev(bdev) -#else -# define vdev_bdev_invalidate(bdev) invalidate_bdev(bdev, 1) -#endif /* HAVE_1ARG_INVALIDATE_BDEV */ - -/* 2.6.30 API change */ -#ifdef HAVE_BDEV_LOGICAL_BLOCK_SIZE -# define vdev_bdev_block_size(bdev) bdev_logical_block_size(bdev) -#else -# define vdev_bdev_block_size(bdev) bdev_hardsect_size(bdev) -#endif - -#endif /* _KERNEL */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_VDEV_DISK_H */ diff --git a/module/zfs/include/sys/vdev_file.h b/module/zfs/include/sys/vdev_file.h deleted file mode 100644 index b4d40f9df..000000000 --- a/module/zfs/include/sys/vdev_file.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License, Version 1.0 only - * (the "License"). You may not use this file except in compliance - * with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_VDEV_FILE_H -#define _SYS_VDEV_FILE_H - - - -#include <sys/vdev.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct vdev_file { - vnode_t *vf_vnode; -} vdev_file_t; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_VDEV_FILE_H */ diff --git a/module/zfs/include/sys/vdev_impl.h b/module/zfs/include/sys/vdev_impl.h deleted file mode 100644 index 161bd21f0..000000000 --- a/module/zfs/include/sys/vdev_impl.h +++ /dev/null @@ -1,322 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_VDEV_IMPL_H -#define _SYS_VDEV_IMPL_H - -#include <sys/avl.h> -#include <sys/dmu.h> -#include <sys/metaslab.h> -#include <sys/nvpair.h> -#include <sys/space_map.h> -#include <sys/vdev.h> -#include <sys/dkio.h> -#include <sys/uberblock_impl.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Virtual device descriptors. - * - * All storage pool operations go through the virtual device framework, - * which provides data replication and I/O scheduling. - */ - -/* - * Forward declarations that lots of things need. - */ -typedef struct vdev_queue vdev_queue_t; -typedef struct vdev_cache vdev_cache_t; -typedef struct vdev_cache_entry vdev_cache_entry_t; - -/* - * Virtual device operations - */ -typedef int vdev_open_func_t(vdev_t *vd, uint64_t *size, uint64_t *ashift); -typedef void vdev_close_func_t(vdev_t *vd); -typedef uint64_t vdev_asize_func_t(vdev_t *vd, uint64_t psize); -typedef int vdev_io_start_func_t(zio_t *zio); -typedef void vdev_io_done_func_t(zio_t *zio); -typedef void vdev_state_change_func_t(vdev_t *vd, int, int); -typedef void vdev_hold_func_t(vdev_t *vd); -typedef void vdev_rele_func_t(vdev_t *vd); - -typedef struct vdev_ops { - vdev_open_func_t *vdev_op_open; - vdev_close_func_t *vdev_op_close; - vdev_asize_func_t *vdev_op_asize; - vdev_io_start_func_t *vdev_op_io_start; - vdev_io_done_func_t *vdev_op_io_done; - vdev_state_change_func_t *vdev_op_state_change; - vdev_hold_func_t *vdev_op_hold; - vdev_rele_func_t *vdev_op_rele; - char vdev_op_type[16]; - boolean_t vdev_op_leaf; -} vdev_ops_t; - -/* - * Virtual device properties - */ -struct vdev_cache_entry { - char *ve_data; - uint64_t ve_offset; - uint64_t ve_lastused; - avl_node_t ve_offset_node; - avl_node_t ve_lastused_node; - uint32_t ve_hits; - uint16_t ve_missed_update; - zio_t *ve_fill_io; -}; - -struct vdev_cache { - avl_tree_t vc_offset_tree; - avl_tree_t vc_lastused_tree; - kmutex_t vc_lock; -}; - -struct vdev_queue { - avl_tree_t vq_deadline_tree; - avl_tree_t vq_read_tree; - avl_tree_t vq_write_tree; - avl_tree_t vq_pending_tree; - kmutex_t vq_lock; -}; - -/* - * Virtual device descriptor - */ -struct vdev { - /* - * Common to all vdev types. - */ - uint64_t vdev_id; /* child number in vdev parent */ - uint64_t vdev_guid; /* unique ID for this vdev */ - uint64_t vdev_guid_sum; /* self guid + all child guids */ - uint64_t vdev_orig_guid; /* orig. guid prior to remove */ - uint64_t vdev_asize; /* allocatable device capacity */ - uint64_t vdev_min_asize; /* min acceptable asize */ - uint64_t vdev_ashift; /* block alignment shift */ - uint64_t vdev_state; /* see VDEV_STATE_* #defines */ - uint64_t vdev_prevstate; /* used when reopening a vdev */ - vdev_ops_t *vdev_ops; /* vdev operations */ - spa_t *vdev_spa; /* spa for this vdev */ - void *vdev_tsd; /* type-specific data */ - vnode_t *vdev_name_vp; /* vnode for pathname */ - vnode_t *vdev_devid_vp; /* vnode for devid */ - vdev_t *vdev_top; /* top-level vdev */ - vdev_t *vdev_parent; /* parent vdev */ - vdev_t **vdev_child; /* array of children */ - uint64_t vdev_children; /* number of children */ - space_map_t vdev_dtl[DTL_TYPES]; /* in-core dirty time logs */ - vdev_stat_t vdev_stat; /* virtual device statistics */ - boolean_t vdev_expanding; /* expand the vdev? */ - boolean_t vdev_reopening; /* reopen in progress? */ - int vdev_open_error; /* error on last open */ - kthread_t *vdev_open_thread; /* thread opening children */ - uint64_t vdev_crtxg; /* txg when top-level was added */ - - /* - * Top-level vdev state. - */ - uint64_t vdev_ms_array; /* metaslab array object */ - uint64_t vdev_ms_shift; /* metaslab size shift */ - uint64_t vdev_ms_count; /* number of metaslabs */ - metaslab_group_t *vdev_mg; /* metaslab group */ - metaslab_t **vdev_ms; /* metaslab array */ - txg_list_t vdev_ms_list; /* per-txg dirty metaslab lists */ - txg_list_t vdev_dtl_list; /* per-txg dirty DTL lists */ - txg_node_t vdev_txg_node; /* per-txg dirty vdev linkage */ - boolean_t vdev_remove_wanted; /* async remove wanted? */ - boolean_t vdev_probe_wanted; /* async probe wanted? */ - uint64_t vdev_removing; /* device is being removed? */ - list_node_t vdev_config_dirty_node; /* config dirty list */ - list_node_t vdev_state_dirty_node; /* state dirty list */ - uint64_t vdev_deflate_ratio; /* deflation ratio (x512) */ - uint64_t vdev_islog; /* is an intent log device */ - uint64_t vdev_ishole; /* is a hole in the namespace */ - - /* - * Leaf vdev state. - */ - uint64_t vdev_psize; /* physical device capacity */ - space_map_obj_t vdev_dtl_smo; /* dirty time log space map obj */ - txg_node_t vdev_dtl_node; /* per-txg dirty DTL linkage */ - uint64_t vdev_wholedisk; /* true if this is a whole disk */ - uint64_t vdev_offline; /* persistent offline state */ - uint64_t vdev_faulted; /* persistent faulted state */ - uint64_t vdev_degraded; /* persistent degraded state */ - uint64_t vdev_removed; /* persistent removed state */ - uint64_t vdev_resilvering; /* persistent resilvering state */ - uint64_t vdev_nparity; /* number of parity devices for raidz */ - char *vdev_path; /* vdev path (if any) */ - char *vdev_devid; /* vdev devid (if any) */ - char *vdev_physpath; /* vdev device path (if any) */ - char *vdev_fru; /* physical FRU location */ - uint64_t vdev_not_present; /* not present during import */ - uint64_t vdev_unspare; /* unspare when resilvering done */ - hrtime_t vdev_last_try; /* last reopen time */ - boolean_t vdev_nowritecache; /* true if flushwritecache failed */ - boolean_t vdev_checkremove; /* temporary online test */ - boolean_t vdev_forcefault; /* force online fault */ - boolean_t vdev_splitting; /* split or repair in progress */ - boolean_t vdev_delayed_close; /* delayed device close? */ - uint8_t vdev_tmpoffline; /* device taken offline temporarily? */ - uint8_t vdev_detached; /* device detached? */ - uint8_t vdev_cant_read; /* vdev is failing all reads */ - uint8_t vdev_cant_write; /* vdev is failing all writes */ - uint64_t vdev_isspare; /* was a hot spare */ - uint64_t vdev_isl2cache; /* was a l2cache device */ - vdev_queue_t vdev_queue; /* I/O deadline schedule queue */ - vdev_cache_t vdev_cache; /* physical block cache */ - spa_aux_vdev_t *vdev_aux; /* for l2cache vdevs */ - zio_t *vdev_probe_zio; /* root of current probe */ - vdev_aux_t vdev_label_aux; /* on-disk aux state */ - - /* - * For DTrace to work in userland (libzpool) context, these fields must - * remain at the end of the structure. DTrace will use the kernel's - * CTF definition for 'struct vdev', and since the size of a kmutex_t is - * larger in userland, the offsets for the rest fields would be - * incorrect. - */ - kmutex_t vdev_dtl_lock; /* vdev_dtl_{map,resilver} */ - kmutex_t vdev_stat_lock; /* vdev_stat */ - kmutex_t vdev_probe_lock; /* protects vdev_probe_zio */ -}; - -#define VDEV_RAIDZ_MAXPARITY 3 - -#define VDEV_PAD_SIZE (8 << 10) -/* 2 padding areas (vl_pad1 and vl_pad2) to skip */ -#define VDEV_SKIP_SIZE VDEV_PAD_SIZE * 2 -#define VDEV_PHYS_SIZE (112 << 10) -#define VDEV_UBERBLOCK_RING (128 << 10) - -#define VDEV_UBERBLOCK_SHIFT(vd) \ - MAX((vd)->vdev_top->vdev_ashift, UBERBLOCK_SHIFT) -#define VDEV_UBERBLOCK_COUNT(vd) \ - (VDEV_UBERBLOCK_RING >> VDEV_UBERBLOCK_SHIFT(vd)) -#define VDEV_UBERBLOCK_OFFSET(vd, n) \ - offsetof(vdev_label_t, vl_uberblock[(n) << VDEV_UBERBLOCK_SHIFT(vd)]) -#define VDEV_UBERBLOCK_SIZE(vd) (1ULL << VDEV_UBERBLOCK_SHIFT(vd)) - -typedef struct vdev_phys { - char vp_nvlist[VDEV_PHYS_SIZE - sizeof (zio_eck_t)]; - zio_eck_t vp_zbt; -} vdev_phys_t; - -typedef struct vdev_label { - char vl_pad1[VDEV_PAD_SIZE]; /* 8K */ - char vl_pad2[VDEV_PAD_SIZE]; /* 8K */ - vdev_phys_t vl_vdev_phys; /* 112K */ - char vl_uberblock[VDEV_UBERBLOCK_RING]; /* 128K */ -} vdev_label_t; /* 256K total */ - -/* - * vdev_dirty() flags - */ -#define VDD_METASLAB 0x01 -#define VDD_DTL 0x02 - -/* - * Size and offset of embedded boot loader region on each label. - * The total size of the first two labels plus the boot area is 4MB. - */ -#define VDEV_BOOT_OFFSET (2 * sizeof (vdev_label_t)) -#define VDEV_BOOT_SIZE (7ULL << 19) /* 3.5M */ - -/* - * Size of label regions at the start and end of each leaf device. - */ -#define VDEV_LABEL_START_SIZE (2 * sizeof (vdev_label_t) + VDEV_BOOT_SIZE) -#define VDEV_LABEL_END_SIZE (2 * sizeof (vdev_label_t)) -#define VDEV_LABELS 4 - -#define VDEV_ALLOC_LOAD 0 -#define VDEV_ALLOC_ADD 1 -#define VDEV_ALLOC_SPARE 2 -#define VDEV_ALLOC_L2CACHE 3 -#define VDEV_ALLOC_ROOTPOOL 4 -#define VDEV_ALLOC_SPLIT 5 - -/* - * Allocate or free a vdev - */ -extern vdev_t *vdev_alloc_common(spa_t *spa, uint_t id, uint64_t guid, - vdev_ops_t *ops); -extern int vdev_alloc(spa_t *spa, vdev_t **vdp, nvlist_t *config, - vdev_t *parent, uint_t id, int alloctype); -extern void vdev_free(vdev_t *vd); - -/* - * Add or remove children and parents - */ -extern void vdev_add_child(vdev_t *pvd, vdev_t *cvd); -extern void vdev_remove_child(vdev_t *pvd, vdev_t *cvd); -extern void vdev_compact_children(vdev_t *pvd); -extern vdev_t *vdev_add_parent(vdev_t *cvd, vdev_ops_t *ops); -extern void vdev_remove_parent(vdev_t *cvd); - -/* - * vdev sync load and sync - */ -extern void vdev_load_log_state(vdev_t *nvd, vdev_t *ovd); -extern boolean_t vdev_log_state_valid(vdev_t *vd); -extern void vdev_load(vdev_t *vd); -extern void vdev_sync(vdev_t *vd, uint64_t txg); -extern void vdev_sync_done(vdev_t *vd, uint64_t txg); -extern void vdev_dirty(vdev_t *vd, int flags, void *arg, uint64_t txg); - -/* - * Available vdev types. - */ -extern vdev_ops_t vdev_root_ops; -extern vdev_ops_t vdev_mirror_ops; -extern vdev_ops_t vdev_replacing_ops; -extern vdev_ops_t vdev_raidz_ops; -extern vdev_ops_t vdev_disk_ops; -extern vdev_ops_t vdev_file_ops; -extern vdev_ops_t vdev_missing_ops; -extern vdev_ops_t vdev_hole_ops; -extern vdev_ops_t vdev_spare_ops; - -/* - * Common size functions - */ -extern uint64_t vdev_default_asize(vdev_t *vd, uint64_t psize); -extern uint64_t vdev_get_min_asize(vdev_t *vd); -extern void vdev_set_min_asize(vdev_t *vd); - -/* - * zdb uses this tunable, so it must be declared here to make lint happy. - */ -extern int zfs_vdev_cache_size; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_VDEV_IMPL_H */ diff --git a/module/zfs/include/sys/zap.h b/module/zfs/include/sys/zap.h deleted file mode 100644 index a1130bbba..000000000 --- a/module/zfs/include/sys/zap.h +++ /dev/null @@ -1,482 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_ZAP_H -#define _SYS_ZAP_H - -/* - * ZAP - ZFS Attribute Processor - * - * The ZAP is a module which sits on top of the DMU (Data Management - * Unit) and implements a higher-level storage primitive using DMU - * objects. Its primary consumer is the ZPL (ZFS Posix Layer). - * - * A "zapobj" is a DMU object which the ZAP uses to stores attributes. - * Users should use only zap routines to access a zapobj - they should - * not access the DMU object directly using DMU routines. - * - * The attributes stored in a zapobj are name-value pairs. The name is - * a zero-terminated string of up to ZAP_MAXNAMELEN bytes (including - * terminating NULL). The value is an array of integers, which may be - * 1, 2, 4, or 8 bytes long. The total space used by the array (number - * of integers * integer length) can be up to ZAP_MAXVALUELEN bytes. - * Note that an 8-byte integer value can be used to store the location - * (object number) of another dmu object (which may be itself a zapobj). - * Note that you can use a zero-length attribute to store a single bit - * of information - the attribute is present or not. - * - * The ZAP routines are thread-safe. However, you must observe the - * DMU's restriction that a transaction may not be operated on - * concurrently. - * - * Any of the routines that return an int may return an I/O error (EIO - * or ECHECKSUM). - * - * - * Implementation / Performance Notes: - * - * The ZAP is intended to operate most efficiently on attributes with - * short (49 bytes or less) names and single 8-byte values, for which - * the microzap will be used. The ZAP should be efficient enough so - * that the user does not need to cache these attributes. - * - * The ZAP's locking scheme makes its routines thread-safe. Operations - * on different zapobjs will be processed concurrently. Operations on - * the same zapobj which only read data will be processed concurrently. - * Operations on the same zapobj which modify data will be processed - * concurrently when there are many attributes in the zapobj (because - * the ZAP uses per-block locking - more than 128 * (number of cpus) - * small attributes will suffice). - */ - -/* - * We're using zero-terminated byte strings (ie. ASCII or UTF-8 C - * strings) for the names of attributes, rather than a byte string - * bounded by an explicit length. If some day we want to support names - * in character sets which have embedded zeros (eg. UTF-16, UTF-32), - * we'll have to add routines for using length-bounded strings. - */ - -#include <sys/dmu.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * The matchtype specifies which entry will be accessed. - * MT_EXACT: only find an exact match (non-normalized) - * MT_FIRST: find the "first" normalized (case and Unicode - * form) match; the designated "first" match will not change as long - * as the set of entries with this normalization doesn't change - * MT_BEST: if there is an exact match, find that, otherwise find the - * first normalized match - */ -typedef enum matchtype -{ - MT_EXACT, - MT_BEST, - MT_FIRST -} matchtype_t; - -typedef enum zap_flags { - /* Use 64-bit hash value (serialized cursors will always use 64-bits) */ - ZAP_FLAG_HASH64 = 1 << 0, - /* Key is binary, not string (zap_add_uint64() can be used) */ - ZAP_FLAG_UINT64_KEY = 1 << 1, - /* - * First word of key (which must be an array of uint64) is - * already randomly distributed. - */ - ZAP_FLAG_PRE_HASHED_KEY = 1 << 2, -} zap_flags_t; - -/* - * Create a new zapobj with no attributes and return its object number. - * MT_EXACT will cause the zap object to only support MT_EXACT lookups, - * otherwise any matchtype can be used for lookups. - * - * normflags specifies what normalization will be done. values are: - * 0: no normalization (legacy on-disk format, supports MT_EXACT matching - * only) - * U8_TEXTPREP_TOLOWER: case normalization will be performed. - * MT_FIRST/MT_BEST matching will find entries that match without - * regard to case (eg. looking for "foo" can find an entry "Foo"). - * Eventually, other flags will permit unicode normalization as well. - */ -uint64_t zap_create(objset_t *ds, dmu_object_type_t ot, - dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx); -uint64_t zap_create_norm(objset_t *ds, int normflags, dmu_object_type_t ot, - dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx); -uint64_t zap_create_flags(objset_t *os, int normflags, zap_flags_t flags, - dmu_object_type_t ot, int leaf_blockshift, int indirect_blockshift, - dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx); - -/* - * Create a new zapobj with no attributes from the given (unallocated) - * object number. - */ -int zap_create_claim(objset_t *ds, uint64_t obj, dmu_object_type_t ot, - dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx); -int zap_create_claim_norm(objset_t *ds, uint64_t obj, - int normflags, dmu_object_type_t ot, - dmu_object_type_t bonustype, int bonuslen, dmu_tx_t *tx); - -/* - * The zapobj passed in must be a valid ZAP object for all of the - * following routines. - */ - -/* - * Destroy this zapobj and all its attributes. - * - * Frees the object number using dmu_object_free. - */ -int zap_destroy(objset_t *ds, uint64_t zapobj, dmu_tx_t *tx); - -/* - * Manipulate attributes. - * - * 'integer_size' is in bytes, and must be 1, 2, 4, or 8. - */ - -/* - * Retrieve the contents of the attribute with the given name. - * - * If the requested attribute does not exist, the call will fail and - * return ENOENT. - * - * If 'integer_size' is smaller than the attribute's integer size, the - * call will fail and return EINVAL. - * - * If 'integer_size' is equal to or larger than the attribute's integer - * size, the call will succeed and return 0. * When converting to a - * larger integer size, the integers will be treated as unsigned (ie. no - * sign-extension will be performed). - * - * 'num_integers' is the length (in integers) of 'buf'. - * - * If the attribute is longer than the buffer, as many integers as will - * fit will be transferred to 'buf'. If the entire attribute was not - * transferred, the call will return EOVERFLOW. - * - * If rn_len is nonzero, realname will be set to the name of the found - * entry (which may be different from the requested name if matchtype is - * not MT_EXACT). - * - * If normalization_conflictp is not NULL, it will be set if there is - * another name with the same case/unicode normalized form. - */ -int zap_lookup(objset_t *ds, uint64_t zapobj, const char *name, - uint64_t integer_size, uint64_t num_integers, void *buf); -int zap_lookup_norm(objset_t *ds, uint64_t zapobj, const char *name, - uint64_t integer_size, uint64_t num_integers, void *buf, - matchtype_t mt, char *realname, int rn_len, - boolean_t *normalization_conflictp); -int zap_lookup_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key, - int key_numints, uint64_t integer_size, uint64_t num_integers, void *buf); -int zap_contains(objset_t *ds, uint64_t zapobj, const char *name); -int zap_prefetch_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key, - int key_numints); - -int zap_count_write(objset_t *os, uint64_t zapobj, const char *name, - int add, uint64_t *towrite, uint64_t *tooverwrite); - -/* - * Create an attribute with the given name and value. - * - * If an attribute with the given name already exists, the call will - * fail and return EEXIST. - */ -int zap_add(objset_t *ds, uint64_t zapobj, const char *key, - int integer_size, uint64_t num_integers, - const void *val, dmu_tx_t *tx); -int zap_add_uint64(objset_t *ds, uint64_t zapobj, const uint64_t *key, - int key_numints, int integer_size, uint64_t num_integers, - const void *val, dmu_tx_t *tx); - -/* - * Set the attribute with the given name to the given value. If an - * attribute with the given name does not exist, it will be created. If - * an attribute with the given name already exists, the previous value - * will be overwritten. The integer_size may be different from the - * existing attribute's integer size, in which case the attribute's - * integer size will be updated to the new value. - */ -int zap_update(objset_t *ds, uint64_t zapobj, const char *name, - int integer_size, uint64_t num_integers, const void *val, dmu_tx_t *tx); -int zap_update_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key, - int key_numints, - int integer_size, uint64_t num_integers, const void *val, dmu_tx_t *tx); - -/* - * Get the length (in integers) and the integer size of the specified - * attribute. - * - * If the requested attribute does not exist, the call will fail and - * return ENOENT. - */ -int zap_length(objset_t *ds, uint64_t zapobj, const char *name, - uint64_t *integer_size, uint64_t *num_integers); -int zap_length_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key, - int key_numints, uint64_t *integer_size, uint64_t *num_integers); - -/* - * Remove the specified attribute. - * - * If the specified attribute does not exist, the call will fail and - * return ENOENT. - */ -int zap_remove(objset_t *ds, uint64_t zapobj, const char *name, dmu_tx_t *tx); -int zap_remove_norm(objset_t *ds, uint64_t zapobj, const char *name, - matchtype_t mt, dmu_tx_t *tx); -int zap_remove_uint64(objset_t *os, uint64_t zapobj, const uint64_t *key, - int key_numints, dmu_tx_t *tx); - -/* - * Returns (in *count) the number of attributes in the specified zap - * object. - */ -int zap_count(objset_t *ds, uint64_t zapobj, uint64_t *count); - -/* - * Returns (in name) the name of the entry whose (value & mask) - * (za_first_integer) is value, or ENOENT if not found. The string - * pointed to by name must be at least 256 bytes long. If mask==0, the - * match must be exact (ie, same as mask=-1ULL). - */ -int zap_value_search(objset_t *os, uint64_t zapobj, - uint64_t value, uint64_t mask, char *name); - -/* - * Transfer all the entries from fromobj into intoobj. Only works on - * int_size=8 num_integers=1 values. Fails if there are any duplicated - * entries. - */ -int zap_join(objset_t *os, uint64_t fromobj, uint64_t intoobj, dmu_tx_t *tx); - -/* Same as zap_join, but set the values to 'value'. */ -int zap_join_key(objset_t *os, uint64_t fromobj, uint64_t intoobj, - uint64_t value, dmu_tx_t *tx); - -/* Same as zap_join, but add together any duplicated entries. */ -int zap_join_increment(objset_t *os, uint64_t fromobj, uint64_t intoobj, - dmu_tx_t *tx); - -/* - * Manipulate entries where the name + value are the "same" (the name is - * a stringified version of the value). - */ -int zap_add_int(objset_t *os, uint64_t obj, uint64_t value, dmu_tx_t *tx); -int zap_remove_int(objset_t *os, uint64_t obj, uint64_t value, dmu_tx_t *tx); -int zap_lookup_int(objset_t *os, uint64_t obj, uint64_t value); -int zap_increment_int(objset_t *os, uint64_t obj, uint64_t key, int64_t delta, - dmu_tx_t *tx); - -/* Here the key is an int and the value is a different int. */ -int zap_add_int_key(objset_t *os, uint64_t obj, - uint64_t key, uint64_t value, dmu_tx_t *tx); -int zap_lookup_int_key(objset_t *os, uint64_t obj, - uint64_t key, uint64_t *valuep); - -/* - * They name is a stringified version of key; increment its value by - * delta. Zero values will be zap_remove()-ed. - */ -int zap_increment_int(objset_t *os, uint64_t obj, uint64_t key, int64_t delta, - dmu_tx_t *tx); -int zap_increment(objset_t *os, uint64_t obj, const char *name, int64_t delta, - dmu_tx_t *tx); - -struct zap; -struct zap_leaf; -typedef struct zap_cursor { - /* This structure is opaque! */ - objset_t *zc_objset; - struct zap *zc_zap; - struct zap_leaf *zc_leaf; - uint64_t zc_zapobj; - uint64_t zc_serialized; - uint64_t zc_hash; - uint32_t zc_cd; -} zap_cursor_t; - -typedef struct { - int za_integer_length; - /* - * za_normalization_conflict will be set if there are additional - * entries with this normalized form (eg, "foo" and "Foo"). - */ - boolean_t za_normalization_conflict; - uint64_t za_num_integers; - uint64_t za_first_integer; /* no sign extension for <8byte ints */ - char za_name[MAXNAMELEN]; -} zap_attribute_t; - -/* - * The interface for listing all the attributes of a zapobj can be - * thought of as cursor moving down a list of the attributes one by - * one. The cookie returned by the zap_cursor_serialize routine is - * persistent across system calls (and across reboot, even). - */ - -/* - * Initialize a zap cursor, pointing to the "first" attribute of the - * zapobj. You must _fini the cursor when you are done with it. - */ -void zap_cursor_init(zap_cursor_t *zc, objset_t *ds, uint64_t zapobj); -void zap_cursor_fini(zap_cursor_t *zc); - -/* - * Get the attribute currently pointed to by the cursor. Returns - * ENOENT if at the end of the attributes. - */ -int zap_cursor_retrieve(zap_cursor_t *zc, zap_attribute_t *za); - -/* - * Advance the cursor to the next attribute. - */ -void zap_cursor_advance(zap_cursor_t *zc); - -/* - * Get a persistent cookie pointing to the current position of the zap - * cursor. The low 4 bits in the cookie are always zero, and thus can - * be used as to differentiate a serialized cookie from a different type - * of value. The cookie will be less than 2^32 as long as there are - * fewer than 2^22 (4.2 million) entries in the zap object. - */ -uint64_t zap_cursor_serialize(zap_cursor_t *zc); - -/* - * Advance the cursor to the attribute having the given key. - */ -int zap_cursor_move_to_key(zap_cursor_t *zc, const char *name, matchtype_t mt); - -/* - * Initialize a zap cursor pointing to the position recorded by - * zap_cursor_serialize (in the "serialized" argument). You can also - * use a "serialized" argument of 0 to start at the beginning of the - * zapobj (ie. zap_cursor_init_serialized(..., 0) is equivalent to - * zap_cursor_init(...).) - */ -void zap_cursor_init_serialized(zap_cursor_t *zc, objset_t *ds, - uint64_t zapobj, uint64_t serialized); - - -#define ZAP_HISTOGRAM_SIZE 10 - -typedef struct zap_stats { - /* - * Size of the pointer table (in number of entries). - * This is always a power of 2, or zero if it's a microzap. - * In general, it should be considerably greater than zs_num_leafs. - */ - uint64_t zs_ptrtbl_len; - - uint64_t zs_blocksize; /* size of zap blocks */ - - /* - * The number of blocks used. Note that some blocks may be - * wasted because old ptrtbl's and large name/value blocks are - * not reused. (Although their space is reclaimed, we don't - * reuse those offsets in the object.) - */ - uint64_t zs_num_blocks; - - /* - * Pointer table values from zap_ptrtbl in the zap_phys_t - */ - uint64_t zs_ptrtbl_nextblk; /* next (larger) copy start block */ - uint64_t zs_ptrtbl_blks_copied; /* number source blocks copied */ - uint64_t zs_ptrtbl_zt_blk; /* starting block number */ - uint64_t zs_ptrtbl_zt_numblks; /* number of blocks */ - uint64_t zs_ptrtbl_zt_shift; /* bits to index it */ - - /* - * Values of the other members of the zap_phys_t - */ - uint64_t zs_block_type; /* ZBT_HEADER */ - uint64_t zs_magic; /* ZAP_MAGIC */ - uint64_t zs_num_leafs; /* The number of leaf blocks */ - uint64_t zs_num_entries; /* The number of zap entries */ - uint64_t zs_salt; /* salt to stir into hash function */ - - /* - * Histograms. For all histograms, the last index - * (ZAP_HISTOGRAM_SIZE-1) includes any values which are greater - * than what can be represented. For example - * zs_leafs_with_n5_entries[ZAP_HISTOGRAM_SIZE-1] is the number - * of leafs with more than 45 entries. - */ - - /* - * zs_leafs_with_n_pointers[n] is the number of leafs with - * 2^n pointers to it. - */ - uint64_t zs_leafs_with_2n_pointers[ZAP_HISTOGRAM_SIZE]; - - /* - * zs_leafs_with_n_entries[n] is the number of leafs with - * [n*5, (n+1)*5) entries. In the current implementation, there - * can be at most 55 entries in any block, but there may be - * fewer if the name or value is large, or the block is not - * completely full. - */ - uint64_t zs_blocks_with_n5_entries[ZAP_HISTOGRAM_SIZE]; - - /* - * zs_leafs_n_tenths_full[n] is the number of leafs whose - * fullness is in the range [n/10, (n+1)/10). - */ - uint64_t zs_blocks_n_tenths_full[ZAP_HISTOGRAM_SIZE]; - - /* - * zs_entries_using_n_chunks[n] is the number of entries which - * consume n 24-byte chunks. (Note, large names/values only use - * one chunk, but contribute to zs_num_blocks_large.) - */ - uint64_t zs_entries_using_n_chunks[ZAP_HISTOGRAM_SIZE]; - - /* - * zs_buckets_with_n_entries[n] is the number of buckets (each - * leaf has 64 buckets) with n entries. - * zs_buckets_with_n_entries[1] should be very close to - * zs_num_entries. - */ - uint64_t zs_buckets_with_n_entries[ZAP_HISTOGRAM_SIZE]; -} zap_stats_t; - -/* - * Get statistics about a ZAP object. Note: you need to be aware of the - * internal implementation of the ZAP to correctly interpret some of the - * statistics. This interface shouldn't be relied on unless you really - * know what you're doing. - */ -int zap_get_stats(objset_t *ds, uint64_t zapobj, zap_stats_t *zs); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZAP_H */ diff --git a/module/zfs/include/sys/zap_impl.h b/module/zfs/include/sys/zap_impl.h deleted file mode 100644 index 1dc322e02..000000000 --- a/module/zfs/include/sys/zap_impl.h +++ /dev/null @@ -1,228 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_ZAP_IMPL_H -#define _SYS_ZAP_IMPL_H - -#include <sys/zap.h> -#include <sys/zfs_context.h> -#include <sys/avl.h> - -#ifdef __cplusplus -extern "C" { -#endif - -extern int fzap_default_block_shift; - -#define ZAP_MAGIC 0x2F52AB2ABULL - -#define FZAP_BLOCK_SHIFT(zap) ((zap)->zap_f.zap_block_shift) - -#define MZAP_ENT_LEN 64 -#define MZAP_NAME_LEN (MZAP_ENT_LEN - 8 - 4 - 2) -#define MZAP_MAX_BLKSHIFT SPA_MAXBLOCKSHIFT -#define MZAP_MAX_BLKSZ (1 << MZAP_MAX_BLKSHIFT) - -#define ZAP_NEED_CD (-1U) - -typedef struct mzap_ent_phys { - uint64_t mze_value; - uint32_t mze_cd; - uint16_t mze_pad; /* in case we want to chain them someday */ - char mze_name[MZAP_NAME_LEN]; -} mzap_ent_phys_t; - -typedef struct mzap_phys { - uint64_t mz_block_type; /* ZBT_MICRO */ - uint64_t mz_salt; - uint64_t mz_normflags; - uint64_t mz_pad[5]; - mzap_ent_phys_t mz_chunk[1]; - /* actually variable size depending on block size */ -} mzap_phys_t; - -typedef struct mzap_ent { - avl_node_t mze_node; - int mze_chunkid; - uint64_t mze_hash; - uint32_t mze_cd; /* copy from mze_phys->mze_cd */ -} mzap_ent_t; - -#define MZE_PHYS(zap, mze) \ - (&(zap)->zap_m.zap_phys->mz_chunk[(mze)->mze_chunkid]) - -/* - * The (fat) zap is stored in one object. It is an array of - * 1<<FZAP_BLOCK_SHIFT byte blocks. The layout looks like one of: - * - * ptrtbl fits in first block: - * [zap_phys_t zap_ptrtbl_shift < 6] [zap_leaf_t] ... - * - * ptrtbl too big for first block: - * [zap_phys_t zap_ptrtbl_shift >= 6] [zap_leaf_t] [ptrtbl] ... - * - */ - -struct dmu_buf; -struct zap_leaf; - -#define ZBT_LEAF ((1ULL << 63) + 0) -#define ZBT_HEADER ((1ULL << 63) + 1) -#define ZBT_MICRO ((1ULL << 63) + 3) -/* any other values are ptrtbl blocks */ - -/* - * the embedded pointer table takes up half a block: - * block size / entry size (2^3) / 2 - */ -#define ZAP_EMBEDDED_PTRTBL_SHIFT(zap) (FZAP_BLOCK_SHIFT(zap) - 3 - 1) - -/* - * The embedded pointer table starts half-way through the block. Since - * the pointer table itself is half the block, it starts at (64-bit) - * word number (1<<ZAP_EMBEDDED_PTRTBL_SHIFT(zap)). - */ -#define ZAP_EMBEDDED_PTRTBL_ENT(zap, idx) \ - ((uint64_t *)(zap)->zap_f.zap_phys) \ - [(idx) + (1<<ZAP_EMBEDDED_PTRTBL_SHIFT(zap))] - -/* - * TAKE NOTE: - * If zap_phys_t is modified, zap_byteswap() must be modified. - */ -typedef struct zap_phys { - uint64_t zap_block_type; /* ZBT_HEADER */ - uint64_t zap_magic; /* ZAP_MAGIC */ - - struct zap_table_phys { - uint64_t zt_blk; /* starting block number */ - uint64_t zt_numblks; /* number of blocks */ - uint64_t zt_shift; /* bits to index it */ - uint64_t zt_nextblk; /* next (larger) copy start block */ - uint64_t zt_blks_copied; /* number source blocks copied */ - } zap_ptrtbl; - - uint64_t zap_freeblk; /* the next free block */ - uint64_t zap_num_leafs; /* number of leafs */ - uint64_t zap_num_entries; /* number of entries */ - uint64_t zap_salt; /* salt to stir into hash function */ - uint64_t zap_normflags; /* flags for u8_textprep_str() */ - uint64_t zap_flags; /* zap_flags_t */ - /* - * This structure is followed by padding, and then the embedded - * pointer table. The embedded pointer table takes up second - * half of the block. It is accessed using the - * ZAP_EMBEDDED_PTRTBL_ENT() macro. - */ -} zap_phys_t; - -typedef struct zap_table_phys zap_table_phys_t; - -typedef struct zap { - objset_t *zap_objset; - uint64_t zap_object; - struct dmu_buf *zap_dbuf; - krwlock_t zap_rwlock; - boolean_t zap_ismicro; - int zap_normflags; - uint64_t zap_salt; - union { - struct { - zap_phys_t *zap_phys; - - /* - * zap_num_entries_mtx protects - * zap_num_entries - */ - kmutex_t zap_num_entries_mtx; - int zap_block_shift; - } zap_fat; - struct { - mzap_phys_t *zap_phys; - int16_t zap_num_entries; - int16_t zap_num_chunks; - int16_t zap_alloc_next; - avl_tree_t zap_avl; - } zap_micro; - } zap_u; -} zap_t; - -typedef struct zap_name { - zap_t *zn_zap; - int zn_key_intlen; - const void *zn_key_orig; - int zn_key_orig_numints; - const void *zn_key_norm; - int zn_key_norm_numints; - uint64_t zn_hash; - matchtype_t zn_matchtype; - char zn_normbuf[ZAP_MAXNAMELEN]; -} zap_name_t; - -#define zap_f zap_u.zap_fat -#define zap_m zap_u.zap_micro - -boolean_t zap_match(zap_name_t *zn, const char *matchname); -int zap_lockdir(objset_t *os, uint64_t obj, dmu_tx_t *tx, - krw_t lti, boolean_t fatreader, boolean_t adding, zap_t **zapp); -void zap_unlockdir(zap_t *zap); -void zap_evict(dmu_buf_t *db, void *vmzap); -zap_name_t *zap_name_alloc(zap_t *zap, const char *key, matchtype_t mt); -void zap_name_free(zap_name_t *zn); -int zap_hashbits(zap_t *zap); -uint32_t zap_maxcd(zap_t *zap); -uint64_t zap_getflags(zap_t *zap); - -#define ZAP_HASH_IDX(hash, n) (((n) == 0) ? 0 : ((hash) >> (64 - (n)))) - -void fzap_byteswap(void *buf, size_t size); -int fzap_count(zap_t *zap, uint64_t *count); -int fzap_lookup(zap_name_t *zn, - uint64_t integer_size, uint64_t num_integers, void *buf, - char *realname, int rn_len, boolean_t *normalization_conflictp); -void fzap_prefetch(zap_name_t *zn); -int fzap_count_write(zap_name_t *zn, int add, uint64_t *towrite, - uint64_t *tooverwrite); -int fzap_add(zap_name_t *zn, uint64_t integer_size, uint64_t num_integers, - const void *val, dmu_tx_t *tx); -int fzap_update(zap_name_t *zn, - int integer_size, uint64_t num_integers, const void *val, dmu_tx_t *tx); -int fzap_length(zap_name_t *zn, - uint64_t *integer_size, uint64_t *num_integers); -int fzap_remove(zap_name_t *zn, dmu_tx_t *tx); -int fzap_cursor_retrieve(zap_t *zap, zap_cursor_t *zc, zap_attribute_t *za); -void fzap_get_stats(zap_t *zap, zap_stats_t *zs); -void zap_put_leaf(struct zap_leaf *l); - -int fzap_add_cd(zap_name_t *zn, - uint64_t integer_size, uint64_t num_integers, - const void *val, uint32_t cd, dmu_tx_t *tx); -void fzap_upgrade(zap_t *zap, dmu_tx_t *tx, zap_flags_t flags); -int fzap_cursor_move_to_key(zap_cursor_t *zc, zap_name_t *zn); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZAP_IMPL_H */ diff --git a/module/zfs/include/sys/zap_leaf.h b/module/zfs/include/sys/zap_leaf.h deleted file mode 100644 index 3a3363674..000000000 --- a/module/zfs/include/sys/zap_leaf.h +++ /dev/null @@ -1,245 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_ZAP_LEAF_H -#define _SYS_ZAP_LEAF_H - -#include <sys/zap.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct zap; -struct zap_name; -struct zap_stats; - -#define ZAP_LEAF_MAGIC 0x2AB1EAF - -/* chunk size = 24 bytes */ -#define ZAP_LEAF_CHUNKSIZE 24 - -/* - * The amount of space available for chunks is: - * block size (1<<l->l_bs) - hash entry size (2) * number of hash - * entries - header space (2*chunksize) - */ -#define ZAP_LEAF_NUMCHUNKS(l) \ - (((1<<(l)->l_bs) - 2*ZAP_LEAF_HASH_NUMENTRIES(l)) / \ - ZAP_LEAF_CHUNKSIZE - 2) - -/* - * The amount of space within the chunk available for the array is: - * chunk size - space for type (1) - space for next pointer (2) - */ -#define ZAP_LEAF_ARRAY_BYTES (ZAP_LEAF_CHUNKSIZE - 3) - -#define ZAP_LEAF_ARRAY_NCHUNKS(bytes) \ - (((bytes)+ZAP_LEAF_ARRAY_BYTES-1)/ZAP_LEAF_ARRAY_BYTES) - -/* - * Low water mark: when there are only this many chunks free, start - * growing the ptrtbl. Ideally, this should be larger than a - * "reasonably-sized" entry. 20 chunks is more than enough for the - * largest directory entry (MAXNAMELEN (256) byte name, 8-byte value), - * while still being only around 3% for 16k blocks. - */ -#define ZAP_LEAF_LOW_WATER (20) - -/* - * The leaf hash table has block size / 2^5 (32) number of entries, - * which should be more than enough for the maximum number of entries, - * which is less than block size / CHUNKSIZE (24) / minimum number of - * chunks per entry (3). - */ -#define ZAP_LEAF_HASH_SHIFT(l) ((l)->l_bs - 5) -#define ZAP_LEAF_HASH_NUMENTRIES(l) (1 << ZAP_LEAF_HASH_SHIFT(l)) - -/* - * The chunks start immediately after the hash table. The end of the - * hash table is at l_hash + HASH_NUMENTRIES, which we simply cast to a - * chunk_t. - */ -#define ZAP_LEAF_CHUNK(l, idx) \ - ((zap_leaf_chunk_t *) \ - ((l)->l_phys->l_hash + ZAP_LEAF_HASH_NUMENTRIES(l)))[idx] -#define ZAP_LEAF_ENTRY(l, idx) (&ZAP_LEAF_CHUNK(l, idx).l_entry) - -typedef enum zap_chunk_type { - ZAP_CHUNK_FREE = 253, - ZAP_CHUNK_ENTRY = 252, - ZAP_CHUNK_ARRAY = 251, - ZAP_CHUNK_TYPE_MAX = 250 -} zap_chunk_type_t; - -#define ZLF_ENTRIES_CDSORTED (1<<0) - -/* - * TAKE NOTE: - * If zap_leaf_phys_t is modified, zap_leaf_byteswap() must be modified. - */ -typedef struct zap_leaf_phys { - struct zap_leaf_header { - uint64_t lh_block_type; /* ZBT_LEAF */ - uint64_t lh_pad1; - uint64_t lh_prefix; /* hash prefix of this leaf */ - uint32_t lh_magic; /* ZAP_LEAF_MAGIC */ - uint16_t lh_nfree; /* number free chunks */ - uint16_t lh_nentries; /* number of entries */ - uint16_t lh_prefix_len; /* num bits used to id this */ - -/* above is accessable to zap, below is zap_leaf private */ - - uint16_t lh_freelist; /* chunk head of free list */ - uint8_t lh_flags; /* ZLF_* flags */ - uint8_t lh_pad2[11]; - } l_hdr; /* 2 24-byte chunks */ - - /* - * The header is followed by a hash table with - * ZAP_LEAF_HASH_NUMENTRIES(zap) entries. The hash table is - * followed by an array of ZAP_LEAF_NUMCHUNKS(zap) - * zap_leaf_chunk structures. These structures are accessed - * with the ZAP_LEAF_CHUNK() macro. - */ - - uint16_t l_hash[1]; -} zap_leaf_phys_t; - -typedef union zap_leaf_chunk { - struct zap_leaf_entry { - uint8_t le_type; /* always ZAP_CHUNK_ENTRY */ - uint8_t le_value_intlen; /* size of value's ints */ - uint16_t le_next; /* next entry in hash chain */ - uint16_t le_name_chunk; /* first chunk of the name */ - uint16_t le_name_numints; /* ints in name (incl null) */ - uint16_t le_value_chunk; /* first chunk of the value */ - uint16_t le_value_numints; /* value length in ints */ - uint32_t le_cd; /* collision differentiator */ - uint64_t le_hash; /* hash value of the name */ - } l_entry; - struct zap_leaf_array { - uint8_t la_type; /* always ZAP_CHUNK_ARRAY */ - uint8_t la_array[ZAP_LEAF_ARRAY_BYTES]; - uint16_t la_next; /* next blk or CHAIN_END */ - } l_array; - struct zap_leaf_free { - uint8_t lf_type; /* always ZAP_CHUNK_FREE */ - uint8_t lf_pad[ZAP_LEAF_ARRAY_BYTES]; - uint16_t lf_next; /* next in free list, or CHAIN_END */ - } l_free; -} zap_leaf_chunk_t; - -typedef struct zap_leaf { - krwlock_t l_rwlock; - uint64_t l_blkid; /* 1<<ZAP_BLOCK_SHIFT byte block off */ - int l_bs; /* block size shift */ - dmu_buf_t *l_dbuf; - zap_leaf_phys_t *l_phys; -} zap_leaf_t; - - -typedef struct zap_entry_handle { - /* below is set by zap_leaf.c and is public to zap.c */ - uint64_t zeh_num_integers; - uint64_t zeh_hash; - uint32_t zeh_cd; - uint8_t zeh_integer_size; - - /* below is private to zap_leaf.c */ - uint16_t zeh_fakechunk; - uint16_t *zeh_chunkp; - zap_leaf_t *zeh_leaf; -} zap_entry_handle_t; - -/* - * Return a handle to the named entry, or ENOENT if not found. The hash - * value must equal zap_hash(name). - */ -extern int zap_leaf_lookup(zap_leaf_t *l, - struct zap_name *zn, zap_entry_handle_t *zeh); - -/* - * Return a handle to the entry with this hash+cd, or the entry with the - * next closest hash+cd. - */ -extern int zap_leaf_lookup_closest(zap_leaf_t *l, - uint64_t hash, uint32_t cd, zap_entry_handle_t *zeh); - -/* - * Read the first num_integers in the attribute. Integer size - * conversion will be done without sign extension. Return EINVAL if - * integer_size is too small. Return EOVERFLOW if there are more than - * num_integers in the attribute. - */ -extern int zap_entry_read(const zap_entry_handle_t *zeh, - uint8_t integer_size, uint64_t num_integers, void *buf); - -extern int zap_entry_read_name(struct zap *zap, const zap_entry_handle_t *zeh, - uint16_t buflen, char *buf); - -/* - * Replace the value of an existing entry. - * - * zap_entry_update may fail if it runs out of space (ENOSPC). - */ -extern int zap_entry_update(zap_entry_handle_t *zeh, - uint8_t integer_size, uint64_t num_integers, const void *buf); - -/* - * Remove an entry. - */ -extern void zap_entry_remove(zap_entry_handle_t *zeh); - -/* - * Create an entry. An equal entry must not exist, and this entry must - * belong in this leaf (according to its hash value). Fills in the - * entry handle on success. Returns 0 on success or ENOSPC on failure. - */ -extern int zap_entry_create(zap_leaf_t *l, struct zap_name *zn, uint32_t cd, - uint8_t integer_size, uint64_t num_integers, const void *buf, - zap_entry_handle_t *zeh); - -/* - * Return true if there are additional entries with the same normalized - * form. - */ -extern boolean_t zap_entry_normalization_conflict(zap_entry_handle_t *zeh, - struct zap_name *zn, const char *name, struct zap *zap); - -/* - * Other stuff. - */ - -extern void zap_leaf_init(zap_leaf_t *l, boolean_t sort); -extern void zap_leaf_byteswap(zap_leaf_phys_t *buf, int len); -extern void zap_leaf_split(zap_leaf_t *l, zap_leaf_t *nl, boolean_t sort); -extern void zap_leaf_stats(struct zap *zap, zap_leaf_t *l, - struct zap_stats *zs); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZAP_LEAF_H */ diff --git a/module/zfs/include/sys/zfs_acl.h b/module/zfs/include/sys/zfs_acl.h deleted file mode 100644 index c1a0aeebd..000000000 --- a/module/zfs/include/sys/zfs_acl.h +++ /dev/null @@ -1,245 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_FS_ZFS_ACL_H -#define _SYS_FS_ZFS_ACL_H - -#ifdef _KERNEL -#include <sys/isa_defs.h> -#include <sys/types32.h> -#endif -#include <sys/acl.h> -#include <sys/dmu.h> -#include <sys/zfs_fuid.h> -#include <sys/sa.h> - -#ifdef __cplusplus -extern "C" { -#endif - -struct znode_phys; - -#define ACE_SLOT_CNT 6 -#define ZFS_ACL_VERSION_INITIAL 0ULL -#define ZFS_ACL_VERSION_FUID 1ULL -#define ZFS_ACL_VERSION ZFS_ACL_VERSION_FUID - -/* - * ZFS ACLs are store in various forms. - * Files created with ACL version ZFS_ACL_VERSION_INITIAL - * will all be created with fixed length ACEs of type - * zfs_oldace_t. - * - * Files with ACL version ZFS_ACL_VERSION_FUID will be created - * with various sized ACEs. The abstraction entries will utilize - * zfs_ace_hdr_t, normal user/group entries will use zfs_ace_t - * and some specialized CIFS ACEs will use zfs_object_ace_t. - */ - -/* - * All ACEs have a common hdr. For - * owner@, group@, and everyone@ this is all - * thats needed. - */ -typedef struct zfs_ace_hdr { - uint16_t z_type; - uint16_t z_flags; - uint32_t z_access_mask; -} zfs_ace_hdr_t; - -typedef zfs_ace_hdr_t zfs_ace_abstract_t; - -/* - * Standard ACE - */ -typedef struct zfs_ace { - zfs_ace_hdr_t z_hdr; - uint64_t z_fuid; -} zfs_ace_t; - -/* - * The following type only applies to ACE_ACCESS_ALLOWED|DENIED_OBJECT_ACE_TYPE - * and will only be set/retrieved in a CIFS context. - */ - -typedef struct zfs_object_ace { - zfs_ace_t z_ace; - uint8_t z_object_type[16]; /* object type */ - uint8_t z_inherit_type[16]; /* inherited object type */ -} zfs_object_ace_t; - -typedef struct zfs_oldace { - uint32_t z_fuid; /* "who" */ - uint32_t z_access_mask; /* access mask */ - uint16_t z_flags; /* flags, i.e inheritance */ - uint16_t z_type; /* type of entry allow/deny */ -} zfs_oldace_t; - -typedef struct zfs_acl_phys_v0 { - uint64_t z_acl_extern_obj; /* ext acl pieces */ - uint32_t z_acl_count; /* Number of ACEs */ - uint16_t z_acl_version; /* acl version */ - uint16_t z_acl_pad; /* pad */ - zfs_oldace_t z_ace_data[ACE_SLOT_CNT]; /* 6 standard ACEs */ -} zfs_acl_phys_v0_t; - -#define ZFS_ACE_SPACE (sizeof (zfs_oldace_t) * ACE_SLOT_CNT) - -/* - * Size of ACL count is always 2 bytes. - * Necessary to for dealing with both V0 ACL and V1 ACL layout - */ -#define ZFS_ACL_COUNT_SIZE (sizeof (uint16_t)) - -typedef struct zfs_acl_phys { - uint64_t z_acl_extern_obj; /* ext acl pieces */ - uint32_t z_acl_size; /* Number of bytes in ACL */ - uint16_t z_acl_version; /* acl version */ - uint16_t z_acl_count; /* ace count */ - uint8_t z_ace_data[ZFS_ACE_SPACE]; /* space for embedded ACEs */ -} zfs_acl_phys_t; - -typedef struct acl_ops { - uint32_t (*ace_mask_get) (void *acep); /* get access mask */ - void (*ace_mask_set) (void *acep, - uint32_t mask); /* set access mask */ - uint16_t (*ace_flags_get) (void *acep); /* get flags */ - void (*ace_flags_set) (void *acep, - uint16_t flags); /* set flags */ - uint16_t (*ace_type_get)(void *acep); /* get type */ - void (*ace_type_set)(void *acep, - uint16_t type); /* set type */ - uint64_t (*ace_who_get)(void *acep); /* get who/fuid */ - void (*ace_who_set)(void *acep, - uint64_t who); /* set who/fuid */ - size_t (*ace_size)(void *acep); /* how big is this ace */ - size_t (*ace_abstract_size)(void); /* sizeof abstract entry */ - int (*ace_mask_off)(void); /* off of access mask in ace */ - int (*ace_data)(void *acep, void **datap); - /* ptr to data if any */ -} acl_ops_t; - -/* - * A zfs_acl_t structure is composed of a list of zfs_acl_node_t's. - * Each node will have one or more ACEs associated with it. You will - * only have multiple nodes during a chmod operation. Normally only - * one node is required. - */ -typedef struct zfs_acl_node { - list_node_t z_next; /* Next chunk of ACEs */ - void *z_acldata; /* pointer into actual ACE(s) */ - void *z_allocdata; /* pointer to kmem allocated memory */ - size_t z_allocsize; /* Size of blob in bytes */ - size_t z_size; /* length of ACL data */ - uint64_t z_ace_count; /* number of ACEs in this acl node */ - int z_ace_idx; /* ace iterator positioned on */ -} zfs_acl_node_t; - -typedef struct zfs_acl { - uint64_t z_acl_count; /* Number of ACEs */ - size_t z_acl_bytes; /* Number of bytes in ACL */ - uint_t z_version; /* version of ACL */ - void *z_next_ace; /* pointer to next ACE */ - uint64_t z_hints; /* ACL hints (ZFS_INHERIT_ACE ...) */ - zfs_acl_node_t *z_curr_node; /* current node iterator is handling */ - list_t z_acl; /* chunks of ACE data */ - acl_ops_t z_ops; /* ACL operations */ -} zfs_acl_t; - -typedef struct acl_locator_cb { - zfs_acl_t *cb_aclp; - zfs_acl_node_t *cb_acl_node; -} zfs_acl_locator_cb_t; - -#define ACL_DATA_ALLOCED 0x1 -#define ZFS_ACL_SIZE(aclcnt) (sizeof (ace_t) * (aclcnt)) - -struct zfs_fuid_info; - -typedef struct zfs_acl_ids { - uint64_t z_fuid; /* file owner fuid */ - uint64_t z_fgid; /* file group owner fuid */ - uint64_t z_mode; /* mode to set on create */ - zfs_acl_t *z_aclp; /* ACL to create with file */ - struct zfs_fuid_info *z_fuidp; /* for tracking fuids for log */ -} zfs_acl_ids_t; - -/* - * Property values for acl_mode and acl_inherit. - * - * acl_mode can take discard, noallow, groupmask and passthrough. - * whereas acl_inherit has secure instead of groupmask. - */ - -#define ZFS_ACL_DISCARD 0 -#define ZFS_ACL_NOALLOW 1 -#define ZFS_ACL_GROUPMASK 2 -#define ZFS_ACL_PASSTHROUGH 3 -#define ZFS_ACL_RESTRICTED 4 -#define ZFS_ACL_PASSTHROUGH_X 5 - -struct znode; -struct zfsvfs; - -#ifdef _KERNEL -int zfs_acl_ids_create(struct znode *, int, vattr_t *, - cred_t *, vsecattr_t *, zfs_acl_ids_t *); -void zfs_acl_ids_free(zfs_acl_ids_t *); -boolean_t zfs_acl_ids_overquota(struct zfsvfs *, zfs_acl_ids_t *); -int zfs_getacl(struct znode *, vsecattr_t *, boolean_t, cred_t *); -int zfs_setacl(struct znode *, vsecattr_t *, boolean_t, cred_t *); -void zfs_acl_rele(void *); -void zfs_oldace_byteswap(ace_t *, int); -void zfs_ace_byteswap(void *, size_t, boolean_t); -extern boolean_t zfs_has_access(struct znode *zp, cred_t *cr); -extern int zfs_zaccess(struct znode *, int, int, boolean_t, cred_t *); -int zfs_fastaccesschk_execute(struct znode *, cred_t *); -extern int zfs_zaccess_rwx(struct znode *, mode_t, int, cred_t *); -extern int zfs_zaccess_unix(struct znode *, mode_t, cred_t *); -extern int zfs_acl_access(struct znode *, int, cred_t *); -void zfs_acl_chmod_setattr(struct znode *, zfs_acl_t **, uint64_t); -int zfs_zaccess_delete(struct znode *, struct znode *, cred_t *); -int zfs_zaccess_rename(struct znode *, struct znode *, - struct znode *, struct znode *, cred_t *cr); -void zfs_acl_free(zfs_acl_t *); -int zfs_vsec_2_aclp(struct zfsvfs *, vtype_t, vsecattr_t *, cred_t *, - struct zfs_fuid_info **, zfs_acl_t **); -int zfs_aclset_common(struct znode *, zfs_acl_t *, cred_t *, dmu_tx_t *); -uint64_t zfs_external_acl(struct znode *); -int zfs_znode_acl_version(struct znode *); -int zfs_acl_size(struct znode *, int *); -zfs_acl_t *zfs_acl_alloc(int); -zfs_acl_node_t *zfs_acl_node_alloc(size_t); -void zfs_acl_xform(struct znode *, zfs_acl_t *, cred_t *); -void zfs_acl_data_locator(void **, uint32_t *, uint32_t, boolean_t, void *); -uint64_t zfs_mode_compute(uint64_t, zfs_acl_t *, - uint64_t *, uint64_t, uint64_t); -int zfs_acl_chown_setattr(struct znode *); - -#endif - -#ifdef __cplusplus -} -#endif -#endif /* _SYS_FS_ZFS_ACL_H */ diff --git a/module/zfs/include/sys/zfs_context.h b/module/zfs/include/sys/zfs_context.h deleted file mode 100644 index af9275b19..000000000 --- a/module/zfs/include/sys/zfs_context.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_ZFS_CONTEXT_H -#define _SYS_ZFS_CONTEXT_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include <sys/note.h> -#include <sys/types.h> -#include <sys/t_lock.h> -#include <sys/atomic.h> -#include <sys/sysmacros.h> -#include <sys/bitmap.h> -#include <sys/cmn_err.h> -#include <sys/kmem.h> -#include <sys/taskq.h> -#include <sys/buf.h> -#include <sys/param.h> -#include <sys/systm.h> -#include <sys/cpuvar.h> -#include <sys/kobj.h> -#include <sys/conf.h> -#include <sys/disp.h> -#include <sys/debug.h> -#include <sys/random.h> -#include <sys/byteorder.h> -#include <sys/systm.h> -#include <sys/list.h> -#include <sys/uio.h> -#include <sys/dirent.h> -#include <sys/time.h> -#include <vm/seg_kmem.h> -#include <sys/zone.h> -#include <sys/uio.h> -#include <sys/zfs_debug.h> -#include <sys/fm/fs/zfs.h> -#include <sys/sunddi.h> - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZFS_CONTEXT_H */ diff --git a/module/zfs/include/sys/zfs_ctldir.h b/module/zfs/include/sys/zfs_ctldir.h deleted file mode 100644 index f88ef95fd..000000000 --- a/module/zfs/include/sys/zfs_ctldir.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _ZFS_CTLDIR_H -#define _ZFS_CTLDIR_H - -#include <sys/pathname.h> -#include <sys/vnode.h> -#include <sys/zfs_vfsops.h> -#include <sys/zfs_znode.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define ZFS_CTLDIR_NAME ".zfs" - -#define zfs_has_ctldir(zdp) \ - ((zdp)->z_id == (zdp)->z_zfsvfs->z_root && \ - ((zdp)->z_zfsvfs->z_ctldir != NULL)) -#define zfs_show_ctldir(zdp) \ - (zfs_has_ctldir(zdp) && \ - ((zdp)->z_zfsvfs->z_show_ctldir)) - -void zfsctl_create(zfsvfs_t *); -void zfsctl_destroy(zfsvfs_t *); -vnode_t *zfsctl_root(znode_t *); -void zfsctl_init(void); -void zfsctl_fini(void); -boolean_t zfsctl_is_node(vnode_t *); - -int zfsctl_rename_snapshot(const char *from, const char *to); -int zfsctl_destroy_snapshot(const char *snapname, int force); -int zfsctl_umount_snapshots(vfs_t *, int, cred_t *); - -int zfsctl_root_lookup(vnode_t *dvp, char *nm, vnode_t **vpp, pathname_t *pnp, - int flags, vnode_t *rdir, cred_t *cr, caller_context_t *ct, - int *direntflags, pathname_t *realpnp); - -int zfsctl_make_fid(zfsvfs_t *zfsvfsp, uint64_t object, uint32_t gen, - fid_t *fidp); -int zfsctl_lookup_objset(vfs_t *vfsp, uint64_t objsetid, zfsvfs_t **zfsvfsp); - -#define ZFSCTL_INO_ROOT 0x1 -#define ZFSCTL_INO_SNAPDIR 0x2 -#define ZFSCTL_INO_SHARES 0x3 - -#ifdef __cplusplus -} -#endif - -#endif /* _ZFS_CTLDIR_H */ diff --git a/module/zfs/include/sys/zfs_debug.h b/module/zfs/include/sys/zfs_debug.h deleted file mode 100644 index f08d7cd2b..000000000 --- a/module/zfs/include/sys/zfs_debug.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_ZFS_DEBUG_H -#define _SYS_ZFS_DEBUG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - -#ifndef FALSE -#define FALSE 0 -#endif - -/* - * ZFS debugging - */ - -#if defined(DEBUG) || !defined(_KERNEL) -#define ZFS_DEBUG -#endif - -extern int zfs_flags; - -#define ZFS_DEBUG_DPRINTF 0x0001 -#define ZFS_DEBUG_DBUF_VERIFY 0x0002 -#define ZFS_DEBUG_DNODE_VERIFY 0x0004 -#define ZFS_DEBUG_SNAPNAMES 0x0008 -#define ZFS_DEBUG_MODIFY 0x0010 - -#ifdef ZFS_DEBUG -#if defined(_KERNEL) && defined(HAVE_SPL) -/* - * Log ZFS debug messages as the spl SS_USER1 subsystem. - */ -#include <spl-debug.h> - -#ifdef SS_DEBUG_SUBSYS -#undef SS_DEBUG_SUBSYS -#endif -#define SS_DEBUG_SUBSYS SS_USER1 -#define dprintf(...) SDEBUG_LIMIT(SD_DPRINTF, __VA_ARGS__) -#else -extern void __dprintf(const char *file, const char *func, - int line, const char *fmt, ...); -#define dprintf(...) \ - if (zfs_flags & ZFS_DEBUG_DPRINTF) \ - __dprintf(__FILE__, __func__, __LINE__, __VA_ARGS__) -#endif /* _KERNEL && HAVE_SPL */ -#else -#define dprintf(...) ((void)0) -#endif /* ZFS_DEBUG */ - -extern void zfs_panic_recover(const char *fmt, ...); - -typedef struct zfs_dbgmsg { - list_node_t zdm_node; - time_t zdm_timestamp; - char zdm_msg[1]; /* variable length allocation */ -} zfs_dbgmsg_t; - -extern void zfs_dbgmsg_init(void); -extern void zfs_dbgmsg_fini(void); -extern void zfs_dbgmsg(const char *fmt, ...); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZFS_DEBUG_H */ diff --git a/module/zfs/include/sys/zfs_dir.h b/module/zfs/include/sys/zfs_dir.h deleted file mode 100644 index 349f8ef37..000000000 --- a/module/zfs/include/sys/zfs_dir.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_FS_ZFS_DIR_H -#define _SYS_FS_ZFS_DIR_H - -#include <sys/pathname.h> -#include <sys/dmu.h> -#include <sys/zfs_znode.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* zfs_dirent_lock() flags */ -#define ZNEW 0x0001 /* entry should not exist */ -#define ZEXISTS 0x0002 /* entry should exist */ -#define ZSHARED 0x0004 /* shared access (zfs_dirlook()) */ -#define ZXATTR 0x0008 /* we want the xattr dir */ -#define ZRENAMING 0x0010 /* znode is being renamed */ -#define ZCILOOK 0x0020 /* case-insensitive lookup requested */ -#define ZCIEXACT 0x0040 /* c-i requires c-s match (rename) */ -#define ZHAVELOCK 0x0080 /* z_name_lock is already held */ - -/* mknode flags */ -#define IS_ROOT_NODE 0x01 /* create a root node */ -#define IS_XATTR 0x02 /* create an extended attribute node */ - -extern int zfs_dirent_lock(zfs_dirlock_t **, znode_t *, char *, znode_t **, - int, int *, pathname_t *); -extern void zfs_dirent_unlock(zfs_dirlock_t *); -extern int zfs_link_create(zfs_dirlock_t *, znode_t *, dmu_tx_t *, int); -extern int zfs_link_destroy(zfs_dirlock_t *, znode_t *, dmu_tx_t *, int, - boolean_t *); -extern int zfs_dirlook(znode_t *, char *, vnode_t **, int, int *, - pathname_t *); -extern void zfs_mknode(znode_t *, vattr_t *, dmu_tx_t *, cred_t *, - uint_t, znode_t **, zfs_acl_ids_t *); -extern void zfs_rmnode(znode_t *); -extern void zfs_dl_name_switch(zfs_dirlock_t *dl, char *new, char **old); -extern boolean_t zfs_dirempty(znode_t *); -extern void zfs_unlinked_add(znode_t *, dmu_tx_t *); -extern void zfs_unlinked_drain(zfsvfs_t *zfsvfs); -extern int zfs_sticky_remove_access(znode_t *, znode_t *, cred_t *cr); -extern int zfs_get_xattrdir(znode_t *, vnode_t **, cred_t *, int); -extern int zfs_make_xattrdir(znode_t *, vattr_t *, vnode_t **, cred_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FS_ZFS_DIR_H */ diff --git a/module/zfs/include/sys/zfs_fuid.h b/module/zfs/include/sys/zfs_fuid.h deleted file mode 100644 index d2989c852..000000000 --- a/module/zfs/include/sys/zfs_fuid.h +++ /dev/null @@ -1,134 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_FS_ZFS_FUID_H -#define _SYS_FS_ZFS_FUID_H - -#ifdef _KERNEL -#include <sys/kidmap.h> -#include <sys/sid.h> -#include <sys/dmu.h> -#include <sys/zfs_vfsops.h> -#endif -#include <sys/avl.h> -#include <sys/list.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef enum { - ZFS_OWNER, - ZFS_GROUP, - ZFS_ACE_USER, - ZFS_ACE_GROUP -} zfs_fuid_type_t; - -/* - * Estimate space needed for one more fuid table entry. - * for now assume its current size + 1K - */ -#define FUID_SIZE_ESTIMATE(z) ((z)->z_fuid_size + (SPA_MINBLOCKSIZE << 1)) - -#define FUID_INDEX(x) ((x) >> 32) -#define FUID_RID(x) ((x) & 0xffffffff) -#define FUID_ENCODE(idx, rid) (((uint64_t)(idx) << 32) | (rid)) -/* - * FUIDs cause problems for the intent log - * we need to replay the creation of the FUID, - * but we can't count on the idmapper to be around - * and during replay the FUID index may be different than - * before. Also, if an ACL has 100 ACEs and 12 different - * domains we don't want to log 100 domain strings, but rather - * just the unique 12. - */ - -/* - * The FUIDs in the log will index into - * domain string table and the bottom half will be the rid. - * Used for mapping ephemeral uid/gid during ACL setting to FUIDs - */ -typedef struct zfs_fuid { - list_node_t z_next; - uint64_t z_id; /* uid/gid being converted to fuid */ - uint64_t z_domidx; /* index in AVL domain table */ - uint64_t z_logfuid; /* index for domain in log */ -} zfs_fuid_t; - -/* list of unique domains */ -typedef struct zfs_fuid_domain { - list_node_t z_next; - uint64_t z_domidx; /* AVL tree idx */ - const char *z_domain; /* domain string */ -} zfs_fuid_domain_t; - -/* - * FUID information necessary for logging create, setattr, and setacl. - */ -typedef struct zfs_fuid_info { - list_t z_fuids; - list_t z_domains; - uint64_t z_fuid_owner; - uint64_t z_fuid_group; - char **z_domain_table; /* Used during replay */ - uint32_t z_fuid_cnt; /* How many fuids in z_fuids */ - uint32_t z_domain_cnt; /* How many domains */ - size_t z_domain_str_sz; /* len of domain strings z_domain list */ -} zfs_fuid_info_t; - -#ifdef _KERNEL -#ifdef HAVE_ZPL -struct znode; -extern uid_t zfs_fuid_map_id(zfsvfs_t *, uint64_t, cred_t *, zfs_fuid_type_t); -extern void zfs_fuid_node_add(zfs_fuid_info_t **, const char *, uint32_t, - uint64_t, uint64_t, zfs_fuid_type_t); -extern void zfs_fuid_destroy(zfsvfs_t *); -extern uint64_t zfs_fuid_create_cred(zfsvfs_t *, zfs_fuid_type_t, - cred_t *, zfs_fuid_info_t **); -extern uint64_t zfs_fuid_create(zfsvfs_t *, uint64_t, cred_t *, zfs_fuid_type_t, - zfs_fuid_info_t **); -extern void zfs_fuid_map_ids(struct znode *zp, cred_t *cr, - uid_t *uid, uid_t *gid); -extern zfs_fuid_info_t *zfs_fuid_info_alloc(void); -extern void zfs_fuid_info_free(zfs_fuid_info_t *); -extern boolean_t zfs_groupmember(zfsvfs_t *, uint64_t, cred_t *); -void zfs_fuid_sync(zfsvfs_t *, dmu_tx_t *); -extern int zfs_fuid_find_by_domain(zfsvfs_t *, const char *domain, - char **retdomain, boolean_t addok); -extern const char *zfs_fuid_find_by_idx(zfsvfs_t *zfsvfs, uint32_t idx); -extern void zfs_fuid_txhold(zfsvfs_t *zfsvfs, dmu_tx_t *tx); -#endif /* HAVE_ZPL */ -#endif - -char *zfs_fuid_idx_domain(avl_tree_t *, uint32_t); -void zfs_fuid_avl_tree_create(avl_tree_t *, avl_tree_t *); -uint64_t zfs_fuid_table_load(objset_t *, uint64_t, avl_tree_t *, avl_tree_t *); -void zfs_fuid_table_destroy(avl_tree_t *, avl_tree_t *); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FS_ZFS_FUID_H */ diff --git a/module/zfs/include/sys/zfs_ioctl.h b/module/zfs/include/sys/zfs_ioctl.h deleted file mode 100644 index e3fd2c3fc..000000000 --- a/module/zfs/include/sys/zfs_ioctl.h +++ /dev/null @@ -1,345 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_ZFS_IOCTL_H -#define _SYS_ZFS_IOCTL_H - -#include <sys/cred.h> -#include <sys/dmu.h> -#include <sys/zio.h> -#include <sys/dsl_deleg.h> -#include <sys/spa.h> -#include <sys/zfs_stat.h> - -#ifdef _KERNEL -#include <sys/nvpair.h> -#endif /* _KERNEL */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Property values for snapdir - */ -#define ZFS_SNAPDIR_HIDDEN 0 -#define ZFS_SNAPDIR_VISIBLE 1 - -/* - * Field manipulation macros for the drr_versioninfo field of the - * send stream header. - */ - -/* - * Header types for zfs send streams. - */ -typedef enum drr_headertype { - DMU_SUBSTREAM = 0x1, - DMU_COMPOUNDSTREAM = 0x2 -} drr_headertype_t; - -#define DMU_GET_STREAM_HDRTYPE(vi) BF64_GET((vi), 0, 2) -#define DMU_SET_STREAM_HDRTYPE(vi, x) BF64_SET((vi), 0, 2, x) - -#define DMU_GET_FEATUREFLAGS(vi) BF64_GET((vi), 2, 30) -#define DMU_SET_FEATUREFLAGS(vi, x) BF64_SET((vi), 2, 30, x) - -/* - * Feature flags for zfs send streams (flags in drr_versioninfo) - */ - -#define DMU_BACKUP_FEATURE_DEDUP (0x1) -#define DMU_BACKUP_FEATURE_DEDUPPROPS (0x2) -#define DMU_BACKUP_FEATURE_SA_SPILL (0x4) - -/* - * Mask of all supported backup features - */ -#define DMU_BACKUP_FEATURE_MASK (DMU_BACKUP_FEATURE_DEDUP | \ - DMU_BACKUP_FEATURE_DEDUPPROPS | DMU_BACKUP_FEATURE_SA_SPILL) - -/* Are all features in the given flag word currently supported? */ -#define DMU_STREAM_SUPPORTED(x) (!((x) & ~DMU_BACKUP_FEATURE_MASK)) - -/* - * The drr_versioninfo field of the dmu_replay_record has the - * following layout: - * - * 64 56 48 40 32 24 16 8 0 - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * | reserved | feature-flags |C|S| - * +-------+-------+-------+-------+-------+-------+-------+-------+ - * - * The low order two bits indicate the header type: SUBSTREAM (0x1) - * or COMPOUNDSTREAM (0x2). Using two bits for this is historical: - * this field used to be a version number, where the two version types - * were 1 and 2. Using two bits for this allows earlier versions of - * the code to be able to recognize send streams that don't use any - * of the features indicated by feature flags. - */ - -#define DMU_BACKUP_MAGIC 0x2F5bacbacULL - -#define DRR_FLAG_CLONE (1<<0) -#define DRR_FLAG_CI_DATA (1<<1) - -/* - * flags in the drr_checksumflags field in the DRR_WRITE and - * DRR_WRITE_BYREF blocks - */ -#define DRR_CHECKSUM_DEDUP (1<<0) - -#define DRR_IS_DEDUP_CAPABLE(flags) ((flags) & DRR_CHECKSUM_DEDUP) - -/* - * zfs ioctl command structure - */ -typedef struct dmu_replay_record { - enum { - DRR_BEGIN, DRR_OBJECT, DRR_FREEOBJECTS, - DRR_WRITE, DRR_FREE, DRR_END, DRR_WRITE_BYREF, - DRR_SPILL, DRR_NUMTYPES - } drr_type; - uint32_t drr_payloadlen; - union { - struct drr_begin { - uint64_t drr_magic; - uint64_t drr_versioninfo; /* was drr_version */ - uint64_t drr_creation_time; - dmu_objset_type_t drr_type; - uint32_t drr_flags; - uint64_t drr_toguid; - uint64_t drr_fromguid; - char drr_toname[MAXNAMELEN]; - } drr_begin; - struct drr_end { - zio_cksum_t drr_checksum; - uint64_t drr_toguid; - } drr_end; - struct drr_object { - uint64_t drr_object; - dmu_object_type_t drr_type; - dmu_object_type_t drr_bonustype; - uint32_t drr_blksz; - uint32_t drr_bonuslen; - uint8_t drr_checksumtype; - uint8_t drr_compress; - uint8_t drr_pad[6]; - uint64_t drr_toguid; - /* bonus content follows */ - } drr_object; - struct drr_freeobjects { - uint64_t drr_firstobj; - uint64_t drr_numobjs; - uint64_t drr_toguid; - } drr_freeobjects; - struct drr_write { - uint64_t drr_object; - dmu_object_type_t drr_type; - uint32_t drr_pad; - uint64_t drr_offset; - uint64_t drr_length; - uint64_t drr_toguid; - uint8_t drr_checksumtype; - uint8_t drr_checksumflags; - uint8_t drr_pad2[6]; - ddt_key_t drr_key; /* deduplication key */ - /* content follows */ - } drr_write; - struct drr_free { - uint64_t drr_object; - uint64_t drr_offset; - uint64_t drr_length; - uint64_t drr_toguid; - } drr_free; - struct drr_write_byref { - /* where to put the data */ - uint64_t drr_object; - uint64_t drr_offset; - uint64_t drr_length; - uint64_t drr_toguid; - /* where to find the prior copy of the data */ - uint64_t drr_refguid; - uint64_t drr_refobject; - uint64_t drr_refoffset; - /* properties of the data */ - uint8_t drr_checksumtype; - uint8_t drr_checksumflags; - uint8_t drr_pad2[6]; - ddt_key_t drr_key; /* deduplication key */ - } drr_write_byref; - struct drr_spill { - uint64_t drr_object; - uint64_t drr_length; - uint64_t drr_toguid; - uint64_t drr_pad[4]; /* needed for crypto */ - /* spill data follows */ - } drr_spill; - } drr_u; -} dmu_replay_record_t; - -/* diff record range types */ -typedef enum diff_type { - DDR_NONE = 0x1, - DDR_INUSE = 0x2, - DDR_FREE = 0x4 -} diff_type_t; - -/* - * The diff reports back ranges of free or in-use objects. - */ -typedef struct dmu_diff_record { - uint64_t ddr_type; - uint64_t ddr_first; - uint64_t ddr_last; -} dmu_diff_record_t; - -typedef struct zinject_record { - uint64_t zi_objset; - uint64_t zi_object; - uint64_t zi_start; - uint64_t zi_end; - uint64_t zi_guid; - uint32_t zi_level; - uint32_t zi_error; - uint64_t zi_type; - uint32_t zi_freq; - uint32_t zi_failfast; - char zi_func[MAXNAMELEN]; - uint32_t zi_iotype; - int32_t zi_duration; - uint64_t zi_timer; -} zinject_record_t; - -#define ZINJECT_NULL 0x1 -#define ZINJECT_FLUSH_ARC 0x2 -#define ZINJECT_UNLOAD_SPA 0x4 - -#define ZEVENT_NONBLOCK 0x1 -#define ZEVENT_SIZE 1024 - -typedef struct zfs_share { - uint64_t z_exportdata; - uint64_t z_sharedata; - uint64_t z_sharetype; /* 0 = share, 1 = unshare */ - uint64_t z_sharemax; /* max length of share string */ -} zfs_share_t; - -/* - * ZFS file systems may behave the usual, POSIX-compliant way, where - * name lookups are case-sensitive. They may also be set up so that - * all the name lookups are case-insensitive, or so that only some - * lookups, the ones that set an FIGNORECASE flag, are case-insensitive. - */ -typedef enum zfs_case { - ZFS_CASE_SENSITIVE, - ZFS_CASE_INSENSITIVE, - ZFS_CASE_MIXED -} zfs_case_t; - -typedef struct zfs_cmd { - char zc_name[MAXPATHLEN]; - char zc_value[MAXPATHLEN * 2]; - char zc_string[MAXNAMELEN]; - char zc_top_ds[MAXPATHLEN]; - uint64_t zc_guid; - uint64_t zc_nvlist_conf; /* really (char *) */ - uint64_t zc_nvlist_conf_size; - uint64_t zc_nvlist_src; /* really (char *) */ - uint64_t zc_nvlist_src_size; - uint64_t zc_nvlist_dst; /* really (char *) */ - uint64_t zc_nvlist_dst_size; - uint64_t zc_cookie; - uint64_t zc_objset_type; - uint64_t zc_perm_action; - uint64_t zc_history; /* really (char *) */ - uint64_t zc_history_len; - uint64_t zc_history_offset; - uint64_t zc_obj; - uint64_t zc_iflags; /* internal to zfs(7fs) */ - zfs_share_t zc_share; - dmu_objset_stats_t zc_objset_stats; - struct drr_begin zc_begin_record; - zinject_record_t zc_inject_record; - boolean_t zc_defer_destroy; - boolean_t zc_temphold; - uint64_t zc_action_handle; - int zc_cleanup_fd; - uint8_t zc_pad[4]; /* alignment */ - uint64_t zc_sendobj; - uint64_t zc_fromobj; - uint64_t zc_createtxg; - zfs_stat_t zc_stat; -} zfs_cmd_t; - -typedef struct zfs_useracct { - char zu_domain[256]; - uid_t zu_rid; - uint32_t zu_pad; - uint64_t zu_space; -} zfs_useracct_t; - -#define ZFSDEV_MAX_MINOR (1 << 16) -#define ZFS_MIN_MINOR (ZFSDEV_MAX_MINOR + 1) - -#define ZPOOL_EXPORT_AFTER_SPLIT 0x1 - -#ifdef _KERNEL - -typedef struct zfs_creat { - nvlist_t *zct_zplprops; - nvlist_t *zct_props; -} zfs_creat_t; - -extern int zfs_secpolicy_snapshot_perms(const char *name, cred_t *cr); -extern int zfs_secpolicy_rename_perms(const char *from, - const char *to, cred_t *cr); -extern int zfs_secpolicy_destroy_perms(const char *name, cred_t *cr); -extern int zfs_unmount_snap(const char *, void *); - -enum zfsdev_state_type { - ZST_ONEXIT, - ZST_ZEVENT, - ZST_ALL, -}; - -typedef struct zfsdev_state { - list_node_t zs_next; /* next zfsdev_state_t link */ - struct file *zs_file; /* associated file struct */ - minor_t zs_minor; /* made up minor number */ - void *zs_onexit; /* onexit data */ - void *zs_zevent; /* zevent data */ -} zfsdev_state_t; - -extern void *zfsdev_get_state(minor_t minor, enum zfsdev_state_type which); -extern minor_t zfsdev_getminor(struct file *filp); -extern minor_t zfsdev_minor_alloc(void); - -#endif /* _KERNEL */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZFS_IOCTL_H */ diff --git a/module/zfs/include/sys/zfs_onexit.h b/module/zfs/include/sys/zfs_onexit.h deleted file mode 100644 index 4982bd4d0..000000000 --- a/module/zfs/include/sys/zfs_onexit.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_ZFS_ONEXIT_H -#define _SYS_ZFS_ONEXIT_H - -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _KERNEL - -typedef struct zfs_onexit { - kmutex_t zo_lock; - list_t zo_actions; -} zfs_onexit_t; - -typedef struct zfs_onexit_action_node { - list_node_t za_link; - void (*za_func)(void *); - void *za_data; -} zfs_onexit_action_node_t; - -extern void zfs_onexit_init(zfs_onexit_t **zo); -extern void zfs_onexit_destroy(zfs_onexit_t *zo); - -#endif - -extern int zfs_onexit_fd_hold(int fd, minor_t *minorp); -extern void zfs_onexit_fd_rele(int fd); -extern int zfs_onexit_add_cb(minor_t minor, void (*func)(void *), void *data, - uint64_t *action_handle); -extern int zfs_onexit_del_cb(minor_t minor, uint64_t action_handle, - boolean_t fire); -extern int zfs_onexit_cb_data(minor_t minor, uint64_t action_handle, - void **data); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZFS_ONEXIT_H */ diff --git a/module/zfs/include/sys/zfs_rlock.h b/module/zfs/include/sys/zfs_rlock.h deleted file mode 100644 index 722c341e2..000000000 --- a/module/zfs/include/sys/zfs_rlock.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_FS_ZFS_RLOCK_H -#define _SYS_FS_ZFS_RLOCK_H - - - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef _KERNEL - -#include <sys/zfs_znode.h> - -typedef enum { - RL_READER, - RL_WRITER, - RL_APPEND -} rl_type_t; - -typedef struct rl { - znode_t *r_zp; /* znode this lock applies to */ - avl_node_t r_node; /* avl node link */ - uint64_t r_off; /* file range offset */ - uint64_t r_len; /* file range length */ - uint_t r_cnt; /* range reference count in tree */ - rl_type_t r_type; /* range type */ - kcondvar_t r_wr_cv; /* cv for waiting writers */ - kcondvar_t r_rd_cv; /* cv for waiting readers */ - uint8_t r_proxy; /* acting for original range */ - uint8_t r_write_wanted; /* writer wants to lock this range */ - uint8_t r_read_wanted; /* reader wants to lock this range */ -} rl_t; - -/* - * Lock a range (offset, length) as either shared (READER) - * or exclusive (WRITER or APPEND). APPEND is a special type that - * is converted to WRITER that specified to lock from the start of the - * end of file. zfs_range_lock() returns the range lock structure. - */ -rl_t *zfs_range_lock(znode_t *zp, uint64_t off, uint64_t len, rl_type_t type); - -/* - * Unlock range and destroy range lock structure. - */ -void zfs_range_unlock(rl_t *rl); - -/* - * Reduce range locked as RW_WRITER from whole file to specified range. - * Asserts the whole file was previously locked. - */ -void zfs_range_reduce(rl_t *rl, uint64_t off, uint64_t len); - -/* - * AVL comparison function used to compare range locks - */ -int zfs_range_compare(const void *arg1, const void *arg2); - -#endif /* _KERNEL */ - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FS_ZFS_RLOCK_H */ diff --git a/module/zfs/include/sys/zfs_sa.h b/module/zfs/include/sys/zfs_sa.h deleted file mode 100644 index cd312b27a..000000000 --- a/module/zfs/include/sys/zfs_sa.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_ZFS_SA_H -#define _SYS_ZFS_SA_H - -#ifdef _KERNEL -#include <sys/types32.h> -#include <sys/list.h> -#include <sys/dmu.h> -#include <sys/zfs_acl.h> -#include <sys/zfs_znode.h> -#include <sys/sa.h> -#include <sys/zil.h> - - -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * This is the list of known attributes - * to the ZPL. The values of the actual - * attributes are not defined by the order - * the enums. It is controlled by the attribute - * registration mechanism. Two different file system - * could have different numeric values for the same - * attributes. this list is only used for dereferencing - * into the table that will hold the actual numeric value. - */ -typedef enum zpl_attr { - ZPL_ATIME, - ZPL_MTIME, - ZPL_CTIME, - ZPL_CRTIME, - ZPL_GEN, - ZPL_MODE, - ZPL_SIZE, - ZPL_PARENT, - ZPL_LINKS, - ZPL_XATTR, - ZPL_RDEV, - ZPL_FLAGS, - ZPL_UID, - ZPL_GID, - ZPL_PAD, - ZPL_ZNODE_ACL, - ZPL_DACL_COUNT, - ZPL_SYMLINK, - ZPL_SCANSTAMP, - ZPL_DACL_ACES, - ZPL_END -} zpl_attr_t; - -#define ZFS_OLD_ZNODE_PHYS_SIZE 0x108 -#define ZFS_SA_BASE_ATTR_SIZE (ZFS_OLD_ZNODE_PHYS_SIZE - \ - sizeof (zfs_acl_phys_t)) - -#define SA_MODE_OFFSET 0 -#define SA_SIZE_OFFSET 8 -#define SA_GEN_OFFSET 16 -#define SA_UID_OFFSET 24 -#define SA_GID_OFFSET 32 -#define SA_PARENT_OFFSET 40 - -extern sa_attr_reg_t zfs_attr_table[ZPL_END + 1]; -extern sa_attr_reg_t zfs_legacy_attr_table[ZPL_END + 1]; - -/* - * This is a deprecated data structure that only exists for - * dealing with file systems create prior to ZPL version 5. - */ -typedef struct znode_phys { - uint64_t zp_atime[2]; /* 0 - last file access time */ - uint64_t zp_mtime[2]; /* 16 - last file modification time */ - uint64_t zp_ctime[2]; /* 32 - last file change time */ - uint64_t zp_crtime[2]; /* 48 - creation time */ - uint64_t zp_gen; /* 64 - generation (txg of creation) */ - uint64_t zp_mode; /* 72 - file mode bits */ - uint64_t zp_size; /* 80 - size of file */ - uint64_t zp_parent; /* 88 - directory parent (`..') */ - uint64_t zp_links; /* 96 - number of links to file */ - uint64_t zp_xattr; /* 104 - DMU object for xattrs */ - uint64_t zp_rdev; /* 112 - dev_t for VBLK & VCHR files */ - uint64_t zp_flags; /* 120 - persistent flags */ - uint64_t zp_uid; /* 128 - file owner */ - uint64_t zp_gid; /* 136 - owning group */ - uint64_t zp_zap; /* 144 - extra attributes */ - uint64_t zp_pad[3]; /* 152 - future */ - zfs_acl_phys_t zp_acl; /* 176 - 263 ACL */ - /* - * Data may pad out any remaining bytes in the znode buffer, eg: - * - * |<---------------------- dnode_phys (512) ------------------------>| - * |<-- dnode (192) --->|<----------- "bonus" buffer (320) ---------->| - * |<---- znode (264) ---->|<---- data (56) ---->| - * - * At present, we use this space for the following: - * - symbolic links - * - 32-byte anti-virus scanstamp (regular files only) - */ -} znode_phys_t; - -#ifdef _KERNEL -int zfs_sa_readlink(struct znode *, uio_t *); -void zfs_sa_symlink(struct znode *, char *link, int len, dmu_tx_t *); -void zfs_sa_upgrade(struct sa_handle *, dmu_tx_t *); -void zfs_sa_get_scanstamp(struct znode *, xvattr_t *); -void zfs_sa_set_scanstamp(struct znode *, xvattr_t *, dmu_tx_t *); -void zfs_sa_uprade_pre(struct sa_handle *, void *, dmu_tx_t *); -void zfs_sa_upgrade_post(struct sa_handle *, void *, dmu_tx_t *); -void zfs_sa_upgrade_txholds(dmu_tx_t *, struct znode *); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZFS_SA_H */ diff --git a/module/zfs/include/sys/zfs_stat.h b/module/zfs/include/sys/zfs_stat.h deleted file mode 100644 index 465aefaa2..000000000 --- a/module/zfs/include/sys/zfs_stat.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_FS_ZFS_STAT_H -#define _SYS_FS_ZFS_STAT_H - -#ifdef _KERNEL -#include <sys/isa_defs.h> -#include <sys/types32.h> -#include <sys/dmu.h> -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * A limited number of zpl level stats are retrievable - * with an ioctl. zfs diff is the current consumer. - */ -typedef struct zfs_stat { - uint64_t zs_gen; - uint64_t zs_mode; - uint64_t zs_links; - uint64_t zs_ctime[2]; -} zfs_stat_t; - -extern int zfs_obj_to_stats(objset_t *osp, uint64_t obj, zfs_stat_t *sb, - char *buf, int len); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FS_ZFS_STAT_H */ diff --git a/module/zfs/include/sys/zfs_vfsops.h b/module/zfs/include/sys/zfs_vfsops.h deleted file mode 100644 index 38c87df43..000000000 --- a/module/zfs/include/sys/zfs_vfsops.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_FS_ZFS_VFSOPS_H -#define _SYS_FS_ZFS_VFSOPS_H - -#include <sys/isa_defs.h> -#include <sys/types32.h> -#include <sys/list.h> -#include <sys/vfs.h> -#include <sys/zil.h> -#include <sys/sa.h> -#include <sys/rrwlock.h> -#include <sys/zfs_ioctl.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct zfsvfs zfsvfs_t; -struct znode; - -struct zfsvfs { - vfs_t *z_vfs; /* generic fs struct */ - zfsvfs_t *z_parent; /* parent fs */ - objset_t *z_os; /* objset reference */ - uint64_t z_root; /* id of root znode */ - uint64_t z_unlinkedobj; /* id of unlinked zapobj */ - uint64_t z_max_blksz; /* maximum block size for files */ - uint64_t z_fuid_obj; /* fuid table object number */ - uint64_t z_fuid_size; /* fuid table size */ - avl_tree_t z_fuid_idx; /* fuid tree keyed by index */ - avl_tree_t z_fuid_domain; /* fuid tree keyed by domain */ - krwlock_t z_fuid_lock; /* fuid lock */ - boolean_t z_fuid_loaded; /* fuid tables are loaded */ - boolean_t z_fuid_dirty; /* need to sync fuid table ? */ - struct zfs_fuid_info *z_fuid_replay; /* fuid info for replay */ - zilog_t *z_log; /* intent log pointer */ - uint_t z_acl_inherit; /* acl inheritance behavior */ - zfs_case_t z_case; /* case-sense */ - boolean_t z_utf8; /* utf8-only */ - int z_norm; /* normalization flags */ - boolean_t z_atime; /* enable atimes mount option */ - boolean_t z_unmounted; /* unmounted */ - rrwlock_t z_teardown_lock; - krwlock_t z_teardown_inactive_lock; - list_t z_all_znodes; /* all vnodes in the fs */ - kmutex_t z_znodes_lock; /* lock for z_all_znodes */ - vnode_t *z_ctldir; /* .zfs directory pointer */ - boolean_t z_show_ctldir; /* expose .zfs in the root dir */ - boolean_t z_issnap; /* true if this is a snapshot */ - boolean_t z_vscan; /* virus scan on/off */ - boolean_t z_use_fuids; /* version allows fuids */ - boolean_t z_replay; /* set during ZIL replay */ - boolean_t z_use_sa; /* version allow system attributes */ - uint64_t z_version; /* ZPL version */ - uint64_t z_shares_dir; /* hidden shares dir */ - kmutex_t z_lock; - uint64_t z_userquota_obj; - uint64_t z_groupquota_obj; - uint64_t z_replay_eof; /* New end of file - replay only */ - sa_attr_type_t *z_attr_table; /* SA attr mapping->id */ -#define ZFS_OBJ_MTX_SZ 64 - kmutex_t z_hold_mtx[ZFS_OBJ_MTX_SZ]; /* znode hold locks */ -}; - -/* - * Normal filesystems (those not under .zfs/snapshot) have a total - * file ID size limited to 12 bytes (including the length field) due to - * NFSv2 protocol's limitation of 32 bytes for a filehandle. For historical - * reasons, this same limit is being imposed by the Solaris NFSv3 implementation - * (although the NFSv3 protocol actually permits a maximum of 64 bytes). It - * is not possible to expand beyond 12 bytes without abandoning support - * of NFSv2. - * - * For normal filesystems, we partition up the available space as follows: - * 2 bytes fid length (required) - * 6 bytes object number (48 bits) - * 4 bytes generation number (32 bits) - * - * We reserve only 48 bits for the object number, as this is the limit - * currently defined and imposed by the DMU. - */ -typedef struct zfid_short { - uint16_t zf_len; - uint8_t zf_object[6]; /* obj[i] = obj >> (8 * i) */ - uint8_t zf_gen[4]; /* gen[i] = gen >> (8 * i) */ -} zfid_short_t; - -/* - * Filesystems under .zfs/snapshot have a total file ID size of 22 bytes - * (including the length field). This makes files under .zfs/snapshot - * accessible by NFSv3 and NFSv4, but not NFSv2. - * - * For files under .zfs/snapshot, we partition up the available space - * as follows: - * 2 bytes fid length (required) - * 6 bytes object number (48 bits) - * 4 bytes generation number (32 bits) - * 6 bytes objset id (48 bits) - * 4 bytes currently just zero (32 bits) - * - * We reserve only 48 bits for the object number and objset id, as these are - * the limits currently defined and imposed by the DMU. - */ -typedef struct zfid_long { - zfid_short_t z_fid; - uint8_t zf_setid[6]; /* obj[i] = obj >> (8 * i) */ - uint8_t zf_setgen[4]; /* gen[i] = gen >> (8 * i) */ -} zfid_long_t; - -#define SHORT_FID_LEN (sizeof (zfid_short_t) - sizeof (uint16_t)) -#define LONG_FID_LEN (sizeof (zfid_long_t) - sizeof (uint16_t)) - -extern uint_t zfs_fsyncer_key; - -extern int zfs_suspend_fs(zfsvfs_t *zfsvfs); -extern int zfs_resume_fs(zfsvfs_t *zfsvfs, const char *osname); -extern int zfs_userspace_one(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type, - const char *domain, uint64_t rid, uint64_t *valuep); -extern int zfs_userspace_many(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type, - uint64_t *cookiep, void *vbuf, uint64_t *bufsizep); -extern int zfs_set_userquota(zfsvfs_t *zfsvfs, zfs_userquota_prop_t type, - const char *domain, uint64_t rid, uint64_t quota); -extern boolean_t zfs_owner_overquota(zfsvfs_t *zfsvfs, struct znode *, - boolean_t isgroup); -extern boolean_t zfs_fuid_overquota(zfsvfs_t *zfsvfs, boolean_t isgroup, - uint64_t fuid); -extern int zfs_set_version(zfsvfs_t *zfsvfs, uint64_t newvers); -extern int zfsvfs_create(const char *name, zfsvfs_t **zfvp); -extern void zfsvfs_free(zfsvfs_t *zfsvfs); -extern int zfs_check_global_label(const char *dsname, const char *hexsl); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FS_ZFS_VFSOPS_H */ diff --git a/module/zfs/include/sys/zfs_znode.h b/module/zfs/include/sys/zfs_znode.h deleted file mode 100644 index aa1f449ac..000000000 --- a/module/zfs/include/sys/zfs_znode.h +++ /dev/null @@ -1,366 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_FS_ZFS_ZNODE_H -#define _SYS_FS_ZFS_ZNODE_H - -#ifdef _KERNEL -#include <sys/isa_defs.h> -#include <sys/types32.h> -#include <sys/attr.h> -#include <sys/list.h> -#include <sys/dmu.h> -#include <sys/sa.h> -#include <sys/zfs_vfsops.h> -#include <sys/rrwlock.h> -#include <sys/zfs_sa.h> -#include <sys/zfs_stat.h> -#endif -#include <sys/zfs_acl.h> -#include <sys/zil.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Additional file level attributes, that are stored - * in the upper half of zp_flags - */ -#define ZFS_READONLY 0x0000000100000000ull -#define ZFS_HIDDEN 0x0000000200000000ull -#define ZFS_SYSTEM 0x0000000400000000ull -#define ZFS_ARCHIVE 0x0000000800000000ull -#define ZFS_IMMUTABLE 0x0000001000000000ull -#define ZFS_NOUNLINK 0x0000002000000000ull -#define ZFS_APPENDONLY 0x0000004000000000ull -#define ZFS_NODUMP 0x0000008000000000ull -#define ZFS_OPAQUE 0x0000010000000000ull -#define ZFS_AV_QUARANTINED 0x0000020000000000ull -#define ZFS_AV_MODIFIED 0x0000040000000000ull -#define ZFS_REPARSE 0x0000080000000000ull -#define ZFS_OFFLINE 0x0000100000000000ull -#define ZFS_SPARSE 0x0000200000000000ull - -#define ZFS_ATTR_SET(zp, attr, value, pflags, tx) \ -{ \ - if (value) \ - pflags |= attr; \ - else \ - pflags &= ~attr; \ - VERIFY(0 == sa_update(zp->z_sa_hdl, SA_ZPL_FLAGS(zp->z_zfsvfs), \ - &pflags, sizeof (pflags), tx)); \ -} - -/* - * Define special zfs pflags - */ -#define ZFS_XATTR 0x1 /* is an extended attribute */ -#define ZFS_INHERIT_ACE 0x2 /* ace has inheritable ACEs */ -#define ZFS_ACL_TRIVIAL 0x4 /* files ACL is trivial */ -#define ZFS_ACL_OBJ_ACE 0x8 /* ACL has CMPLX Object ACE */ -#define ZFS_ACL_PROTECTED 0x10 /* ACL protected */ -#define ZFS_ACL_DEFAULTED 0x20 /* ACL should be defaulted */ -#define ZFS_ACL_AUTO_INHERIT 0x40 /* ACL should be inherited */ -#define ZFS_BONUS_SCANSTAMP 0x80 /* Scanstamp in bonus area */ -#define ZFS_NO_EXECS_DENIED 0x100 /* exec was given to everyone */ - -#define SA_ZPL_ATIME(z) z->z_attr_table[ZPL_ATIME] -#define SA_ZPL_MTIME(z) z->z_attr_table[ZPL_MTIME] -#define SA_ZPL_CTIME(z) z->z_attr_table[ZPL_CTIME] -#define SA_ZPL_CRTIME(z) z->z_attr_table[ZPL_CRTIME] -#define SA_ZPL_GEN(z) z->z_attr_table[ZPL_GEN] -#define SA_ZPL_DACL_ACES(z) z->z_attr_table[ZPL_DACL_ACES] -#define SA_ZPL_XATTR(z) z->z_attr_table[ZPL_XATTR] -#define SA_ZPL_SYMLINK(z) z->z_attr_table[ZPL_SYMLINK] -#define SA_ZPL_RDEV(z) z->z_attr_table[ZPL_RDEV] -#define SA_ZPL_SCANSTAMP(z) z->z_attr_table[ZPL_SCANSTAMP] -#define SA_ZPL_UID(z) z->z_attr_table[ZPL_UID] -#define SA_ZPL_GID(z) z->z_attr_table[ZPL_GID] -#define SA_ZPL_PARENT(z) z->z_attr_table[ZPL_PARENT] -#define SA_ZPL_LINKS(z) z->z_attr_table[ZPL_LINKS] -#define SA_ZPL_MODE(z) z->z_attr_table[ZPL_MODE] -#define SA_ZPL_DACL_COUNT(z) z->z_attr_table[ZPL_DACL_COUNT] -#define SA_ZPL_FLAGS(z) z->z_attr_table[ZPL_FLAGS] -#define SA_ZPL_SIZE(z) z->z_attr_table[ZPL_SIZE] -#define SA_ZPL_ZNODE_ACL(z) z->z_attr_table[ZPL_ZNODE_ACL] -#define SA_ZPL_PAD(z) z->z_attr_table[ZPL_PAD] - -/* - * Is ID ephemeral? - */ -#define IS_EPHEMERAL(x) (x > MAXUID) - -/* - * Should we use FUIDs? - */ -#define USE_FUIDS(version, os) (version >= ZPL_VERSION_FUID && \ - spa_version(dmu_objset_spa(os)) >= SPA_VERSION_FUID) -#define USE_SA(version, os) (version >= ZPL_VERSION_SA && \ - spa_version(dmu_objset_spa(os)) >= SPA_VERSION_SA) - -#define MASTER_NODE_OBJ 1 - -/* - * Special attributes for master node. - * "userquota@" and "groupquota@" are also valid (from - * zfs_userquota_prop_prefixes[]). - */ -#define ZFS_FSID "FSID" -#define ZFS_UNLINKED_SET "DELETE_QUEUE" -#define ZFS_ROOT_OBJ "ROOT" -#define ZPL_VERSION_STR "VERSION" -#define ZFS_FUID_TABLES "FUID" -#define ZFS_SHARES_DIR "SHARES" -#define ZFS_SA_ATTRS "SA_ATTRS" - -#define ZFS_MAX_BLOCKSIZE (SPA_MAXBLOCKSIZE) - -/* Path component length */ -/* - * The generic fs code uses MAXNAMELEN to represent - * what the largest component length is. Unfortunately, - * this length includes the terminating NULL. ZFS needs - * to tell the users via pathconf() and statvfs() what the - * true maximum length of a component is, excluding the NULL. - */ -#define ZFS_MAXNAMELEN (MAXNAMELEN - 1) - -/* - * Convert mode bits (zp_mode) to BSD-style DT_* values for storing in - * the directory entries. On Linux systems this value is already - * defined correctly as part of the /usr/include/dirent.h header file. - */ -#ifndef IFTODT -#define IFTODT(mode) (((mode) & S_IFMT) >> 12) -#endif - -/* - * The directory entry has the type (currently unused on Solaris) in the - * top 4 bits, and the object number in the low 48 bits. The "middle" - * 12 bits are unused. - */ -#define ZFS_DIRENT_TYPE(de) BF64_GET(de, 60, 4) -#define ZFS_DIRENT_OBJ(de) BF64_GET(de, 0, 48) - -/* - * Directory entry locks control access to directory entries. - * They are used to protect creates, deletes, and renames. - * Each directory znode has a mutex and a list of locked names. - */ -#ifdef _KERNEL -typedef struct zfs_dirlock { - char *dl_name; /* directory entry being locked */ - uint32_t dl_sharecnt; /* 0 if exclusive, > 0 if shared */ - uint8_t dl_namelock; /* 1 if z_name_lock is NOT held */ - uint16_t dl_namesize; /* set if dl_name was allocated */ - kcondvar_t dl_cv; /* wait for entry to be unlocked */ - struct znode *dl_dzp; /* directory znode */ - struct zfs_dirlock *dl_next; /* next in z_dirlocks list */ -} zfs_dirlock_t; - -typedef struct znode { - struct zfsvfs *z_zfsvfs; - vnode_t *z_vnode; - uint64_t z_id; /* object ID for this znode */ - kmutex_t z_lock; /* znode modification lock */ - krwlock_t z_parent_lock; /* parent lock for directories */ - krwlock_t z_name_lock; /* "master" lock for dirent locks */ - zfs_dirlock_t *z_dirlocks; /* directory entry lock list */ - kmutex_t z_range_lock; /* protects changes to z_range_avl */ - avl_tree_t z_range_avl; /* avl tree of file range locks */ - uint8_t z_unlinked; /* file has been unlinked */ - uint8_t z_atime_dirty; /* atime needs to be synced */ - uint8_t z_zn_prefetch; /* Prefetch znodes? */ - uint8_t z_moved; /* Has this znode been moved? */ - uint_t z_blksz; /* block size in bytes */ - uint_t z_seq; /* modification sequence number */ - uint64_t z_mapcnt; /* number of pages mapped to file */ - uint64_t z_gen; /* generation (cached) */ - uint64_t z_size; /* file size (cached) */ - uint64_t z_atime[2]; /* atime (cached) */ - uint64_t z_links; /* file links (cached) */ - uint64_t z_pflags; /* pflags (cached) */ - uint64_t z_uid; /* uid fuid (cached) */ - uint64_t z_gid; /* gid fuid (cached) */ - mode_t z_mode; /* mode (cached) */ - uint32_t z_sync_cnt; /* synchronous open count */ - kmutex_t z_acl_lock; /* acl data lock */ - zfs_acl_t *z_acl_cached; /* cached acl */ - list_node_t z_link_node; /* all znodes in fs link */ - sa_handle_t *z_sa_hdl; /* handle to sa data */ - boolean_t z_is_sa; /* are we native sa? */ -} znode_t; - - -/* - * Range locking rules - * -------------------- - * 1. When truncating a file (zfs_create, zfs_setattr, zfs_space) the whole - * file range needs to be locked as RL_WRITER. Only then can the pages be - * freed etc and zp_size reset. zp_size must be set within range lock. - * 2. For writes and punching holes (zfs_write & zfs_space) just the range - * being written or freed needs to be locked as RL_WRITER. - * Multiple writes at the end of the file must coordinate zp_size updates - * to ensure data isn't lost. A compare and swap loop is currently used - * to ensure the file size is at least the offset last written. - * 3. For reads (zfs_read, zfs_get_data & zfs_putapage) just the range being - * read needs to be locked as RL_READER. A check against zp_size can then - * be made for reading beyond end of file. - */ - -/* - * Convert between znode pointers and vnode pointers - */ -#define ZTOV(ZP) ((ZP)->z_vnode) -#define VTOZ(VP) ((znode_t *)(VP)->v_data) - -/* - * ZFS_ENTER() is called on entry to each ZFS vnode and vfs operation. - * ZFS_EXIT() must be called before exitting the vop. - * ZFS_VERIFY_ZP() verifies the znode is valid. - */ -#define ZFS_ENTER(zfsvfs) \ - { \ - rrw_enter(&(zfsvfs)->z_teardown_lock, RW_READER, FTAG); \ - if ((zfsvfs)->z_unmounted) { \ - ZFS_EXIT(zfsvfs); \ - return (EIO); \ - } \ - } - -#define ZFS_EXIT(zfsvfs) rrw_exit(&(zfsvfs)->z_teardown_lock, FTAG) - -#define ZFS_VERIFY_ZP(zp) \ - if ((zp)->z_sa_hdl == NULL) { \ - ZFS_EXIT((zp)->z_zfsvfs); \ - return (EIO); \ - } \ - -/* - * Macros for dealing with dmu_buf_hold - */ -#define ZFS_OBJ_HASH(obj_num) ((obj_num) & (ZFS_OBJ_MTX_SZ - 1)) -#define ZFS_OBJ_MUTEX(zfsvfs, obj_num) \ - (&(zfsvfs)->z_hold_mtx[ZFS_OBJ_HASH(obj_num)]) -#define ZFS_OBJ_HOLD_ENTER(zfsvfs, obj_num) \ - mutex_enter(ZFS_OBJ_MUTEX((zfsvfs), (obj_num))) -#define ZFS_OBJ_HOLD_TRYENTER(zfsvfs, obj_num) \ - mutex_tryenter(ZFS_OBJ_MUTEX((zfsvfs), (obj_num))) -#define ZFS_OBJ_HOLD_EXIT(zfsvfs, obj_num) \ - mutex_exit(ZFS_OBJ_MUTEX((zfsvfs), (obj_num))) - -/* - * Macros to encode/decode ZFS stored time values from/to struct timespec - */ -#define ZFS_TIME_ENCODE(tp, stmp) \ -{ \ - (stmp)[0] = (uint64_t)(tp)->tv_sec; \ - (stmp)[1] = (uint64_t)(tp)->tv_nsec; \ -} - -#define ZFS_TIME_DECODE(tp, stmp) \ -{ \ - (tp)->tv_sec = (time_t)(stmp)[0]; \ - (tp)->tv_nsec = (long)(stmp)[1]; \ -} - -/* - * Timestamp defines - */ -#define ACCESSED (AT_ATIME) -#define STATE_CHANGED (AT_CTIME) -#define CONTENT_MODIFIED (AT_MTIME | AT_CTIME) - -#define ZFS_ACCESSTIME_STAMP(zfsvfs, zp) \ - if ((zfsvfs)->z_atime && !((zfsvfs)->z_vfs->vfs_flag & VFS_RDONLY)) \ - zfs_tstamp_update_setup(zp, ACCESSED, NULL, NULL, B_FALSE); - -extern int zfs_init_fs(zfsvfs_t *, znode_t **); -extern void zfs_set_dataprop(objset_t *); -extern void zfs_create_fs(objset_t *os, cred_t *cr, nvlist_t *, - dmu_tx_t *tx); -extern void zfs_tstamp_update_setup(znode_t *, uint_t, uint64_t [2], - uint64_t [2], boolean_t); -extern void zfs_grow_blocksize(znode_t *, uint64_t, dmu_tx_t *); -extern int zfs_freesp(znode_t *, uint64_t, uint64_t, int, boolean_t); -extern void zfs_znode_init(void); -extern void zfs_znode_fini(void); -extern int zfs_zget(zfsvfs_t *, uint64_t, znode_t **); -extern int zfs_rezget(znode_t *); -extern void zfs_zinactive(znode_t *); -extern void zfs_znode_delete(znode_t *, dmu_tx_t *); -extern void zfs_znode_free(znode_t *); -extern void zfs_remove_op_tables(void); -extern int zfs_create_op_tables(void); -extern int zfs_sync(vfs_t *vfsp, short flag, cred_t *cr); -extern dev_t zfs_cmpldev(uint64_t); -extern int zfs_get_zplprop(objset_t *os, zfs_prop_t prop, uint64_t *value); -extern int zfs_get_stats(objset_t *os, nvlist_t *nv); -extern void zfs_znode_dmu_fini(znode_t *); - -extern void zfs_log_create(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, - znode_t *dzp, znode_t *zp, char *name, vsecattr_t *, zfs_fuid_info_t *, - vattr_t *vap); -extern int zfs_log_create_txtype(zil_create_t, vsecattr_t *vsecp, - vattr_t *vap); -extern void zfs_log_remove(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, - znode_t *dzp, char *name, uint64_t foid); -#define ZFS_NO_OBJECT 0 /* no object id */ -extern void zfs_log_link(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, - znode_t *dzp, znode_t *zp, char *name); -extern void zfs_log_symlink(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, - znode_t *dzp, znode_t *zp, char *name, char *link); -extern void zfs_log_rename(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, - znode_t *sdzp, char *sname, znode_t *tdzp, char *dname, znode_t *szp); -extern void zfs_log_write(zilog_t *zilog, dmu_tx_t *tx, int txtype, - znode_t *zp, offset_t off, ssize_t len, int ioflag); -extern void zfs_log_truncate(zilog_t *zilog, dmu_tx_t *tx, int txtype, - znode_t *zp, uint64_t off, uint64_t len); -extern void zfs_log_setattr(zilog_t *zilog, dmu_tx_t *tx, int txtype, - znode_t *zp, vattr_t *vap, uint_t mask_applied, zfs_fuid_info_t *fuidp); -extern void zfs_log_acl(zilog_t *zilog, dmu_tx_t *tx, znode_t *zp, - vsecattr_t *vsecp, zfs_fuid_info_t *fuidp); -extern void zfs_xvattr_set(znode_t *zp, xvattr_t *xvap, dmu_tx_t *tx); -extern void zfs_upgrade(zfsvfs_t *zfsvfs, dmu_tx_t *tx); -extern int zfs_create_share_dir(zfsvfs_t *zfsvfs, dmu_tx_t *tx); - -#if defined(HAVE_UIO_RW) -extern caddr_t zfs_map_page(page_t *, enum seg_rw); -extern void zfs_unmap_page(page_t *, caddr_t); -#endif /* HAVE_UIO_RW */ - -extern zil_get_data_t zfs_get_data; -extern zil_replay_func_t *zfs_replay_vector[TX_MAX_TYPE]; -extern int zfsfstype; - -#endif /* _KERNEL */ - -extern int zfs_obj_to_path(objset_t *osp, uint64_t obj, char *buf, int len); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_FS_ZFS_ZNODE_H */ diff --git a/module/zfs/include/sys/zil.h b/module/zfs/include/sys/zil.h deleted file mode 100644 index 45900c981..000000000 --- a/module/zfs/include/sys/zil.h +++ /dev/null @@ -1,428 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -/* Portions Copyright 2010 Robert Milkowski */ - -#ifndef _SYS_ZIL_H -#define _SYS_ZIL_H - -#include <sys/types.h> -#include <sys/spa.h> -#include <sys/zio.h> -#include <sys/dmu.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Intent log format: - * - * Each objset has its own intent log. The log header (zil_header_t) - * for objset N's intent log is kept in the Nth object of the SPA's - * intent_log objset. The log header points to a chain of log blocks, - * each of which contains log records (i.e., transactions) followed by - * a log block trailer (zil_trailer_t). The format of a log record - * depends on the record (or transaction) type, but all records begin - * with a common structure that defines the type, length, and txg. - */ - -/* - * Intent log header - this on disk structure holds fields to manage - * the log. All fields are 64 bit to easily handle cross architectures. - */ -typedef struct zil_header { - uint64_t zh_claim_txg; /* txg in which log blocks were claimed */ - uint64_t zh_replay_seq; /* highest replayed sequence number */ - blkptr_t zh_log; /* log chain */ - uint64_t zh_claim_blk_seq; /* highest claimed block sequence number */ - uint64_t zh_flags; /* header flags */ - uint64_t zh_claim_lr_seq; /* highest claimed lr sequence number */ - uint64_t zh_pad[3]; -} zil_header_t; - -/* - * zh_flags bit settings - */ -#define ZIL_REPLAY_NEEDED 0x1 /* replay needed - internal only */ -#define ZIL_CLAIM_LR_SEQ_VALID 0x2 /* zh_claim_lr_seq field is valid */ - -/* - * Log block chaining. - * - * Log blocks are chained together. Originally they were chained at the - * end of the block. For performance reasons the chain was moved to the - * beginning of the block which allows writes for only the data being used. - * The older position is supported for backwards compatability. - * - * The zio_eck_t contains a zec_cksum which for the intent log is - * the sequence number of this log block. A seq of 0 is invalid. - * The zec_cksum is checked by the SPA against the sequence - * number passed in the blk_cksum field of the blkptr_t - */ -typedef struct zil_chain { - uint64_t zc_pad; - blkptr_t zc_next_blk; /* next block in chain */ - uint64_t zc_nused; /* bytes in log block used */ - zio_eck_t zc_eck; /* block trailer */ -} zil_chain_t; - -#define ZIL_MIN_BLKSZ 4096ULL -#define ZIL_MAX_BLKSZ SPA_MAXBLOCKSIZE - -/* - * The words of a log block checksum. - */ -#define ZIL_ZC_GUID_0 0 -#define ZIL_ZC_GUID_1 1 -#define ZIL_ZC_OBJSET 2 -#define ZIL_ZC_SEQ 3 - -typedef enum zil_create { - Z_FILE, - Z_DIR, - Z_XATTRDIR, -} zil_create_t; - -/* - * size of xvattr log section. - * its composed of lr_attr_t + xvattr bitmap + 2 64 bit timestamps - * for create time and a single 64 bit integer for all of the attributes, - * and 4 64 bit integers (32 bytes) for the scanstamp. - * - */ - -#define ZIL_XVAT_SIZE(mapsize) \ - sizeof (lr_attr_t) + (sizeof (uint32_t) * (mapsize - 1)) + \ - (sizeof (uint64_t) * 7) - -/* - * Size of ACL in log. The ACE data is padded out to properly align - * on 8 byte boundary. - */ - -#define ZIL_ACE_LENGTH(x) (roundup(x, sizeof (uint64_t))) - -/* - * Intent log transaction types and record structures - */ -#define TX_CREATE 1 /* Create file */ -#define TX_MKDIR 2 /* Make directory */ -#define TX_MKXATTR 3 /* Make XATTR directory */ -#define TX_SYMLINK 4 /* Create symbolic link to a file */ -#define TX_REMOVE 5 /* Remove file */ -#define TX_RMDIR 6 /* Remove directory */ -#define TX_LINK 7 /* Create hard link to a file */ -#define TX_RENAME 8 /* Rename a file */ -#define TX_WRITE 9 /* File write */ -#define TX_TRUNCATE 10 /* Truncate a file */ -#define TX_SETATTR 11 /* Set file attributes */ -#define TX_ACL_V0 12 /* Set old formatted ACL */ -#define TX_ACL 13 /* Set ACL */ -#define TX_CREATE_ACL 14 /* create with ACL */ -#define TX_CREATE_ATTR 15 /* create + attrs */ -#define TX_CREATE_ACL_ATTR 16 /* create with ACL + attrs */ -#define TX_MKDIR_ACL 17 /* mkdir with ACL */ -#define TX_MKDIR_ATTR 18 /* mkdir with attr */ -#define TX_MKDIR_ACL_ATTR 19 /* mkdir with ACL + attrs */ -#define TX_WRITE2 20 /* dmu_sync EALREADY write */ -#define TX_MAX_TYPE 21 /* Max transaction type */ - -/* - * The transactions for mkdir, symlink, remove, rmdir, link, and rename - * may have the following bit set, indicating the original request - * specified case-insensitive handling of names. - */ -#define TX_CI ((uint64_t)0x1 << 63) /* case-insensitive behavior requested */ - -/* - * Transactions for write, truncate, setattr, acl_v0, and acl can be logged - * out of order. For convenience in the code, all such records must have - * lr_foid at the same offset. - */ -#define TX_OOO(txtype) \ - ((txtype) == TX_WRITE || \ - (txtype) == TX_TRUNCATE || \ - (txtype) == TX_SETATTR || \ - (txtype) == TX_ACL_V0 || \ - (txtype) == TX_ACL || \ - (txtype) == TX_WRITE2) - -/* - * Format of log records. - * The fields are carefully defined to allow them to be aligned - * and sized the same on sparc & intel architectures. - * Each log record has a common structure at the beginning. - * - * The log record on disk (lrc_seq) holds the sequence number of all log - * records which is used to ensure we don't replay the same record. - */ -typedef struct { /* common log record header */ - uint64_t lrc_txtype; /* intent log transaction type */ - uint64_t lrc_reclen; /* transaction record length */ - uint64_t lrc_txg; /* dmu transaction group number */ - uint64_t lrc_seq; /* see comment above */ -} lr_t; - -/* - * Common start of all out-of-order record types (TX_OOO() above). - */ -typedef struct { - lr_t lr_common; /* common portion of log record */ - uint64_t lr_foid; /* object id */ -} lr_ooo_t; - -/* - * Handle option extended vattr attributes. - * - * Whenever new attributes are added the version number - * will need to be updated as will code in - * zfs_log.c and zfs_replay.c - */ -typedef struct { - uint32_t lr_attr_masksize; /* number of elements in array */ - uint32_t lr_attr_bitmap; /* First entry of array */ - /* remainder of array and any additional fields */ -} lr_attr_t; - -/* - * log record for creates without optional ACL. - * This log record does support optional xvattr_t attributes. - */ -typedef struct { - lr_t lr_common; /* common portion of log record */ - uint64_t lr_doid; /* object id of directory */ - uint64_t lr_foid; /* object id of created file object */ - uint64_t lr_mode; /* mode of object */ - uint64_t lr_uid; /* uid of object */ - uint64_t lr_gid; /* gid of object */ - uint64_t lr_gen; /* generation (txg of creation) */ - uint64_t lr_crtime[2]; /* creation time */ - uint64_t lr_rdev; /* rdev of object to create */ - /* name of object to create follows this */ - /* for symlinks, link content follows name */ - /* for creates with xvattr data, the name follows the xvattr info */ -} lr_create_t; - -/* - * FUID ACL record will be an array of ACEs from the original ACL. - * If this array includes ephemeral IDs, the record will also include - * an array of log-specific FUIDs to replace the ephemeral IDs. - * Only one copy of each unique domain will be present, so the log-specific - * FUIDs will use an index into a compressed domain table. On replay this - * information will be used to construct real FUIDs (and bypass idmap, - * since it may not be available). - */ - -/* - * Log record for creates with optional ACL - * This log record is also used for recording any FUID - * information needed for replaying the create. If the - * file doesn't have any actual ACEs then the lr_aclcnt - * would be zero. - */ -typedef struct { - lr_create_t lr_create; /* common create portion */ - uint64_t lr_aclcnt; /* number of ACEs in ACL */ - uint64_t lr_domcnt; /* number of unique domains */ - uint64_t lr_fuidcnt; /* number of real fuids */ - uint64_t lr_acl_bytes; /* number of bytes in ACL */ - uint64_t lr_acl_flags; /* ACL flags */ - /* lr_acl_bytes number of variable sized ace's follows */ - /* if create is also setting xvattr's, then acl data follows xvattr */ - /* if ACE FUIDs are needed then they will follow the xvattr_t */ - /* Following the FUIDs will be the domain table information. */ - /* The FUIDs for the owner and group will be in the lr_create */ - /* portion of the record. */ - /* name follows ACL data */ -} lr_acl_create_t; - -typedef struct { - lr_t lr_common; /* common portion of log record */ - uint64_t lr_doid; /* obj id of directory */ - /* name of object to remove follows this */ -} lr_remove_t; - -typedef struct { - lr_t lr_common; /* common portion of log record */ - uint64_t lr_doid; /* obj id of directory */ - uint64_t lr_link_obj; /* obj id of link */ - /* name of object to link follows this */ -} lr_link_t; - -typedef struct { - lr_t lr_common; /* common portion of log record */ - uint64_t lr_sdoid; /* obj id of source directory */ - uint64_t lr_tdoid; /* obj id of target directory */ - /* 2 strings: names of source and destination follow this */ -} lr_rename_t; - -typedef struct { - lr_t lr_common; /* common portion of log record */ - uint64_t lr_foid; /* file object to write */ - uint64_t lr_offset; /* offset to write to */ - uint64_t lr_length; /* user data length to write */ - uint64_t lr_blkoff; /* no longer used */ - blkptr_t lr_blkptr; /* spa block pointer for replay */ - /* write data will follow for small writes */ -} lr_write_t; - -typedef struct { - lr_t lr_common; /* common portion of log record */ - uint64_t lr_foid; /* object id of file to truncate */ - uint64_t lr_offset; /* offset to truncate from */ - uint64_t lr_length; /* length to truncate */ -} lr_truncate_t; - -typedef struct { - lr_t lr_common; /* common portion of log record */ - uint64_t lr_foid; /* file object to change attributes */ - uint64_t lr_mask; /* mask of attributes to set */ - uint64_t lr_mode; /* mode to set */ - uint64_t lr_uid; /* uid to set */ - uint64_t lr_gid; /* gid to set */ - uint64_t lr_size; /* size to set */ - uint64_t lr_atime[2]; /* access time */ - uint64_t lr_mtime[2]; /* modification time */ - /* optional attribute lr_attr_t may be here */ -} lr_setattr_t; - -typedef struct { - lr_t lr_common; /* common portion of log record */ - uint64_t lr_foid; /* obj id of file */ - uint64_t lr_aclcnt; /* number of acl entries */ - /* lr_aclcnt number of ace_t entries follow this */ -} lr_acl_v0_t; - -typedef struct { - lr_t lr_common; /* common portion of log record */ - uint64_t lr_foid; /* obj id of file */ - uint64_t lr_aclcnt; /* number of ACEs in ACL */ - uint64_t lr_domcnt; /* number of unique domains */ - uint64_t lr_fuidcnt; /* number of real fuids */ - uint64_t lr_acl_bytes; /* number of bytes in ACL */ - uint64_t lr_acl_flags; /* ACL flags */ - /* lr_acl_bytes number of variable sized ace's follows */ -} lr_acl_t; - -/* - * ZIL structure definitions, interface function prototype and globals. - */ - -/* - * Writes are handled in three different ways: - * - * WR_INDIRECT: - * In this mode, if we need to commit the write later, then the block - * is immediately written into the file system (using dmu_sync), - * and a pointer to the block is put into the log record. - * When the txg commits the block is linked in. - * This saves additionally writing the data into the log record. - * There are a few requirements for this to occur: - * - write is greater than zfs/zvol_immediate_write_sz - * - not using slogs (as slogs are assumed to always be faster - * than writing into the main pool) - * - the write occupies only one block - * WR_COPIED: - * If we know we'll immediately be committing the - * transaction (FSYNC or FDSYNC), the we allocate a larger - * log record here for the data and copy the data in. - * WR_NEED_COPY: - * Otherwise we don't allocate a buffer, and *if* we need to - * flush the write later then a buffer is allocated and - * we retrieve the data using the dmu. - */ -typedef enum { - WR_INDIRECT, /* indirect - a large write (dmu_sync() data */ - /* and put blkptr in log, rather than actual data) */ - WR_COPIED, /* immediate - data is copied into lr_write_t */ - WR_NEED_COPY, /* immediate - data needs to be copied if pushed */ - WR_NUM_STATES /* number of states */ -} itx_wr_state_t; - -typedef struct itx { - list_node_t itx_node; /* linkage on zl_itx_list */ - void *itx_private; /* type-specific opaque data */ - itx_wr_state_t itx_wr_state; /* write state */ - uint8_t itx_sync; /* synchronous transaction */ - uint64_t itx_sod; /* record size on disk */ - uint64_t itx_oid; /* object id */ - lr_t itx_lr; /* common part of log record */ - /* followed by type-specific part of lr_xx_t and its immediate data */ -} itx_t; - -typedef int zil_parse_blk_func_t(zilog_t *zilog, blkptr_t *bp, void *arg, - uint64_t txg); -typedef int zil_parse_lr_func_t(zilog_t *zilog, lr_t *lr, void *arg, - uint64_t txg); -typedef int zil_replay_func_t(void *, char *, boolean_t); -typedef int zil_get_data_t(void *arg, lr_write_t *lr, char *dbuf, zio_t *zio); - -extern int zil_parse(zilog_t *zilog, zil_parse_blk_func_t *parse_blk_func, - zil_parse_lr_func_t *parse_lr_func, void *arg, uint64_t txg); - -extern void zil_init(void); -extern void zil_fini(void); - -extern zilog_t *zil_alloc(objset_t *os, zil_header_t *zh_phys); -extern void zil_free(zilog_t *zilog); - -extern zilog_t *zil_open(objset_t *os, zil_get_data_t *get_data); -extern void zil_close(zilog_t *zilog); - -extern void zil_replay(objset_t *os, void *arg, - zil_replay_func_t *replay_func[TX_MAX_TYPE]); -extern boolean_t zil_replaying(zilog_t *zilog, dmu_tx_t *tx); -extern void zil_destroy(zilog_t *zilog, boolean_t keep_first); -extern void zil_rollback_destroy(zilog_t *zilog, dmu_tx_t *tx); - -extern itx_t *zil_itx_create(uint64_t txtype, size_t lrsize); -extern void zil_itx_destroy(itx_t *itx); -extern void zil_itx_assign(zilog_t *zilog, itx_t *itx, dmu_tx_t *tx); - -extern void zil_commit(zilog_t *zilog, uint64_t oid); - -extern int zil_vdev_offline(const char *osname, void *txarg); -extern int zil_claim(const char *osname, void *txarg); -extern int zil_check_log_chain(const char *osname, void *txarg); -extern void zil_sync(zilog_t *zilog, dmu_tx_t *tx); -extern void zil_clean(zilog_t *zilog, uint64_t synced_txg); - -extern int zil_suspend(zilog_t *zilog); -extern void zil_resume(zilog_t *zilog); - -extern void zil_add_block(zilog_t *zilog, const blkptr_t *bp); -extern int zil_bp_tree_add(zilog_t *zilog, const blkptr_t *bp); - -extern void zil_set_sync(zilog_t *zilog, uint64_t syncval); - -extern void zil_set_logbias(zilog_t *zilog, uint64_t slogval); - -extern int zil_replay_disable; - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZIL_H */ diff --git a/module/zfs/include/sys/zil_impl.h b/module/zfs/include/sys/zil_impl.h deleted file mode 100644 index 1d4c0cc6c..000000000 --- a/module/zfs/include/sys/zil_impl.h +++ /dev/null @@ -1,147 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -/* Portions Copyright 2010 Robert Milkowski */ - -#ifndef _SYS_ZIL_IMPL_H -#define _SYS_ZIL_IMPL_H - -#include <sys/zil.h> -#include <sys/dmu_objset.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Log write buffer. - */ -typedef struct lwb { - zilog_t *lwb_zilog; /* back pointer to log struct */ - blkptr_t lwb_blk; /* on disk address of this log blk */ - int lwb_nused; /* # used bytes in buffer */ - int lwb_sz; /* size of block and buffer */ - char *lwb_buf; /* log write buffer */ - zio_t *lwb_zio; /* zio for this buffer */ - dmu_tx_t *lwb_tx; /* tx for log block allocation */ - uint64_t lwb_max_txg; /* highest txg in this lwb */ - list_node_t lwb_node; /* zilog->zl_lwb_list linkage */ -} lwb_t; - -/* - * Intent log transaction lists - */ -typedef struct itxs { - list_t i_sync_list; /* list of synchronous itxs */ - avl_tree_t i_async_tree; /* tree of foids for async itxs */ -} itxs_t; - -typedef struct itxg { - kmutex_t itxg_lock; /* lock for this structure */ - uint64_t itxg_txg; /* txg for this chain */ - uint64_t itxg_sod; /* total size on disk for this txg */ - itxs_t *itxg_itxs; /* sync and async itxs */ -} itxg_t; - -/* for async nodes we build up an AVL tree of lists of async itxs per file */ -typedef struct itx_async_node { - uint64_t ia_foid; /* file object id */ - list_t ia_list; /* list of async itxs for this foid */ - avl_node_t ia_node; /* AVL tree linkage */ -} itx_async_node_t; - -/* - * Vdev flushing: during a zil_commit(), we build up an AVL tree of the vdevs - * we've touched so we know which ones need a write cache flush at the end. - */ -typedef struct zil_vdev_node { - uint64_t zv_vdev; /* vdev to be flushed */ - avl_node_t zv_node; /* AVL tree linkage */ -} zil_vdev_node_t; - -#define ZIL_PREV_BLKS 16 - -/* - * Stable storage intent log management structure. One per dataset. - */ -struct zilog { - kmutex_t zl_lock; /* protects most zilog_t fields */ - struct dsl_pool *zl_dmu_pool; /* DSL pool */ - spa_t *zl_spa; /* handle for read/write log */ - const zil_header_t *zl_header; /* log header buffer */ - objset_t *zl_os; /* object set we're logging */ - zil_get_data_t *zl_get_data; /* callback to get object content */ - zio_t *zl_root_zio; /* log writer root zio */ - uint64_t zl_lr_seq; /* on-disk log record sequence number */ - uint64_t zl_commit_lr_seq; /* last committed on-disk lr seq */ - uint64_t zl_destroy_txg; /* txg of last zil_destroy() */ - uint64_t zl_replayed_seq[TXG_SIZE]; /* last replayed rec seq */ - uint64_t zl_replaying_seq; /* current replay seq number */ - uint32_t zl_suspend; /* log suspend count */ - kcondvar_t zl_cv_writer; /* log writer thread completion */ - kcondvar_t zl_cv_suspend; /* log suspend completion */ - uint8_t zl_suspending; /* log is currently suspending */ - uint8_t zl_keep_first; /* keep first log block in destroy */ - uint8_t zl_replay; /* replaying records while set */ - uint8_t zl_stop_sync; /* for debugging */ - uint8_t zl_writer; /* boolean: write setup in progress */ - uint8_t zl_logbias; /* latency or throughput */ - uint8_t zl_sync; /* synchronous or asynchronous */ - int zl_parse_error; /* last zil_parse() error */ - uint64_t zl_parse_blk_seq; /* highest blk seq on last parse */ - uint64_t zl_parse_lr_seq; /* highest lr seq on last parse */ - uint64_t zl_parse_blk_count; /* number of blocks parsed */ - uint64_t zl_parse_lr_count; /* number of log records parsed */ - uint64_t zl_next_batch; /* next batch number */ - uint64_t zl_com_batch; /* committed batch number */ - kcondvar_t zl_cv_batch[2]; /* batch condition variables */ - itxg_t zl_itxg[TXG_SIZE]; /* intent log txg chains */ - list_t zl_itx_commit_list; /* itx list to be committed */ - uint64_t zl_itx_list_sz; /* total size of records on list */ - uint64_t zl_cur_used; /* current commit log size used */ - list_t zl_lwb_list; /* in-flight log write list */ - kmutex_t zl_vdev_lock; /* protects zl_vdev_tree */ - avl_tree_t zl_vdev_tree; /* vdevs to flush in zil_commit() */ - taskq_t *zl_clean_taskq; /* runs lwb and itx clean tasks */ - avl_tree_t zl_bp_tree; /* track bps during log parse */ - clock_t zl_replay_time; /* lbolt of when replay started */ - uint64_t zl_replay_blks; /* number of log blocks replayed */ - zil_header_t zl_old_header; /* debugging aid */ - uint_t zl_prev_blks[ZIL_PREV_BLKS]; /* size - sector rounded */ - uint_t zl_prev_rotor; /* rotor for zl_prev[] */ -}; - -typedef struct zil_bp_node { - dva_t zn_dva; - avl_node_t zn_node; -} zil_bp_node_t; - -#define ZIL_MAX_LOG_DATA (SPA_MAXBLOCKSIZE - sizeof (zil_chain_t) - \ - sizeof (lr_write_t)) - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZIL_IMPL_H */ diff --git a/module/zfs/include/sys/zio.h b/module/zfs/include/sys/zio.h deleted file mode 100644 index 97d8ec74d..000000000 --- a/module/zfs/include/sys/zio.h +++ /dev/null @@ -1,559 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _ZIO_H -#define _ZIO_H - -#include <sys/zfs_context.h> -#include <sys/spa.h> -#include <sys/txg.h> -#include <sys/avl.h> -#include <sys/fs/zfs.h> -#include <sys/zio_impl.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Embedded checksum - */ -#define ZEC_MAGIC 0x210da7ab10c7a11ULL - -typedef struct zio_eck { - uint64_t zec_magic; /* for validation, endianness */ - zio_cksum_t zec_cksum; /* 256-bit checksum */ -} zio_eck_t; - -/* - * Gang block headers are self-checksumming and contain an array - * of block pointers. - */ -#define SPA_GANGBLOCKSIZE SPA_MINBLOCKSIZE -#define SPA_GBH_NBLKPTRS ((SPA_GANGBLOCKSIZE - \ - sizeof (zio_eck_t)) / sizeof (blkptr_t)) -#define SPA_GBH_FILLER ((SPA_GANGBLOCKSIZE - \ - sizeof (zio_eck_t) - \ - (SPA_GBH_NBLKPTRS * sizeof (blkptr_t))) /\ - sizeof (uint64_t)) - -typedef struct zio_gbh { - blkptr_t zg_blkptr[SPA_GBH_NBLKPTRS]; - uint64_t zg_filler[SPA_GBH_FILLER]; - zio_eck_t zg_tail; -} zio_gbh_phys_t; - -enum zio_checksum { - ZIO_CHECKSUM_INHERIT = 0, - ZIO_CHECKSUM_ON, - ZIO_CHECKSUM_OFF, - ZIO_CHECKSUM_LABEL, - ZIO_CHECKSUM_GANG_HEADER, - ZIO_CHECKSUM_ZILOG, - ZIO_CHECKSUM_FLETCHER_2, - ZIO_CHECKSUM_FLETCHER_4, - ZIO_CHECKSUM_SHA256, - ZIO_CHECKSUM_ZILOG2, - ZIO_CHECKSUM_FUNCTIONS -}; - -#define ZIO_CHECKSUM_ON_VALUE ZIO_CHECKSUM_FLETCHER_4 -#define ZIO_CHECKSUM_DEFAULT ZIO_CHECKSUM_ON - -#define ZIO_CHECKSUM_MASK 0xffULL -#define ZIO_CHECKSUM_VERIFY (1 << 8) - -#define ZIO_DEDUPCHECKSUM ZIO_CHECKSUM_SHA256 -#define ZIO_DEDUPDITTO_MIN 100 - -enum zio_compress { - ZIO_COMPRESS_INHERIT = 0, - ZIO_COMPRESS_ON, - ZIO_COMPRESS_OFF, - ZIO_COMPRESS_LZJB, - ZIO_COMPRESS_EMPTY, - ZIO_COMPRESS_GZIP_1, - ZIO_COMPRESS_GZIP_2, - ZIO_COMPRESS_GZIP_3, - ZIO_COMPRESS_GZIP_4, - ZIO_COMPRESS_GZIP_5, - ZIO_COMPRESS_GZIP_6, - ZIO_COMPRESS_GZIP_7, - ZIO_COMPRESS_GZIP_8, - ZIO_COMPRESS_GZIP_9, - ZIO_COMPRESS_ZLE, - ZIO_COMPRESS_FUNCTIONS -}; - -#define ZIO_COMPRESS_ON_VALUE ZIO_COMPRESS_LZJB -#define ZIO_COMPRESS_DEFAULT ZIO_COMPRESS_OFF - -#define BOOTFS_COMPRESS_VALID(compress) \ - ((compress) == ZIO_COMPRESS_LZJB || \ - ((compress) == ZIO_COMPRESS_ON && \ - ZIO_COMPRESS_ON_VALUE == ZIO_COMPRESS_LZJB) || \ - (compress) == ZIO_COMPRESS_OFF) - -#define ZIO_FAILURE_MODE_WAIT 0 -#define ZIO_FAILURE_MODE_CONTINUE 1 -#define ZIO_FAILURE_MODE_PANIC 2 - -#define ZIO_PRIORITY_NOW (zio_priority_table[0]) -#define ZIO_PRIORITY_SYNC_READ (zio_priority_table[1]) -#define ZIO_PRIORITY_SYNC_WRITE (zio_priority_table[2]) -#define ZIO_PRIORITY_LOG_WRITE (zio_priority_table[3]) -#define ZIO_PRIORITY_CACHE_FILL (zio_priority_table[4]) -#define ZIO_PRIORITY_AGG (zio_priority_table[5]) -#define ZIO_PRIORITY_FREE (zio_priority_table[6]) -#define ZIO_PRIORITY_ASYNC_WRITE (zio_priority_table[7]) -#define ZIO_PRIORITY_ASYNC_READ (zio_priority_table[8]) -#define ZIO_PRIORITY_RESILVER (zio_priority_table[9]) -#define ZIO_PRIORITY_SCRUB (zio_priority_table[10]) -#define ZIO_PRIORITY_DDT_PREFETCH (zio_priority_table[11]) -#define ZIO_PRIORITY_TABLE_SIZE 12 - -#define ZIO_PIPELINE_CONTINUE 0x100 -#define ZIO_PIPELINE_STOP 0x101 - -enum zio_flag { - /* - * Flags inherited by gang, ddt, and vdev children, - * and that must be equal for two zios to aggregate - */ - ZIO_FLAG_DONT_AGGREGATE = 1 << 0, - ZIO_FLAG_IO_REPAIR = 1 << 1, - ZIO_FLAG_SELF_HEAL = 1 << 2, - ZIO_FLAG_RESILVER = 1 << 3, - ZIO_FLAG_SCRUB = 1 << 4, - ZIO_FLAG_SCAN_THREAD = 1 << 5, - -#define ZIO_FLAG_AGG_INHERIT (ZIO_FLAG_CANFAIL - 1) - - /* - * Flags inherited by ddt, gang, and vdev children. - */ - ZIO_FLAG_CANFAIL = 1 << 6, /* must be first for INHERIT */ - ZIO_FLAG_SPECULATIVE = 1 << 7, - ZIO_FLAG_CONFIG_WRITER = 1 << 8, - ZIO_FLAG_DONT_RETRY = 1 << 9, - ZIO_FLAG_DONT_CACHE = 1 << 10, - ZIO_FLAG_NODATA = 1 << 11, - ZIO_FLAG_INDUCE_DAMAGE = 1 << 12, - -#define ZIO_FLAG_DDT_INHERIT (ZIO_FLAG_IO_RETRY - 1) -#define ZIO_FLAG_GANG_INHERIT (ZIO_FLAG_IO_RETRY - 1) - - /* - * Flags inherited by vdev children. - */ - ZIO_FLAG_IO_RETRY = 1 << 13, /* must be first for INHERIT */ - ZIO_FLAG_PROBE = 1 << 14, - ZIO_FLAG_TRYHARD = 1 << 15, - ZIO_FLAG_OPTIONAL = 1 << 16, - -#define ZIO_FLAG_VDEV_INHERIT (ZIO_FLAG_DONT_QUEUE - 1) - - /* - * Flags not inherited by any children. - */ - ZIO_FLAG_DONT_QUEUE = 1 << 17, /* must be first for INHERIT */ - ZIO_FLAG_DONT_PROPAGATE = 1 << 18, - ZIO_FLAG_IO_BYPASS = 1 << 19, - ZIO_FLAG_IO_REWRITE = 1 << 20, - ZIO_FLAG_RAW = 1 << 21, - ZIO_FLAG_GANG_CHILD = 1 << 22, - ZIO_FLAG_DDT_CHILD = 1 << 23, - ZIO_FLAG_GODFATHER = 1 << 24 -}; - -#define ZIO_FLAG_MUSTSUCCEED 0 - -#define ZIO_DDT_CHILD_FLAGS(zio) \ - (((zio)->io_flags & ZIO_FLAG_DDT_INHERIT) | \ - ZIO_FLAG_DDT_CHILD | ZIO_FLAG_CANFAIL) - -#define ZIO_GANG_CHILD_FLAGS(zio) \ - (((zio)->io_flags & ZIO_FLAG_GANG_INHERIT) | \ - ZIO_FLAG_GANG_CHILD | ZIO_FLAG_CANFAIL) - -#define ZIO_VDEV_CHILD_FLAGS(zio) \ - (((zio)->io_flags & ZIO_FLAG_VDEV_INHERIT) | \ - ZIO_FLAG_CANFAIL) - -enum zio_child { - ZIO_CHILD_VDEV = 0, - ZIO_CHILD_GANG, - ZIO_CHILD_DDT, - ZIO_CHILD_LOGICAL, - ZIO_CHILD_TYPES -}; - -enum zio_wait_type { - ZIO_WAIT_READY = 0, - ZIO_WAIT_DONE, - ZIO_WAIT_TYPES -}; - -/* - * We'll take the unused errnos, 'EBADE' and 'EBADR' (from the Convergent - * graveyard) to indicate checksum errors and fragmentation. - */ -#define ECKSUM EBADE -#define EFRAGS EBADR - -typedef void zio_done_func_t(zio_t *zio); - -extern uint8_t zio_priority_table[ZIO_PRIORITY_TABLE_SIZE]; -extern char *zio_type_name[ZIO_TYPES]; - -/* - * A bookmark is a four-tuple <objset, object, level, blkid> that uniquely - * identifies any block in the pool. By convention, the meta-objset (MOS) - * is objset 0, and the meta-dnode is object 0. This covers all blocks - * except root blocks and ZIL blocks, which are defined as follows: - * - * Root blocks (objset_phys_t) are object 0, level -1: <objset, 0, -1, 0>. - * ZIL blocks are bookmarked <objset, 0, -2, blkid == ZIL sequence number>. - * dmu_sync()ed ZIL data blocks are bookmarked <objset, object, -2, blkid>. - * - * Note: this structure is called a bookmark because its original purpose - * was to remember where to resume a pool-wide traverse. - * - * Note: this structure is passed between userland and the kernel. - * Therefore it must not change size or alignment between 32/64 bit - * compilation options. - */ -typedef struct zbookmark { - uint64_t zb_objset; - uint64_t zb_object; - int64_t zb_level; - uint64_t zb_blkid; -} zbookmark_t; - -#define SET_BOOKMARK(zb, objset, object, level, blkid) \ -{ \ - (zb)->zb_objset = objset; \ - (zb)->zb_object = object; \ - (zb)->zb_level = level; \ - (zb)->zb_blkid = blkid; \ -} - -#define ZB_DESTROYED_OBJSET (-1ULL) - -#define ZB_ROOT_OBJECT (0ULL) -#define ZB_ROOT_LEVEL (-1LL) -#define ZB_ROOT_BLKID (0ULL) - -#define ZB_ZIL_OBJECT (0ULL) -#define ZB_ZIL_LEVEL (-2LL) - -typedef struct zio_prop { - enum zio_checksum zp_checksum; - enum zio_compress zp_compress; - dmu_object_type_t zp_type; - uint8_t zp_level; - uint8_t zp_copies; - uint8_t zp_dedup; - uint8_t zp_dedup_verify; -} zio_prop_t; - -typedef struct zio_cksum_report zio_cksum_report_t; - -typedef void zio_cksum_finish_f(zio_cksum_report_t *rep, - const void *good_data); -typedef void zio_cksum_free_f(void *cbdata, size_t size); - -struct zio_bad_cksum; /* defined in zio_checksum.h */ - -struct zio_cksum_report { - struct zio_cksum_report *zcr_next; - nvlist_t *zcr_ereport; - nvlist_t *zcr_detector; - void *zcr_cbdata; - size_t zcr_cbinfo; /* passed to zcr_free() */ - uint64_t zcr_align; - uint64_t zcr_length; - zio_cksum_finish_f *zcr_finish; - zio_cksum_free_f *zcr_free; - - /* internal use only */ - struct zio_bad_cksum *zcr_ckinfo; /* information from failure */ -}; - -typedef void zio_vsd_cksum_report_f(zio_t *zio, zio_cksum_report_t *zcr, - void *arg); - -zio_vsd_cksum_report_f zio_vsd_default_cksum_report; - -typedef struct zio_vsd_ops { - zio_done_func_t *vsd_free; - zio_vsd_cksum_report_f *vsd_cksum_report; -} zio_vsd_ops_t; - -typedef struct zio_gang_node { - zio_gbh_phys_t *gn_gbh; - struct zio_gang_node *gn_child[SPA_GBH_NBLKPTRS]; -} zio_gang_node_t; - -typedef zio_t *zio_gang_issue_func_t(zio_t *zio, blkptr_t *bp, - zio_gang_node_t *gn, void *data); - -typedef void zio_transform_func_t(zio_t *zio, void *data, uint64_t size); - -typedef struct zio_transform { - void *zt_orig_data; - uint64_t zt_orig_size; - uint64_t zt_bufsize; - zio_transform_func_t *zt_transform; - struct zio_transform *zt_next; -} zio_transform_t; - -typedef int zio_pipe_stage_t(zio_t *zio); - -/* - * The io_reexecute flags are distinct from io_flags because the child must - * be able to propagate them to the parent. The normal io_flags are local - * to the zio, not protected by any lock, and not modifiable by children; - * the reexecute flags are protected by io_lock, modifiable by children, - * and always propagated -- even when ZIO_FLAG_DONT_PROPAGATE is set. - */ -#define ZIO_REEXECUTE_NOW 0x01 -#define ZIO_REEXECUTE_SUSPEND 0x02 - -typedef struct zio_link { - zio_t *zl_parent; - zio_t *zl_child; - list_node_t zl_parent_node; - list_node_t zl_child_node; -} zio_link_t; - -struct zio { - /* Core information about this I/O */ - zbookmark_t io_bookmark; - zio_prop_t io_prop; - zio_type_t io_type; - enum zio_child io_child_type; - int io_cmd; - uint8_t io_priority; - uint8_t io_reexecute; - uint8_t io_state[ZIO_WAIT_TYPES]; - uint64_t io_txg; - spa_t *io_spa; - blkptr_t *io_bp; - blkptr_t *io_bp_override; - blkptr_t io_bp_copy; - list_t io_parent_list; - list_t io_child_list; - zio_link_t *io_walk_link; - zio_t *io_logical; - zio_transform_t *io_transform_stack; - - /* Callback info */ - zio_done_func_t *io_ready; - zio_done_func_t *io_done; - void *io_private; - int64_t io_prev_space_delta; /* DMU private */ - blkptr_t io_bp_orig; - - /* Data represented by this I/O */ - void *io_data; - void *io_orig_data; - uint64_t io_size; - uint64_t io_orig_size; - - /* Stuff for the vdev stack */ - vdev_t *io_vd; - void *io_vsd; - const zio_vsd_ops_t *io_vsd_ops; - - uint64_t io_offset; - uint64_t io_deadline; - avl_node_t io_offset_node; - avl_node_t io_deadline_node; - avl_tree_t *io_vdev_tree; - - /* Internal pipeline state */ - enum zio_flag io_flags; - enum zio_stage io_stage; - enum zio_stage io_pipeline; - enum zio_flag io_orig_flags; - enum zio_stage io_orig_stage; - enum zio_stage io_orig_pipeline; - int io_error; - int io_child_error[ZIO_CHILD_TYPES]; - uint64_t io_children[ZIO_CHILD_TYPES][ZIO_WAIT_TYPES]; - uint64_t io_child_count; - uint64_t io_parent_count; - uint64_t *io_stall; - zio_t *io_gang_leader; - zio_gang_node_t *io_gang_tree; - void *io_executor; - void *io_waiter; - kmutex_t io_lock; - kcondvar_t io_cv; - - /* FMA state */ - zio_cksum_report_t *io_cksum_report; - uint64_t io_ena; -}; - -extern zio_t *zio_null(zio_t *pio, spa_t *spa, vdev_t *vd, - zio_done_func_t *done, void *private, enum zio_flag flags); - -extern zio_t *zio_root(spa_t *spa, - zio_done_func_t *done, void *private, enum zio_flag flags); - -extern zio_t *zio_read(zio_t *pio, spa_t *spa, const blkptr_t *bp, void *data, - uint64_t size, zio_done_func_t *done, void *private, - int priority, enum zio_flag flags, const zbookmark_t *zb); - -extern zio_t *zio_write(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp, - void *data, uint64_t size, const zio_prop_t *zp, - zio_done_func_t *ready, zio_done_func_t *done, void *private, - int priority, enum zio_flag flags, const zbookmark_t *zb); - -extern zio_t *zio_rewrite(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp, - void *data, uint64_t size, zio_done_func_t *done, void *private, - int priority, enum zio_flag flags, zbookmark_t *zb); - -extern void zio_write_override(zio_t *zio, blkptr_t *bp, int copies); - -extern void zio_free(spa_t *spa, uint64_t txg, const blkptr_t *bp); - -extern zio_t *zio_claim(zio_t *pio, spa_t *spa, uint64_t txg, - const blkptr_t *bp, - zio_done_func_t *done, void *private, enum zio_flag flags); - -extern zio_t *zio_ioctl(zio_t *pio, spa_t *spa, vdev_t *vd, int cmd, - zio_done_func_t *done, void *private, int priority, enum zio_flag flags); - -extern zio_t *zio_read_phys(zio_t *pio, vdev_t *vd, uint64_t offset, - uint64_t size, void *data, int checksum, - zio_done_func_t *done, void *private, int priority, enum zio_flag flags, - boolean_t labels); - -extern zio_t *zio_write_phys(zio_t *pio, vdev_t *vd, uint64_t offset, - uint64_t size, void *data, int checksum, - zio_done_func_t *done, void *private, int priority, enum zio_flag flags, - boolean_t labels); - -extern zio_t *zio_free_sync(zio_t *pio, spa_t *spa, uint64_t txg, - const blkptr_t *bp, enum zio_flag flags); - -extern int zio_alloc_zil(spa_t *spa, uint64_t txg, blkptr_t *new_bp, - blkptr_t *old_bp, uint64_t size, boolean_t use_slog); -extern void zio_free_zil(spa_t *spa, uint64_t txg, blkptr_t *bp); -extern void zio_flush(zio_t *zio, vdev_t *vd); -extern void zio_shrink(zio_t *zio, uint64_t size); - -extern int zio_wait(zio_t *zio); -extern void zio_nowait(zio_t *zio); -extern void zio_execute(zio_t *zio); -extern void zio_interrupt(zio_t *zio); - -extern zio_t *zio_walk_parents(zio_t *cio); -extern zio_t *zio_walk_children(zio_t *pio); -extern zio_t *zio_unique_parent(zio_t *cio); -extern void zio_add_child(zio_t *pio, zio_t *cio); - -extern void *zio_buf_alloc(size_t size); -extern void zio_buf_free(void *buf, size_t size); -extern void *zio_data_buf_alloc(size_t size); -extern void zio_data_buf_free(void *buf, size_t size); - -extern void zio_resubmit_stage_async(void *); - -extern zio_t *zio_vdev_child_io(zio_t *zio, blkptr_t *bp, vdev_t *vd, - uint64_t offset, void *data, uint64_t size, int type, int priority, - enum zio_flag flags, zio_done_func_t *done, void *private); - -extern zio_t *zio_vdev_delegated_io(vdev_t *vd, uint64_t offset, - void *data, uint64_t size, int type, int priority, - enum zio_flag flags, zio_done_func_t *done, void *private); - -extern void zio_vdev_io_bypass(zio_t *zio); -extern void zio_vdev_io_reissue(zio_t *zio); -extern void zio_vdev_io_redone(zio_t *zio); - -extern void zio_checksum_verified(zio_t *zio); -extern int zio_worst_error(int e1, int e2); - -extern enum zio_checksum zio_checksum_select(enum zio_checksum child, - enum zio_checksum parent); -extern enum zio_checksum zio_checksum_dedup_select(spa_t *spa, - enum zio_checksum child, enum zio_checksum parent); -extern enum zio_compress zio_compress_select(enum zio_compress child, - enum zio_compress parent); - -extern void zio_suspend(spa_t *spa, zio_t *zio); -extern int zio_resume(spa_t *spa); -extern void zio_resume_wait(spa_t *spa); - -/* - * Initial setup and teardown. - */ -extern void zio_init(void); -extern void zio_fini(void); - -/* - * Fault injection - */ -struct zinject_record; -extern uint32_t zio_injection_enabled; -extern int zio_inject_fault(char *name, int flags, int *id, - struct zinject_record *record); -extern int zio_inject_list_next(int *id, char *name, size_t buflen, - struct zinject_record *record); -extern int zio_clear_fault(int id); -extern void zio_handle_panic_injection(spa_t *spa, char *tag, uint64_t type); -extern int zio_handle_fault_injection(zio_t *zio, int error); -extern int zio_handle_device_injection(vdev_t *vd, zio_t *zio, int error); -extern int zio_handle_label_injection(zio_t *zio, int error); -extern void zio_handle_ignored_writes(zio_t *zio); - -/* - * Checksum ereport functions - */ -extern void zfs_ereport_start_checksum(spa_t *spa, vdev_t *vd, struct zio *zio, - uint64_t offset, uint64_t length, void *arg, struct zio_bad_cksum *info); -extern void zfs_ereport_finish_checksum(zio_cksum_report_t *report, - const void *good_data, const void *bad_data, boolean_t drop_if_identical); - -extern void zfs_ereport_send_interim_checksum(zio_cksum_report_t *report); -extern void zfs_ereport_free_checksum(zio_cksum_report_t *report); - -/* If we have the good data in hand, this function can be used */ -extern void zfs_ereport_post_checksum(spa_t *spa, vdev_t *vd, - struct zio *zio, uint64_t offset, uint64_t length, - const void *good_data, const void *bad_data, struct zio_bad_cksum *info); - -/* Called from spa_sync(), but primarily an injection handler */ -extern void spa_handle_ignored_writes(spa_t *spa); - -#ifdef __cplusplus -} -#endif - -#endif /* _ZIO_H */ diff --git a/module/zfs/include/sys/zio_checksum.h b/module/zfs/include/sys/zio_checksum.h deleted file mode 100644 index 0956c04ab..000000000 --- a/module/zfs/include/sys/zio_checksum.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_ZIO_CHECKSUM_H -#define _SYS_ZIO_CHECKSUM_H - -#include <sys/zio.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Signature for checksum functions. - */ -typedef void zio_checksum_t(const void *data, uint64_t size, zio_cksum_t *zcp); - -/* - * Information about each checksum function. - */ -typedef struct zio_checksum_info { - zio_checksum_t *ci_func[2]; /* checksum function for each byteorder */ - int ci_correctable; /* number of correctable bits */ - int ci_eck; /* uses zio embedded checksum? */ - int ci_dedup; /* strong enough for dedup? */ - char *ci_name; /* descriptive name */ -} zio_checksum_info_t; - -typedef struct zio_bad_cksum { - zio_cksum_t zbc_expected; - zio_cksum_t zbc_actual; - const char *zbc_checksum_name; - uint8_t zbc_byteswapped; - uint8_t zbc_injected; - uint8_t zbc_has_cksum; /* expected/actual valid */ -} zio_bad_cksum_t; - -extern zio_checksum_info_t zio_checksum_table[ZIO_CHECKSUM_FUNCTIONS]; - -/* - * Checksum routines. - */ -extern zio_checksum_t zio_checksum_SHA256; - -extern void zio_checksum_compute(zio_t *zio, enum zio_checksum checksum, - void *data, uint64_t size); -extern int zio_checksum_error(zio_t *zio, zio_bad_cksum_t *out); -extern enum zio_checksum spa_dedup_checksum(spa_t *spa); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZIO_CHECKSUM_H */ diff --git a/module/zfs/include/sys/zio_compress.h b/module/zfs/include/sys/zio_compress.h deleted file mode 100644 index 30bed1a67..000000000 --- a/module/zfs/include/sys/zio_compress.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _SYS_ZIO_COMPRESS_H -#define _SYS_ZIO_COMPRESS_H - -#include <sys/zio.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Common signature for all zio compress/decompress functions. - */ -typedef size_t zio_compress_func_t(void *src, void *dst, - size_t s_len, size_t d_len, int); -typedef int zio_decompress_func_t(void *src, void *dst, - size_t s_len, size_t d_len, int); - -/* - * Information about each compression function. - */ -typedef struct zio_compress_info { - zio_compress_func_t *ci_compress; /* compression function */ - zio_decompress_func_t *ci_decompress; /* decompression function */ - int ci_level; /* level parameter */ - char *ci_name; /* algorithm name */ -} zio_compress_info_t; - -extern zio_compress_info_t zio_compress_table[ZIO_COMPRESS_FUNCTIONS]; - -/* - * Compression routines. - */ -extern size_t lzjb_compress(void *src, void *dst, size_t s_len, size_t d_len, - int level); -extern int lzjb_decompress(void *src, void *dst, size_t s_len, size_t d_len, - int level); -extern size_t gzip_compress(void *src, void *dst, size_t s_len, size_t d_len, - int level); -extern int gzip_decompress(void *src, void *dst, size_t s_len, size_t d_len, - int level); -extern size_t zle_compress(void *src, void *dst, size_t s_len, size_t d_len, - int level); -extern int zle_decompress(void *src, void *dst, size_t s_len, size_t d_len, - int level); - -/* - * Compress and decompress data if necessary. - */ -extern size_t zio_compress_data(enum zio_compress c, void *src, void *dst, - size_t s_len); -extern int zio_decompress_data(enum zio_compress c, void *src, void *dst, - size_t s_len, size_t d_len); - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZIO_COMPRESS_H */ diff --git a/module/zfs/include/sys/zio_impl.h b/module/zfs/include/sys/zio_impl.h deleted file mode 100644 index d90bd8bd5..000000000 --- a/module/zfs/include/sys/zio_impl.h +++ /dev/null @@ -1,175 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright 2009 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. - */ - -#ifndef _ZIO_IMPL_H -#define _ZIO_IMPL_H - -#include <sys/zfs_context.h> -#include <sys/zio.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * zio pipeline stage definitions - */ -enum zio_stage { - ZIO_STAGE_OPEN = 1 << 0, /* RWFCI */ - - ZIO_STAGE_READ_BP_INIT = 1 << 1, /* R---- */ - ZIO_STAGE_FREE_BP_INIT = 1 << 2, /* --F-- */ - ZIO_STAGE_ISSUE_ASYNC = 1 << 3, /* RWF-- */ - ZIO_STAGE_WRITE_BP_INIT = 1 << 4, /* -W--- */ - - ZIO_STAGE_CHECKSUM_GENERATE = 1 << 5, /* -W--- */ - - ZIO_STAGE_DDT_READ_START = 1 << 6, /* R---- */ - ZIO_STAGE_DDT_READ_DONE = 1 << 7, /* R---- */ - ZIO_STAGE_DDT_WRITE = 1 << 8, /* -W--- */ - ZIO_STAGE_DDT_FREE = 1 << 9, /* --F-- */ - - ZIO_STAGE_GANG_ASSEMBLE = 1 << 10, /* RWFC- */ - ZIO_STAGE_GANG_ISSUE = 1 << 11, /* RWFC- */ - - ZIO_STAGE_DVA_ALLOCATE = 1 << 12, /* -W--- */ - ZIO_STAGE_DVA_FREE = 1 << 13, /* --F-- */ - ZIO_STAGE_DVA_CLAIM = 1 << 14, /* ---C- */ - - ZIO_STAGE_READY = 1 << 15, /* RWFCI */ - - ZIO_STAGE_VDEV_IO_START = 1 << 16, /* RW--I */ - ZIO_STAGE_VDEV_IO_DONE = 1 << 17, /* RW--I */ - ZIO_STAGE_VDEV_IO_ASSESS = 1 << 18, /* RW--I */ - - ZIO_STAGE_CHECKSUM_VERIFY = 1 << 19, /* R---- */ - - ZIO_STAGE_DONE = 1 << 20 /* RWFCI */ -}; - -#define ZIO_INTERLOCK_STAGES \ - (ZIO_STAGE_READY | \ - ZIO_STAGE_DONE) - -#define ZIO_INTERLOCK_PIPELINE \ - ZIO_INTERLOCK_STAGES - -#define ZIO_VDEV_IO_STAGES \ - (ZIO_STAGE_VDEV_IO_START | \ - ZIO_STAGE_VDEV_IO_DONE | \ - ZIO_STAGE_VDEV_IO_ASSESS) - -#define ZIO_VDEV_CHILD_PIPELINE \ - (ZIO_VDEV_IO_STAGES | \ - ZIO_STAGE_DONE) - -#define ZIO_READ_COMMON_STAGES \ - (ZIO_INTERLOCK_STAGES | \ - ZIO_VDEV_IO_STAGES | \ - ZIO_STAGE_CHECKSUM_VERIFY) - -#define ZIO_READ_PHYS_PIPELINE \ - ZIO_READ_COMMON_STAGES - -#define ZIO_READ_PIPELINE \ - (ZIO_READ_COMMON_STAGES | \ - ZIO_STAGE_READ_BP_INIT) - -#define ZIO_DDT_CHILD_READ_PIPELINE \ - ZIO_READ_COMMON_STAGES - -#define ZIO_DDT_READ_PIPELINE \ - (ZIO_INTERLOCK_STAGES | \ - ZIO_STAGE_READ_BP_INIT | \ - ZIO_STAGE_DDT_READ_START | \ - ZIO_STAGE_DDT_READ_DONE) - -#define ZIO_WRITE_COMMON_STAGES \ - (ZIO_INTERLOCK_STAGES | \ - ZIO_VDEV_IO_STAGES | \ - ZIO_STAGE_ISSUE_ASYNC | \ - ZIO_STAGE_CHECKSUM_GENERATE) - -#define ZIO_WRITE_PHYS_PIPELINE \ - ZIO_WRITE_COMMON_STAGES - -#define ZIO_REWRITE_PIPELINE \ - (ZIO_WRITE_COMMON_STAGES | \ - ZIO_STAGE_WRITE_BP_INIT) - -#define ZIO_WRITE_PIPELINE \ - (ZIO_WRITE_COMMON_STAGES | \ - ZIO_STAGE_WRITE_BP_INIT | \ - ZIO_STAGE_DVA_ALLOCATE) - -#define ZIO_DDT_CHILD_WRITE_PIPELINE \ - (ZIO_INTERLOCK_STAGES | \ - ZIO_VDEV_IO_STAGES | \ - ZIO_STAGE_DVA_ALLOCATE) - -#define ZIO_DDT_WRITE_PIPELINE \ - (ZIO_INTERLOCK_STAGES | \ - ZIO_STAGE_ISSUE_ASYNC | \ - ZIO_STAGE_WRITE_BP_INIT | \ - ZIO_STAGE_CHECKSUM_GENERATE | \ - ZIO_STAGE_DDT_WRITE) - -#define ZIO_GANG_STAGES \ - (ZIO_STAGE_GANG_ASSEMBLE | \ - ZIO_STAGE_GANG_ISSUE) - -#define ZIO_FREE_PIPELINE \ - (ZIO_INTERLOCK_STAGES | \ - ZIO_STAGE_FREE_BP_INIT | \ - ZIO_STAGE_DVA_FREE) - -#define ZIO_DDT_FREE_PIPELINE \ - (ZIO_INTERLOCK_STAGES | \ - ZIO_STAGE_FREE_BP_INIT | \ - ZIO_STAGE_ISSUE_ASYNC | \ - ZIO_STAGE_DDT_FREE) - -#define ZIO_CLAIM_PIPELINE \ - (ZIO_INTERLOCK_STAGES | \ - ZIO_STAGE_DVA_CLAIM) - -#define ZIO_IOCTL_PIPELINE \ - (ZIO_INTERLOCK_STAGES | \ - ZIO_STAGE_VDEV_IO_START | \ - ZIO_STAGE_VDEV_IO_ASSESS) - -#define ZIO_BLOCKING_STAGES \ - (ZIO_STAGE_DVA_ALLOCATE | \ - ZIO_STAGE_DVA_CLAIM | \ - ZIO_STAGE_VDEV_IO_START) - -extern void zio_inject_init(void); -extern void zio_inject_fini(void); - -#ifdef __cplusplus -} -#endif - -#endif /* _ZIO_IMPL_H */ diff --git a/module/zfs/include/sys/zrlock.h b/module/zfs/include/sys/zrlock.h deleted file mode 100644 index dcd63f7b5..000000000 --- a/module/zfs/include/sys/zrlock.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ -/* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_ZRLOCK_H -#define _SYS_ZRLOCK_H - -#include <sys/zfs_context.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct zrlock { - kmutex_t zr_mtx; - volatile int32_t zr_refcount; - kcondvar_t zr_cv; - uint16_t zr_pad; -#ifdef ZFS_DEBUG - kthread_t *zr_owner; - const char *zr_caller; -#endif -} zrlock_t; - -extern void zrl_init(zrlock_t *); -extern void zrl_destroy(zrlock_t *); -#ifdef ZFS_DEBUG -#define zrl_add(_z) zrl_add_debug((_z), __func__) -extern void zrl_add_debug(zrlock_t *, const char *); -#else -extern void zrl_add(zrlock_t *); -#endif -extern void zrl_remove(zrlock_t *); -extern int zrl_tryenter(zrlock_t *); -extern void zrl_exit(zrlock_t *); -extern int zrl_is_zero(zrlock_t *); -extern int zrl_is_locked(zrlock_t *); -#ifdef ZFS_DEBUG -extern kthread_t *zrl_owner(zrlock_t *); -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* _SYS_ZRLOCK_H */ diff --git a/module/zfs/include/sys/zvol.h b/module/zfs/include/sys/zvol.h deleted file mode 100644 index c8b9d6507..000000000 --- a/module/zfs/include/sys/zvol.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * CDDL HEADER START - * - * The contents of this file are subject to the terms of the - * Common Development and Distribution License (the "License"). - * You may not use this file except in compliance with the License. - * - * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE - * or http://www.opensolaris.org/os/licensing. - * See the License for the specific language governing permissions - * and limitations under the License. - * - * When distributing Covered Code, include this CDDL HEADER in each - * file and include the License file at usr/src/OPENSOLARIS.LICENSE. - * If applicable, add the following below this CDDL HEADER, with the - * fields enclosed by brackets "[]" replaced with your own identifying - * information: Portions Copyright [yyyy] [name of copyright owner] - * - * CDDL HEADER END - */ - -/* - * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. - */ - -#ifndef _SYS_ZVOL_H -#define _SYS_ZVOL_H - -#include <sys/zfs_context.h> - -#define ZVOL_OBJ 1ULL -#define ZVOL_ZAP_OBJ 2ULL - -#ifdef _KERNEL - -#include <sys/blkdev.h> - -extern int zvol_check_volsize(uint64_t volsize, uint64_t blocksize); -extern int zvol_check_volblocksize(uint64_t volblocksize); -extern int zvol_get_stats(objset_t *os, nvlist_t *nv); -extern void zvol_create_cb(objset_t *os, void *arg, cred_t *cr, dmu_tx_t *tx); -extern int zvol_create_minor(const char *); -extern int zvol_create_minors(const char *); -extern int zvol_remove_minor(const char *); -extern void zvol_remove_minors(const char *); -extern int zvol_set_volsize(const char *, uint64_t); -extern int zvol_set_volblocksize(const char *, uint64_t); - -extern int zvol_init(void); -extern void zvol_fini(void); - -#endif /* _KERNEL */ -#endif /* _SYS_ZVOL_H */ diff --git a/module/zpios/Makefile.in b/module/zpios/Makefile.in index 4924082a1..93a89a914 100644 --- a/module/zpios/Makefile.in +++ b/module/zpios/Makefile.in @@ -1,11 +1,10 @@ MODULE := zpios -EXTRA_CFLAGS = -I@MODDIR@/zfs/include -EXTRA_CFLAGS += -I@MODDIR@/zcommon/include -EXTRA_CFLAGS += -I@MODDIR@/avl/include -EXTRA_CFLAGS += -I@MODDIR@/nvpair/include -EXTRA_CFLAGS += -I@MODDIR@/unicode/include -EXTRA_CFLAGS += -I@MODDIR@/zpios/include -EXTRA_CFLAGS += @KERNELCPPFLAGS@ +EXTRA_CFLAGS = @KERNELCPPFLAGS@ +EXTRA_CFLAGS += -include @SPL_OBJ@/spl_config.h +EXTRA_CFLAGS += -include @abs_top_builddir@/zfs_config.h +EXTRA_CFLAGS += -I@abs_top_srcdir@/include -I@SPL@/include -I@SPL@ -obj-m := ${MODULE}.o +obj-m := $(MODULE).o + +$(MODULE)-objs += @top_srcdir@/module/zpios/pios.o diff --git a/module/zpios/include/zpios-ctl.h b/module/zpios/include/zpios-ctl.h deleted file mode 100644 index 234e96c11..000000000 --- a/module/zpios/include/zpios-ctl.h +++ /dev/null @@ -1,198 +0,0 @@ -/*****************************************************************************\ - * ZPIOS is a heavily modified version of the original PIOS test code. - * It is designed to have the test code running in the Linux kernel - * against ZFS while still being flexibly controled from user space. - * - * Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC. - * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). - * Written by Brian Behlendorf <[email protected]>. - * LLNL-CODE-403049 - * - * Original PIOS Test Code - * Copyright (C) 2004 Cluster File Systems, Inc. - * Written by Peter Braam <[email protected]> - * Atul Vidwansa <[email protected]> - * Milind Dumbare <[email protected]> - * - * This file is part of ZFS on Linux. - * For details, see <http://github.com/behlendorf/zfs/>. - * - * ZPIOS is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * ZPIOS is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with ZPIOS. If not, see <http://www.gnu.org/licenses/>. -\*****************************************************************************/ - -#ifndef _ZPIOS_CTL_H -#define _ZPIOS_CTL_H - -/* Contains shared definitions which both the userspace - * and kernelspace portions of zpios must agree on. - */ -#ifndef _KERNEL -#include <stdint.h> -#endif - -#define ZPIOS_MAJOR 232 /* XXX - Arbitrary */ -#define ZPIOS_MINORS 1 -#define ZPIOS_NAME "zpios" -#define ZPIOS_DEV "/dev/zpios" - -#define DMU_IO 0x01 - -#define DMU_WRITE 0x0001 -#define DMU_READ 0x0002 -#define DMU_VERIFY 0x0004 -#define DMU_REMOVE 0x0008 -#define DMU_FPP 0x0010 -#define DMU_WRITE_ZC 0x0020 /* Incompatible w/DMU_VERIFY */ -#define DMU_READ_ZC 0x0040 /* Incompatible w/DMU_VERIFY */ -#define DMU_WRITE_NOWAIT 0x0080 -#define DMU_READ_NOPF 0x0100 - -#define ZPIOS_NAME_SIZE 16 -#define ZPIOS_PATH_SIZE 128 - -#define PHASE_PRE_RUN "pre-run" -#define PHASE_PRE_CREATE "pre-create" -#define PHASE_PRE_WRITE "pre-write" -#define PHASE_PRE_READ "pre-read" -#define PHASE_PRE_REMOVE "pre-remove" -#define PHASE_POST_RUN "post-run" -#define PHASE_POST_CREATE "post-create" -#define PHASE_POST_WRITE "post-write" -#define PHASE_POST_READ "post-read" -#define PHASE_POST_REMOVE "post-remove" - -#define ZPIOS_CFG_MAGIC 0x87237190U -typedef struct zpios_cfg { - uint32_t cfg_magic; /* Unique magic */ - int32_t cfg_cmd; /* Config command */ - int32_t cfg_arg1; /* Config command arg 1 */ - int32_t cfg_rc1; /* Config response 1 */ -} zpios_cfg_t; - -typedef struct zpios_timespec { - uint32_t ts_sec; - uint32_t ts_nsec; -} zpios_timespec_t; - -typedef struct zpios_time { - zpios_timespec_t start; - zpios_timespec_t stop; - zpios_timespec_t delta; -} zpios_time_t; - -typedef struct zpios_stats { - zpios_time_t total_time; - zpios_time_t cr_time; - zpios_time_t rm_time; - zpios_time_t wr_time; - zpios_time_t rd_time; - uint64_t wr_data; - uint64_t wr_chunks; - uint64_t rd_data; - uint64_t rd_chunks; -} zpios_stats_t; - -#define ZPIOS_CMD_MAGIC 0x49715385U -typedef struct zpios_cmd { - uint32_t cmd_magic; /* Unique magic */ - uint32_t cmd_id; /* Run ID */ - char cmd_pool[ZPIOS_NAME_SIZE]; /* Pool name */ - uint64_t cmd_chunk_size; /* Chunk size */ - uint32_t cmd_thread_count; /* Thread count */ - uint32_t cmd_region_count; /* Region count */ - uint64_t cmd_region_size; /* Region size */ - uint64_t cmd_offset; /* Region offset */ - uint32_t cmd_region_noise; /* Region noise */ - uint32_t cmd_chunk_noise; /* Chunk noise */ - uint32_t cmd_thread_delay; /* Thread delay */ - uint32_t cmd_flags; /* Test flags */ - char cmd_pre[ZPIOS_PATH_SIZE]; /* Pre-exec hook */ - char cmd_post[ZPIOS_PATH_SIZE]; /* Post-exec hook */ - char cmd_log[ZPIOS_PATH_SIZE]; /* Requested log dir */ - uint64_t cmd_data_size; /* Opaque data size */ - char cmd_data_str[0]; /* Opaque data region */ -} zpios_cmd_t; - -/* Valid ioctls */ -#define ZPIOS_CFG _IOWR('f', 101, zpios_cfg_t) -#define ZPIOS_CMD _IOWR('f', 102, zpios_cmd_t) - -/* Valid configuration commands */ -#define ZPIOS_CFG_BUFFER_CLEAR 0x001 /* Clear text buffer */ -#define ZPIOS_CFG_BUFFER_SIZE 0x002 /* Resize text buffer */ - -#ifndef NSEC_PER_SEC -#define NSEC_PER_SEC 1000000000L -#endif - -static inline -void zpios_timespec_normalize(zpios_timespec_t *ts, uint32_t sec, uint32_t nsec) -{ - while (nsec >= NSEC_PER_SEC) { - nsec -= NSEC_PER_SEC; - sec++; - } - while (nsec < 0) { - nsec += NSEC_PER_SEC; - sec--; - } - ts->ts_sec = sec; - ts->ts_nsec = nsec; -} - -static inline -zpios_timespec_t zpios_timespec_add(zpios_timespec_t lhs, zpios_timespec_t rhs) -{ - zpios_timespec_t ts_delta; - zpios_timespec_normalize(&ts_delta, lhs.ts_sec + rhs.ts_sec, - lhs.ts_nsec + rhs.ts_nsec); - return ts_delta; -} - -static inline -zpios_timespec_t zpios_timespec_sub(zpios_timespec_t lhs, zpios_timespec_t rhs) -{ - zpios_timespec_t ts_delta; - zpios_timespec_normalize(&ts_delta, lhs.ts_sec - rhs.ts_sec, - lhs.ts_nsec - rhs.ts_nsec); - return ts_delta; -} - -#ifdef _KERNEL - -static inline -zpios_timespec_t zpios_timespec_now(void) -{ - zpios_timespec_t zts_now; - struct timespec ts_now; - - ts_now = current_kernel_time(); - zts_now.ts_sec = ts_now.tv_sec; - zts_now.ts_nsec = ts_now.tv_nsec; - - return zts_now; -} - -#else - -static inline -double zpios_timespec_to_double(zpios_timespec_t ts) -{ - return ((double)(ts.ts_sec) + - ((double)(ts.ts_nsec) / (double)(NSEC_PER_SEC))); -} - -#endif /* _KERNEL */ - -#endif /* _ZPIOS_CTL_H */ diff --git a/module/zpios/include/zpios-internal.h b/module/zpios/include/zpios-internal.h deleted file mode 100644 index c9b6e0092..000000000 --- a/module/zpios/include/zpios-internal.h +++ /dev/null @@ -1,138 +0,0 @@ -/*****************************************************************************\ - * ZPIOS is a heavily modified version of the original PIOS test code. - * It is designed to have the test code running in the Linux kernel - * against ZFS while still being flexibly controled from user space. - * - * Copyright (C) 2008-2010 Lawrence Livermore National Security, LLC. - * Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). - * Written by Brian Behlendorf <[email protected]>. - * LLNL-CODE-403049 - * - * Original PIOS Test Code - * Copyright (C) 2004 Cluster File Systems, Inc. - * Written by Peter Braam <[email protected]> - * Atul Vidwansa <[email protected]> - * Milind Dumbare <[email protected]> - * - * This file is part of ZFS on Linux. - * For details, see <http://github.com/behlendorf/zfs/>. - * - * ZPIOS is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * ZPIOS is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with ZPIOS. If not, see <http://www.gnu.org/licenses/>. -\*****************************************************************************/ - -#ifndef _ZPIOS_INTERNAL_H -#define _ZPIOS_INTERNAL_H - -#include "zpios-ctl.h" - -#define OBJ_SIZE 64 - -struct run_args; - -typedef struct dmu_obj { - objset_t *os; - uint64_t obj; -} dmu_obj_t; - -/* thread doing the IO data */ -typedef struct thread_data { - struct run_args *run_args; - int thread_no; - int rc; - zpios_stats_t stats; - kmutex_t lock; -} thread_data_t; - -/* region for IO data */ -typedef struct zpios_region { - __u64 wr_offset; - __u64 rd_offset; - __u64 init_offset; - __u64 max_offset; - dmu_obj_t obj; - zpios_stats_t stats; - kmutex_t lock; -} zpios_region_t; - -/* arguments for one run */ -typedef struct run_args { - /* Config args */ - int id; - char pool[ZPIOS_NAME_SIZE]; - __u64 chunk_size; - __u32 thread_count; - __u32 region_count; - __u64 region_size; - __u64 offset; - __u32 region_noise; - __u32 chunk_noise; - __u32 thread_delay; - __u32 flags; - char pre[ZPIOS_PATH_SIZE]; - char post[ZPIOS_PATH_SIZE]; - char log[ZPIOS_PATH_SIZE]; - - /* Control data */ - objset_t *os; - wait_queue_head_t waitq; - volatile uint64_t threads_done; - kmutex_t lock_work; - kmutex_t lock_ctl; - __u32 region_next; - - /* Results data */ - struct file *file; - zpios_stats_t stats; - - thread_data_t **threads; - zpios_region_t regions[0]; /* Must be last element */ -} run_args_t; - -#define ZPIOS_INFO_BUFFER_SIZE 65536 -#define ZPIOS_INFO_BUFFER_REDZONE 1024 - -typedef struct zpios_info { - spinlock_t info_lock; - int info_size; - char *info_buffer; - char *info_head; /* Internal kernel use only */ -} zpios_info_t; - -#define zpios_print(file, format, args...) \ -({ zpios_info_t *_info_ = (zpios_info_t *)file->private_data; \ - int _rc_; \ - \ - ASSERT(_info_); \ - ASSERT(_info_->info_buffer); \ - \ - spin_lock(&_info_->info_lock); \ - \ - /* Don't allow the kernel to start a write in the red zone */ \ - if ((int)(_info_->info_head - _info_->info_buffer) > \ - (_info_->info_size - ZPIOS_INFO_BUFFER_REDZONE)) { \ - _rc_ = -EOVERFLOW; \ - } else { \ - _rc_ = sprintf(_info_->info_head, format, args); \ - if (_rc_ >= 0) \ - _info_->info_head += _rc_; \ - } \ - \ - spin_unlock(&_info_->info_lock); \ - _rc_; \ -}) - -#define zpios_vprint(file, test, format, args...) \ - zpios_print(file, "%*s: " format, ZPIOS_NAME_SIZE, test, args) - -#endif /* _ZPIOS_INTERNAL_H */ diff --git a/module/zpios/zpios.c b/module/zpios/pios.c index 3edc16105..3edc16105 100644 --- a/module/zpios/zpios.c +++ b/module/zpios/pios.c |