]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/BrotliCustomDecompressLib: Make brotli a submodule
authorShenglei Zhang <shenglei.zhang@intel.com>
Wed, 12 Feb 2020 10:08:15 +0000 (18:08 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Thu, 16 Apr 2020 01:58:38 +0000 (01:58 +0000)
Use submodule way to access brotli in MdeModulePkg based on
brotli version 666c3280cc11dc433c303d79a83d4ffbdd12cc8d.
The newly added BrotliDecUefiSupport.h/.c are used by directory
'brotli'.
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2559

Cc: Liming Gao <liming.gao@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Signed-off-by: Shenglei Zhang <shenglei.zhang@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
36 files changed:
.gitmodules
.pytool/CISettings.py
MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliCustomDecompressLib.inf
MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliDecUefiSupport.c [new file with mode: 0644]
MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliDecUefiSupport.h [new file with mode: 0644]
MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliDecompressLibInternal.h
MdeModulePkg/Library/BrotliCustomDecompressLib/LICENSE [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/README.md [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/ReadMe.txt [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/brotli [new submodule]
MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/decode.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/port.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/types.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/common/constants.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/common/context.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/common/dictionary.c [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/common/dictionary.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/common/platform.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/common/transform.c [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/common/transform.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/common/version.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/dec/bit_reader.c [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/dec/bit_reader.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/dec/decode.c [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/dec/huffman.c [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/dec/huffman.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/dec/prefix.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/dec/state.c [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/dec/state.h [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/docs/brotli-comparison-study-2015-09-22.pdf [deleted file]
MdeModulePkg/Library/BrotliCustomDecompressLib/stddef.h [new file with mode: 0644]
MdeModulePkg/Library/BrotliCustomDecompressLib/stdint.h [new file with mode: 0644]
MdeModulePkg/Library/BrotliCustomDecompressLib/stdlib.h [new file with mode: 0644]
MdeModulePkg/Library/BrotliCustomDecompressLib/string.h [new file with mode: 0644]
MdeModulePkg/MdeModulePkg.dec
Readme.md

index 87fe46f7fa7bcad3bd9f4a3287342eba9febfc2c..20640fb617999d80aa4e21a2d29952b434a52369 100644 (file)
@@ -10,3 +10,6 @@
 [submodule "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma"]
        path = MdeModulePkg/Universal/RegularExpressionDxe/oniguruma
        url = https://github.com/kkos/oniguruma
+[submodule "MdeModulePkg/Library/BrotliCustomDecompressLib/brotli"]
+       path = MdeModulePkg/Library/BrotliCustomDecompressLib/brotli
+       url = https://github.com/google/brotli
index 120fa1dcb4336c62d4e301a2059f3ae0745f02c9..077d65473209aca414199c94b3e9bc830adde6f2 100644 (file)
@@ -146,6 +146,8 @@ class Settings(CiBuildSettingsManager, UpdateSettingsManager, SetupSettingsManag
             "UnitTestFrameworkPkg/Library/CmockaLib/cmocka", False))\r
         rs.append(RequiredSubmodule(\r
             "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma", False))\r
+        rs.append(RequiredSubmodule(\r
+            "MdeModulePkg/Library/BrotliCustomDecompressLib/brotli", False))\r
         return rs\r
 \r
     def GetName(self):\r
index 3ba2cb9c3f7d983bf36957945e9f556519a75fc4..525e92408d679997f595c2b8d39f223205972ce1 100644 (file)
@@ -4,7 +4,7 @@
 #  It is based on the Brotli v0.5.2.\r
 #  Brotli was released on the website https://github.com/google/brotli.\r
 #\r
-#  Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>\r
+#  Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.<BR>\r
 #\r
 #  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 #\r
 \r
 [Sources]\r
   GuidedSectionExtraction.c\r
+  BrotliDecUefiSupport.c\r
+  BrotliDecUefiSupport.h\r
   BrotliDecompress.c\r
   BrotliDecompressLibInternal.h\r
-  common/dictionary.c\r
-  common/transform.c\r
-  dec/bit_reader.c\r
-  dec/decode.c\r
-  dec/huffman.c\r
-  dec/state.c\r
-  brotli/decode.h\r
-  brotli/port.h\r
-  brotli/types.h\r
-  common/constants.h\r
-  common/context.h\r
-  common/dictionary.h\r
-  common/platform.h\r
-  common/transform.h\r
-  common/version.h\r
-  dec/bit_reader.h\r
-  dec/huffman.h\r
-  dec/state.h\r
-  dec/prefix.h\r
+  # Wrapper header files start #\r
+  stddef.h\r
+  stdint.h\r
+  stdlib.h\r
+  string.h\r
+  # Wrapper header files end #\r
+  brotli/c/common/dictionary.c\r
+  brotli/c/common/transform.c\r
+  brotli/c/dec/bit_reader.c\r
+  brotli/c/dec/decode.c\r
+  brotli/c/dec/huffman.c\r
+  brotli/c/dec/state.c\r
+  brotli/c/include/brotli/decode.h\r
+  brotli/c/include/brotli/port.h\r
+  brotli/c/include/brotli/types.h\r
+  brotli/c/common/constants.h\r
+  brotli/c/common/context.h\r
+  brotli/c/common/dictionary.h\r
+  brotli/c/common/platform.h\r
+  brotli/c/common/transform.h\r
+  brotli/c/common/version.h\r
+  brotli/c/dec/bit_reader.h\r
+  brotli/c/dec/huffman.h\r
+  brotli/c/dec/state.h\r
+  brotli/c/dec/prefix.h\r
 \r
 [Packages]\r
   MdePkg/MdePkg.dec\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliDecUefiSupport.c b/MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliDecUefiSupport.c
new file mode 100644 (file)
index 0000000..1021465
--- /dev/null
@@ -0,0 +1,31 @@
+/** @file\r
+  Implements for functions declared in BrotliDecUefiSupport.h\r
+\r
+  Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+#include <BrotliDecUefiSupport.h>\r
+\r
+/**\r
+  Dummy malloc function for compiler.\r
+**/\r
+VOID *\r
+BrDummyMalloc (\r
+  IN size_t    Size\r
+  )\r
+{\r
+  ASSERT (FALSE);\r
+  return NULL;\r
+}\r
+\r
+/**\r
+  Dummy free function for compiler.\r
+**/\r
+VOID\r
+BrDummyFree (\r
+  IN VOID *    Ptr\r
+  )\r
+{\r
+  ASSERT (FALSE);\r
+}\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliDecUefiSupport.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/BrotliDecUefiSupport.h
new file mode 100644 (file)
index 0000000..9f84347
--- /dev/null
@@ -0,0 +1,43 @@
+/** @file\r
+  BROTLI UEFI header file for definitions\r
+\r
+  Allows BROTLI code to build under UEFI (edk2) build environment\r
+\r
+  Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#ifndef __BROTLI_DECOMPRESS_UEFI_SUP_H__\r
+#define __BROTLI_DECOMPRESS_UEFI_SUP_H__\r
+\r
+#include <Library/BaseLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
+#include <Library/DebugLib.h>\r
+#define memcpy                      CopyMem\r
+#define memmove                     CopyMem\r
+#define memset(dest,ch,count)       SetMem(dest,(UINTN)(count),(UINT8)(ch))\r
+#define malloc                      BrDummyMalloc\r
+#define free                        BrDummyFree\r
+\r
+typedef INT8     int8_t;\r
+typedef INT16    int16_t;\r
+typedef INT32    int32_t;\r
+typedef INT64    int64_t;\r
+typedef UINT8    uint8_t;\r
+typedef UINT16   uint16_t;\r
+typedef UINT32   uint32_t;\r
+typedef UINT64   uint64_t;\r
+typedef UINTN    size_t;\r
+\r
+VOID *\r
+BrDummyMalloc (\r
+  IN size_t   Size\r
+  );\r
+\r
+VOID\r
+BrDummyFree (\r
+  IN VOID *   Ptr\r
+  );\r
+\r
+#endif\r
index 8e581cbcae5102c4c2c99a8a453828c3a8fde1ae..8f91829a0e2e2a15ec7dfbac911c08a8dddb1912 100644 (file)
@@ -3,7 +3,7 @@
 \r
   Allows BROTLI code to build under UEFI (edk2) build environment\r
 \r
-  Copyright (c) 2017 - 2018, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.<BR>\r
   SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 #define __BROTLI_DECOMPRESS_INTERNAL_H__\r
 \r
 #include <PiPei.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/DebugLib.h>\r
 #include <Library/ExtractGuidedSectionLib.h>\r
-#include <brotli/types.h>\r
-#include <brotli/decode.h>\r
+#include <brotli/c/include/brotli/types.h>\r
+#include <brotli/c/include/brotli/decode.h>\r
 \r
 typedef struct\r
 {\r
@@ -30,20 +27,6 @@ typedef struct
 #define BROTLI_DECODE_MAX    8\r
 #define BROTLI_SCRATCH_MAX   16\r
 \r
-#define memcpy                      CopyMem\r
-#define memmove                     CopyMem\r
-#define memset(dest,ch,count)       SetMem(dest,(UINTN)(count),(UINT8)(ch))\r
-\r
-VOID *\r
-BrDummyMalloc (\r
-  IN size_t   Size\r
-  );\r
-\r
-VOID\r
-BrDummyFree (\r
-  IN VOID *   Ptr\r
-  );\r
-\r
 EFI_STATUS\r
 EFIAPI\r
 BrotliUefiDecompressGetInfo (\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/LICENSE b/MdeModulePkg/Library/BrotliCustomDecompressLib/LICENSE
deleted file mode 100644 (file)
index 49550fc..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors.\r
-\r
-Permission is hereby granted, free of charge, to any person obtaining a copy\r
-of this software and associated documentation files (the "Software"), to deal\r
-in the Software without restriction, including without limitation the rights\r
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r
-copies of the Software, and to permit persons to whom the Software is\r
-furnished to do so, subject to the following conditions:\r
-\r
-The above copyright notice and this permission notice shall be included in\r
-all copies or substantial portions of the Software.\r
-\r
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE\r
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r
-THE SOFTWARE.\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/README.md b/MdeModulePkg/Library/BrotliCustomDecompressLib/README.md
deleted file mode 100644 (file)
index 01848ad..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-### Introduction\r
-\r
-Brotli is a generic-purpose lossless compression algorithm that compresses data\r
-using a combination of a modern variant of the LZ77 algorithm, Huffman coding\r
-and 2nd order context modeling, with a compression ratio comparable to the best\r
-currently available general-purpose compression methods. It is similar in speed\r
-with deflate but offers more dense compression.\r
-\r
-The specification of the Brotli Compressed Data Format is defined in [RFC 7932](https://www.ietf.org/rfc/rfc7932.txt).\r
-\r
-Brotli is open-sourced under the MIT License, see the LICENSE file.\r
-\r
-Brotli mailing list:\r
-https://groups.google.com/forum/#!forum/brotli\r
-\r
-[![Build Status](https://travis-ci.org/google/brotli.svg?branch=master)](https://travis-ci.org/google/brotli)\r
-\r
-### Benchmarks\r
-* [Squash Compression Benchmark](https://quixdb.github.io/squash-benchmark/) / [Unstable Squash Compression Benchmark](https://quixdb.github.io/squash-benchmark/unstable/)\r
-* [Large Text Compression Benchmark](http://mattmahoney.net/dc/text.html)\r
-* [Lzturbo Benchmark](https://sites.google.com/site/powturbo/home/benchmark)\r
-\r
-### Related projects\r
-Independent [decoder](https://github.com/madler/brotli) implementation by Mark Adler, based entirely on format specification.\r
-\r
-JavaScript port of brotli [decoder](https://github.com/devongovett/brotli.js). Could be used directly via `npm install brotli`\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/ReadMe.txt b/MdeModulePkg/Library/BrotliCustomDecompressLib/ReadMe.txt
deleted file mode 100644 (file)
index 399ec38..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-It is based on the Brotli v1.0.6.\r
-Brotli was released on the website https://github.com/google/brotli.\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli b/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli
new file mode 160000 (submodule)
index 0000000..666c328
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 666c3280cc11dc433c303d79a83d4ffbdd12cc8d
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/decode.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/decode.h
deleted file mode 100644 (file)
index 2cd1725..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/**\r
- * @file\r
- * API for Brotli decompression.\r
- */\r
-\r
-#ifndef BROTLI_DEC_DECODE_H_\r
-#define BROTLI_DEC_DECODE_H_\r
-\r
-#include <brotli/port.h>\r
-#include <brotli/types.h>\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-/**\r
- * Opaque structure that holds decoder state.\r
- *\r
- * Allocated and initialized with ::BrotliDecoderCreateInstance.\r
- * Cleaned up and deallocated with ::BrotliDecoderDestroyInstance.\r
- */\r
-typedef struct BrotliDecoderStateStruct BrotliDecoderState;\r
-\r
-/**\r
- * Result type for ::BrotliDecoderDecompress and\r
- * ::BrotliDecoderDecompressStream functions.\r
- */\r
-typedef enum {\r
-  /** Decoding error, e.g. corrupted input or memory allocation problem. */\r
-  BROTLI_DECODER_RESULT_ERROR = 0,\r
-  /** Decoding successfully completed. */\r
-  BROTLI_DECODER_RESULT_SUCCESS = 1,\r
-  /** Partially done; should be called again with more input. */\r
-  BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT = 2,\r
-  /** Partially done; should be called again with more output. */\r
-  BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT = 3\r
-} BrotliDecoderResult;\r
-\r
-/**\r
- * Template that evaluates items of ::BrotliDecoderErrorCode.\r
- *\r
- * Example: @code {.cpp}\r
- * // Log Brotli error code.\r
- * switch (brotliDecoderErrorCode) {\r
- * #define CASE_(PREFIX, NAME, CODE) \\r
- *   case BROTLI_DECODER ## PREFIX ## NAME: \\r
- *     LOG(INFO) << "error code:" << #NAME; \\r
- *     break;\r
- * #define NEWLINE_\r
- * BROTLI_DECODER_ERROR_CODES_LIST(CASE_, NEWLINE_)\r
- * #undef CASE_\r
- * #undef NEWLINE_\r
- *   default: LOG(FATAL) << "unknown brotli error code";\r
- * }\r
- * @endcode\r
- */\r
-#define BROTLI_DECODER_ERROR_CODES_LIST(BROTLI_ERROR_CODE, SEPARATOR)      \\r
-  BROTLI_ERROR_CODE(_, NO_ERROR, 0) SEPARATOR                              \\r
-  /* Same as BrotliDecoderResult values */                                 \\r
-  BROTLI_ERROR_CODE(_, SUCCESS, 1) SEPARATOR                               \\r
-  BROTLI_ERROR_CODE(_, NEEDS_MORE_INPUT, 2) SEPARATOR                      \\r
-  BROTLI_ERROR_CODE(_, NEEDS_MORE_OUTPUT, 3) SEPARATOR                     \\r
-                                                                           \\r
-  /* Errors caused by invalid input */                                     \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, EXUBERANT_NIBBLE, -1) SEPARATOR        \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, RESERVED, -2) SEPARATOR                \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, EXUBERANT_META_NIBBLE, -3) SEPARATOR   \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, SIMPLE_HUFFMAN_ALPHABET, -4) SEPARATOR \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, SIMPLE_HUFFMAN_SAME, -5) SEPARATOR     \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, CL_SPACE, -6) SEPARATOR                \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, HUFFMAN_SPACE, -7) SEPARATOR           \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, CONTEXT_MAP_REPEAT, -8) SEPARATOR      \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, BLOCK_LENGTH_1, -9) SEPARATOR          \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, BLOCK_LENGTH_2, -10) SEPARATOR         \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, TRANSFORM, -11) SEPARATOR              \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, DICTIONARY, -12) SEPARATOR             \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, WINDOW_BITS, -13) SEPARATOR            \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, PADDING_1, -14) SEPARATOR              \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, PADDING_2, -15) SEPARATOR              \\r
-  BROTLI_ERROR_CODE(_ERROR_FORMAT_, DISTANCE, -16) SEPARATOR               \\r
-                                                                           \\r
-  /* -17..-18 codes are reserved */                                        \\r
-                                                                           \\r
-  BROTLI_ERROR_CODE(_ERROR_, DICTIONARY_NOT_SET, -19) SEPARATOR            \\r
-  BROTLI_ERROR_CODE(_ERROR_, INVALID_ARGUMENTS, -20) SEPARATOR             \\r
-                                                                           \\r
-  /* Memory allocation problems */                                         \\r
-  BROTLI_ERROR_CODE(_ERROR_ALLOC_, CONTEXT_MODES, -21) SEPARATOR           \\r
-  /* Literal, insert and distance trees together */                        \\r
-  BROTLI_ERROR_CODE(_ERROR_ALLOC_, TREE_GROUPS, -22) SEPARATOR             \\r
-  /* -23..-24 codes are reserved for distinct tree groups */               \\r
-  BROTLI_ERROR_CODE(_ERROR_ALLOC_, CONTEXT_MAP, -25) SEPARATOR             \\r
-  BROTLI_ERROR_CODE(_ERROR_ALLOC_, RING_BUFFER_1, -26) SEPARATOR           \\r
-  BROTLI_ERROR_CODE(_ERROR_ALLOC_, RING_BUFFER_2, -27) SEPARATOR           \\r
-  /* -28..-29 codes are reserved for dynamic ring-buffer allocation */     \\r
-  BROTLI_ERROR_CODE(_ERROR_ALLOC_, BLOCK_TYPE_TREES, -30) SEPARATOR        \\r
-                                                                           \\r
-  /* "Impossible" states */                                                \\r
-  BROTLI_ERROR_CODE(_ERROR_, UNREACHABLE, -31)\r
-\r
-/**\r
- * Error code for detailed logging / production debugging.\r
- *\r
- * See ::BrotliDecoderGetErrorCode and ::BROTLI_LAST_ERROR_CODE.\r
- */\r
-typedef enum {\r
-#define BROTLI_COMMA_ ,\r
-#define BROTLI_ERROR_CODE_ENUM_ITEM_(PREFIX, NAME, CODE) \\r
-    BROTLI_DECODER ## PREFIX ## NAME = CODE\r
-  BROTLI_DECODER_ERROR_CODES_LIST(BROTLI_ERROR_CODE_ENUM_ITEM_, BROTLI_COMMA_)\r
-} BrotliDecoderErrorCode;\r
-#undef BROTLI_ERROR_CODE_ENUM_ITEM_\r
-#undef BROTLI_COMMA_\r
-\r
-/**\r
- * The value of the last error code, negative integer.\r
- *\r
- * All other error code values are in the range from ::BROTLI_LAST_ERROR_CODE\r
- * to @c -1. There are also 4 other possible non-error codes @c 0 .. @c 3 in\r
- * ::BrotliDecoderErrorCode enumeration.\r
- */\r
-#define BROTLI_LAST_ERROR_CODE BROTLI_DECODER_ERROR_UNREACHABLE\r
-\r
-/** Options to be used with ::BrotliDecoderSetParameter. */\r
-typedef enum BrotliDecoderParameter {\r
-  /**\r
-   * Disable "canny" ring buffer allocation strategy.\r
-   *\r
-   * Ring buffer is allocated according to window size, despite the real size of\r
-   * the content.\r
-   */\r
-  BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION = 0,\r
-  /**\r
-   * Flag that determines if "Large Window Brotli" is used.\r
-   */\r
-  BROTLI_DECODER_PARAM_LARGE_WINDOW = 1\r
-} BrotliDecoderParameter;\r
-\r
-/**\r
- * Sets the specified parameter to the given decoder instance.\r
- *\r
- * @param state decoder instance\r
- * @param param parameter to set\r
- * @param value new parameter value\r
- * @returns ::BROTLI_FALSE if parameter is unrecognized, or value is invalid\r
- * @returns ::BROTLI_TRUE if value is accepted\r
- */\r
-BROTLI_DEC_API BROTLI_BOOL BrotliDecoderSetParameter(\r
-    BrotliDecoderState* state, BrotliDecoderParameter param, uint32_t value);\r
-\r
-/**\r
- * Creates an instance of ::BrotliDecoderState and initializes it.\r
- *\r
- * The instance can be used once for decoding and should then be destroyed with\r
- * ::BrotliDecoderDestroyInstance, it cannot be reused for a new decoding\r
- * session.\r
- *\r
- * @p alloc_func and @p free_func @b MUST be both zero or both non-zero. In the\r
- * case they are both zero, default memory allocators are used. @p opaque is\r
- * passed to @p alloc_func and @p free_func when they are called. @p free_func\r
- * has to return without doing anything when asked to free a NULL pointer.\r
- *\r
- * @param alloc_func custom memory allocation function\r
- * @param free_func custom memory free function\r
- * @param opaque custom memory manager handle\r
- * @returns @c 0 if instance can not be allocated or initialized\r
- * @returns pointer to initialized ::BrotliDecoderState otherwise\r
- */\r
-BROTLI_DEC_API BrotliDecoderState* BrotliDecoderCreateInstance(\r
-    brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque);\r
-\r
-/**\r
- * Deinitializes and frees ::BrotliDecoderState instance.\r
- *\r
- * @param state decoder instance to be cleaned up and deallocated\r
- */\r
-BROTLI_DEC_API void BrotliDecoderDestroyInstance(BrotliDecoderState* state);\r
-\r
-/**\r
- * Performs one-shot memory-to-memory decompression.\r
- *\r
- * Decompresses the data in @p encoded_buffer into @p decoded_buffer, and sets\r
- * @p *decoded_size to the decompressed length.\r
- *\r
- * @param encoded_size size of @p encoded_buffer\r
- * @param encoded_buffer compressed data buffer with at least @p encoded_size\r
- *        addressable bytes\r
- * @param[in, out] decoded_size @b in: size of @p decoded_buffer; \n\r
- *                 @b out: length of decompressed data written to\r
- *                 @p decoded_buffer\r
- * @param decoded_buffer decompressed data destination buffer\r
- * @returns ::BROTLI_DECODER_RESULT_ERROR if input is corrupted, memory\r
- *          allocation failed, or @p decoded_buffer is not large enough;\r
- * @returns ::BROTLI_DECODER_RESULT_SUCCESS otherwise\r
- */\r
-BROTLI_DEC_API BrotliDecoderResult BrotliDecoderDecompress(\r
-    size_t encoded_size,\r
-    const uint8_t encoded_buffer[BROTLI_ARRAY_PARAM(encoded_size)],\r
-    size_t* decoded_size,\r
-    uint8_t decoded_buffer[BROTLI_ARRAY_PARAM(*decoded_size)]);\r
-\r
-/**\r
- * Decompresses the input stream to the output stream.\r
- *\r
- * The values @p *available_in and @p *available_out must specify the number of\r
- * bytes addressable at @p *next_in and @p *next_out respectively.\r
- * When @p *available_out is @c 0, @p next_out is allowed to be @c NULL.\r
- *\r
- * After each call, @p *available_in will be decremented by the amount of input\r
- * bytes consumed, and the @p *next_in pointer will be incremented by that\r
- * amount. Similarly, @p *available_out will be decremented by the amount of\r
- * output bytes written, and the @p *next_out pointer will be incremented by\r
- * that amount.\r
- *\r
- * @p total_out, if it is not a null-pointer, will be set to the number\r
- * of bytes decompressed since the last @p state initialization.\r
- *\r
- * @note Input is never overconsumed, so @p next_in and @p available_in could be\r
- * passed to the next consumer after decoding is complete.\r
- *\r
- * @param state decoder instance\r
- * @param[in, out] available_in @b in: amount of available input; \n\r
- *                 @b out: amount of unused input\r
- * @param[in, out] next_in pointer to the next compressed byte\r
- * @param[in, out] available_out @b in: length of output buffer; \n\r
- *                 @b out: remaining size of output buffer\r
- * @param[in, out] next_out output buffer cursor;\r
- *                 can be @c NULL if @p available_out is @c 0\r
- * @param[out] total_out number of bytes decompressed so far; can be @c NULL\r
- * @returns ::BROTLI_DECODER_RESULT_ERROR if input is corrupted, memory\r
- *          allocation failed, arguments were invalid, etc.;\r
- *          use ::BrotliDecoderGetErrorCode to get detailed error code\r
- * @returns ::BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT decoding is blocked until\r
- *          more input data is provided\r
- * @returns ::BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT decoding is blocked until\r
- *          more output space is provided\r
- * @returns ::BROTLI_DECODER_RESULT_SUCCESS decoding is finished, no more\r
- *          input might be consumed and no more output will be produced\r
- */\r
-BROTLI_DEC_API BrotliDecoderResult BrotliDecoderDecompressStream(\r
-  BrotliDecoderState* state, size_t* available_in, const uint8_t** next_in,\r
-  size_t* available_out, uint8_t** next_out, size_t* total_out);\r
-\r
-/**\r
- * Checks if decoder has more output.\r
- *\r
- * @param state decoder instance\r
- * @returns ::BROTLI_TRUE, if decoder has some unconsumed output\r
- * @returns ::BROTLI_FALSE otherwise\r
- */\r
-BROTLI_DEC_API BROTLI_BOOL BrotliDecoderHasMoreOutput(\r
-    const BrotliDecoderState* state);\r
-\r
-/**\r
- * Acquires pointer to internal output buffer.\r
- *\r
- * This method is used to make language bindings easier and more efficient:\r
- *  -# push data to ::BrotliDecoderDecompressStream,\r
- *     until ::BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT is reported\r
- *  -# use ::BrotliDecoderTakeOutput to peek bytes and copy to language-specific\r
- *     entity\r
- *\r
- * Also this could be useful if there is an output stream that is able to\r
- * consume all the provided data (e.g. when data is saved to file system).\r
- *\r
- * @attention After every call to ::BrotliDecoderTakeOutput @p *size bytes of\r
- *            output are considered consumed for all consecutive calls to the\r
- *            instance methods; returned pointer becomes invalidated as well.\r
- *\r
- * @note Decoder output is not guaranteed to be contiguous. This means that\r
- *       after the size-unrestricted call to ::BrotliDecoderTakeOutput,\r
- *       immediate next call to ::BrotliDecoderTakeOutput may return more data.\r
- *\r
- * @param state decoder instance\r
- * @param[in, out] size @b in: number of bytes caller is ready to take, @c 0 if\r
- *                 any amount could be handled; \n\r
- *                 @b out: amount of data pointed by returned pointer and\r
- *                 considered consumed; \n\r
- *                 out value is never greater than in value, unless it is @c 0\r
- * @returns pointer to output data\r
- */\r
-BROTLI_DEC_API const uint8_t* BrotliDecoderTakeOutput(\r
-    BrotliDecoderState* state, size_t* size);\r
-\r
-/**\r
- * Checks if instance has already consumed input.\r
- *\r
- * Instance that returns ::BROTLI_FALSE is considered "fresh" and could be\r
- * reused.\r
- *\r
- * @param state decoder instance\r
- * @returns ::BROTLI_TRUE if decoder has already used some input bytes\r
- * @returns ::BROTLI_FALSE otherwise\r
- */\r
-BROTLI_DEC_API BROTLI_BOOL BrotliDecoderIsUsed(const BrotliDecoderState* state);\r
-\r
-/**\r
- * Checks if decoder instance reached the final state.\r
- *\r
- * @param state decoder instance\r
- * @returns ::BROTLI_TRUE if decoder is in a state where it reached the end of\r
- *          the input and produced all of the output\r
- * @returns ::BROTLI_FALSE otherwise\r
- */\r
-BROTLI_DEC_API BROTLI_BOOL BrotliDecoderIsFinished(\r
-    const BrotliDecoderState* state);\r
-\r
-/**\r
- * Acquires a detailed error code.\r
- *\r
- * Should be used only after ::BrotliDecoderDecompressStream returns\r
- * ::BROTLI_DECODER_RESULT_ERROR.\r
- *\r
- * See also ::BrotliDecoderErrorString\r
- *\r
- * @param state decoder instance\r
- * @returns last saved error code\r
- */\r
-BROTLI_DEC_API BrotliDecoderErrorCode BrotliDecoderGetErrorCode(\r
-    const BrotliDecoderState* state);\r
-\r
-/**\r
- * Converts error code to a c-string.\r
- */\r
-BROTLI_DEC_API const char* BrotliDecoderErrorString(BrotliDecoderErrorCode c);\r
-\r
-/**\r
- * Gets a decoder library version.\r
- *\r
- * Look at BROTLI_VERSION for more information.\r
- */\r
-BROTLI_DEC_API uint32_t BrotliDecoderVersion(void);\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-} /* extern "C" */\r
-#endif\r
-\r
-#endif  /* BROTLI_DEC_DECODE_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/port.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/port.h
deleted file mode 100644 (file)
index 6e43998..0000000
+++ /dev/null
@@ -1,274 +0,0 @@
-/* Copyright 2016 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Macros for compiler / platform specific API declarations. */\r
-\r
-#ifndef BROTLI_COMMON_PORT_H_\r
-#define BROTLI_COMMON_PORT_H_\r
-\r
-/* The following macros were borrowed from https://github.com/nemequ/hedley\r
- * with permission of original author - Evan Nemerson <evan@nemerson.com> */\r
-\r
-/* >>> >>> >>> hedley macros */\r
-\r
-#define BROTLI_MAKE_VERSION(major, minor, revision) \\r
-  (((major) * 1000000) + ((minor) * 1000) + (revision))\r
-\r
-#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__)\r
-#define BROTLI_GNUC_VERSION \\r
-  BROTLI_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)\r
-#elif defined(__GNUC__)\r
-#define BROTLI_GNUC_VERSION BROTLI_MAKE_VERSION(__GNUC__, __GNUC_MINOR__, 0)\r
-#endif\r
-\r
-#if defined(BROTLI_GNUC_VERSION)\r
-#define BROTLI_GNUC_VERSION_CHECK(major, minor, patch) \\r
-  (BROTLI_GNUC_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))\r
-#else\r
-#define BROTLI_GNUC_VERSION_CHECK(major, minor, patch) (0)\r
-#endif\r
-\r
-#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000)\r
-#define BROTLI_MSVC_VERSION                                \\r
-  BROTLI_MAKE_VERSION((_MSC_FULL_VER / 10000000),          \\r
-                      (_MSC_FULL_VER % 10000000) / 100000, \\r
-                      (_MSC_FULL_VER % 100000) / 100)\r
-#elif defined(_MSC_FULL_VER)\r
-#define BROTLI_MSVC_VERSION                              \\r
-  BROTLI_MAKE_VERSION((_MSC_FULL_VER / 1000000),         \\r
-                      (_MSC_FULL_VER % 1000000) / 10000, \\r
-                      (_MSC_FULL_VER % 10000) / 10)\r
-#elif defined(_MSC_VER)\r
-#define BROTLI_MSVC_VERSION \\r
-  BROTLI_MAKE_VERSION(_MSC_VER / 100, _MSC_VER % 100, 0)\r
-#endif\r
-\r
-#if !defined(_MSC_VER)\r
-#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) (0)\r
-#elif defined(_MSC_VER) && (_MSC_VER >= 1400)\r
-#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \\r
-  (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch)))\r
-#elif defined(_MSC_VER) && (_MSC_VER >= 1200)\r
-#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \\r
-  (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch)))\r
-#else\r
-#define BROTLI_MSVC_VERSION_CHECK(major, minor, patch) \\r
-  (_MSC_VER >= ((major * 100) + (minor)))\r
-#endif\r
-\r
-#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE)\r
-#define BROTLI_INTEL_VERSION                   \\r
-  BROTLI_MAKE_VERSION(__INTEL_COMPILER / 100,  \\r
-                      __INTEL_COMPILER % 100,  \\r
-                      __INTEL_COMPILER_UPDATE)\r
-#elif defined(__INTEL_COMPILER)\r
-#define BROTLI_INTEL_VERSION \\r
-  BROTLI_MAKE_VERSION(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0)\r
-#endif\r
-\r
-#if defined(BROTLI_INTEL_VERSION)\r
-#define BROTLI_INTEL_VERSION_CHECK(major, minor, patch) \\r
-  (BROTLI_INTEL_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))\r
-#else\r
-#define BROTLI_INTEL_VERSION_CHECK(major, minor, patch) (0)\r
-#endif\r
-\r
-#if defined(__PGI) && \\r
-    defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)\r
-#define BROTLI_PGI_VERSION \\r
-  BROTLI_MAKE_VERSION(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__)\r
-#endif\r
-\r
-#if defined(BROTLI_PGI_VERSION)\r
-#define BROTLI_PGI_VERSION_CHECK(major, minor, patch) \\r
-  (BROTLI_PGI_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))\r
-#else\r
-#define BROTLI_PGI_VERSION_CHECK(major, minor, patch) (0)\r
-#endif\r
-\r
-#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000)\r
-#define BROTLI_SUNPRO_VERSION                                       \\r
-  BROTLI_MAKE_VERSION(                                              \\r
-    (((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), \\r
-    (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf),   \\r
-    (__SUNPRO_C & 0xf) * 10)\r
-#elif defined(__SUNPRO_C)\r
-#define BROTLI_SUNPRO_VERSION                  \\r
-  BROTLI_MAKE_VERSION((__SUNPRO_C >> 8) & 0xf, \\r
-                      (__SUNPRO_C >> 4) & 0xf, \\r
-                      (__SUNPRO_C) & 0xf)\r
-#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000)\r
-#define BROTLI_SUNPRO_VERSION                                         \\r
-  BROTLI_MAKE_VERSION(                                                \\r
-    (((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), \\r
-    (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf),   \\r
-    (__SUNPRO_CC & 0xf) * 10)\r
-#elif defined(__SUNPRO_CC)\r
-#define BROTLI_SUNPRO_VERSION                   \\r
-  BROTLI_MAKE_VERSION((__SUNPRO_CC >> 8) & 0xf, \\r
-                      (__SUNPRO_CC >> 4) & 0xf, \\r
-                      (__SUNPRO_CC) & 0xf)\r
-#endif\r
-\r
-#if defined(BROTLI_SUNPRO_VERSION)\r
-#define BROTLI_SUNPRO_VERSION_CHECK(major, minor, patch) \\r
-  (BROTLI_SUNPRO_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))\r
-#else\r
-#define BROTLI_SUNPRO_VERSION_CHECK(major, minor, patch) (0)\r
-#endif\r
-\r
-#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION)\r
-#define BROTLI_ARM_VERSION                                       \\r
-  BROTLI_MAKE_VERSION((__ARMCOMPILER_VERSION / 1000000),         \\r
-                      (__ARMCOMPILER_VERSION % 1000000) / 10000, \\r
-                      (__ARMCOMPILER_VERSION % 10000) / 100)\r
-#elif defined(__CC_ARM) && defined(__ARMCC_VERSION)\r
-#define BROTLI_ARM_VERSION                                 \\r
-  BROTLI_MAKE_VERSION((__ARMCC_VERSION / 1000000),         \\r
-                      (__ARMCC_VERSION % 1000000) / 10000, \\r
-                      (__ARMCC_VERSION % 10000) / 100)\r
-#endif\r
-\r
-#if defined(BROTLI_ARM_VERSION)\r
-#define BROTLI_ARM_VERSION_CHECK(major, minor, patch) \\r
-  (BROTLI_ARM_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))\r
-#else\r
-#define BROTLI_ARM_VERSION_CHECK(major, minor, patch) (0)\r
-#endif\r
-\r
-#if defined(__ibmxl__)\r
-#define BROTLI_IBM_VERSION                    \\r
-  BROTLI_MAKE_VERSION(__ibmxl_version__,      \\r
-                      __ibmxl_release__,      \\r
-                      __ibmxl_modification__)\r
-#elif defined(__xlC__) && defined(__xlC_ver__)\r
-#define BROTLI_IBM_VERSION \\r
-  BROTLI_MAKE_VERSION(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff)\r
-#elif defined(__xlC__)\r
-#define BROTLI_IBM_VERSION BROTLI_MAKE_VERSION(__xlC__ >> 8, __xlC__ & 0xff, 0)\r
-#endif\r
-\r
-#if defined(BROTLI_IBM_VERSION)\r
-#define BROTLI_IBM_VERSION_CHECK(major, minor, patch) \\r
-  (BROTLI_IBM_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))\r
-#else\r
-#define BROTLI_IBM_VERSION_CHECK(major, minor, patch) (0)\r
-#endif\r
-\r
-#if defined(__TI_COMPILER_VERSION__)\r
-#define BROTLI_TI_VERSION                                         \\r
-  BROTLI_MAKE_VERSION((__TI_COMPILER_VERSION__ / 1000000),        \\r
-                      (__TI_COMPILER_VERSION__ % 1000000) / 1000, \\r
-                      (__TI_COMPILER_VERSION__ % 1000))\r
-#endif\r
-\r
-#if defined(BROTLI_TI_VERSION)\r
-#define BROTLI_TI_VERSION_CHECK(major, minor, patch) \\r
-  (BROTLI_TI_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))\r
-#else\r
-#define BROTLI_TI_VERSION_CHECK(major, minor, patch) (0)\r
-#endif\r
-\r
-#if defined(__IAR_SYSTEMS_ICC__)\r
-#if __VER__ > 1000\r
-#define BROTLI_IAR_VERSION                     \\r
-  BROTLI_MAKE_VERSION((__VER__ / 1000000),     \\r
-                      (__VER__ / 1000) % 1000, \\r
-                      (__VER__ % 1000))\r
-#else\r
-#define BROTLI_IAR_VERSION BROTLI_MAKE_VERSION(VER / 100, __VER__ % 100, 0)\r
-#endif\r
-#endif\r
-\r
-#if defined(BROTLI_IAR_VERSION)\r
-#define BROTLI_IAR_VERSION_CHECK(major, minor, patch) \\r
-  (BROTLI_IAR_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))\r
-#else\r
-#define BROTLI_IAR_VERSION_CHECK(major, minor, patch) (0)\r
-#endif\r
-\r
-#if defined(__TINYC__)\r
-#define BROTLI_TINYC_VERSION \\r
-  BROTLI_MAKE_VERSION(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100)\r
-#endif\r
-\r
-#if defined(BROTLI_TINYC_VERSION)\r
-#define BROTLI_TINYC_VERSION_CHECK(major, minor, patch) \\r
-  (BROTLI_TINYC_VERSION >= BROTLI_MAKE_VERSION(major, minor, patch))\r
-#else\r
-#define BROTLI_TINYC_VERSION_CHECK(major, minor, patch) (0)\r
-#endif\r
-\r
-#if defined(__has_attribute)\r
-#define BROTLI_GNUC_HAS_ATTRIBUTE(attribute, major, minor, patch) \\r
-  __has_attribute(attribute)\r
-#else\r
-#define BROTLI_GNUC_HAS_ATTRIBUTE(attribute, major, minor, patch) \\r
-  BROTLI_GNUC_VERSION_CHECK(major, minor, patch)\r
-#endif\r
-\r
-#if defined(__has_builtin)\r
-#define BROTLI_GNUC_HAS_BUILTIN(builtin, major, minor, patch) \\r
-  __has_builtin(builtin)\r
-#else\r
-#define BROTLI_GNUC_HAS_BUILTIN(builtin, major, minor, patch) \\r
-  BROTLI_GNUC_VERSION_CHECK(major, minor, patch)\r
-#endif\r
-\r
-#if defined(_WIN32) || defined(__CYGWIN__)\r
-#define BROTLI_PUBLIC\r
-#elif BROTLI_GNUC_VERSION_CHECK(3, 3, 0) ||                         \\r
-    BROTLI_TI_VERSION_CHECK(8, 0, 0) ||                             \\r
-    BROTLI_INTEL_VERSION_CHECK(16, 0, 0) ||                         \\r
-    BROTLI_ARM_VERSION_CHECK(4, 1, 0) ||                            \\r
-    BROTLI_IBM_VERSION_CHECK(13, 1, 0) ||                           \\r
-    BROTLI_SUNPRO_VERSION_CHECK(5, 11, 0) ||                        \\r
-    (BROTLI_TI_VERSION_CHECK(7, 3, 0) &&                            \\r
-     defined(__TI_GNU_ATTRIBUTE_SUPPORT__) && defined(__TI_EABI__))\r
-#define BROTLI_PUBLIC __attribute__ ((visibility ("default")))\r
-#else\r
-#define BROTLI_PUBLIC\r
-#endif\r
-\r
-#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \\r
-    !defined(__STDC_NO_VLA__) && !defined(__cplusplus) &&         \\r
-    !defined(__PGI) && !defined(__PGIC__) && !defined(__TINYC__)\r
-#define BROTLI_ARRAY_PARAM(name) (name)\r
-#else\r
-#define BROTLI_ARRAY_PARAM(name)\r
-#endif\r
-\r
-/* <<< <<< <<< end of hedley macros. */\r
-\r
-#if defined(BROTLI_SHARED_COMPILATION)\r
-#if defined(_WIN32)\r
-#if defined(BROTLICOMMON_SHARED_COMPILATION)\r
-#define BROTLI_COMMON_API __declspec(dllexport)\r
-#else\r
-#define BROTLI_COMMON_API __declspec(dllimport)\r
-#endif  /* BROTLICOMMON_SHARED_COMPILATION */\r
-#if defined(BROTLIDEC_SHARED_COMPILATION)\r
-#define BROTLI_DEC_API __declspec(dllexport)\r
-#else\r
-#define BROTLI_DEC_API __declspec(dllimport)\r
-#endif  /* BROTLIDEC_SHARED_COMPILATION */\r
-#if defined(BROTLIENC_SHARED_COMPILATION)\r
-#define BROTLI_ENC_API __declspec(dllexport)\r
-#else\r
-#define BROTLI_ENC_API __declspec(dllimport)\r
-#endif  /* BROTLIENC_SHARED_COMPILATION */\r
-#else  /* _WIN32 */\r
-#define BROTLI_COMMON_API BROTLI_PUBLIC\r
-#define BROTLI_DEC_API BROTLI_PUBLIC\r
-#define BROTLI_ENC_API BROTLI_PUBLIC\r
-#endif  /* _WIN32 */\r
-#else  /* BROTLI_SHARED_COMPILATION */\r
-#define BROTLI_COMMON_API\r
-#define BROTLI_DEC_API\r
-#define BROTLI_ENC_API\r
-#endif\r
-\r
-#endif  /* BROTLI_COMMON_PORT_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/types.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/brotli/types.h
deleted file mode 100644 (file)
index 35c9569..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/**\r
- * @file\r
- * Common types used in decoder and encoder API.\r
- */\r
-\r
-#ifndef BROTLI_COMMON_TYPES_H_\r
-#define BROTLI_COMMON_TYPES_H_\r
-\r
-//#include <stddef.h>  /* for size_t */\r
-typedef UINTN size_t;\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER < 1600)\r
-typedef __int8 int8_t;\r
-typedef unsigned __int8 uint8_t;\r
-typedef __int16 int16_t;\r
-typedef unsigned __int16 uint16_t;\r
-typedef __int32 int32_t;\r
-typedef unsigned __int32 uint32_t;\r
-typedef unsigned __int64 uint64_t;\r
-typedef __int64 int64_t;\r
-#else\r
-//#include <stdint.h>\r
-typedef INT8     int8_t;\r
-typedef INT16    int16_t;\r
-typedef INT32    int32_t;\r
-typedef INT64    int64_t;\r
-typedef UINT8    uint8_t;\r
-typedef UINT16   uint16_t;\r
-typedef UINT32   uint32_t;\r
-typedef UINT64   uint64_t;\r
-#endif  /* defined(_MSC_VER) && (_MSC_VER < 1600) */\r
-\r
-/**\r
- * A portable @c bool replacement.\r
- *\r
- * ::BROTLI_BOOL is a "documentation" type: actually it is @c int, but in API it\r
- * denotes a type, whose only values are ::BROTLI_TRUE and ::BROTLI_FALSE.\r
- *\r
- * ::BROTLI_BOOL values passed to Brotli should either be ::BROTLI_TRUE or\r
- * ::BROTLI_FALSE, or be a result of ::TO_BROTLI_BOOL macros.\r
- *\r
- * ::BROTLI_BOOL values returned by Brotli should not be tested for equality\r
- * with @c true, @c false, ::BROTLI_TRUE, ::BROTLI_FALSE, but rather should be\r
- * evaluated, for example: @code{.cpp}\r
- * if (SomeBrotliFunction(encoder, BROTLI_TRUE) &&\r
- *     !OtherBrotliFunction(decoder, BROTLI_FALSE)) {\r
- *   bool x = !!YetAnotherBrotliFunction(encoder, TO_BROLTI_BOOL(2 * 2 == 4));\r
- *   DoSomething(x);\r
- * }\r
- * @endcode\r
- */\r
-#define BROTLI_BOOL int\r
-/** Portable @c true replacement. */\r
-#define BROTLI_TRUE 1\r
-/** Portable @c false replacement. */\r
-#define BROTLI_FALSE 0\r
-/** @c bool to ::BROTLI_BOOL conversion macros. */\r
-#define TO_BROTLI_BOOL(X) (!!(X) ? BROTLI_TRUE : BROTLI_FALSE)\r
-\r
-#define BROTLI_MAKE_UINT64_T(high, low) ((((uint64_t)(high)) << 32) | low)\r
-\r
-#define BROTLI_UINT32_MAX (~((uint32_t)0))\r
-#define BROTLI_SIZE_MAX (~((size_t)0))\r
-\r
-/**\r
- * Allocating function pointer type.\r
- *\r
- * @param opaque custom memory manager handle provided by client\r
- * @param size requested memory region size; can not be @c 0\r
- * @returns @c 0 in the case of failure\r
- * @returns a valid pointer to a memory region of at least @p size bytes\r
- *          long otherwise\r
- */\r
-typedef void* (*brotli_alloc_func)(void* opaque, size_t size);\r
-\r
-/**\r
- * Deallocating function pointer type.\r
- *\r
- * This function @b SHOULD do nothing if @p address is @c 0.\r
- *\r
- * @param opaque custom memory manager handle provided by client\r
- * @param address memory region pointer returned by ::brotli_alloc_func, or @c 0\r
- */\r
-typedef void (*brotli_free_func)(void* opaque, void* address);\r
-\r
-#endif  /* BROTLI_COMMON_TYPES_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/common/constants.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/common/constants.h
deleted file mode 100644 (file)
index 1a29f03..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright 2016 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-#ifndef BROTLI_COMMON_CONSTANTS_H_\r
-#define BROTLI_COMMON_CONSTANTS_H_\r
-\r
-/* Specification: 7.3. Encoding of the context map */\r
-#define BROTLI_CONTEXT_MAP_MAX_RLE 16\r
-\r
-/* Specification: 2. Compressed representation overview */\r
-#define BROTLI_MAX_NUMBER_OF_BLOCK_TYPES 256\r
-\r
-/* Specification: 3.3. Alphabet sizes: insert-and-copy length */\r
-#define BROTLI_NUM_LITERAL_SYMBOLS 256\r
-#define BROTLI_NUM_COMMAND_SYMBOLS 704\r
-#define BROTLI_NUM_BLOCK_LEN_SYMBOLS 26\r
-#define BROTLI_MAX_CONTEXT_MAP_SYMBOLS (BROTLI_MAX_NUMBER_OF_BLOCK_TYPES + \\r
-                                        BROTLI_CONTEXT_MAP_MAX_RLE)\r
-#define BROTLI_MAX_BLOCK_TYPE_SYMBOLS (BROTLI_MAX_NUMBER_OF_BLOCK_TYPES + 2)\r
-\r
-/* Specification: 3.5. Complex prefix codes */\r
-#define BROTLI_REPEAT_PREVIOUS_CODE_LENGTH 16\r
-#define BROTLI_REPEAT_ZERO_CODE_LENGTH 17\r
-#define BROTLI_CODE_LENGTH_CODES (BROTLI_REPEAT_ZERO_CODE_LENGTH + 1)\r
-/* "code length of 8 is repeated" */\r
-#define BROTLI_INITIAL_REPEATED_CODE_LENGTH 8\r
-\r
-/* "Large Window Brotli" */\r
-#define BROTLI_LARGE_MAX_DISTANCE_BITS 62U\r
-#define BROTLI_LARGE_MIN_WBITS 10\r
-#define BROTLI_LARGE_MAX_WBITS 30\r
-\r
-/* Specification: 4. Encoding of distances */\r
-#define BROTLI_NUM_DISTANCE_SHORT_CODES 16\r
-#define BROTLI_MAX_NPOSTFIX 3\r
-#define BROTLI_MAX_NDIRECT 120\r
-#define BROTLI_MAX_DISTANCE_BITS 24U\r
-#define BROTLI_DISTANCE_ALPHABET_SIZE(NPOSTFIX, NDIRECT, MAXNBITS) ( \\r
-    BROTLI_NUM_DISTANCE_SHORT_CODES + (NDIRECT) +                    \\r
-    ((MAXNBITS) << ((NPOSTFIX) + 1)))\r
-/* BROTLI_NUM_DISTANCE_SYMBOLS == 1128 */\r
-#define BROTLI_NUM_DISTANCE_SYMBOLS \\r
-    BROTLI_DISTANCE_ALPHABET_SIZE(  \\r
-        BROTLI_MAX_NDIRECT, BROTLI_MAX_NPOSTFIX, BROTLI_LARGE_MAX_DISTANCE_BITS)\r
-#define BROTLI_MAX_DISTANCE 0x3FFFFFC\r
-#define BROTLI_MAX_ALLOWED_DISTANCE 0x7FFFFFFC\r
-\r
-/* 7.1. Context modes and context ID lookup for literals */\r
-/* "context IDs for literals are in the range of 0..63" */\r
-#define BROTLI_LITERAL_CONTEXT_BITS 6\r
-\r
-/* 7.2. Context ID for distances */\r
-#define BROTLI_DISTANCE_CONTEXT_BITS 2\r
-\r
-/* 9.1. Format of the Stream Header */\r
-/* Number of slack bytes for window size. Don't confuse\r
-   with BROTLI_NUM_DISTANCE_SHORT_CODES. */\r
-#define BROTLI_WINDOW_GAP 16\r
-#define BROTLI_MAX_BACKWARD_LIMIT(W) (((size_t)1 << (W)) - BROTLI_WINDOW_GAP)\r
-\r
-#endif  /* BROTLI_COMMON_CONSTANTS_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/common/context.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/common/context.h
deleted file mode 100644 (file)
index 7ffc640..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Lookup table to map the previous two bytes to a context id.\r
-\r
-  There are four different context modeling modes defined here:\r
-    CONTEXT_LSB6: context id is the least significant 6 bits of the last byte,\r
-    CONTEXT_MSB6: context id is the most significant 6 bits of the last byte,\r
-    CONTEXT_UTF8: second-order context model tuned for UTF8-encoded text,\r
-    CONTEXT_SIGNED: second-order context model tuned for signed integers.\r
-\r
-  If |p1| and |p2| are the previous two bytes, and |mode| is current context\r
-  mode, we calculate the context as:\r
-\r
-    context = ContextLut(mode)[p1] | ContextLut(mode)[p2 + 256].\r
-\r
-  For CONTEXT_UTF8 mode, if the previous two bytes are ASCII characters\r
-  (i.e. < 128), this will be equivalent to\r
-\r
-    context = 4 * context1(p1) + context2(p2),\r
-\r
-  where context1 is based on the previous byte in the following way:\r
-\r
-    0  : non-ASCII control\r
-    1  : \t, \n, \r\r
-    2  : space\r
-    3  : other punctuation\r
-    4  : " '\r
-    5  : %\r
-    6  : ( < [ {\r
-    7  : ) > ] }\r
-    8  : , ; :\r
-    9  : .\r
-    10 : =\r
-    11 : number\r
-    12 : upper-case vowel\r
-    13 : upper-case consonant\r
-    14 : lower-case vowel\r
-    15 : lower-case consonant\r
-\r
-  and context2 is based on the second last byte:\r
-\r
-    0 : control, space\r
-    1 : punctuation\r
-    2 : upper-case letter, number\r
-    3 : lower-case letter\r
-\r
-  If the last byte is ASCII, and the second last byte is not (in a valid UTF8\r
-  stream it will be a continuation byte, value between 128 and 191), the\r
-  context is the same as if the second last byte was an ASCII control or space.\r
-\r
-  If the last byte is a UTF8 lead byte (value >= 192), then the next byte will\r
-  be a continuation byte and the context id is 2 or 3 depending on the LSB of\r
-  the last byte and to a lesser extent on the second last byte if it is ASCII.\r
-\r
-  If the last byte is a UTF8 continuation byte, the second last byte can be:\r
-    - continuation byte: the next byte is probably ASCII or lead byte (assuming\r
-      4-byte UTF8 characters are rare) and the context id is 0 or 1.\r
-    - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1\r
-    - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3\r
-\r
-  The possible value combinations of the previous two bytes, the range of\r
-  context ids and the type of the next byte is summarized in the table below:\r
-\r
-  |--------\-----------------------------------------------------------------|\r
-  |         \                         Last byte                              |\r
-  | Second   \---------------------------------------------------------------|\r
-  | last byte \    ASCII            |   cont. byte        |   lead byte      |\r
-  |            \   (0-127)          |   (128-191)         |   (192-)         |\r
-  |=============|===================|=====================|==================|\r
-  |  ASCII      | next: ASCII/lead  |  not valid          |  next: cont.     |\r
-  |  (0-127)    | context: 4 - 63   |                     |  context: 2 - 3  |\r
-  |-------------|-------------------|---------------------|------------------|\r
-  |  cont. byte | next: ASCII/lead  |  next: ASCII/lead   |  next: cont.     |\r
-  |  (128-191)  | context: 4 - 63   |  context: 0 - 1     |  context: 2 - 3  |\r
-  |-------------|-------------------|---------------------|------------------|\r
-  |  lead byte  | not valid         |  next: ASCII/lead   |  not valid       |\r
-  |  (192-207)  |                   |  context: 0 - 1     |                  |\r
-  |-------------|-------------------|---------------------|------------------|\r
-  |  lead byte  | not valid         |  next: cont.        |  not valid       |\r
-  |  (208-)     |                   |  context: 2 - 3     |                  |\r
-  |-------------|-------------------|---------------------|------------------|\r
-*/\r
-\r
-#ifndef BROTLI_COMMON_CONTEXT_H_\r
-#define BROTLI_COMMON_CONTEXT_H_\r
-\r
-#include <brotli/types.h>\r
-\r
-typedef enum ContextType {\r
-  CONTEXT_LSB6 = 0,\r
-  CONTEXT_MSB6 = 1,\r
-  CONTEXT_UTF8 = 2,\r
-  CONTEXT_SIGNED = 3\r
-} ContextType;\r
-\r
-/* Common context lookup table for all context modes. */\r
-static const uint8_t kContextLookup[2048] = {\r
-  /* CONTEXT_LSB6, last byte. */\r
-   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,\r
-  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\r
-  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\r
-  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\r
-   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,\r
-  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\r
-  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\r
-  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\r
-   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,\r
-  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\r
-  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\r
-  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\r
-   0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15,\r
-  16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,\r
-  32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\r
-  48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,\r
-\r
-  /* CONTEXT_LSB6, second last byte, */\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-\r
-  /* CONTEXT_MSB6, last byte. */\r
-   0,  0,  0,  0,  1,  1,  1,  1,  2,  2,  2,  2,  3,  3,  3,  3,\r
-   4,  4,  4,  4,  5,  5,  5,  5,  6,  6,  6,  6,  7,  7,  7,  7,\r
-   8,  8,  8,  8,  9,  9,  9,  9, 10, 10, 10, 10, 11, 11, 11, 11,\r
-  12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15,\r
-  16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19,\r
-  20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23,\r
-  24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27,\r
-  28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31,\r
-  32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35,\r
-  36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39,\r
-  40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43,\r
-  44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47,\r
-  48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51,\r
-  52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55,\r
-  56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59,\r
-  60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63,\r
-\r
-  /* CONTEXT_MSB6, second last byte, */\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-\r
-  /* CONTEXT_UTF8, last byte. */\r
-  /* ASCII range. */\r
-   0,  0,  0,  0,  0,  0,  0,  0,  0,  4,  4,  0,  0,  4,  0,  0,\r
-   0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,\r
-   8, 12, 16, 12, 12, 20, 12, 16, 24, 28, 12, 12, 32, 12, 36, 12,\r
-  44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 32, 32, 24, 40, 28, 12,\r
-  12, 48, 52, 52, 52, 48, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48,\r
-  52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 24, 12, 28, 12, 12,\r
-  12, 56, 60, 60, 60, 56, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56,\r
-  60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 24, 12, 28, 12,  0,\r
-  /* UTF8 continuation byte range. */\r
-  0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r
-  0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r
-  0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r
-  0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,\r
-  /* UTF8 lead byte range. */\r
-  2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\r
-  2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\r
-  2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\r
-  2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3,\r
-\r
-  /* CONTEXT_UTF8 second last byte. */\r
-  /* ASCII range. */\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,\r
-  1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,\r
-  1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\r
-  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0,\r
-  /* UTF8 continuation byte range. */\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  /* UTF8 lead byte range. */\r
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
-\r
-  /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */\r
-   0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,\r
-  16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\r
-  16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\r
-  16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,\r
-  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\r
-  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\r
-  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\r
-  24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,\r
-  32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\r
-  32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\r
-  32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\r
-  32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,\r
-  40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\r
-  40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\r
-  40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,\r
-  48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56,\r
-\r
-  /* CONTEXT_SIGNED, second last byte. */\r
-  0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,\r
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
-  2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,\r
-  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\r
-  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\r
-  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\r
-  3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,\r
-  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r
-  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r
-  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r
-  4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,\r
-  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r
-  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r
-  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r
-  6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7,\r
-};\r
-\r
-typedef const uint8_t* ContextLut;\r
-\r
-/* typeof(MODE) == ContextType; returns ContextLut */\r
-#define BROTLI_CONTEXT_LUT(MODE) (&kContextLookup[(MODE) << 9])\r
-\r
-/* typeof(LUT) == ContextLut */\r
-#define BROTLI_CONTEXT(P1, P2, LUT) ((LUT)[P1] | ((LUT) + 256)[P2])\r
-\r
-#endif  /* BROTLI_COMMON_CONTEXT_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/common/dictionary.c b/MdeModulePkg/Library/BrotliCustomDecompressLib/common/dictionary.c
deleted file mode 100644 (file)
index 7fd0761..0000000
+++ /dev/null
@@ -1,5905 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-#include "./dictionary.h"\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-#ifndef BROTLI_EXTERNAL_DICTIONARY_DATA\r
-static const uint8_t kBrotliDictionaryData[] =\r
-{\r
-116,105,109,101,100,111,119,110,108,105,102,101,108,101,102,116,98,97,99,107,99,\r
-111,100,101,100,97,116,97,115,104,111,119,111,110,108,121,115,105,116,101,99,105\r
-,116,121,111,112,101,110,106,117,115,116,108,105,107,101,102,114,101,101,119,111\r
-,114,107,116,101,120,116,121,101,97,114,111,118,101,114,98,111,100,121,108,111,\r
-118,101,102,111,114,109,98,111,111,107,112,108,97,121,108,105,118,101,108,105,\r
-110,101,104,101,108,112,104,111,109,101,115,105,100,101,109,111,114,101,119,111,\r
-114,100,108,111,110,103,116,104,101,109,118,105,101,119,102,105,110,100,112,97,\r
-103,101,100,97,121,115,102,117,108,108,104,101,97,100,116,101,114,109,101,97,99,\r
-104,97,114,101,97,102,114,111,109,116,114,117,101,109,97,114,107,97,98,108,101,\r
-117,112,111,110,104,105,103,104,100,97,116,101,108,97,110,100,110,101,119,115,\r
-101,118,101,110,110,101,120,116,99,97,115,101,98,111,116,104,112,111,115,116,117\r
-,115,101,100,109,97,100,101,104,97,110,100,104,101,114,101,119,104,97,116,110,97\r
-,109,101,76,105,110,107,98,108,111,103,115,105,122,101,98,97,115,101,104,101,108\r
-,100,109,97,107,101,109,97,105,110,117,115,101,114,39,41,32,43,104,111,108,100,\r
-101,110,100,115,119,105,116,104,78,101,119,115,114,101,97,100,119,101,114,101,\r
-115,105,103,110,116,97,107,101,104,97,118,101,103,97,109,101,115,101,101,110,99,\r
-97,108,108,112,97,116,104,119,101,108,108,112,108,117,115,109,101,110,117,102,\r
-105,108,109,112,97,114,116,106,111,105,110,116,104,105,115,108,105,115,116,103,\r
-111,111,100,110,101,101,100,119,97,121,115,119,101,115,116,106,111,98,115,109,\r
-105,110,100,97,108,115,111,108,111,103,111,114,105,99,104,117,115,101,115,108,97\r
-,115,116,116,101,97,109,97,114,109,121,102,111,111,100,107,105,110,103,119,105,\r
-108,108,101,97,115,116,119,97,114,100,98,101,115,116,102,105,114,101,80,97,103,\r
-101,107,110,111,119,97,119,97,121,46,112,110,103,109,111,118,101,116,104,97,110,\r
-108,111,97,100,103,105,118,101,115,101,108,102,110,111,116,101,109,117,99,104,\r
-102,101,101,100,109,97,110,121,114,111,99,107,105,99,111,110,111,110,99,101,108,\r
-111,111,107,104,105,100,101,100,105,101,100,72,111,109,101,114,117,108,101,104,\r
-111,115,116,97,106,97,120,105,110,102,111,99,108,117,98,108,97,119,115,108,101,\r
-115,115,104,97,108,102,115,111,109,101,115,117,99,104,122,111,110,101,49,48,48,\r
-37,111,110,101,115,99,97,114,101,84,105,109,101,114,97,99,101,98,108,117,101,102\r
-,111,117,114,119,101,101,107,102,97,99,101,104,111,112,101,103,97,118,101,104,97\r
-,114,100,108,111,115,116,119,104,101,110,112,97,114,107,107,101,112,116,112,97,\r
-115,115,115,104,105,112,114,111,111,109,72,84,77,76,112,108,97,110,84,121,112,\r
-101,100,111,110,101,115,97,118,101,107,101,101,112,102,108,97,103,108,105,110,\r
-107,115,111,108,100,102,105,118,101,116,111,111,107,114,97,116,101,116,111,119,\r
-110,106,117,109,112,116,104,117,115,100,97,114,107,99,97,114,100,102,105,108,101\r
-,102,101,97,114,115,116,97,121,107,105,108,108,116,104,97,116,102,97,108,108,97,\r
-117,116,111,101,118,101,114,46,99,111,109,116,97,108,107,115,104,111,112,118,111\r
-,116,101,100,101,101,112,109,111,100,101,114,101,115,116,116,117,114,110,98,111,\r
-114,110,98,97,110,100,102,101,108,108,114,111,115,101,117,114,108,40,115,107,105\r
-,110,114,111,108,101,99,111,109,101,97,99,116,115,97,103,101,115,109,101,101,116\r
-,103,111,108,100,46,106,112,103,105,116,101,109,118,97,114,121,102,101,108,116,\r
-116,104,101,110,115,101,110,100,100,114,111,112,86,105,101,119,99,111,112,121,49\r
-,46,48,34,60,47,97,62,115,116,111,112,101,108,115,101,108,105,101,115,116,111,\r
-117,114,112,97,99,107,46,103,105,102,112,97,115,116,99,115,115,63,103,114,97,121\r
-,109,101,97,110,38,103,116,59,114,105,100,101,115,104,111,116,108,97,116,101,115\r
-,97,105,100,114,111,97,100,118,97,114,32,102,101,101,108,106,111,104,110,114,105\r
-,99,107,112,111,114,116,102,97,115,116,39,85,65,45,100,101,97,100,60,47,98,62,\r
-112,111,111,114,98,105,108,108,116,121,112,101,85,46,83,46,119,111,111,100,109,\r
-117,115,116,50,112,120,59,73,110,102,111,114,97,110,107,119,105,100,101,119,97,\r
-110,116,119,97,108,108,108,101,97,100,91,48,93,59,112,97,117,108,119,97,118,101,\r
-115,117,114,101,36,40,39,35,119,97,105,116,109,97,115,115,97,114,109,115,103,111\r
-,101,115,103,97,105,110,108,97,110,103,112,97,105,100,33,45,45,32,108,111,99,107\r
-,117,110,105,116,114,111,111,116,119,97,108,107,102,105,114,109,119,105,102,101,\r
-120,109,108,34,115,111,110,103,116,101,115,116,50,48,112,120,107,105,110,100,114\r
-,111,119,115,116,111,111,108,102,111,110,116,109,97,105,108,115,97,102,101,115,\r
-116,97,114,109,97,112,115,99,111,114,101,114,97,105,110,102,108,111,119,98,97,98\r
-,121,115,112,97,110,115,97,121,115,52,112,120,59,54,112,120,59,97,114,116,115,\r
-102,111,111,116,114,101,97,108,119,105,107,105,104,101,97,116,115,116,101,112,\r
-116,114,105,112,111,114,103,47,108,97,107,101,119,101,97,107,116,111,108,100,70,\r
-111,114,109,99,97,115,116,102,97,110,115,98,97,110,107,118,101,114,121,114,117,\r
-110,115,106,117,108,121,116,97,115,107,49,112,120,59,103,111,97,108,103,114,101,\r
-119,115,108,111,119,101,100,103,101,105,100,61,34,115,101,116,115,53,112,120,59,\r
-46,106,115,63,52,48,112,120,105,102,32,40,115,111,111,110,115,101,97,116,110,111\r
-,110,101,116,117,98,101,122,101,114,111,115,101,110,116,114,101,101,100,102,97,\r
-99,116,105,110,116,111,103,105,102,116,104,97,114,109,49,56,112,120,99,97,109,\r
-101,104,105,108,108,98,111,108,100,122,111,111,109,118,111,105,100,101,97,115,\r
-121,114,105,110,103,102,105,108,108,112,101,97,107,105,110,105,116,99,111,115,\r
-116,51,112,120,59,106,97,99,107,116,97,103,115,98,105,116,115,114,111,108,108,\r
-101,100,105,116,107,110,101,119,110,101,97,114,60,33,45,45,103,114,111,119,74,83\r
-,79,78,100,117,116,121,78,97,109,101,115,97,108,101,121,111,117,32,108,111,116,\r
-115,112,97,105,110,106,97,122,122,99,111,108,100,101,121,101,115,102,105,115,104\r
-,119,119,119,46,114,105,115,107,116,97,98,115,112,114,101,118,49,48,112,120,114,\r
-105,115,101,50,53,112,120,66,108,117,101,100,105,110,103,51,48,48,44,98,97,108,\r
-108,102,111,114,100,101,97,114,110,119,105,108,100,98,111,120,46,102,97,105,114,\r
-108,97,99,107,118,101,114,115,112,97,105,114,106,117,110,101,116,101,99,104,105,\r
-102,40,33,112,105,99,107,101,118,105,108,36,40,34,35,119,97,114,109,108,111,114,\r
-100,100,111,101,115,112,117,108,108,44,48,48,48,105,100,101,97,100,114,97,119,\r
-104,117,103,101,115,112,111,116,102,117,110,100,98,117,114,110,104,114,101,102,\r
-99,101,108,108,107,101,121,115,116,105,99,107,104,111,117,114,108,111,115,115,\r
-102,117,101,108,49,50,112,120,115,117,105,116,100,101,97,108,82,83,83,34,97,103,\r
-101,100,103,114,101,121,71,69,84,34,101,97,115,101,97,105,109,115,103,105,114,\r
-108,97,105,100,115,56,112,120,59,110,97,118,121,103,114,105,100,116,105,112,115,\r
-35,57,57,57,119,97,114,115,108,97,100,121,99,97,114,115,41,59,32,125,112,104,112\r
-,63,104,101,108,108,116,97,108,108,119,104,111,109,122,104,58,229,42,47,13,10,32\r
-,49,48,48,104,97,108,108,46,10,10,65,55,112,120,59,112,117,115,104,99,104,97,116\r
-,48,112,120,59,99,114,101,119,42,47,60,47,104,97,115,104,55,53,112,120,102,108,\r
-97,116,114,97,114,101,32,38,38,32,116,101,108,108,99,97,109,112,111,110,116,111,\r
-108,97,105,100,109,105,115,115,115,107,105,112,116,101,110,116,102,105,110,101,\r
-109,97,108,101,103,101,116,115,112,108,111,116,52,48,48,44,13,10,13,10,99,111,\r
-111,108,102,101,101,116,46,112,104,112,60,98,114,62,101,114,105,99,109,111,115,\r
-116,103,117,105,100,98,101,108,108,100,101,115,99,104,97,105,114,109,97,116,104,\r
-97,116,111,109,47,105,109,103,38,35,56,50,108,117,99,107,99,101,110,116,48,48,48\r
-,59,116,105,110,121,103,111,110,101,104,116,109,108,115,101,108,108,100,114,117,\r
-103,70,82,69,69,110,111,100,101,110,105,99,107,63,105,100,61,108,111,115,101,110\r
-,117,108,108,118,97,115,116,119,105,110,100,82,83,83,32,119,101,97,114,114,101,\r
-108,121,98,101,101,110,115,97,109,101,100,117,107,101,110,97,115,97,99,97,112,\r
-101,119,105,115,104,103,117,108,102,84,50,51,58,104,105,116,115,115,108,111,116,\r
-103,97,116,101,107,105,99,107,98,108,117,114,116,104,101,121,49,53,112,120,39,39\r
-,41,59,41,59,34,62,109,115,105,101,119,105,110,115,98,105,114,100,115,111,114,\r
-116,98,101,116,97,115,101,101,107,84,49,56,58,111,114,100,115,116,114,101,101,\r
-109,97,108,108,54,48,112,120,102,97,114,109,226,128,153,115,98,111,121,115,91,48\r
-,93,46,39,41,59,34,80,79,83,84,98,101,97,114,107,105,100,115,41,59,125,125,109,\r
-97,114,121,116,101,110,100,40,85,75,41,113,117,97,100,122,104,58,230,45,115,105,\r
-122,45,45,45,45,112,114,111,112,39,41,59,13,108,105,102,116,84,49,57,58,118,105,\r
-99,101,97,110,100,121,100,101,98,116,62,82,83,83,112,111,111,108,110,101,99,107,\r
-98,108,111,119,84,49,54,58,100,111,111,114,101,118,97,108,84,49,55,58,108,101,\r
-116,115,102,97,105,108,111,114,97,108,112,111,108,108,110,111,118,97,99,111,108,\r
-115,103,101,110,101,32,226,128,148,115,111,102,116,114,111,109,101,116,105,108,\r
-108,114,111,115,115,60,104,51,62,112,111,117,114,102,97,100,101,112,105,110,107,\r
-60,116,114,62,109,105,110,105,41,124,33,40,109,105,110,101,122,104,58,232,98,97,\r
-114,115,104,101,97,114,48,48,41,59,109,105,108,107,32,45,45,62,105,114,111,110,\r
-102,114,101,100,100,105,115,107,119,101,110,116,115,111,105,108,112,117,116,115,\r
-47,106,115,47,104,111,108,121,84,50,50,58,73,83,66,78,84,50,48,58,97,100,97,109,\r
-115,101,101,115,60,104,50,62,106,115,111,110,39,44,32,39,99,111,110,116,84,50,49\r
-,58,32,82,83,83,108,111,111,112,97,115,105,97,109,111,111,110,60,47,112,62,115,\r
-111,117,108,76,73,78,69,102,111,114,116,99,97,114,116,84,49,52,58,60,104,49,62,\r
-56,48,112,120,33,45,45,60,57,112,120,59,84,48,52,58,109,105,107,101,58,52,54,90,\r
-110,105,99,101,105,110,99,104,89,111,114,107,114,105,99,101,122,104,58,228,39,41\r
-,41,59,112,117,114,101,109,97,103,101,112,97,114,97,116,111,110,101,98,111,110,\r
-100,58,51,55,90,95,111,102,95,39,93,41,59,48,48,48,44,122,104,58,231,116,97,110,\r
-107,121,97,114,100,98,111,119,108,98,117,115,104,58,53,54,90,74,97,118,97,51,48,\r
-112,120,10,124,125,10,37,67,51,37,58,51,52,90,106,101,102,102,69,88,80,73,99,97,\r
-115,104,118,105,115,97,103,111,108,102,115,110,111,119,122,104,58,233,113,117,\r
-101,114,46,99,115,115,115,105,99,107,109,101,97,116,109,105,110,46,98,105,110,\r
-100,100,101,108,108,104,105,114,101,112,105,99,115,114,101,110,116,58,51,54,90,\r
-72,84,84,80,45,50,48,49,102,111,116,111,119,111,108,102,69,78,68,32,120,98,111,\r
-120,58,53,52,90,66,79,68,89,100,105,99,107,59,10,125,10,101,120,105,116,58,51,53\r
-,90,118,97,114,115,98,101,97,116,39,125,41,59,100,105,101,116,57,57,57,59,97,110\r
-,110,101,125,125,60,47,91,105,93,46,76,97,110,103,107,109,194,178,119,105,114,\r
-101,116,111,121,115,97,100,100,115,115,101,97,108,97,108,101,120,59,10,9,125,101\r
-,99,104,111,110,105,110,101,46,111,114,103,48,48,53,41,116,111,110,121,106,101,\r
-119,115,115,97,110,100,108,101,103,115,114,111,111,102,48,48,48,41,32,50,48,48,\r
-119,105,110,101,103,101,97,114,100,111,103,115,98,111,111,116,103,97,114,121,99,\r
-117,116,115,116,121,108,101,116,101,109,112,116,105,111,110,46,120,109,108,99,\r
-111,99,107,103,97,110,103,36,40,39,46,53,48,112,120,80,104,46,68,109,105,115,99,\r
-97,108,97,110,108,111,97,110,100,101,115,107,109,105,108,101,114,121,97,110,117,\r
-110,105,120,100,105,115,99,41,59,125,10,100,117,115,116,99,108,105,112,41,46,10,\r
-10,55,48,112,120,45,50,48,48,68,86,68,115,55,93,62,60,116,97,112,101,100,101,109\r
-,111,105,43,43,41,119,97,103,101,101,117,114,111,112,104,105,108,111,112,116,115\r
-,104,111,108,101,70,65,81,115,97,115,105,110,45,50,54,84,108,97,98,115,112,101,\r
-116,115,85,82,76,32,98,117,108,107,99,111,111,107,59,125,13,10,72,69,65,68,91,48\r
-,93,41,97,98,98,114,106,117,97,110,40,49,57,56,108,101,115,104,116,119,105,110,\r
-60,47,105,62,115,111,110,121,103,117,121,115,102,117,99,107,112,105,112,101,124,\r
-45,10,33,48,48,50,41,110,100,111,119,91,49,93,59,91,93,59,10,76,111,103,32,115,\r
-97,108,116,13,10,9,9,98,97,110,103,116,114,105,109,98,97,116,104,41,123,13,10,48\r
-,48,112,120,10,125,41,59,107,111,58,236,102,101,101,115,97,100,62,13,115,58,47,\r
-47,32,91,93,59,116,111,108,108,112,108,117,103,40,41,123,10,123,13,10,32,46,106,\r
-115,39,50,48,48,112,100,117,97,108,98,111,97,116,46,74,80,71,41,59,10,125,113,\r
-117,111,116,41,59,10,10,39,41,59,10,13,10,125,13,50,48,49,52,50,48,49,53,50,48,\r
-49,54,50,48,49,55,50,48,49,56,50,48,49,57,50,48,50,48,50,48,50,49,50,48,50,50,50\r
-,48,50,51,50,48,50,52,50,48,50,53,50,48,50,54,50,48,50,55,50,48,50,56,50,48,50,\r
-57,50,48,51,48,50,48,51,49,50,48,51,50,50,48,51,51,50,48,51,52,50,48,51,53,50,48\r
-,51,54,50,48,51,55,50,48,49,51,50,48,49,50,50,48,49,49,50,48,49,48,50,48,48,57,\r
-50,48,48,56,50,48,48,55,50,48,48,54,50,48,48,53,50,48,48,52,50,48,48,51,50,48,48\r
-,50,50,48,48,49,50,48,48,48,49,57,57,57,49,57,57,56,49,57,57,55,49,57,57,54,49,\r
-57,57,53,49,57,57,52,49,57,57,51,49,57,57,50,49,57,57,49,49,57,57,48,49,57,56,57\r
-,49,57,56,56,49,57,56,55,49,57,56,54,49,57,56,53,49,57,56,52,49,57,56,51,49,57,\r
-56,50,49,57,56,49,49,57,56,48,49,57,55,57,49,57,55,56,49,57,55,55,49,57,55,54,49\r
-,57,55,53,49,57,55,52,49,57,55,51,49,57,55,50,49,57,55,49,49,57,55,48,49,57,54,\r
-57,49,57,54,56,49,57,54,55,49,57,54,54,49,57,54,53,49,57,54,52,49,57,54,51,49,57\r
-,54,50,49,57,54,49,49,57,54,48,49,57,53,57,49,57,53,56,49,57,53,55,49,57,53,54,\r
-49,57,53,53,49,57,53,52,49,57,53,51,49,57,53,50,49,57,53,49,49,57,53,48,49,48,48\r
-,48,49,48,50,52,49,51,57,52,48,48,48,48,57,57,57,57,99,111,109,111,109,195,161,\r
-115,101,115,116,101,101,115,116,97,112,101,114,111,116,111,100,111,104,97,99,101\r
-,99,97,100,97,97,195,177,111,98,105,101,110,100,195,173,97,97,115,195,173,118,\r
-105,100,97,99,97,115,111,111,116,114,111,102,111,114,111,115,111,108,111,111,116\r
-,114,97,99,117,97,108,100,105,106,111,115,105,100,111,103,114,97,110,116,105,112\r
-,111,116,101,109,97,100,101,98,101,97,108,103,111,113,117,195,169,101,115,116,\r
-111,110,97,100,97,116,114,101,115,112,111,99,111,99,97,115,97,98,97,106,111,116,\r
-111,100,97,115,105,110,111,97,103,117,97,112,117,101,115,117,110,111,115,97,110,\r
-116,101,100,105,99,101,108,117,105,115,101,108,108,97,109,97,121,111,122,111,110\r
-,97,97,109,111,114,112,105,115,111,111,98,114,97,99,108,105,99,101,108,108,111,\r
-100,105,111,115,104,111,114,97,99,97,115,105,208,183,208,176,208,189,208,176,208\r
-,190,208,188,209,128,208,176,209,128,209,131,209,130,208,176,208,189,208,181,208\r
-,191,208,190,208,190,209,130,208,184,208,183,208,189,208,190,208,180,208,190,209\r
-,130,208,190,208,182,208,181,208,190,208,189,208,184,209,133,208,157,208,176,208\r
-,181,208,181,208,177,209,139,208,188,209,139,208,146,209,139,209,129,208,190,208\r
-,178,209,139,208,178,208,190,208,157,208,190,208,190,208,177,208,159,208,190,208\r
-,187,208,184,208,189,208,184,208,160,208,164,208,157,208,181,208,156,209,139,209\r
-,130,209,139,208,158,208,189,208,184,208,188,208,180,208,176,208,151,208,176,208\r
-,148,208,176,208,157,209,131,208,158,208,177,209,130,208,181,208,152,208,183,208\r
-,181,208,185,208,189,209,131,208,188,208,188,208,162,209,139,209,131,208,182,217\r
-,129,217,138,216,163,217,134,217,133,216,167,217,133,216,185,217,131,217,132,216\r
-,163,217,136,216,177,216,175,217,138,216,167,217,129,217,137,217,135,217,136,217\r
-,132,217,133,217,132,217,131,216,167,217,136,217,132,217,135,216,168,216,179,216\r
-,167,217,132,216,165,217,134,217,135,217,138,216,163,217,138,217,130,216,175,217\r
-,135,217,132,216,171,217,133,216,168,217,135,217,132,217,136,217,132,217,138,216\r
-,168,217,132,216,167,217,138,216,168,217,131,216,180,217,138,216,167,217,133,216\r
-,163,217,133,217,134,216,170,216,168,217,138,217,132,217,134,216,173,216,168,217\r
-,135,217,133,217,133,216,180,217,136,216,180,102,105,114,115,116,118,105,100,101\r
-,111,108,105,103,104,116,119,111,114,108,100,109,101,100,105,97,119,104,105,116,\r
-101,99,108,111,115,101,98,108,97,99,107,114,105,103,104,116,115,109,97,108,108,\r
-98,111,111,107,115,112,108,97,99,101,109,117,115,105,99,102,105,101,108,100,111,\r
-114,100,101,114,112,111,105,110,116,118,97,108,117,101,108,101,118,101,108,116,\r
-97,98,108,101,98,111,97,114,100,104,111,117,115,101,103,114,111,117,112,119,111,\r
-114,107,115,121,101,97,114,115,115,116,97,116,101,116,111,100,97,121,119,97,116,\r
-101,114,115,116,97,114,116,115,116,121,108,101,100,101,97,116,104,112,111,119,\r
-101,114,112,104,111,110,101,110,105,103,104,116,101,114,114,111,114,105,110,112,\r
-117,116,97,98,111,117,116,116,101,114,109,115,116,105,116,108,101,116,111,111,\r
-108,115,101,118,101,110,116,108,111,99,97,108,116,105,109,101,115,108,97,114,103\r
-,101,119,111,114,100,115,103,97,109,101,115,115,104,111,114,116,115,112,97,99,\r
-101,102,111,99,117,115,99,108,101,97,114,109,111,100,101,108,98,108,111,99,107,\r
-103,117,105,100,101,114,97,100,105,111,115,104,97,114,101,119,111,109,101,110,97\r
-,103,97,105,110,109,111,110,101,121,105,109,97,103,101,110,97,109,101,115,121,\r
-111,117,110,103,108,105,110,101,115,108,97,116,101,114,99,111,108,111,114,103,\r
-114,101,101,110,102,114,111,110,116,38,97,109,112,59,119,97,116,99,104,102,111,\r
-114,99,101,112,114,105,99,101,114,117,108,101,115,98,101,103,105,110,97,102,116,\r
-101,114,118,105,115,105,116,105,115,115,117,101,97,114,101,97,115,98,101,108,111\r
-,119,105,110,100,101,120,116,111,116,97,108,104,111,117,114,115,108,97,98,101,\r
-108,112,114,105,110,116,112,114,101,115,115,98,117,105,108,116,108,105,110,107,\r
-115,115,112,101,101,100,115,116,117,100,121,116,114,97,100,101,102,111,117,110,\r
-100,115,101,110,115,101,117,110,100,101,114,115,104,111,119,110,102,111,114,109,\r
-115,114,97,110,103,101,97,100,100,101,100,115,116,105,108,108,109,111,118,101,\r
-100,116,97,107,101,110,97,98,111,118,101,102,108,97,115,104,102,105,120,101,100,\r
-111,102,116,101,110,111,116,104,101,114,118,105,101,119,115,99,104,101,99,107,\r
-108,101,103,97,108,114,105,118,101,114,105,116,101,109,115,113,117,105,99,107,\r
-115,104,97,112,101,104,117,109,97,110,101,120,105,115,116,103,111,105,110,103,\r
-109,111,118,105,101,116,104,105,114,100,98,97,115,105,99,112,101,97,99,101,115,\r
-116,97,103,101,119,105,100,116,104,108,111,103,105,110,105,100,101,97,115,119,\r
-114,111,116,101,112,97,103,101,115,117,115,101,114,115,100,114,105,118,101,115,\r
-116,111,114,101,98,114,101,97,107,115,111,117,116,104,118,111,105,99,101,115,105\r
-,116,101,115,109,111,110,116,104,119,104,101,114,101,98,117,105,108,100,119,104,\r
-105,99,104,101,97,114,116,104,102,111,114,117,109,116,104,114,101,101,115,112,\r
-111,114,116,112,97,114,116,121,67,108,105,99,107,108,111,119,101,114,108,105,118\r
-,101,115,99,108,97,115,115,108,97,121,101,114,101,110,116,114,121,115,116,111,\r
-114,121,117,115,97,103,101,115,111,117,110,100,99,111,117,114,116,121,111,117,\r
-114,32,98,105,114,116,104,112,111,112,117,112,116,121,112,101,115,97,112,112,108\r
-,121,73,109,97,103,101,98,101,105,110,103,117,112,112,101,114,110,111,116,101,\r
-115,101,118,101,114,121,115,104,111,119,115,109,101,97,110,115,101,120,116,114,\r
-97,109,97,116,99,104,116,114,97,99,107,107,110,111,119,110,101,97,114,108,121,98\r
-,101,103,97,110,115,117,112,101,114,112,97,112,101,114,110,111,114,116,104,108,\r
-101,97,114,110,103,105,118,101,110,110,97,109,101,100,101,110,100,101,100,84,101\r
-,114,109,115,112,97,114,116,115,71,114,111,117,112,98,114,97,110,100,117,115,105\r
-,110,103,119,111,109,97,110,102,97,108,115,101,114,101,97,100,121,97,117,100,105\r
-,111,116,97,107,101,115,119,104,105,108,101,46,99,111,109,47,108,105,118,101,100\r
-,99,97,115,101,115,100,97,105,108,121,99,104,105,108,100,103,114,101,97,116,106,\r
-117,100,103,101,116,104,111,115,101,117,110,105,116,115,110,101,118,101,114,98,\r
-114,111,97,100,99,111,97,115,116,99,111,118,101,114,97,112,112,108,101,102,105,\r
-108,101,115,99,121,99,108,101,115,99,101,110,101,112,108,97,110,115,99,108,105,\r
-99,107,119,114,105,116,101,113,117,101,101,110,112,105,101,99,101,101,109,97,105\r
-,108,102,114,97,109,101,111,108,100,101,114,112,104,111,116,111,108,105,109,105,\r
-116,99,97,99,104,101,99,105,118,105,108,115,99,97,108,101,101,110,116,101,114,\r
-116,104,101,109,101,116,104,101,114,101,116,111,117,99,104,98,111,117,110,100,\r
-114,111,121,97,108,97,115,107,101,100,119,104,111,108,101,115,105,110,99,101,115\r
-,116,111,99,107,32,110,97,109,101,102,97,105,116,104,104,101,97,114,116,101,109,\r
-112,116,121,111,102,102,101,114,115,99,111,112,101,111,119,110,101,100,109,105,\r
-103,104,116,97,108,98,117,109,116,104,105,110,107,98,108,111,111,100,97,114,114,\r
-97,121,109,97,106,111,114,116,114,117,115,116,99,97,110,111,110,117,110,105,111,\r
-110,99,111,117,110,116,118,97,108,105,100,115,116,111,110,101,83,116,121,108,101\r
-,76,111,103,105,110,104,97,112,112,121,111,99,99,117,114,108,101,102,116,58,102,\r
-114,101,115,104,113,117,105,116,101,102,105,108,109,115,103,114,97,100,101,110,\r
-101,101,100,115,117,114,98,97,110,102,105,103,104,116,98,97,115,105,115,104,111,\r
-118,101,114,97,117,116,111,59,114,111,117,116,101,46,104,116,109,108,109,105,120\r
-,101,100,102,105,110,97,108,89,111,117,114,32,115,108,105,100,101,116,111,112,\r
-105,99,98,114,111,119,110,97,108,111,110,101,100,114,97,119,110,115,112,108,105,\r
-116,114,101,97,99,104,82,105,103,104,116,100,97,116,101,115,109,97,114,99,104,\r
-113,117,111,116,101,103,111,111,100,115,76,105,110,107,115,100,111,117,98,116,97\r
-,115,121,110,99,116,104,117,109,98,97,108,108,111,119,99,104,105,101,102,121,111\r
-,117,116,104,110,111,118,101,108,49,48,112,120,59,115,101,114,118,101,117,110,\r
-116,105,108,104,97,110,100,115,67,104,101,99,107,83,112,97,99,101,113,117,101,\r
-114,121,106,97,109,101,115,101,113,117,97,108,116,119,105,99,101,48,44,48,48,48,\r
-83,116,97,114,116,112,97,110,101,108,115,111,110,103,115,114,111,117,110,100,101\r
-,105,103,104,116,115,104,105,102,116,119,111,114,116,104,112,111,115,116,115,108\r
-,101,97,100,115,119,101,101,107,115,97,118,111,105,100,116,104,101,115,101,109,\r
-105,108,101,115,112,108,97,110,101,115,109,97,114,116,97,108,112,104,97,112,108,\r
-97,110,116,109,97,114,107,115,114,97,116,101,115,112,108,97,121,115,99,108,97,\r
-105,109,115,97,108,101,115,116,101,120,116,115,115,116,97,114,115,119,114,111,\r
-110,103,60,47,104,51,62,116,104,105,110,103,46,111,114,103,47,109,117,108,116,\r
-105,104,101,97,114,100,80,111,119,101,114,115,116,97,110,100,116,111,107,101,110\r
-,115,111,108,105,100,40,116,104,105,115,98,114,105,110,103,115,104,105,112,115,\r
-115,116,97,102,102,116,114,105,101,100,99,97,108,108,115,102,117,108,108,121,102\r
-,97,99,116,115,97,103,101,110,116,84,104,105,115,32,47,47,45,45,62,97,100,109,\r
-105,110,101,103,121,112,116,69,118,101,110,116,49,53,112,120,59,69,109,97,105,\r
-108,116,114,117,101,34,99,114,111,115,115,115,112,101,110,116,98,108,111,103,115\r
-,98,111,120,34,62,110,111,116,101,100,108,101,97,118,101,99,104,105,110,97,115,\r
-105,122,101,115,103,117,101,115,116,60,47,104,52,62,114,111,98,111,116,104,101,\r
-97,118,121,116,114,117,101,44,115,101,118,101,110,103,114,97,110,100,99,114,105,\r
-109,101,115,105,103,110,115,97,119,97,114,101,100,97,110,99,101,112,104,97,115,\r
-101,62,60,33,45,45,101,110,95,85,83,38,35,51,57,59,50,48,48,112,120,95,110,97,\r
-109,101,108,97,116,105,110,101,110,106,111,121,97,106,97,120,46,97,116,105,111,\r
-110,115,109,105,116,104,85,46,83,46,32,104,111,108,100,115,112,101,116,101,114,\r
-105,110,100,105,97,110,97,118,34,62,99,104,97,105,110,115,99,111,114,101,99,111,\r
-109,101,115,100,111,105,110,103,112,114,105,111,114,83,104,97,114,101,49,57,57,\r
-48,115,114,111,109,97,110,108,105,115,116,115,106,97,112,97,110,102,97,108,108,\r
-115,116,114,105,97,108,111,119,110,101,114,97,103,114,101,101,60,47,104,50,62,97\r
-,98,117,115,101,97,108,101,114,116,111,112,101,114,97,34,45,47,47,87,99,97,114,\r
-100,115,104,105,108,108,115,116,101,97,109,115,80,104,111,116,111,116,114,117,\r
-116,104,99,108,101,97,110,46,112,104,112,63,115,97,105,110,116,109,101,116,97,\r
-108,108,111,117,105,115,109,101,97,110,116,112,114,111,111,102,98,114,105,101,\r
-102,114,111,119,34,62,103,101,110,114,101,116,114,117,99,107,108,111,111,107,115\r
-,86,97,108,117,101,70,114,97,109,101,46,110,101,116,47,45,45,62,10,60,116,114,\r
-121,32,123,10,118,97,114,32,109,97,107,101,115,99,111,115,116,115,112,108,97,105\r
-,110,97,100,117,108,116,113,117,101,115,116,116,114,97,105,110,108,97,98,111,114\r
-,104,101,108,112,115,99,97,117,115,101,109,97,103,105,99,109,111,116,111,114,116\r
-,104,101,105,114,50,53,48,112,120,108,101,97,115,116,115,116,101,112,115,67,111,\r
-117,110,116,99,111,117,108,100,103,108,97,115,115,115,105,100,101,115,102,117,\r
-110,100,115,104,111,116,101,108,97,119,97,114,100,109,111,117,116,104,109,111,\r
-118,101,115,112,97,114,105,115,103,105,118,101,115,100,117,116,99,104,116,101,\r
-120,97,115,102,114,117,105,116,110,117,108,108,44,124,124,91,93,59,116,111,112,\r
-34,62,10,60,33,45,45,80,79,83,84,34,111,99,101,97,110,60,98,114,47,62,102,108,\r
-111,111,114,115,112,101,97,107,100,101,112,116,104,32,115,105,122,101,98,97,110,\r
-107,115,99,97,116,99,104,99,104,97,114,116,50,48,112,120,59,97,108,105,103,110,\r
-100,101,97,108,115,119,111,117,108,100,53,48,112,120,59,117,114,108,61,34,112,97\r
-,114,107,115,109,111,117,115,101,77,111,115,116,32,46,46,46,60,47,97,109,111,110\r
-,103,98,114,97,105,110,98,111,100,121,32,110,111,110,101,59,98,97,115,101,100,99\r
-,97,114,114,121,100,114,97,102,116,114,101,102,101,114,112,97,103,101,95,104,111\r
-,109,101,46,109,101,116,101,114,100,101,108,97,121,100,114,101,97,109,112,114,\r
-111,118,101,106,111,105,110,116,60,47,116,114,62,100,114,117,103,115,60,33,45,45\r
-,32,97,112,114,105,108,105,100,101,97,108,97,108,108,101,110,101,120,97,99,116,\r
-102,111,114,116,104,99,111,100,101,115,108,111,103,105,99,86,105,101,119,32,115,\r
-101,101,109,115,98,108,97,110,107,112,111,114,116,115,32,40,50,48,48,115,97,118,\r
-101,100,95,108,105,110,107,103,111,97,108,115,103,114,97,110,116,103,114,101,101\r
-,107,104,111,109,101,115,114,105,110,103,115,114,97,116,101,100,51,48,112,120,59\r
-,119,104,111,115,101,112,97,114,115,101,40,41,59,34,32,66,108,111,99,107,108,105\r
-,110,117,120,106,111,110,101,115,112,105,120,101,108,39,41,59,34,62,41,59,105,\r
-102,40,45,108,101,102,116,100,97,118,105,100,104,111,114,115,101,70,111,99,117,\r
-115,114,97,105,115,101,98,111,120,101,115,84,114,97,99,107,101,109,101,110,116,\r
-60,47,101,109,62,98,97,114,34,62,46,115,114,99,61,116,111,119,101,114,97,108,116\r
-,61,34,99,97,98,108,101,104,101,110,114,121,50,52,112,120,59,115,101,116,117,112\r
-,105,116,97,108,121,115,104,97,114,112,109,105,110,111,114,116,97,115,116,101,\r
-119,97,110,116,115,116,104,105,115,46,114,101,115,101,116,119,104,101,101,108,\r
-103,105,114,108,115,47,99,115,115,47,49,48,48,37,59,99,108,117,98,115,115,116,\r
-117,102,102,98,105,98,108,101,118,111,116,101,115,32,49,48,48,48,107,111,114,101\r
-,97,125,41,59,13,10,98,97,110,100,115,113,117,101,117,101,61,32,123,125,59,56,48\r
-,112,120,59,99,107,105,110,103,123,13,10,9,9,97,104,101,97,100,99,108,111,99,107\r
-,105,114,105,115,104,108,105,107,101,32,114,97,116,105,111,115,116,97,116,115,70\r
-,111,114,109,34,121,97,104,111,111,41,91,48,93,59,65,98,111,117,116,102,105,110,\r
-100,115,60,47,104,49,62,100,101,98,117,103,116,97,115,107,115,85,82,76,32,61,99,\r
-101,108,108,115,125,41,40,41,59,49,50,112,120,59,112,114,105,109,101,116,101,108\r
-,108,115,116,117,114,110,115,48,120,54,48,48,46,106,112,103,34,115,112,97,105,\r
-110,98,101,97,99,104,116,97,120,101,115,109,105,99,114,111,97,110,103,101,108,45\r
-,45,62,60,47,103,105,102,116,115,115,116,101,118,101,45,108,105,110,107,98,111,\r
-100,121,46,125,41,59,10,9,109,111,117,110,116,32,40,49,57,57,70,65,81,60,47,114,\r
-111,103,101,114,102,114,97,110,107,67,108,97,115,115,50,56,112,120,59,102,101,\r
-101,100,115,60,104,49,62,60,115,99,111,116,116,116,101,115,116,115,50,50,112,120\r
-,59,100,114,105,110,107,41,32,124,124,32,108,101,119,105,115,115,104,97,108,108,\r
-35,48,51,57,59,32,102,111,114,32,108,111,118,101,100,119,97,115,116,101,48,48,\r
-112,120,59,106,97,58,227,130,115,105,109,111,110,60,102,111,110,116,114,101,112,\r
-108,121,109,101,101,116,115,117,110,116,101,114,99,104,101,97,112,116,105,103,\r
-104,116,66,114,97,110,100,41,32,33,61,32,100,114,101,115,115,99,108,105,112,115,\r
-114,111,111,109,115,111,110,107,101,121,109,111,98,105,108,109,97,105,110,46,78,\r
-97,109,101,32,112,108,97,116,101,102,117,110,110,121,116,114,101,101,115,99,111,\r
-109,47,34,49,46,106,112,103,119,109,111,100,101,112,97,114,97,109,83,84,65,82,84\r
-,108,101,102,116,32,105,100,100,101,110,44,32,50,48,49,41,59,10,125,10,102,111,\r
-114,109,46,118,105,114,117,115,99,104,97,105,114,116,114,97,110,115,119,111,114,\r
-115,116,80,97,103,101,115,105,116,105,111,110,112,97,116,99,104,60,33,45,45,10,\r
-111,45,99,97,99,102,105,114,109,115,116,111,117,114,115,44,48,48,48,32,97,115,\r
-105,97,110,105,43,43,41,123,97,100,111,98,101,39,41,91,48,93,105,100,61,49,48,98\r
-,111,116,104,59,109,101,110,117,32,46,50,46,109,105,46,112,110,103,34,107,101,\r
-118,105,110,99,111,97,99,104,67,104,105,108,100,98,114,117,99,101,50,46,106,112,\r
-103,85,82,76,41,43,46,106,112,103,124,115,117,105,116,101,115,108,105,99,101,104\r
-,97,114,114,121,49,50,48,34,32,115,119,101,101,116,116,114,62,13,10,110,97,109,\r
-101,61,100,105,101,103,111,112,97,103,101,32,115,119,105,115,115,45,45,62,10,10,\r
-35,102,102,102,59,34,62,76,111,103,46,99,111,109,34,116,114,101,97,116,115,104,\r
-101,101,116,41,32,38,38,32,49,52,112,120,59,115,108,101,101,112,110,116,101,110,\r
-116,102,105,108,101,100,106,97,58,227,131,105,100,61,34,99,78,97,109,101,34,119,\r
-111,114,115,101,115,104,111,116,115,45,98,111,120,45,100,101,108,116,97,10,38,\r
-108,116,59,98,101,97,114,115,58,52,56,90,60,100,97,116,97,45,114,117,114,97,108,\r
-60,47,97,62,32,115,112,101,110,100,98,97,107,101,114,115,104,111,112,115,61,32,\r
-34,34,59,112,104,112,34,62,99,116,105,111,110,49,51,112,120,59,98,114,105,97,110\r
-,104,101,108,108,111,115,105,122,101,61,111,61,37,50,70,32,106,111,105,110,109,\r
-97,121,98,101,60,105,109,103,32,105,109,103,34,62,44,32,102,106,115,105,109,103,\r
-34,32,34,41,91,48,93,77,84,111,112,66,84,121,112,101,34,110,101,119,108,121,68,\r
-97,110,115,107,99,122,101,99,104,116,114,97,105,108,107,110,111,119,115,60,47,\r
-104,53,62,102,97,113,34,62,122,104,45,99,110,49,48,41,59,10,45,49,34,41,59,116,\r
-121,112,101,61,98,108,117,101,115,116,114,117,108,121,100,97,118,105,115,46,106,\r
-115,39,59,62,13,10,60,33,115,116,101,101,108,32,121,111,117,32,104,50,62,13,10,\r
-102,111,114,109,32,106,101,115,117,115,49,48,48,37,32,109,101,110,117,46,13,10,9\r
-,13,10,119,97,108,101,115,114,105,115,107,115,117,109,101,110,116,100,100,105,\r
-110,103,98,45,108,105,107,116,101,97,99,104,103,105,102,34,32,118,101,103,97,115\r
-,100,97,110,115,107,101,101,115,116,105,115,104,113,105,112,115,117,111,109,105,\r
-115,111,98,114,101,100,101,115,100,101,101,110,116,114,101,116,111,100,111,115,\r
-112,117,101,100,101,97,195,177,111,115,101,115,116,195,161,116,105,101,110,101,\r
-104,97,115,116,97,111,116,114,111,115,112,97,114,116,101,100,111,110,100,101,110\r
-,117,101,118,111,104,97,99,101,114,102,111,114,109,97,109,105,115,109,111,109,\r
-101,106,111,114,109,117,110,100,111,97,113,117,195,173,100,195,173,97,115,115,\r
-195,179,108,111,97,121,117,100,97,102,101,99,104,97,116,111,100,97,115,116,97,\r
-110,116,111,109,101,110,111,115,100,97,116,111,115,111,116,114,97,115,115,105,\r
-116,105,111,109,117,99,104,111,97,104,111,114,97,108,117,103,97,114,109,97,121,\r
-111,114,101,115,116,111,115,104,111,114,97,115,116,101,110,101,114,97,110,116,\r
-101,115,102,111,116,111,115,101,115,116,97,115,112,97,195,173,115,110,117,101,\r
-118,97,115,97,108,117,100,102,111,114,111,115,109,101,100,105,111,113,117,105,\r
-101,110,109,101,115,101,115,112,111,100,101,114,99,104,105,108,101,115,101,114,\r
-195,161,118,101,99,101,115,100,101,99,105,114,106,111,115,195,169,101,115,116,97\r
-,114,118,101,110,116,97,103,114,117,112,111,104,101,99,104,111,101,108,108,111,\r
-115,116,101,110,103,111,97,109,105,103,111,99,111,115,97,115,110,105,118,101,108\r
-,103,101,110,116,101,109,105,115,109,97,97,105,114,101,115,106,117,108,105,111,\r
-116,101,109,97,115,104,97,99,105,97,102,97,118,111,114,106,117,110,105,111,108,\r
-105,98,114,101,112,117,110,116,111,98,117,101,110,111,97,117,116,111,114,97,98,\r
-114,105,108,98,117,101,110,97,116,101,120,116,111,109,97,114,122,111,115,97,98,\r
-101,114,108,105,115,116,97,108,117,101,103,111,99,195,179,109,111,101,110,101,\r
-114,111,106,117,101,103,111,112,101,114,195,186,104,97,98,101,114,101,115,116,\r
-111,121,110,117,110,99,97,109,117,106,101,114,118,97,108,111,114,102,117,101,114\r
-,97,108,105,98,114,111,103,117,115,116,97,105,103,117,97,108,118,111,116,111,115\r
-,99,97,115,111,115,103,117,195,173,97,112,117,101,100,111,115,111,109,111,115,97\r
-,118,105,115,111,117,115,116,101,100,100,101,98,101,110,110,111,99,104,101,98,\r
-117,115,99,97,102,97,108,116,97,101,117,114,111,115,115,101,114,105,101,100,105,\r
-99,104,111,99,117,114,115,111,99,108,97,118,101,99,97,115,97,115,108,101,195,179\r
-,110,112,108,97,122,111,108,97,114,103,111,111,98,114,97,115,118,105,115,116,97,\r
-97,112,111,121,111,106,117,110,116,111,116,114,97,116,97,118,105,115,116,111,99,\r
-114,101,97,114,99,97,109,112,111,104,101,109,111,115,99,105,110,99,111,99,97,114\r
-,103,111,112,105,115,111,115,111,114,100,101,110,104,97,99,101,110,195,161,114,\r
-101,97,100,105,115,99,111,112,101,100,114,111,99,101,114,99,97,112,117,101,100,\r
-97,112,97,112,101,108,109,101,110,111,114,195,186,116,105,108,99,108,97,114,111,\r
-106,111,114,103,101,99,97,108,108,101,112,111,110,101,114,116,97,114,100,101,110\r
-,97,100,105,101,109,97,114,99,97,115,105,103,117,101,101,108,108,97,115,115,105,\r
-103,108,111,99,111,99,104,101,109,111,116,111,115,109,97,100,114,101,99,108,97,\r
-115,101,114,101,115,116,111,110,105,195,177,111,113,117,101,100,97,112,97,115,97\r
-,114,98,97,110,99,111,104,105,106,111,115,118,105,97,106,101,112,97,98,108,111,\r
-195,169,115,116,101,118,105,101,110,101,114,101,105,110,111,100,101,106,97,114,\r
-102,111,110,100,111,99,97,110,97,108,110,111,114,116,101,108,101,116,114,97,99,\r
-97,117,115,97,116,111,109,97,114,109,97,110,111,115,108,117,110,101,115,97,117,\r
-116,111,115,118,105,108,108,97,118,101,110,100,111,112,101,115,97,114,116,105,\r
-112,111,115,116,101,110,103,97,109,97,114,99,111,108,108,101,118,97,112,97,100,\r
-114,101,117,110,105,100,111,118,97,109,111,115,122,111,110,97,115,97,109,98,111,\r
-115,98,97,110,100,97,109,97,114,105,97,97,98,117,115,111,109,117,99,104,97,115,\r
-117,98,105,114,114,105,111,106,97,118,105,118,105,114,103,114,97,100,111,99,104,\r
-105,99,97,97,108,108,195,173,106,111,118,101,110,100,105,99,104,97,101,115,116,\r
-97,110,116,97,108,101,115,115,97,108,105,114,115,117,101,108,111,112,101,115,111\r
-,115,102,105,110,101,115,108,108,97,109,97,98,117,115,99,111,195,169,115,116,97,\r
-108,108,101,103,97,110,101,103,114,111,112,108,97,122,97,104,117,109,111,114,112\r
-,97,103,97,114,106,117,110,116,97,100,111,98,108,101,105,115,108,97,115,98,111,\r
-108,115,97,98,97,195,177,111,104,97,98,108,97,108,117,99,104,97,195,129,114,101,\r
-97,100,105,99,101,110,106,117,103,97,114,110,111,116,97,115,118,97,108,108,101,\r
-97,108,108,195,161,99,97,114,103,97,100,111,108,111,114,97,98,97,106,111,101,115\r
-,116,195,169,103,117,115,116,111,109,101,110,116,101,109,97,114,105,111,102,105,\r
-114,109,97,99,111,115,116,111,102,105,99,104,97,112,108,97,116,97,104,111,103,97\r
-,114,97,114,116,101,115,108,101,121,101,115,97,113,117,101,108,109,117,115,101,\r
-111,98,97,115,101,115,112,111,99,111,115,109,105,116,97,100,99,105,101,108,111,\r
-99,104,105,99,111,109,105,101,100,111,103,97,110,97,114,115,97,110,116,111,101,\r
-116,97,112,97,100,101,98,101,115,112,108,97,121,97,114,101,100,101,115,115,105,\r
-101,116,101,99,111,114,116,101,99,111,114,101,97,100,117,100,97,115,100,101,115,\r
-101,111,118,105,101,106,111,100,101,115,101,97,97,103,117,97,115,38,113,117,111,\r
-116,59,100,111,109,97,105,110,99,111,109,109,111,110,115,116,97,116,117,115,101,\r
-118,101,110,116,115,109,97,115,116,101,114,115,121,115,116,101,109,97,99,116,105\r
-,111,110,98,97,110,110,101,114,114,101,109,111,118,101,115,99,114,111,108,108,\r
-117,112,100,97,116,101,103,108,111,98,97,108,109,101,100,105,117,109,102,105,108\r
-,116,101,114,110,117,109,98,101,114,99,104,97,110,103,101,114,101,115,117,108,\r
-116,112,117,98,108,105,99,115,99,114,101,101,110,99,104,111,111,115,101,110,111,\r
-114,109,97,108,116,114,97,118,101,108,105,115,115,117,101,115,115,111,117,114,99\r
-,101,116,97,114,103,101,116,115,112,114,105,110,103,109,111,100,117,108,101,109,\r
-111,98,105,108,101,115,119,105,116,99,104,112,104,111,116,111,115,98,111,114,100\r
-,101,114,114,101,103,105,111,110,105,116,115,101,108,102,115,111,99,105,97,108,\r
-97,99,116,105,118,101,99,111,108,117,109,110,114,101,99,111,114,100,102,111,108,\r
-108,111,119,116,105,116,108,101,62,101,105,116,104,101,114,108,101,110,103,116,\r
-104,102,97,109,105,108,121,102,114,105,101,110,100,108,97,121,111,117,116,97,117\r
-,116,104,111,114,99,114,101,97,116,101,114,101,118,105,101,119,115,117,109,109,\r
-101,114,115,101,114,118,101,114,112,108,97,121,101,100,112,108,97,121,101,114,\r
-101,120,112,97,110,100,112,111,108,105,99,121,102,111,114,109,97,116,100,111,117\r
-,98,108,101,112,111,105,110,116,115,115,101,114,105,101,115,112,101,114,115,111,\r
-110,108,105,118,105,110,103,100,101,115,105,103,110,109,111,110,116,104,115,102,\r
-111,114,99,101,115,117,110,105,113,117,101,119,101,105,103,104,116,112,101,111,\r
-112,108,101,101,110,101,114,103,121,110,97,116,117,114,101,115,101,97,114,99,104\r
-,102,105,103,117,114,101,104,97,118,105,110,103,99,117,115,116,111,109,111,102,\r
-102,115,101,116,108,101,116,116,101,114,119,105,110,100,111,119,115,117,98,109,\r
-105,116,114,101,110,100,101,114,103,114,111,117,112,115,117,112,108,111,97,100,\r
-104,101,97,108,116,104,109,101,116,104,111,100,118,105,100,101,111,115,115,99,\r
-104,111,111,108,102,117,116,117,114,101,115,104,97,100,111,119,100,101,98,97,116\r
-,101,118,97,108,117,101,115,79,98,106,101,99,116,111,116,104,101,114,115,114,105\r
-,103,104,116,115,108,101,97,103,117,101,99,104,114,111,109,101,115,105,109,112,\r
-108,101,110,111,116,105,99,101,115,104,97,114,101,100,101,110,100,105,110,103,\r
-115,101,97,115,111,110,114,101,112,111,114,116,111,110,108,105,110,101,115,113,\r
-117,97,114,101,98,117,116,116,111,110,105,109,97,103,101,115,101,110,97,98,108,\r
-101,109,111,118,105,110,103,108,97,116,101,115,116,119,105,110,116,101,114,70,\r
-114,97,110,99,101,112,101,114,105,111,100,115,116,114,111,110,103,114,101,112,\r
-101,97,116,76,111,110,100,111,110,100,101,116,97,105,108,102,111,114,109,101,100\r
-,100,101,109,97,110,100,115,101,99,117,114,101,112,97,115,115,101,100,116,111,\r
-103,103,108,101,112,108,97,99,101,115,100,101,118,105,99,101,115,116,97,116,105,\r
-99,99,105,116,105,101,115,115,116,114,101,97,109,121,101,108,108,111,119,97,116,\r
-116,97,99,107,115,116,114,101,101,116,102,108,105,103,104,116,104,105,100,100,\r
-101,110,105,110,102,111,34,62,111,112,101,110,101,100,117,115,101,102,117,108,\r
-118,97,108,108,101,121,99,97,117,115,101,115,108,101,97,100,101,114,115,101,99,\r
-114,101,116,115,101,99,111,110,100,100,97,109,97,103,101,115,112,111,114,116,115\r
-,101,120,99,101,112,116,114,97,116,105,110,103,115,105,103,110,101,100,116,104,\r
-105,110,103,115,101,102,102,101,99,116,102,105,101,108,100,115,115,116,97,116,\r
-101,115,111,102,102,105,99,101,118,105,115,117,97,108,101,100,105,116,111,114,\r
-118,111,108,117,109,101,82,101,112,111,114,116,109,117,115,101,117,109,109,111,\r
-118,105,101,115,112,97,114,101,110,116,97,99,99,101,115,115,109,111,115,116,108,\r
-121,109,111,116,104,101,114,34,32,105,100,61,34,109,97,114,107,101,116,103,114,\r
-111,117,110,100,99,104,97,110,99,101,115,117,114,118,101,121,98,101,102,111,114,\r
-101,115,121,109,98,111,108,109,111,109,101,110,116,115,112,101,101,99,104,109,\r
-111,116,105,111,110,105,110,115,105,100,101,109,97,116,116,101,114,67,101,110,\r
-116,101,114,111,98,106,101,99,116,101,120,105,115,116,115,109,105,100,100,108,\r
-101,69,117,114,111,112,101,103,114,111,119,116,104,108,101,103,97,99,121,109,97,\r
-110,110,101,114,101,110,111,117,103,104,99,97,114,101,101,114,97,110,115,119,101\r
-,114,111,114,105,103,105,110,112,111,114,116,97,108,99,108,105,101,110,116,115,\r
-101,108,101,99,116,114,97,110,100,111,109,99,108,111,115,101,100,116,111,112,105\r
-,99,115,99,111,109,105,110,103,102,97,116,104,101,114,111,112,116,105,111,110,\r
-115,105,109,112,108,121,114,97,105,115,101,100,101,115,99,97,112,101,99,104,111,\r
-115,101,110,99,104,117,114,99,104,100,101,102,105,110,101,114,101,97,115,111,110\r
-,99,111,114,110,101,114,111,117,116,112,117,116,109,101,109,111,114,121,105,102,\r
-114,97,109,101,112,111,108,105,99,101,109,111,100,101,108,115,78,117,109,98,101,\r
-114,100,117,114,105,110,103,111,102,102,101,114,115,115,116,121,108,101,115,107,\r
-105,108,108,101,100,108,105,115,116,101,100,99,97,108,108,101,100,115,105,108,\r
-118,101,114,109,97,114,103,105,110,100,101,108,101,116,101,98,101,116,116,101,\r
-114,98,114,111,119,115,101,108,105,109,105,116,115,71,108,111,98,97,108,115,105,\r
-110,103,108,101,119,105,100,103,101,116,99,101,110,116,101,114,98,117,100,103,\r
-101,116,110,111,119,114,97,112,99,114,101,100,105,116,99,108,97,105,109,115,101,\r
-110,103,105,110,101,115,97,102,101,116,121,99,104,111,105,99,101,115,112,105,114\r
-,105,116,45,115,116,121,108,101,115,112,114,101,97,100,109,97,107,105,110,103,\r
-110,101,101,100,101,100,114,117,115,115,105,97,112,108,101,97,115,101,101,120,\r
-116,101,110,116,83,99,114,105,112,116,98,114,111,107,101,110,97,108,108,111,119,\r
-115,99,104,97,114,103,101,100,105,118,105,100,101,102,97,99,116,111,114,109,101,\r
-109,98,101,114,45,98,97,115,101,100,116,104,101,111,114,121,99,111,110,102,105,\r
-103,97,114,111,117,110,100,119,111,114,107,101,100,104,101,108,112,101,100,67,\r
-104,117,114,99,104,105,109,112,97,99,116,115,104,111,117,108,100,97,108,119,97,\r
-121,115,108,111,103,111,34,32,98,111,116,116,111,109,108,105,115,116,34,62,41,\r
-123,118,97,114,32,112,114,101,102,105,120,111,114,97,110,103,101,72,101,97,100,\r
-101,114,46,112,117,115,104,40,99,111,117,112,108,101,103,97,114,100,101,110,98,\r
-114,105,100,103,101,108,97,117,110,99,104,82,101,118,105,101,119,116,97,107,105,\r
-110,103,118,105,115,105,111,110,108,105,116,116,108,101,100,97,116,105,110,103,\r
-66,117,116,116,111,110,98,101,97,117,116,121,116,104,101,109,101,115,102,111,114\r
-,103,111,116,83,101,97,114,99,104,97,110,99,104,111,114,97,108,109,111,115,116,\r
-108,111,97,100,101,100,67,104,97,110,103,101,114,101,116,117,114,110,115,116,114\r
-,105,110,103,114,101,108,111,97,100,77,111,98,105,108,101,105,110,99,111,109,101\r
-,115,117,112,112,108,121,83,111,117,114,99,101,111,114,100,101,114,115,118,105,\r
-101,119,101,100,38,110,98,115,112,59,99,111,117,114,115,101,65,98,111,117,116,32\r
-,105,115,108,97,110,100,60,104,116,109,108,32,99,111,111,107,105,101,110,97,109,\r
-101,61,34,97,109,97,122,111,110,109,111,100,101,114,110,97,100,118,105,99,101,\r
-105,110,60,47,97,62,58,32,84,104,101,32,100,105,97,108,111,103,104,111,117,115,\r
-101,115,66,69,71,73,78,32,77,101,120,105,99,111,115,116,97,114,116,115,99,101,\r
-110,116,114,101,104,101,105,103,104,116,97,100,100,105,110,103,73,115,108,97,110\r
-,100,97,115,115,101,116,115,69,109,112,105,114,101,83,99,104,111,111,108,101,102\r
-,102,111,114,116,100,105,114,101,99,116,110,101,97,114,108,121,109,97,110,117,97\r
-,108,83,101,108,101,99,116,46,10,10,79,110,101,106,111,105,110,101,100,109,101,\r
-110,117,34,62,80,104,105,108,105,112,97,119,97,114,100,115,104,97,110,100,108,\r
-101,105,109,112,111,114,116,79,102,102,105,99,101,114,101,103,97,114,100,115,107\r
-,105,108,108,115,110,97,116,105,111,110,83,112,111,114,116,115,100,101,103,114,\r
-101,101,119,101,101,107,108,121,32,40,101,46,103,46,98,101,104,105,110,100,100,\r
-111,99,116,111,114,108,111,103,103,101,100,117,110,105,116,101,100,60,47,98,62,\r
-60,47,98,101,103,105,110,115,112,108,97,110,116,115,97,115,115,105,115,116,97,\r
-114,116,105,115,116,105,115,115,117,101,100,51,48,48,112,120,124,99,97,110,97,\r
-100,97,97,103,101,110,99,121,115,99,104,101,109,101,114,101,109,97,105,110,66,\r
-114,97,122,105,108,115,97,109,112,108,101,108,111,103,111,34,62,98,101,121,111,\r
-110,100,45,115,99,97,108,101,97,99,99,101,112,116,115,101,114,118,101,100,109,97\r
-,114,105,110,101,70,111,111,116,101,114,99,97,109,101,114,97,60,47,104,49,62,10,\r
-95,102,111,114,109,34,108,101,97,118,101,115,115,116,114,101,115,115,34,32,47,62\r
-,13,10,46,103,105,102,34,32,111,110,108,111,97,100,108,111,97,100,101,114,79,120\r
-,102,111,114,100,115,105,115,116,101,114,115,117,114,118,105,118,108,105,115,116\r
-,101,110,102,101,109,97,108,101,68,101,115,105,103,110,115,105,122,101,61,34,97,\r
-112,112,101,97,108,116,101,120,116,34,62,108,101,118,101,108,115,116,104,97,110,\r
-107,115,104,105,103,104,101,114,102,111,114,99,101,100,97,110,105,109,97,108,97,\r
-110,121,111,110,101,65,102,114,105,99,97,97,103,114,101,101,100,114,101,99,101,\r
-110,116,80,101,111,112,108,101,60,98,114,32,47,62,119,111,110,100,101,114,112,\r
-114,105,99,101,115,116,117,114,110,101,100,124,124,32,123,125,59,109,97,105,110,\r
-34,62,105,110,108,105,110,101,115,117,110,100,97,121,119,114,97,112,34,62,102,97\r
-,105,108,101,100,99,101,110,115,117,115,109,105,110,117,116,101,98,101,97,99,111\r
-,110,113,117,111,116,101,115,49,53,48,112,120,124,101,115,116,97,116,101,114,101\r
-,109,111,116,101,101,109,97,105,108,34,108,105,110,107,101,100,114,105,103,104,\r
-116,59,115,105,103,110,97,108,102,111,114,109,97,108,49,46,104,116,109,108,115,\r
-105,103,110,117,112,112,114,105,110,99,101,102,108,111,97,116,58,46,112,110,103,\r
-34,32,102,111,114,117,109,46,65,99,99,101,115,115,112,97,112,101,114,115,115,111\r
-,117,110,100,115,101,120,116,101,110,100,72,101,105,103,104,116,115,108,105,100,\r
-101,114,85,84,70,45,56,34,38,97,109,112,59,32,66,101,102,111,114,101,46,32,87,\r
-105,116,104,115,116,117,100,105,111,111,119,110,101,114,115,109,97,110,97,103,\r
-101,112,114,111,102,105,116,106,81,117,101,114,121,97,110,110,117,97,108,112,97,\r
-114,97,109,115,98,111,117,103,104,116,102,97,109,111,117,115,103,111,111,103,108\r
-,101,108,111,110,103,101,114,105,43,43,41,32,123,105,115,114,97,101,108,115,97,\r
-121,105,110,103,100,101,99,105,100,101,104,111,109,101,34,62,104,101,97,100,101,\r
-114,101,110,115,117,114,101,98,114,97,110,99,104,112,105,101,99,101,115,98,108,\r
-111,99,107,59,115,116,97,116,101,100,116,111,112,34,62,60,114,97,99,105,110,103,\r
-114,101,115,105,122,101,45,45,38,103,116,59,112,97,99,105,116,121,115,101,120,\r
-117,97,108,98,117,114,101,97,117,46,106,112,103,34,32,49,48,44,48,48,48,111,98,\r
-116,97,105,110,116,105,116,108,101,115,97,109,111,117,110,116,44,32,73,110,99,46\r
-,99,111,109,101,100,121,109,101,110,117,34,32,108,121,114,105,99,115,116,111,100\r
-,97,121,46,105,110,100,101,101,100,99,111,117,110,116,121,95,108,111,103,111,46,\r
-70,97,109,105,108,121,108,111,111,107,101,100,77,97,114,107,101,116,108,115,101,\r
-32,105,102,80,108,97,121,101,114,116,117,114,107,101,121,41,59,118,97,114,32,102\r
-,111,114,101,115,116,103,105,118,105,110,103,101,114,114,111,114,115,68,111,109,\r
-97,105,110,125,101,108,115,101,123,105,110,115,101,114,116,66,108,111,103,60,47,\r
-102,111,111,116,101,114,108,111,103,105,110,46,102,97,115,116,101,114,97,103,101\r
-,110,116,115,60,98,111,100,121,32,49,48,112,120,32,48,112,114,97,103,109,97,102,\r
-114,105,100,97,121,106,117,110,105,111,114,100,111,108,108,97,114,112,108,97,99,\r
-101,100,99,111,118,101,114,115,112,108,117,103,105,110,53,44,48,48,48,32,112,97,\r
-103,101,34,62,98,111,115,116,111,110,46,116,101,115,116,40,97,118,97,116,97,114,\r
-116,101,115,116,101,100,95,99,111,117,110,116,102,111,114,117,109,115,115,99,104\r
-,101,109,97,105,110,100,101,120,44,102,105,108,108,101,100,115,104,97,114,101,\r
-115,114,101,97,100,101,114,97,108,101,114,116,40,97,112,112,101,97,114,83,117,98\r
-,109,105,116,108,105,110,101,34,62,98,111,100,121,34,62,10,42,32,84,104,101,84,\r
-104,111,117,103,104,115,101,101,105,110,103,106,101,114,115,101,121,78,101,119,\r
-115,60,47,118,101,114,105,102,121,101,120,112,101,114,116,105,110,106,117,114,\r
-121,119,105,100,116,104,61,67,111,111,107,105,101,83,84,65,82,84,32,97,99,114,\r
-111,115,115,95,105,109,97,103,101,116,104,114,101,97,100,110,97,116,105,118,101,\r
-112,111,99,107,101,116,98,111,120,34,62,10,83,121,115,116,101,109,32,68,97,118,\r
-105,100,99,97,110,99,101,114,116,97,98,108,101,115,112,114,111,118,101,100,65,\r
-112,114,105,108,32,114,101,97,108,108,121,100,114,105,118,101,114,105,116,101,\r
-109,34,62,109,111,114,101,34,62,98,111,97,114,100,115,99,111,108,111,114,115,99,\r
-97,109,112,117,115,102,105,114,115,116,32,124,124,32,91,93,59,109,101,100,105,97\r
-,46,103,117,105,116,97,114,102,105,110,105,115,104,119,105,100,116,104,58,115,\r
-104,111,119,101,100,79,116,104,101,114,32,46,112,104,112,34,32,97,115,115,117,\r
-109,101,108,97,121,101,114,115,119,105,108,115,111,110,115,116,111,114,101,115,\r
-114,101,108,105,101,102,115,119,101,100,101,110,67,117,115,116,111,109,101,97,\r
-115,105,108,121,32,121,111,117,114,32,83,116,114,105,110,103,10,10,87,104,105,\r
-108,116,97,121,108,111,114,99,108,101,97,114,58,114,101,115,111,114,116,102,114,\r
-101,110,99,104,116,104,111,117,103,104,34,41,32,43,32,34,60,98,111,100,121,62,98\r
-,117,121,105,110,103,98,114,97,110,100,115,77,101,109,98,101,114,110,97,109,101,\r
-34,62,111,112,112,105,110,103,115,101,99,116,111,114,53,112,120,59,34,62,118,115\r
-,112,97,99,101,112,111,115,116,101,114,109,97,106,111,114,32,99,111,102,102,101,\r
-101,109,97,114,116,105,110,109,97,116,117,114,101,104,97,112,112,101,110,60,47,\r
-110,97,118,62,107,97,110,115,97,115,108,105,110,107,34,62,73,109,97,103,101,115,\r
-61,102,97,108,115,101,119,104,105,108,101,32,104,115,112,97,99,101,48,38,97,109,\r
-112,59,32,10,10,73,110,32,32,112,111,119,101,114,80,111,108,115,107,105,45,99,\r
-111,108,111,114,106,111,114,100,97,110,66,111,116,116,111,109,83,116,97,114,116,\r
-32,45,99,111,117,110,116,50,46,104,116,109,108,110,101,119,115,34,62,48,49,46,\r
-106,112,103,79,110,108,105,110,101,45,114,105,103,104,116,109,105,108,108,101,\r
-114,115,101,110,105,111,114,73,83,66,78,32,48,48,44,48,48,48,32,103,117,105,100,\r
-101,115,118,97,108,117,101,41,101,99,116,105,111,110,114,101,112,97,105,114,46,\r
-120,109,108,34,32,32,114,105,103,104,116,115,46,104,116,109,108,45,98,108,111,99\r
-,107,114,101,103,69,120,112,58,104,111,118,101,114,119,105,116,104,105,110,118,\r
-105,114,103,105,110,112,104,111,110,101,115,60,47,116,114,62,13,117,115,105,110,\r
-103,32,10,9,118,97,114,32,62,39,41,59,10,9,60,47,116,100,62,10,60,47,116,114,62,\r
-10,98,97,104,97,115,97,98,114,97,115,105,108,103,97,108,101,103,111,109,97,103,\r
-121,97,114,112,111,108,115,107,105,115,114,112,115,107,105,216,177,216,175,217,\r
-136,228,184,173,230,150,135,231,174,128,228,189,147,231,185,129,233,171,148,228,\r
-191,161,230,129,175,228,184,173,229,155,189,230,136,145,228,187,172,228,184,128,\r
-228,184,170,229,133,172,229,143,184,231,174,161,231,144,134,232,174,186,229,157,\r
-155,229,143,175,228,187,165,230,156,141,229,138,161,230,151,182,233,151,180,228,\r
-184,170,228,186,186,228,186,167,229,147,129,232,135,170,229,183,177,228,188,129,\r
-228,184,154,230,159,165,231,156,139,229,183,165,228,189,156,232,129,148,231,179,\r
-187,230,178,161,230,156,137,231,189,145,231,171,153,230,137,128,230,156,137,232,\r
-175,132,232,174,186,228,184,173,229,191,131,230,150,135,231,171,160,231,148,168,\r
-230,136,183,233,166,150,233,161,181,228,189,156,232,128,133,230,138,128,230,156,\r
-175,233,151,174,233,162,152,231,155,184,229,133,179,228,184,139,232,189,189,230,\r
-144,156,231,180,162,228,189,191,231,148,168,232,189,175,228,187,182,229,156,168,\r
-231,186,191,228,184,187,233,162,152,232,181,132,230,150,153,232,167,134,233,162,\r
-145,229,155,158,229,164,141,230,179,168,229,134,140,231,189,145,231,187,156,230,\r
-148,182,232,151,143,229,134,133,229,174,185,230,142,168,232,141,144,229,184,130,\r
-229,156,186,230,182,136,230,129,175,231,169,186,233,151,180,229,143,145,229,184,\r
-131,228,187,128,228,185,136,229,165,189,229,143,139,231,148,159,230,180,187,229,\r
-155,190,231,137,135,229,143,145,229,177,149,229,166,130,230,158,156,230,137,139,\r
-230,156,186,230,150,176,233,151,187,230,156,128,230,150,176,230,150,185,229,188,\r
-143,229,140,151,228,186,172,230,143,144,228,190,155,229,133,179,228,186,142,230,\r
-155,180,229,164,154,232,191,153,228,184,170,231,179,187,231,187,159,231,159,165,\r
-233,129,147,230,184,184,230,136,143,229,185,191,229,145,138,229,133,182,228,187,\r
-150,229,143,145,232,161,168,229,174,137,229,133,168,231,172,172,228,184,128,228,\r
-188,154,229,145,152,232,191,155,232,161,140,231,130,185,229,135,187,231,137,136,\r
-230,157,131,231,148,181,229,173,144,228,184,150,231,149,140,232,174,190,232,174,\r
-161,229,133,141,232,180,185,230,149,153,232,130,178,229,138,160,229,133,165,230,\r
-180,187,229,138,168,228,187,150,228,187,172,229,149,134,229,147,129,229,141,154,\r
-229,174,162,231,142,176,229,156,168,228,184,138,230,181,183,229,166,130,228,189,\r
-149,229,183,178,231,187,143,231,149,153,232,168,128,232,175,166,231,187,134,231,\r
-164,190,229,140,186,231,153,187,229,189,149,230,156,172,231,171,153,233,156,128,\r
-232,166,129,228,187,183,230,160,188,230,148,175,230,140,129,229,155,189,233,153,\r
-133,233,147,190,230,142,165,229,155,189,229,174,182,229,187,186,232,174,190,230,\r
-156,139,229,143,139,233,152,133,232,175,187,230,179,149,229,190,139,228,189,141,\r
-231,189,174,231,187,143,230,181,142,233,128,137,230,139,169,232,191,153,230,160,\r
-183,229,189,147,229,137,141,229,136,134,231,177,187,230,142,146,232,161,140,229,\r
-155,160,228,184,186,228,186,164,230,152,147,230,156,128,229,144,142,233,159,179,\r
-228,185,144,228,184,141,232,131,189,233,128,154,232,191,135,232,161,140,228,184,\r
-154,231,167,145,230,138,128,229,143,175,232,131,189,232,174,190,229,164,135,229,\r
-144,136,228,189,156,229,164,167,229,174,182,231,164,190,228,188,154,231,160,148,\r
-231,169,182,228,184,147,228,184,154,229,133,168,233,131,168,233,161,185,231,155,\r
-174,232,191,153,233,135,140,232,191,152,230,152,175,229,188,128,229,167,139,230,\r
-131,133,229,134,181,231,148,181,232,132,145,230,150,135,228,187,182,229,147,129,\r
-231,137,140,229,184,174,229,138,169,230,150,135,229,140,150,232,181,132,230,186,\r
-144,229,164,167,229,173,166,229,173,166,228,185,160,229,156,176,229,157,128,230,\r
-181,143,232,167,136,230,138,149,232,181,132,229,183,165,231,168,139,232,166,129,\r
-230,177,130,230,128,142,228,185,136,230,151,182,229,128,153,229,138,159,232,131,\r
-189,228,184,187,232,166,129,231,155,174,229,137,141,232,181,132,232,174,175,229,\r
-159,142,229,184,130,230,150,185,230,179,149,231,148,181,229,189,177,230,139,155,\r
-232,129,152,229,163,176,230,152,142,228,187,187,228,189,149,229,129,165,229,186,\r
-183,230,149,176,230,141,174,231,190,142,229,155,189,230,177,189,232,189,166,228,\r
-187,139,231,187,141,228,189,134,230,152,175,228,186,164,230,181,129,231,148,159,\r
-228,186,167,230,137,128,228,187,165,231,148,181,232,175,157,230,152,190,231,164,\r
-186,228,184,128,228,186,155,229,141,149,228,189,141,228,186,186,229,145,152,229,\r
-136,134,230,158,144,229,156,176,229,155,190,230,151,133,230,184,184,229,183,165,\r
-229,133,183,229,173,166,231,148,159,231,179,187,229,136,151,231,189,145,229,143,\r
-139,229,184,150,229,173,144,229,175,134,231,160,129,233,162,145,233,129,147,230,\r
-142,167,229,136,182,229,156,176,229,140,186,229,159,186,230,156,172,229,133,168,\r
-229,155,189,231,189,145,228,184,138,233,135,141,232,166,129,231,172,172,228,186,\r
-140,229,150,156,230,172,162,232,191,155,229,133,165,229,143,139,230,131,133,232,\r
-191,153,228,186,155,232,128,131,232,175,149,229,143,145,231,142,176,229,159,185,\r
-232,174,173,228,187,165,228,184,138,230,148,191,229,186,156,230,136,144,228,184,\r
-186,231,142,175,229,162,131,233,166,153,230,184,175,229,144,140,230,151,182,229,\r
-168,177,228,185,144,229,143,145,233,128,129,228,184,128,229,174,154,229,188,128,\r
-229,143,145,228,189,156,229,147,129,230,160,135,229,135,134,230,172,162,232,191,\r
-142,232,167,163,229,134,179,229,156,176,230,150,185,228,184,128,228,184,139,228,\r
-187,165,229,143,138,232,180,163,228,187,187,230,136,150,232,128,133,229,174,162,\r
-230,136,183,228,187,163,232,161,168,231,167,175,229,136,134,229,165,179,228,186,\r
-186,230,149,176,231,160,129,233,148,128,229,148,174,229,135,186,231,142,176,231,\r
-166,187,231,186,191,229,186,148,231,148,168,229,136,151,232,161,168,228,184,141,\r
-229,144,140,231,188,150,232,190,145,231,187,159,232,174,161,230,159,165,232,175,\r
-162,228,184,141,232,166,129,230,156,137,229,133,179,230,156,186,230,158,132,229,\r
-190,136,229,164,154,230,146,173,230,148,190,231,187,132,231,187,135,230,148,191,\r
-231,173,150,231,155,180,230,142,165,232,131,189,229,138,155,230,157,165,230,186,\r
-144,230,153,130,233,150,147,231,156,139,229,136,176,231,131,173,233,151,168,229,\r
-133,179,233,148,174,228,184,147,229,140,186,233,157,158,229,184,184,232,139,177,\r
-232,175,173,231,153,190,229,186,166,229,184,140,230,156,155,231,190,142,229,165,\r
-179,230,175,148,232,190,131,231,159,165,232,175,134,232,167,132,229,174,154,229,\r
-187,186,232,174,174,233,131,168,233,151,168,230,132,143,232,167,129,231,178,190,\r
-229,189,169,230,151,165,230,156,172,230,143,144,233,171,152,229,143,145,232,168,\r
-128,230,150,185,233,157,162,229,159,186,233,135,145,229,164,132,231,144,134,230,\r
-157,131,233,153,144,229,189,177,231,137,135,233,147,182,232,161,140,232,191,152,\r
-230,156,137,229,136,134,228,186,171,231,137,169,229,147,129,231,187,143,232,144,\r
-165,230,183,187,229,138,160,228,184,147,229,174,182,232,191,153,231,167,141,232,\r
-175,157,233,162,152,232,181,183,230,157,165,228,184,154,229,138,161,229,133,172,\r
-229,145,138,232,174,176,229,189,149,231,174,128,228,187,139,232,180,168,233,135,\r
-143,231,148,183,228,186,186,229,189,177,229,147,141,229,188,149,231,148,168,230,\r
-138,165,229,145,138,233,131,168,229,136,134,229,191,171,233,128,159,229,146,168,\r
-232,175,162,230,151,182,229,176,154,230,179,168,230,132,143,231,148,179,232,175,\r
-183,229,173,166,230,160,161,229,186,148,232,175,165,229,142,134,229,143,178,229,\r
-143,170,230,152,175,232,191,148,229,155,158,232,180,173,228,185,176,229,144,141,\r
-231,167,176,228,184,186,228,186,134,230,136,144,229,138,159,232,175,180,230,152,\r
-142,228,190,155,229,186,148,229,173,169,229,173,144,228,184,147,233,162,152,231,\r
-168,139,229,186,143,228,184,128,232,136,172,230,156,131,229,147,161,229,143,170,\r
-230,156,137,229,133,182,229,174,131,228,191,157,230,138,164,232,128,140,228,184,\r
-148,228,187,138,229,164,169,231,170,151,229,143,163,229,138,168,230,128,129,231,\r
-138,182,230,128,129,231,137,185,229,136,171,232,174,164,228,184,186,229,191,133,\r
-233,161,187,230,155,180,230,150,176,229,176,143,232,175,180,230,136,145,229,128,\r
-145,228,189,156,228,184,186,229,170,146,228,189,147,229,140,133,230,139,172,233,\r
-130,163,228,185,136,228,184,128,230,160,183,229,155,189,229,134,133,230,152,175,\r
-229,144,166,230,160,185,230,141,174,231,148,181,232,167,134,229,173,166,233,153,\r
-162,229,133,183,230,156,137,232,191,135,231,168,139,231,148,177,228,186,142,228,\r
-186,186,230,137,141,229,135,186,230,157,165,228,184,141,232,191,135,230,173,163,\r
-229,156,168,230,152,142,230,152,159,230,149,133,228,186,139,229,133,179,231,179,\r
-187,230,160,135,233,162,152,229,149,134,229,138,161,232,190,147,229,133,165,228,\r
-184,128,231,155,180,229,159,186,231,161,128,230,149,153,229,173,166,228,186,134,\r
-232,167,163,229,187,186,231,173,145,231,187,147,230,158,156,229,133,168,231,144,\r
-131,233,128,154,231,159,165,232,174,161,229,136,146,229,175,185,228,186,142,232,\r
-137,186,230,156,175,231,155,184,229,134,140,229,143,145,231,148,159,231,156,159,\r
-231,154,132,229,187,186,231,171,139,231,173,137,231,186,167,231,177,187,229,158,\r
-139,231,187,143,233,170,140,229,174,158,231,142,176,229,136,182,228,189,156,230,\r
-157,165,232,135,170,230,160,135,231,173,190,228,187,165,228,184,139,229,142,159,\r
-229,136,155,230,151,160,230,179,149,229,133,182,228,184,173,229,128,139,228,186,\r
-186,228,184,128,229,136,135,230,140,135,229,141,151,229,133,179,233,151,173,233,\r
-155,134,229,155,162,231,172,172,228,184,137,229,133,179,230,179,168,229,155,160,\r
-230,173,164,231,133,167,231,137,135,230,183,177,229,156,179,229,149,134,228,184,\r
-154,229,185,191,229,183,158,230,151,165,230,156,159,233,171,152,231,186,167,230,\r
-156,128,232,191,145,231,187,188,229,144,136,232,161,168,231,164,186,228,184,147,\r
-232,190,145,232,161,140,228,184,186,228,186,164,233,128,154,232,175,132,228,187,\r
-183,232,167,137,229,190,151,231,178,190,229,141,142,229,174,182,229,186,173,229,\r
-174,140,230,136,144,230,132,159,232,167,137,229,174,137,232,163,133,229,190,151,\r
-229,136,176,233,130,174,228,187,182,229,136,182,229,186,166,233,163,159,229,147,\r
-129,232,153,189,231,132,182,232,189,172,232,189,189,230,138,165,228,187,183,232,\r
-174,176,232,128,133,230,150,185,230,161,136,232,161,140,230,148,191,228,186,186,\r
-230,176,145,231,148,168,229,147,129,228,184,156,232,165,191,230,143,144,229,135,\r
-186,233,133,146,229,186,151,231,132,182,229,144,142,228,187,152,230,172,190,231,\r
-131,173,231,130,185,228,187,165,229,137,141,229,174,140,229,133,168,229,143,145,\r
-229,184,150,232,174,190,231,189,174,233,162,134,229,175,188,229,183,165,228,184,\r
-154,229,140,187,233,153,162,231,156,139,231,156,139,231,187,143,229,133,184,229,\r
-142,159,229,155,160,229,185,179,229,143,176,229,144,132,231,167,141,229,162,158,\r
-229,138,160,230,157,144,230,150,153,230,150,176,229,162,158,228,185,139,229,144,\r
-142,232,129,140,228,184,154,230,149,136,230,158,156,228,187,138,229,185,180,232,\r
-174,186,230,150,135,230,136,145,229,155,189,229,145,138,232,175,137,231,137,136,\r
-228,184,187,228,191,174,230,148,185,229,143,130,228,184,142,230,137,147,229,141,\r
-176,229,191,171,228,185,144,230,156,186,230,162,176,232,167,130,231,130,185,229,\r
-173,152,229,156,168,231,178,190,231,165,158,232,142,183,229,190,151,229,136,169,\r
-231,148,168,231,187,167,231,187,173,228,189,160,228,187,172,232,191,153,228,185,\r
-136,230,168,161,229,188,143,232,175,173,232,168,128,232,131,189,229,164,159,233,\r
-155,133,232,153,142,230,147,141,228,189,156,233,163,142,230,160,188,228,184,128,\r
-232,181,183,231,167,145,229,173,166,228,189,147,232,130,178,231,159,173,228,191,\r
-161,230,157,161,228,187,182,230,178,187,231,150,151,232,191,144,229,138,168,228,\r
-186,167,228,184,154,228,188,154,232,174,174,229,175,188,232,136,170,229,133,136,\r
-231,148,159,232,129,148,231,155,159,229,143,175,230,152,175,229,149,143,233,161,\r
-140,231,187,147,230,158,132,228,189,156,231,148,168,232,176,131,230,159,165,232,\r
-179,135,230,150,153,232,135,170,229,138,168,232,180,159,232,180,163,229,134,156,\r
-228,184,154,232,174,191,233,151,174,229,174,158,230,150,189,230,142,165,229,143,\r
-151,232,174,168,232,174,186,233,130,163,228,184,170,229,143,141,233,166,136,229,\r
-138,160,229,188,186,229,165,179,230,128,167,232,140,131,229,155,180,230,156,141,\r
-229,139,153,228,188,145,233,151,178,228,187,138,230,151,165,229,174,162,230,156,\r
-141,232,167,128,231,156,139,229,143,130,229,138,160,231,154,132,232,175,157,228,\r
-184,128,231,130,185,228,191,157,232,175,129,229,155,190,228,185,166,230,156,137,\r
-230,149,136,230,181,139,232,175,149,231,167,187,229,138,168,230,137,141,232,131,\r
-189,229,134,179,229,174,154,232,130,161,231,165,168,228,184,141,230,150,173,233,\r
-156,128,230,177,130,228,184,141,229,190,151,229,138,158,230,179,149,228,185,139,\r
-233,151,180,233,135,135,231,148,168,232,144,165,233,148,128,230,138,149,232,175,\r
-137,231,155,174,230,160,135,231,136,177,230,131,133,230,145,132,229,189,177,230,\r
-156,137,228,186,155,232,164,135,232,163,189,230,150,135,229,173,166,230,156,186,\r
-228,188,154,230,149,176,229,173,151,232,163,133,228,191,174,232,180,173,231,137,\r
-169,229,134,156,230,157,145,229,133,168,233,157,162,231,178,190,229,147,129,229,\r
-133,182,229,174,158,228,186,139,230,131,133,230,176,180,229,185,179,230,143,144,\r
-231,164,186,228,184,138,229,184,130,232,176,162,232,176,162,230,153,174,233,128,\r
-154,230,149,153,229,184,136,228,184,138,228,188,160,231,177,187,229,136,171,230,\r
-173,140,230,155,178,230,139,165,230,156,137,229,136,155,230,150,176,233,133,141,\r
-228,187,182,229,143,170,232,166,129,230,151,182,228,187,163,232,179,135,232,168,\r
-138,232,190,190,229,136,176,228,186,186,231,148,159,232,174,162,233,152,133,232,\r
-128,129,229,184,136,229,177,149,231,164,186,229,191,131,231,144,134,232,180,180,\r
-229,173,144,231,182,178,231,171,153,228,184,187,233,161,140,232,135,170,231,132,\r
-182,231,186,167,229,136,171,231,174,128,229,141,149,230,148,185,233,157,169,233,\r
-130,163,228,186,155,230,157,165,232,175,180,230,137,147,229,188,128,228,187,163,\r
-231,160,129,229,136,160,233,153,164,232,175,129,229,136,184,232,138,130,231,155,\r
-174,233,135,141,231,130,185,230,172,161,230,149,184,229,164,154,229,176,145,232,\r
-167,132,229,136,146,232,181,132,233,135,145,230,137,190,229,136,176,228,187,165,\r
-229,144,142,229,164,167,229,133,168,228,184,187,233,161,181,230,156,128,228,189,\r
-179,229,155,158,231,173,148,229,164,169,228,184,139,228,191,157,233,154,156,231,\r
-142,176,228,187,163,230,163,128,230,159,165,230,138,149,231,165,168,229,176,143,\r
-230,151,182,230,178,146,230,156,137,230,173,163,229,184,184,231,148,154,232,135,\r
-179,228,187,163,231,144,134,231,155,174,229,189,149,229,133,172,229,188,128,229,\r
-164,141,229,136,182,233,135,145,232,158,141,229,185,184,231,166,143,231,137,136,\r
-230,156,172,229,189,162,230,136,144,229,135,134,229,164,135,232,161,140,230,131,\r
-133,229,155,158,229,136,176,230,128,157,230,131,179,230,128,142,230,160,183,229,\r
-141,143,232,174,174,232,174,164,232,175,129,230,156,128,229,165,189,228,186,167,\r
-231,148,159,230,140,137,231,133,167,230,156,141,232,163,133,229,185,191,228,184,\r
-156,229,138,168,230,188,171,233,135,135,232,180,173,230,150,176,230,137,139,231,\r
-187,132,229,155,190,233,157,162,230,157,191,229,143,130,232,128,131,230,148,191,\r
-230,178,187,229,174,185,230,152,147,229,164,169,229,156,176,229,138,170,229,138,\r
-155,228,186,186,228,187,172,229,141,135,231,186,167,233,128,159,229,186,166,228,\r
-186,186,231,137,169,232,176,131,230,149,180,230,181,129,232,161,140,233,128,160,\r
-230,136,144,230,150,135,229,173,151,233,159,169,229,155,189,232,180,184,230,152,\r
-147,229,188,128,229,177,149,231,155,184,233,151,156,232,161,168,231,142,176,229,\r
-189,177,232,167,134,229,166,130,230,173,164,231,190,142,229,174,185,229,164,167,\r
-229,176,143,230,138,165,233,129,147,230,157,161,230,172,190,229,191,131,230,131,\r
-133,232,174,184,229,164,154,230,179,149,232,167,132,229,174,182,229,177,133,228,\r
-185,166,229,186,151,232,191,158,230,142,165,231,171,139,229,141,179,228,184,190,\r
-230,138,165,230,138,128,229,183,167,229,165,165,232,191,144,231,153,187,229,133,\r
-165,228,187,165,230,157,165,231,144,134,232,174,186,228,186,139,228,187,182,232,\r
-135,170,231,148,177,228,184,173,229,141,142,229,138,158,229,133,172,229,166,136,\r
-229,166,136,231,156,159,230,173,163,228,184,141,233,148,153,229,133,168,230,150,\r
-135,229,144,136,229,144,140,228,187,183,229,128,188,229,136,171,228,186,186,231,\r
-155,145,231,157,163,229,133,183,228,189,147,228,184,150,231,186,170,229,155,162,\r
-233,152,159,229,136,155,228,184,154,230,137,191,230,139,133,229,162,158,233,149,\r
-191,230,156,137,228,186,186,228,191,157,230,140,129,229,149,134,229,174,182,231,\r
-187,180,228,191,174,229,143,176,230,185,190,229,183,166,229,143,179,232,130,161,\r
-228,187,189,231,173,148,230,161,136,229,174,158,233,153,133,231,148,181,228,191,\r
-161,231,187,143,231,144,134,231,148,159,229,145,189,229,174,163,228,188,160,228,\r
-187,187,229,138,161,230,173,163,229,188,143,231,137,185,232,137,178,228,184,139,\r
-230,157,165,229,141,143,228,188,154,229,143,170,232,131,189,229,189,147,231,132,\r
-182,233,135,141,230,150,176,229,133,167,229,174,185,230,140,135,229,175,188,232,\r
-191,144,232,161,140,230,151,165,229,191,151,232,179,163,229,174,182,232,182,133,\r
-232,191,135,229,156,159,229,156,176,230,181,153,230,177,159,230,148,175,228,187,\r
-152,230,142,168,229,135,186,231,171,153,233,149,191,230,157,173,229,183,158,230,\r
-137,167,232,161,140,229,136,182,233,128,160,228,185,139,228,184,128,230,142,168,\r
-229,185,191,231,142,176,229,156,186,230,143,143,232,191,176,229,143,152,229,140,\r
-150,228,188,160,231,187,159,230,173,140,230,137,139,228,191,157,233,153,169,232,\r
-175,190,231,168,139,229,140,187,231,150,151,231,187,143,232,191,135,232,191,135,\r
-229,142,187,228,185,139,229,137,141,230,148,182,229,133,165,229,185,180,229,186,\r
-166,230,157,130,229,191,151,231,190,142,228,184,189,230,156,128,233,171,152,231,\r
-153,187,233,153,134,230,156,170,230,157,165,229,138,160,229,183,165,229,133,141,\r
-232,180,163,230,149,153,231,168,139,231,137,136,229,157,151,232,186,171,228,189,\r
-147,233,135,141,229,186,134,229,135,186,229,148,174,230,136,144,230,156,172,229,\r
-189,162,229,188,143,229,156,159,232,177,134,229,135,186,229,131,185,228,184,156,\r
-230,150,185,233,130,174,231,174,177,229,141,151,228,186,172,230,177,130,232,129,\r
-140,229,143,150,229,190,151,232,129,140,228,189,141,231,155,184,228,191,161,233,\r
-161,181,233,157,162,229,136,134,233,146,159,231,189,145,233,161,181,231,161,174,\r
-229,174,154,229,155,190,228,190,139,231,189,145,229,157,128,231,167,175,230,158,\r
-129,233,148,153,232,175,175,231,155,174,231,154,132,229,174,157,232,180,157,230,\r
-156,186,229,133,179,233,163,142,233,153,169,230,142,136,230,157,131,231,151,133,\r
-230,175,146,229,174,160,231,137,169,233,153,164,228,186,134,232,169,149,232,171,\r
-150,231,150,190,231,151,133,229,143,138,230,151,182,230,177,130,232,180,173,231,\r
-171,153,231,130,185,229,132,191,231,171,165,230,175,143,229,164,169,228,184,173,\r
-229,164,174,232,174,164,232,175,134,230,175,143,228,184,170,229,164,169,230,180,\r
-165,229,173,151,228,189,147,229,143,176,231,129,163,231,187,180,230,138,164,230,\r
-156,172,233,161,181,228,184,170,230,128,167,229,174,152,230,150,185,229,184,184,\r
-232,167,129,231,155,184,230,156,186,230,136,152,231,149,165,229,186,148,229,189,\r
-147,229,190,139,229,184,136,230,150,185,228,190,191,230,160,161,229,155,173,232,\r
-130,161,229,184,130,230,136,191,229,177,139,230,160,143,231,155,174,229,145,152,\r
-229,183,165,229,175,188,232,135,180,231,170,129,231,132,182,233,129,147,229,133,\r
-183,230,156,172,231,189,145,231,187,147,229,144,136,230,161,163,230,161,136,229,\r
-138,179,229,138,168,229,143,166,229,164,150,231,190,142,229,133,131,229,188,149,\r
-232,181,183,230,148,185,229,143,152,231,172,172,229,155,155,228,188,154,232,174,\r
-161,232,170,170,230,152,142,233,154,144,231,167,129,229,174,157,229,174,157,232,\r
-167,132,232,140,131,230,182,136,232,180,185,229,133,177,229,144,140,229,191,152,\r
-232,174,176,228,189,147,231,179,187,229,184,166,230,157,165,229,144,141,229,173,\r
-151,231,153,188,232,161,168,229,188,128,230,148,190,229,138,160,231,155,159,229,\r
-143,151,229,136,176,228,186,140,230,137,139,229,164,167,233,135,143,230,136,144,\r
-228,186,186,230,149,176,233,135,143,229,133,177,228,186,171,229,140,186,229,159,\r
-159,229,165,179,229,173,169,229,142,159,229,136,153,230,137,128,229,156,168,231,\r
-187,147,230,157,159,233,128,154,228,191,161,232,182,133,231,186,167,233,133,141,\r
-231,189,174,229,189,147,230,151,182,228,188,152,231,167,128,230,128,167,230,132,\r
-159,230,136,191,228,186,167,233,129,138,230,136,178,229,135,186,229,143,163,230,\r
-143,144,228,186,164,229,176,177,228,184,154,228,191,157,229,129,165,231,168,139,\r
-229,186,166,229,143,130,230,149,176,228,186,139,228,184,154,230,149,180,228,184,\r
-170,229,177,177,228,184,156,230,131,133,230,132,159,231,137,185,230,174,138,229,\r
-136,134,233,161,158,230,144,156,229,176,139,229,177,158,228,186,142,233,151,168,\r
-230,136,183,232,180,162,229,138,161,229,163,176,233,159,179,229,143,138,229,133,\r
-182,232,180,162,231,187,143,229,157,154,230,140,129,229,185,178,233,131,168,230,\r
-136,144,231,171,139,229,136,169,231,155,138,232,128,131,232,153,145,230,136,144,\r
-233,131,189,229,140,133,232,163,133,231,148,168,230,136,182,230,175,148,232,181,\r
-155,230,150,135,230,152,142,230,139,155,229,149,134,229,174,140,230,149,180,231,\r
-156,159,230,152,175,231,156,188,231,157,155,228,188,153,228,188,180,229,168,129,\r
-230,156,155,233,162,134,229,159,159,229,141,171,231,148,159,228,188,152,230,131,\r
-160,232,171,150,229,163,135,229,133,172,229,133,177,232,137,175,229,165,189,229,\r
-133,133,229,136,134,231,172,166,229,144,136,233,153,132,228,187,182,231,137,185,\r
-231,130,185,228,184,141,229,143,175,232,139,177,230,150,135,232,181,132,228,186,\r
-167,230,160,185,230,156,172,230,152,142,230,152,190,229,175,134,231,162,188,229,\r
-133,172,228,188,151,230,176,145,230,151,143,230,155,180,229,138,160,228,186,171,\r
-229,143,151,229,144,140,229,173,166,229,144,175,229,138,168,233,128,130,229,144,\r
-136,229,142,159,230,157,165,233,151,174,231,173,148,230,156,172,230,150,135,231,\r
-190,142,233,163,159,231,187,191,232,137,178,231,168,179,229,174,154,231,187,136,\r
-228,186,142,231,148,159,231,137,169,228,190,155,230,177,130,230,144,156,231,139,\r
-144,229,138,155,233,135,143,228,184,165,233,135,141,230,176,184,232,191,156,229,\r
-134,153,231,156,159,230,156,137,233,153,144,231,171,158,228,186,137,229,175,185,\r
-232,177,161,232,180,185,231,148,168,228,184,141,229,165,189,231,187,157,229,175,\r
-185,229,141,129,229,136,134,228,191,131,232,191,155,231,130,185,232,175,132,229,\r
-189,177,233,159,179,228,188,152,229,138,191,228,184,141,229,176,145,230,172,163,\r
-232,181,143,229,185,182,228,184,148,230,156,137,231,130,185,230,150,185,229,144,\r
-145,229,133,168,230,150,176,228,191,161,231,148,168,232,174,190,230,150,189,229,\r
-189,162,232,177,161,232,181,132,230,160,188,231,170,129,231,160,180,233,154,143,\r
-231,157,128,233,135,141,229,164,167,228,186,142,230,152,175,230,175,149,228,184,\r
-154,230,153,186,232,131,189,229,140,150,229,183,165,229,174,140,231,190,142,229,\r
-149,134,229,159,142,231,187,159,228,184,128,229,135,186,231,137,136,230,137,147,\r
-233,128,160,231,148,162,229,147,129,230,166,130,229,134,181,231,148,168,228,186,\r
-142,228,191,157,231,149,153,229,155,160,231,180,160,228,184,173,229,156,139,229,\r
-173,152,229,130,168,232,180,180,229,155,190,230,156,128,230,132,155,233,149,191,\r
-230,156,159,229,143,163,228,187,183,231,144,134,232,180,162,229,159,186,229,156,\r
-176,229,174,137,230,142,146,230,173,166,230,177,137,233,135,140,233,157,162,229,\r
-136,155,229,187,186,229,164,169,231,169,186,233,166,150,229,133,136,229,174,140,\r
-229,150,132,233,169,177,229,138,168,228,184,139,233,157,162,228,184,141,229,134,\r
-141,232,175,154,228,191,161,230,132,143,228,185,137,233,152,179,229,133,137,232,\r
-139,177,229,155,189,230,188,130,228,186,174,229,134,155,228,186,139,231,142,169,\r
-229,174,182,231,190,164,228,188,151,229,134,156,230,176,145,229,141,179,229,143,\r
-175,229,144,141,231,168,177,229,174,182,229,133,183,229,138,168,231,148,187,230,\r
-131,179,229,136,176,230,179,168,230,152,142,229,176,143,229,173,166,230,128,167,\r
-232,131,189,232,128,131,231,160,148,231,161,172,228,187,182,232,167,130,231,156,\r
-139,230,184,133,230,165,154,230,144,158,231,172,145,233,166,150,233,160,129,233,\r
-187,132,233,135,145,233,128,130,231,148,168,230,177,159,232,139,143,231,156,159,\r
-229,174,158,228,184,187,231,174,161,233,152,182,230,174,181,232,168,187,229,134,\r
-138,231,191,187,232,175,145,230,157,131,229,136,169,229,129,154,229,165,189,228,\r
-188,188,228,185,142,233,128,154,232,174,175,230,150,189,229,183,165,231,139,128,\r
-230,133,139,228,185,159,232,174,184,231,142,175,228,191,157,229,159,185,229,133,\r
-187,230,166,130,229,191,181,229,164,167,229,158,139,230,156,186,231,165,168,231,\r
-144,134,232,167,163,229,140,191,229,144,141,99,117,97,110,100,111,101,110,118,\r
-105,97,114,109,97,100,114,105,100,98,117,115,99,97,114,105,110,105,99,105,111,\r
-116,105,101,109,112,111,112,111,114,113,117,101,99,117,101,110,116,97,101,115,\r
-116,97,100,111,112,117,101,100,101,110,106,117,101,103,111,115,99,111,110,116,\r
-114,97,101,115,116,195,161,110,110,111,109,98,114,101,116,105,101,110,101,110,\r
-112,101,114,102,105,108,109,97,110,101,114,97,97,109,105,103,111,115,99,105,117,\r
-100,97,100,99,101,110,116,114,111,97,117,110,113,117,101,112,117,101,100,101,115\r
-,100,101,110,116,114,111,112,114,105,109,101,114,112,114,101,99,105,111,115,101,\r
-103,195,186,110,98,117,101,110,111,115,118,111,108,118,101,114,112,117,110,116,\r
-111,115,115,101,109,97,110,97,104,97,98,195,173,97,97,103,111,115,116,111,110,\r
-117,101,118,111,115,117,110,105,100,111,115,99,97,114,108,111,115,101,113,117,\r
-105,112,111,110,105,195,177,111,115,109,117,99,104,111,115,97,108,103,117,110,97\r
-,99,111,114,114,101,111,105,109,97,103,101,110,112,97,114,116,105,114,97,114,114\r
-,105,98,97,109,97,114,195,173,97,104,111,109,98,114,101,101,109,112,108,101,111,\r
-118,101,114,100,97,100,99,97,109,98,105,111,109,117,99,104,97,115,102,117,101,\r
-114,111,110,112,97,115,97,100,111,108,195,173,110,101,97,112,97,114,101,99,101,\r
-110,117,101,118,97,115,99,117,114,115,111,115,101,115,116,97,98,97,113,117,105,\r
-101,114,111,108,105,98,114,111,115,99,117,97,110,116,111,97,99,99,101,115,111,\r
-109,105,103,117,101,108,118,97,114,105,111,115,99,117,97,116,114,111,116,105,101\r
-,110,101,115,103,114,117,112,111,115,115,101,114,195,161,110,101,117,114,111,112\r
-,97,109,101,100,105,111,115,102,114,101,110,116,101,97,99,101,114,99,97,100,101,\r
-109,195,161,115,111,102,101,114,116,97,99,111,99,104,101,115,109,111,100,101,108\r
-,111,105,116,97,108,105,97,108,101,116,114,97,115,97,108,103,195,186,110,99,111,\r
-109,112,114,97,99,117,97,108,101,115,101,120,105,115,116,101,99,117,101,114,112,\r
-111,115,105,101,110,100,111,112,114,101,110,115,97,108,108,101,103,97,114,118,\r
-105,97,106,101,115,100,105,110,101,114,111,109,117,114,99,105,97,112,111,100,114\r
-,195,161,112,117,101,115,116,111,100,105,97,114,105,111,112,117,101,98,108,111,\r
-113,117,105,101,114,101,109,97,110,117,101,108,112,114,111,112,105,111,99,114,\r
-105,115,105,115,99,105,101,114,116,111,115,101,103,117,114,111,109,117,101,114,\r
-116,101,102,117,101,110,116,101,99,101,114,114,97,114,103,114,97,110,100,101,101\r
-,102,101,99,116,111,112,97,114,116,101,115,109,101,100,105,100,97,112,114,111,\r
-112,105,97,111,102,114,101,99,101,116,105,101,114,114,97,101,45,109,97,105,108,\r
-118,97,114,105,97,115,102,111,114,109,97,115,102,117,116,117,114,111,111,98,106,\r
-101,116,111,115,101,103,117,105,114,114,105,101,115,103,111,110,111,114,109,97,\r
-115,109,105,115,109,111,115,195,186,110,105,99,111,99,97,109,105,110,111,115,105\r
-,116,105,111,115,114,97,122,195,179,110,100,101,98,105,100,111,112,114,117,101,\r
-98,97,116,111,108,101,100,111,116,101,110,195,173,97,106,101,115,195,186,115,101\r
-,115,112,101,114,111,99,111,99,105,110,97,111,114,105,103,101,110,116,105,101,\r
-110,100,97,99,105,101,110,116,111,99,195,161,100,105,122,104,97,98,108,97,114,\r
-115,101,114,195,173,97,108,97,116,105,110,97,102,117,101,114,122,97,101,115,116,\r
-105,108,111,103,117,101,114,114,97,101,110,116,114,97,114,195,169,120,105,116,\r
-111,108,195,179,112,101,122,97,103,101,110,100,97,118,195,173,100,101,111,101,\r
-118,105,116,97,114,112,97,103,105,110,97,109,101,116,114,111,115,106,97,118,105,\r
-101,114,112,97,100,114,101,115,102,195,161,99,105,108,99,97,98,101,122,97,195,\r
-161,114,101,97,115,115,97,108,105,100,97,101,110,118,195,173,111,106,97,112,195,\r
-179,110,97,98,117,115,111,115,98,105,101,110,101,115,116,101,120,116,111,115,108\r
-,108,101,118,97,114,112,117,101,100,97,110,102,117,101,114,116,101,99,111,109,\r
-195,186,110,99,108,97,115,101,115,104,117,109,97,110,111,116,101,110,105,100,111\r
-,98,105,108,98,97,111,117,110,105,100,97,100,101,115,116,195,161,115,101,100,105\r
-,116,97,114,99,114,101,97,100,111,208,180,208,187,209,143,209,135,209,130,208,\r
-190,208,186,208,176,208,186,208,184,208,187,208,184,209,141,209,130,208,190,208,\r
-178,209,129,208,181,208,181,208,179,208,190,208,191,209,128,208,184,209,130,208,\r
-176,208,186,208,181,209,137,208,181,209,131,208,182,208,181,208,154,208,176,208,\r
-186,208,177,208,181,208,183,208,177,209,139,208,187,208,190,208,189,208,184,208,\r
-146,209,129,208,181,208,191,208,190,208,180,208,173,209,130,208,190,209,130,208,\r
-190,208,188,209,135,208,181,208,188,208,189,208,181,209,130,208,187,208,181,209,\r
-130,209,128,208,176,208,183,208,190,208,189,208,176,208,179,208,180,208,181,208,\r
-188,208,189,208,181,208,148,208,187,209,143,208,159,209,128,208,184,208,189,208,\r
-176,209,129,208,189,208,184,209,133,209,130,208,181,208,188,208,186,209,130,208,\r
-190,208,179,208,190,208,180,208,178,208,190,209,130,209,130,208,176,208,188,208,\r
-161,208,168,208,144,208,188,208,176,209,143,208,167,209,130,208,190,208,178,208,\r
-176,209,129,208,178,208,176,208,188,208,181,208,188,209,131,208,162,208,176,208,\r
-186,208,180,208,178,208,176,208,189,208,176,208,188,209,141,209,130,208,184,209,\r
-141,209,130,209,131,208,146,208,176,208,188,209,130,208,181,209,133,208,191,209,\r
-128,208,190,209,130,209,131,209,130,208,189,208,176,208,180,208,180,208,189,209,\r
-143,208,146,208,190,209,130,209,130,209,128,208,184,208,189,208,181,208,185,208,\r
-146,208,176,209,129,208,189,208,184,208,188,209,129,208,176,208,188,209,130,208,\r
-190,209,130,209,128,209,131,208,177,208,158,208,189,208,184,208,188,208,184,209,\r
-128,208,189,208,181,208,181,208,158,208,158,208,158,208,187,208,184,209,134,209,\r
-141,209,130,208,176,208,158,208,189,208,176,208,189,208,181,208,188,208,180,208,\r
-190,208,188,208,188,208,190,208,185,208,180,208,178,208,181,208,190,208,189,208,\r
-190,209,129,209,131,208,180,224,164,149,224,165,135,224,164,185,224,165,136,224,\r
-164,149,224,165,128,224,164,184,224,165,135,224,164,149,224,164,190,224,164,149,\r
-224,165,139,224,164,148,224,164,176,224,164,170,224,164,176,224,164,168,224,165,\r
-135,224,164,143,224,164,149,224,164,149,224,164,191,224,164,173,224,165,128,224,\r
-164,135,224,164,184,224,164,149,224,164,176,224,164,164,224,165,139,224,164,185,\r
-224,165,139,224,164,134,224,164,170,224,164,185,224,165,128,224,164,175,224,164,\r
-185,224,164,175,224,164,190,224,164,164,224,164,149,224,164,165,224,164,190,106,\r
-97,103,114,97,110,224,164,134,224,164,156,224,164,156,224,165,139,224,164,133,\r
-224,164,172,224,164,166,224,165,139,224,164,151,224,164,136,224,164,156,224,164,\r
-190,224,164,151,224,164,143,224,164,185,224,164,174,224,164,135,224,164,168,224,\r
-164,181,224,164,185,224,164,175,224,165,135,224,164,165,224,165,135,224,164,165,\r
-224,165,128,224,164,152,224,164,176,224,164,156,224,164,172,224,164,166,224,165,\r
-128,224,164,149,224,164,136,224,164,156,224,165,128,224,164,181,224,165,135,224,\r
-164,168,224,164,136,224,164,168,224,164,143,224,164,185,224,164,176,224,164,137,\r
-224,164,184,224,164,174,224,165,135,224,164,149,224,164,174,224,164,181,224,165,\r
-139,224,164,178,224,165,135,224,164,184,224,164,172,224,164,174,224,164,136,224,\r
-164,166,224,165,135,224,164,147,224,164,176,224,164,134,224,164,174,224,164,172,\r
-224,164,184,224,164,173,224,164,176,224,164,172,224,164,168,224,164,154,224,164,\r
-178,224,164,174,224,164,168,224,164,134,224,164,151,224,164,184,224,165,128,224,\r
-164,178,224,165,128,216,185,217,132,217,137,216,165,217,132,217,137,217,135,216,\r
-176,216,167,216,162,216,174,216,177,216,185,216,175,216,175,216,167,217,132,217,\r
-137,217,135,216,176,217,135,216,181,217,136,216,177,216,186,217,138,216,177,217,\r
-131,216,167,217,134,217,136,217,132,216,167,216,168,217,138,217,134,216,185,216,\r
-177,216,182,216,176,217,132,217,131,217,135,217,134,216,167,217,138,217,136,217,\r
-133,217,130,216,167,217,132,216,185,217,132,217,138,216,167,217,134,216,167,217,\r
-132,217,131,217,134,216,173,216,170,217,137,217,130,216,168,217,132,217,136,216,\r
-173,216,169,216,167,216,174,216,177,217,129,217,130,216,183,216,185,216,168,216,\r
-175,216,177,217,131,217,134,216,165,216,176,216,167,217,131,217,133,216,167,216,\r
-167,216,173,216,175,216,165,217,132,216,167,217,129,217,138,217,135,216,168,216,\r
-185,216,182,217,131,217,138,217,129,216,168,216,173,216,171,217,136,217,133,217,\r
-134,217,136,217,135,217,136,216,163,217,134,216,167,216,172,216,175,216,167,217,\r
-132,217,135,216,167,216,179,217,132,217,133,216,185,217,134,216,175,217,132,217,\r
-138,216,179,216,185,216,168,216,177,216,181,217,132,217,137,217,133,217,134,216,\r
-176,216,168,217,135,216,167,216,163,217,134,217,135,217,133,216,171,217,132,217,\r
-131,217,134,216,170,216,167,217,132,216,167,216,173,217,138,216,171,217,133,216,\r
-181,216,177,216,180,216,177,216,173,216,173,217,136,217,132,217,136,217,129,217,\r
-138,216,167,216,176,216,167,217,132,217,131,217,132,217,133,216,177,216,169,216,\r
-167,217,134,216,170,216,167,217,132,217,129,216,163,216,168,217,136,216,174,216,\r
-167,216,181,216,163,217,134,216,170,216,167,217,134,217,135,216,167,217,132,217,\r
-138,216,185,216,182,217,136,217,136,217,130,216,175,216,167,216,168,217,134,216,\r
-174,217,138,216,177,216,168,217,134,216,170,217,132,217,131,217,133,216,180,216,\r
-167,216,161,217,136,217,135,217,138,216,167,216,168,217,136,217,130,216,181,216,\r
-181,217,136,217,133,216,167,216,177,217,130,217,133,216,163,216,173,216,175,217,\r
-134,216,173,217,134,216,185,216,175,217,133,216,177,216,163,217,138,216,167,216,\r
-173,216,169,217,131,216,170,216,168,216,175,217,136,217,134,217,138,216,172,216,\r
-168,217,133,217,134,217,135,216,170,216,173,216,170,216,172,217,135,216,169,216,\r
-179,217,134,216,169,217,138,216,170,217,133,217,131,216,177,216,169,216,186,216,\r
-178,216,169,217,134,217,129,216,179,216,168,217,138,216,170,217,132,217,132,217,\r
-135,217,132,217,134,216,167,216,170,217,132,217,131,217,130,217,132,216,168,217,\r
-132,217,133,216,167,216,185,217,134,217,135,216,163,217,136,217,132,216,180,217,\r
-138,216,161,217,134,217,136,216,177,216,163,217,133,216,167,217,129,217,138,217,\r
-131,216,168,217,131,217,132,216,176,216,167,216,170,216,177,216,170,216,168,216,\r
-168,216,163,217,134,217,135,217,133,216,179,216,167,217,134,217,131,216,168,217,\r
-138,216,185,217,129,217,130,216,175,216,173,216,179,217,134,217,132,217,135,217,\r
-133,216,180,216,185,216,177,216,163,217,135,217,132,216,180,217,135,216,177,217,\r
-130,216,183,216,177,216,183,217,132,216,168,112,114,111,102,105,108,101,115,101,\r
-114,118,105,99,101,100,101,102,97,117,108,116,104,105,109,115,101,108,102,100,\r
-101,116,97,105,108,115,99,111,110,116,101,110,116,115,117,112,112,111,114,116,\r
-115,116,97,114,116,101,100,109,101,115,115,97,103,101,115,117,99,99,101,115,115,\r
-102,97,115,104,105,111,110,60,116,105,116,108,101,62,99,111,117,110,116,114,121,\r
-97,99,99,111,117,110,116,99,114,101,97,116,101,100,115,116,111,114,105,101,115,\r
-114,101,115,117,108,116,115,114,117,110,110,105,110,103,112,114,111,99,101,115,\r
-115,119,114,105,116,105,110,103,111,98,106,101,99,116,115,118,105,115,105,98,108\r
-,101,119,101,108,99,111,109,101,97,114,116,105,99,108,101,117,110,107,110,111,\r
-119,110,110,101,116,119,111,114,107,99,111,109,112,97,110,121,100,121,110,97,109\r
-,105,99,98,114,111,119,115,101,114,112,114,105,118,97,99,121,112,114,111,98,108,\r
-101,109,83,101,114,118,105,99,101,114,101,115,112,101,99,116,100,105,115,112,108\r
-,97,121,114,101,113,117,101,115,116,114,101,115,101,114,118,101,119,101,98,115,\r
-105,116,101,104,105,115,116,111,114,121,102,114,105,101,110,100,115,111,112,116,\r
-105,111,110,115,119,111,114,107,105,110,103,118,101,114,115,105,111,110,109,105,\r
-108,108,105,111,110,99,104,97,110,110,101,108,119,105,110,100,111,119,46,97,100,\r
-100,114,101,115,115,118,105,115,105,116,101,100,119,101,97,116,104,101,114,99,\r
-111,114,114,101,99,116,112,114,111,100,117,99,116,101,100,105,114,101,99,116,102\r
-,111,114,119,97,114,100,121,111,117,32,99,97,110,114,101,109,111,118,101,100,115\r
-,117,98,106,101,99,116,99,111,110,116,114,111,108,97,114,99,104,105,118,101,99,\r
-117,114,114,101,110,116,114,101,97,100,105,110,103,108,105,98,114,97,114,121,108\r
-,105,109,105,116,101,100,109,97,110,97,103,101,114,102,117,114,116,104,101,114,\r
-115,117,109,109,97,114,121,109,97,99,104,105,110,101,109,105,110,117,116,101,115\r
-,112,114,105,118,97,116,101,99,111,110,116,101,120,116,112,114,111,103,114,97,\r
-109,115,111,99,105,101,116,121,110,117,109,98,101,114,115,119,114,105,116,116,\r
-101,110,101,110,97,98,108,101,100,116,114,105,103,103,101,114,115,111,117,114,99\r
-,101,115,108,111,97,100,105,110,103,101,108,101,109,101,110,116,112,97,114,116,\r
-110,101,114,102,105,110,97,108,108,121,112,101,114,102,101,99,116,109,101,97,110\r
-,105,110,103,115,121,115,116,101,109,115,107,101,101,112,105,110,103,99,117,108,\r
-116,117,114,101,38,113,117,111,116,59,44,106,111,117,114,110,97,108,112,114,111,\r
-106,101,99,116,115,117,114,102,97,99,101,115,38,113,117,111,116,59,101,120,112,\r
-105,114,101,115,114,101,118,105,101,119,115,98,97,108,97,110,99,101,69,110,103,\r
-108,105,115,104,67,111,110,116,101,110,116,116,104,114,111,117,103,104,80,108,\r
-101,97,115,101,32,111,112,105,110,105,111,110,99,111,110,116,97,99,116,97,118,\r
-101,114,97,103,101,112,114,105,109,97,114,121,118,105,108,108,97,103,101,83,112,\r
-97,110,105,115,104,103,97,108,108,101,114,121,100,101,99,108,105,110,101,109,101\r
-,101,116,105,110,103,109,105,115,115,105,111,110,112,111,112,117,108,97,114,113,\r
-117,97,108,105,116,121,109,101,97,115,117,114,101,103,101,110,101,114,97,108,115\r
-,112,101,99,105,101,115,115,101,115,115,105,111,110,115,101,99,116,105,111,110,\r
-119,114,105,116,101,114,115,99,111,117,110,116,101,114,105,110,105,116,105,97,\r
-108,114,101,112,111,114,116,115,102,105,103,117,114,101,115,109,101,109,98,101,\r
-114,115,104,111,108,100,105,110,103,100,105,115,112,117,116,101,101,97,114,108,\r
-105,101,114,101,120,112,114,101,115,115,100,105,103,105,116,97,108,112,105,99,\r
-116,117,114,101,65,110,111,116,104,101,114,109,97,114,114,105,101,100,116,114,97\r
-,102,102,105,99,108,101,97,100,105,110,103,99,104,97,110,103,101,100,99,101,110,\r
-116,114,97,108,118,105,99,116,111,114,121,105,109,97,103,101,115,47,114,101,97,\r
-115,111,110,115,115,116,117,100,105,101,115,102,101,97,116,117,114,101,108,105,\r
-115,116,105,110,103,109,117,115,116,32,98,101,115,99,104,111,111,108,115,86,101,\r
-114,115,105,111,110,117,115,117,97,108,108,121,101,112,105,115,111,100,101,112,\r
-108,97,121,105,110,103,103,114,111,119,105,110,103,111,98,118,105,111,117,115,\r
-111,118,101,114,108,97,121,112,114,101,115,101,110,116,97,99,116,105,111,110,115\r
-,60,47,117,108,62,13,10,119,114,97,112,112,101,114,97,108,114,101,97,100,121,99,\r
-101,114,116,97,105,110,114,101,97,108,105,116,121,115,116,111,114,97,103,101,97,\r
-110,111,116,104,101,114,100,101,115,107,116,111,112,111,102,102,101,114,101,100,\r
-112,97,116,116,101,114,110,117,110,117,115,117,97,108,68,105,103,105,116,97,108,\r
-99,97,112,105,116,97,108,87,101,98,115,105,116,101,102,97,105,108,117,114,101,99\r
-,111,110,110,101,99,116,114,101,100,117,99,101,100,65,110,100,114,111,105,100,\r
-100,101,99,97,100,101,115,114,101,103,117,108,97,114,32,38,97,109,112,59,32,97,\r
-110,105,109,97,108,115,114,101,108,101,97,115,101,65,117,116,111,109,97,116,103,\r
-101,116,116,105,110,103,109,101,116,104,111,100,115,110,111,116,104,105,110,103,\r
-80,111,112,117,108,97,114,99,97,112,116,105,111,110,108,101,116,116,101,114,115,\r
-99,97,112,116,117,114,101,115,99,105,101,110,99,101,108,105,99,101,110,115,101,\r
-99,104,97,110,103,101,115,69,110,103,108,97,110,100,61,49,38,97,109,112,59,72,\r
-105,115,116,111,114,121,32,61,32,110,101,119,32,67,101,110,116,114,97,108,117,\r
-112,100,97,116,101,100,83,112,101,99,105,97,108,78,101,116,119,111,114,107,114,\r
-101,113,117,105,114,101,99,111,109,109,101,110,116,119,97,114,110,105,110,103,67\r
-,111,108,108,101,103,101,116,111,111,108,98,97,114,114,101,109,97,105,110,115,98\r
-,101,99,97,117,115,101,101,108,101,99,116,101,100,68,101,117,116,115,99,104,102,\r
-105,110,97,110,99,101,119,111,114,107,101,114,115,113,117,105,99,107,108,121,98,\r
-101,116,119,101,101,110,101,120,97,99,116,108,121,115,101,116,116,105,110,103,\r
-100,105,115,101,97,115,101,83,111,99,105,101,116,121,119,101,97,112,111,110,115,\r
-101,120,104,105,98,105,116,38,108,116,59,33,45,45,67,111,110,116,114,111,108,99,\r
-108,97,115,115,101,115,99,111,118,101,114,101,100,111,117,116,108,105,110,101,97\r
-,116,116,97,99,107,115,100,101,118,105,99,101,115,40,119,105,110,100,111,119,112\r
-,117,114,112,111,115,101,116,105,116,108,101,61,34,77,111,98,105,108,101,32,107,\r
-105,108,108,105,110,103,115,104,111,119,105,110,103,73,116,97,108,105,97,110,100\r
-,114,111,112,112,101,100,104,101,97,118,105,108,121,101,102,102,101,99,116,115,\r
-45,49,39,93,41,59,10,99,111,110,102,105,114,109,67,117,114,114,101,110,116,97,\r
-100,118,97,110,99,101,115,104,97,114,105,110,103,111,112,101,110,105,110,103,100\r
-,114,97,119,105,110,103,98,105,108,108,105,111,110,111,114,100,101,114,101,100,\r
-71,101,114,109,97,110,121,114,101,108,97,116,101,100,60,47,102,111,114,109,62,\r
-105,110,99,108,117,100,101,119,104,101,116,104,101,114,100,101,102,105,110,101,\r
-100,83,99,105,101,110,99,101,99,97,116,97,108,111,103,65,114,116,105,99,108,101,\r
-98,117,116,116,111,110,115,108,97,114,103,101,115,116,117,110,105,102,111,114,\r
-109,106,111,117,114,110,101,121,115,105,100,101,98,97,114,67,104,105,99,97,103,\r
-111,104,111,108,105,100,97,121,71,101,110,101,114,97,108,112,97,115,115,97,103,\r
-101,44,38,113,117,111,116,59,97,110,105,109,97,116,101,102,101,101,108,105,110,\r
-103,97,114,114,105,118,101,100,112,97,115,115,105,110,103,110,97,116,117,114,97,\r
-108,114,111,117,103,104,108,121,46,10,10,84,104,101,32,98,117,116,32,110,111,116\r
-,100,101,110,115,105,116,121,66,114,105,116,97,105,110,67,104,105,110,101,115,\r
-101,108,97,99,107,32,111,102,116,114,105,98,117,116,101,73,114,101,108,97,110,\r
-100,34,32,100,97,116,97,45,102,97,99,116,111,114,115,114,101,99,101,105,118,101,\r
-116,104,97,116,32,105,115,76,105,98,114,97,114,121,104,117,115,98,97,110,100,105\r
-,110,32,102,97,99,116,97,102,102,97,105,114,115,67,104,97,114,108,101,115,114,97\r
-,100,105,99,97,108,98,114,111,117,103,104,116,102,105,110,100,105,110,103,108,97\r
-,110,100,105,110,103,58,108,97,110,103,61,34,114,101,116,117,114,110,32,108,101,\r
-97,100,101,114,115,112,108,97,110,110,101,100,112,114,101,109,105,117,109,112,97\r
-,99,107,97,103,101,65,109,101,114,105,99,97,69,100,105,116,105,111,110,93,38,113\r
-,117,111,116,59,77,101,115,115,97,103,101,110,101,101,100,32,116,111,118,97,108,\r
-117,101,61,34,99,111,109,112,108,101,120,108,111,111,107,105,110,103,115,116,97,\r
-116,105,111,110,98,101,108,105,101,118,101,115,109,97,108,108,101,114,45,109,111\r
-,98,105,108,101,114,101,99,111,114,100,115,119,97,110,116,32,116,111,107,105,110\r
-,100,32,111,102,70,105,114,101,102,111,120,121,111,117,32,97,114,101,115,105,109\r
-,105,108,97,114,115,116,117,100,105,101,100,109,97,120,105,109,117,109,104,101,\r
-97,100,105,110,103,114,97,112,105,100,108,121,99,108,105,109,97,116,101,107,105,\r
-110,103,100,111,109,101,109,101,114,103,101,100,97,109,111,117,110,116,115,102,\r
-111,117,110,100,101,100,112,105,111,110,101,101,114,102,111,114,109,117,108,97,\r
-100,121,110,97,115,116,121,104,111,119,32,116,111,32,83,117,112,112,111,114,116,\r
-114,101,118,101,110,117,101,101,99,111,110,111,109,121,82,101,115,117,108,116,\r
-115,98,114,111,116,104,101,114,115,111,108,100,105,101,114,108,97,114,103,101,\r
-108,121,99,97,108,108,105,110,103,46,38,113,117,111,116,59,65,99,99,111,117,110,\r
-116,69,100,119,97,114,100,32,115,101,103,109,101,110,116,82,111,98,101,114,116,\r
-32,101,102,102,111,114,116,115,80,97,99,105,102,105,99,108,101,97,114,110,101,\r
-100,117,112,32,119,105,116,104,104,101,105,103,104,116,58,119,101,32,104,97,118,\r
-101,65,110,103,101,108,101,115,110,97,116,105,111,110,115,95,115,101,97,114,99,\r
-104,97,112,112,108,105,101,100,97,99,113,117,105,114,101,109,97,115,115,105,118,\r
-101,103,114,97,110,116,101,100,58,32,102,97,108,115,101,116,114,101,97,116,101,\r
-100,98,105,103,103,101,115,116,98,101,110,101,102,105,116,100,114,105,118,105,\r
-110,103,83,116,117,100,105,101,115,109,105,110,105,109,117,109,112,101,114,104,\r
-97,112,115,109,111,114,110,105,110,103,115,101,108,108,105,110,103,105,115,32,\r
-117,115,101,100,114,101,118,101,114,115,101,118,97,114,105,97,110,116,32,114,111\r
-,108,101,61,34,109,105,115,115,105,110,103,97,99,104,105,101,118,101,112,114,111\r
-,109,111,116,101,115,116,117,100,101,110,116,115,111,109,101,111,110,101,101,120\r
-,116,114,101,109,101,114,101,115,116,111,114,101,98,111,116,116,111,109,58,101,\r
-118,111,108,118,101,100,97,108,108,32,116,104,101,115,105,116,101,109,97,112,101\r
-,110,103,108,105,115,104,119,97,121,32,116,111,32,32,65,117,103,117,115,116,115,\r
-121,109,98,111,108,115,67,111,109,112,97,110,121,109,97,116,116,101,114,115,109,\r
-117,115,105,99,97,108,97,103,97,105,110,115,116,115,101,114,118,105,110,103,125,\r
-41,40,41,59,13,10,112,97,121,109,101,110,116,116,114,111,117,98,108,101,99,111,\r
-110,99,101,112,116,99,111,109,112,97,114,101,112,97,114,101,110,116,115,112,108,\r
-97,121,101,114,115,114,101,103,105,111,110,115,109,111,110,105,116,111,114,32,39\r
-,39,84,104,101,32,119,105,110,110,105,110,103,101,120,112,108,111,114,101,97,100\r
-,97,112,116,101,100,71,97,108,108,101,114,121,112,114,111,100,117,99,101,97,98,\r
-105,108,105,116,121,101,110,104,97,110,99,101,99,97,114,101,101,114,115,41,46,32\r
-,84,104,101,32,99,111,108,108,101,99,116,83,101,97,114,99,104,32,97,110,99,105,\r
-101,110,116,101,120,105,115,116,101,100,102,111,111,116,101,114,32,104,97,110,\r
-100,108,101,114,112,114,105,110,116,101,100,99,111,110,115,111,108,101,69,97,115\r
-,116,101,114,110,101,120,112,111,114,116,115,119,105,110,100,111,119,115,67,104,\r
-97,110,110,101,108,105,108,108,101,103,97,108,110,101,117,116,114,97,108,115,117\r
-,103,103,101,115,116,95,104,101,97,100,101,114,115,105,103,110,105,110,103,46,\r
-104,116,109,108,34,62,115,101,116,116,108,101,100,119,101,115,116,101,114,110,99\r
-,97,117,115,105,110,103,45,119,101,98,107,105,116,99,108,97,105,109,101,100,74,\r
-117,115,116,105,99,101,99,104,97,112,116,101,114,118,105,99,116,105,109,115,84,\r
-104,111,109,97,115,32,109,111,122,105,108,108,97,112,114,111,109,105,115,101,112\r
-,97,114,116,105,101,115,101,100,105,116,105,111,110,111,117,116,115,105,100,101,\r
-58,102,97,108,115,101,44,104,117,110,100,114,101,100,79,108,121,109,112,105,99,\r
-95,98,117,116,116,111,110,97,117,116,104,111,114,115,114,101,97,99,104,101,100,\r
-99,104,114,111,110,105,99,100,101,109,97,110,100,115,115,101,99,111,110,100,115,\r
-112,114,111,116,101,99,116,97,100,111,112,116,101,100,112,114,101,112,97,114,101\r
-,110,101,105,116,104,101,114,103,114,101,97,116,108,121,103,114,101,97,116,101,\r
-114,111,118,101,114,97,108,108,105,109,112,114,111,118,101,99,111,109,109,97,110\r
-,100,115,112,101,99,105,97,108,115,101,97,114,99,104,46,119,111,114,115,104,105,\r
-112,102,117,110,100,105,110,103,116,104,111,117,103,104,116,104,105,103,104,101,\r
-115,116,105,110,115,116,101,97,100,117,116,105,108,105,116,121,113,117,97,114,\r
-116,101,114,67,117,108,116,117,114,101,116,101,115,116,105,110,103,99,108,101,97\r
-,114,108,121,101,120,112,111,115,101,100,66,114,111,119,115,101,114,108,105,98,\r
-101,114,97,108,125,32,99,97,116,99,104,80,114,111,106,101,99,116,101,120,97,109,\r
-112,108,101,104,105,100,101,40,41,59,70,108,111,114,105,100,97,97,110,115,119,\r
-101,114,115,97,108,108,111,119,101,100,69,109,112,101,114,111,114,100,101,102,\r
-101,110,115,101,115,101,114,105,111,117,115,102,114,101,101,100,111,109,83,101,\r
-118,101,114,97,108,45,98,117,116,116,111,110,70,117,114,116,104,101,114,111,117,\r
-116,32,111,102,32,33,61,32,110,117,108,108,116,114,97,105,110,101,100,68,101,110\r
-,109,97,114,107,118,111,105,100,40,48,41,47,97,108,108,46,106,115,112,114,101,\r
-118,101,110,116,82,101,113,117,101,115,116,83,116,101,112,104,101,110,10,10,87,\r
-104,101,110,32,111,98,115,101,114,118,101,60,47,104,50,62,13,10,77,111,100,101,\r
-114,110,32,112,114,111,118,105,100,101,34,32,97,108,116,61,34,98,111,114,100,101\r
-,114,115,46,10,10,70,111,114,32,10,10,77,97,110,121,32,97,114,116,105,115,116,\r
-115,112,111,119,101,114,101,100,112,101,114,102,111,114,109,102,105,99,116,105,\r
-111,110,116,121,112,101,32,111,102,109,101,100,105,99,97,108,116,105,99,107,101,\r
-116,115,111,112,112,111,115,101,100,67,111,117,110,99,105,108,119,105,116,110,\r
-101,115,115,106,117,115,116,105,99,101,71,101,111,114,103,101,32,66,101,108,103,\r
-105,117,109,46,46,46,60,47,97,62,116,119,105,116,116,101,114,110,111,116,97,98,\r
-108,121,119,97,105,116,105,110,103,119,97,114,102,97,114,101,32,79,116,104,101,\r
-114,32,114,97,110,107,105,110,103,112,104,114,97,115,101,115,109,101,110,116,105\r
-,111,110,115,117,114,118,105,118,101,115,99,104,111,108,97,114,60,47,112,62,13,\r
-10,32,67,111,117,110,116,114,121,105,103,110,111,114,101,100,108,111,115,115,32,\r
-111,102,106,117,115,116,32,97,115,71,101,111,114,103,105,97,115,116,114,97,110,\r
-103,101,60,104,101,97,100,62,60,115,116,111,112,112,101,100,49,39,93,41,59,13,10\r
-,105,115,108,97,110,100,115,110,111,116,97,98,108,101,98,111,114,100,101,114,58,\r
-108,105,115,116,32,111,102,99,97,114,114,105,101,100,49,48,48,44,48,48,48,60,47,\r
-104,51,62,10,32,115,101,118,101,114,97,108,98,101,99,111,109,101,115,115,101,108\r
-,101,99,116,32,119,101,100,100,105,110,103,48,48,46,104,116,109,108,109,111,110,\r
-97,114,99,104,111,102,102,32,116,104,101,116,101,97,99,104,101,114,104,105,103,\r
-104,108,121,32,98,105,111,108,111,103,121,108,105,102,101,32,111,102,111,114,32,\r
-101,118,101,110,114,105,115,101,32,111,102,38,114,97,113,117,111,59,112,108,117,\r
-115,111,110,101,104,117,110,116,105,110,103,40,116,104,111,117,103,104,68,111,\r
-117,103,108,97,115,106,111,105,110,105,110,103,99,105,114,99,108,101,115,70,111,\r
-114,32,116,104,101,65,110,99,105,101,110,116,86,105,101,116,110,97,109,118,101,\r
-104,105,99,108,101,115,117,99,104,32,97,115,99,114,121,115,116,97,108,118,97,108\r
-,117,101,32,61,87,105,110,100,111,119,115,101,110,106,111,121,101,100,97,32,115,\r
-109,97,108,108,97,115,115,117,109,101,100,60,97,32,105,100,61,34,102,111,114,101\r
-,105,103,110,32,65,108,108,32,114,105,104,111,119,32,116,104,101,68,105,115,112,\r
-108,97,121,114,101,116,105,114,101,100,104,111,119,101,118,101,114,104,105,100,\r
-100,101,110,59,98,97,116,116,108,101,115,115,101,101,107,105,110,103,99,97,98,\r
-105,110,101,116,119,97,115,32,110,111,116,108,111,111,107,32,97,116,99,111,110,\r
-100,117,99,116,103,101,116,32,116,104,101,74,97,110,117,97,114,121,104,97,112,\r
-112,101,110,115,116,117,114,110,105,110,103,97,58,104,111,118,101,114,79,110,108\r
-,105,110,101,32,70,114,101,110,99,104,32,108,97,99,107,105,110,103,116,121,112,\r
-105,99,97,108,101,120,116,114,97,99,116,101,110,101,109,105,101,115,101,118,101,\r
-110,32,105,102,103,101,110,101,114,97,116,100,101,99,105,100,101,100,97,114,101,\r
-32,110,111,116,47,115,101,97,114,99,104,98,101,108,105,101,102,115,45,105,109,97\r
-,103,101,58,108,111,99,97,116,101,100,115,116,97,116,105,99,46,108,111,103,105,\r
-110,34,62,99,111,110,118,101,114,116,118,105,111,108,101,110,116,101,110,116,101\r
-,114,101,100,102,105,114,115,116,34,62,99,105,114,99,117,105,116,70,105,110,108,\r
-97,110,100,99,104,101,109,105,115,116,115,104,101,32,119,97,115,49,48,112,120,59\r
-,34,62,97,115,32,115,117,99,104,100,105,118,105,100,101,100,60,47,115,112,97,110\r
-,62,119,105,108,108,32,98,101,108,105,110,101,32,111,102,97,32,103,114,101,97,\r
-116,109,121,115,116,101,114,121,47,105,110,100,101,120,46,102,97,108,108,105,110\r
-,103,100,117,101,32,116,111,32,114,97,105,108,119,97,121,99,111,108,108,101,103,\r
-101,109,111,110,115,116,101,114,100,101,115,99,101,110,116,105,116,32,119,105,\r
-116,104,110,117,99,108,101,97,114,74,101,119,105,115,104,32,112,114,111,116,101,\r
-115,116,66,114,105,116,105,115,104,102,108,111,119,101,114,115,112,114,101,100,\r
-105,99,116,114,101,102,111,114,109,115,98,117,116,116,111,110,32,119,104,111,32,\r
-119,97,115,108,101,99,116,117,114,101,105,110,115,116,97,110,116,115,117,105,99,\r
-105,100,101,103,101,110,101,114,105,99,112,101,114,105,111,100,115,109,97,114,\r
-107,101,116,115,83,111,99,105,97,108,32,102,105,115,104,105,110,103,99,111,109,\r
-98,105,110,101,103,114,97,112,104,105,99,119,105,110,110,101,114,115,60,98,114,\r
-32,47,62,60,98,121,32,116,104,101,32,78,97,116,117,114,97,108,80,114,105,118,97,\r
-99,121,99,111,111,107,105,101,115,111,117,116,99,111,109,101,114,101,115,111,108\r
-,118,101,83,119,101,100,105,115,104,98,114,105,101,102,108,121,80,101,114,115,\r
-105,97,110,115,111,32,109,117,99,104,67,101,110,116,117,114,121,100,101,112,105,\r
-99,116,115,99,111,108,117,109,110,115,104,111,117,115,105,110,103,115,99,114,105\r
-,112,116,115,110,101,120,116,32,116,111,98,101,97,114,105,110,103,109,97,112,112\r
-,105,110,103,114,101,118,105,115,101,100,106,81,117,101,114,121,40,45,119,105,\r
-100,116,104,58,116,105,116,108,101,34,62,116,111,111,108,116,105,112,83,101,99,\r
-116,105,111,110,100,101,115,105,103,110,115,84,117,114,107,105,115,104,121,111,\r
-117,110,103,101,114,46,109,97,116,99,104,40,125,41,40,41,59,10,10,98,117,114,110\r
-,105,110,103,111,112,101,114,97,116,101,100,101,103,114,101,101,115,115,111,117,\r
-114,99,101,61,82,105,99,104,97,114,100,99,108,111,115,101,108,121,112,108,97,115\r
-,116,105,99,101,110,116,114,105,101,115,60,47,116,114,62,13,10,99,111,108,111,\r
-114,58,35,117,108,32,105,100,61,34,112,111,115,115,101,115,115,114,111,108,108,\r
-105,110,103,112,104,121,115,105,99,115,102,97,105,108,105,110,103,101,120,101,99\r
-,117,116,101,99,111,110,116,101,115,116,108,105,110,107,32,116,111,68,101,102,97\r
-,117,108,116,60,98,114,32,47,62,10,58,32,116,114,117,101,44,99,104,97,114,116,\r
-101,114,116,111,117,114,105,115,109,99,108,97,115,115,105,99,112,114,111,99,101,\r
-101,100,101,120,112,108,97,105,110,60,47,104,49,62,13,10,111,110,108,105,110,101\r
-,46,63,120,109,108,32,118,101,104,101,108,112,105,110,103,100,105,97,109,111,110\r
-,100,117,115,101,32,116,104,101,97,105,114,108,105,110,101,101,110,100,32,45,45,\r
-62,41,46,97,116,116,114,40,114,101,97,100,101,114,115,104,111,115,116,105,110,\r
-103,35,102,102,102,102,102,102,114,101,97,108,105,122,101,86,105,110,99,101,110,\r
-116,115,105,103,110,97,108,115,32,115,114,99,61,34,47,80,114,111,100,117,99,116,\r
-100,101,115,112,105,116,101,100,105,118,101,114,115,101,116,101,108,108,105,110,\r
-103,80,117,98,108,105,99,32,104,101,108,100,32,105,110,74,111,115,101,112,104,32\r
-,116,104,101,97,116,114,101,97,102,102,101,99,116,115,60,115,116,121,108,101,62,\r
-97,32,108,97,114,103,101,100,111,101,115,110,39,116,108,97,116,101,114,44,32,69,\r
-108,101,109,101,110,116,102,97,118,105,99,111,110,99,114,101,97,116,111,114,72,\r
-117,110,103,97,114,121,65,105,114,112,111,114,116,115,101,101,32,116,104,101,115\r
-,111,32,116,104,97,116,77,105,99,104,97,101,108,83,121,115,116,101,109,115,80,\r
-114,111,103,114,97,109,115,44,32,97,110,100,32,32,119,105,100,116,104,61,101,38,\r
-113,117,111,116,59,116,114,97,100,105,110,103,108,101,102,116,34,62,10,112,101,\r
-114,115,111,110,115,71,111,108,100,101,110,32,65,102,102,97,105,114,115,103,114,\r
-97,109,109,97,114,102,111,114,109,105,110,103,100,101,115,116,114,111,121,105,\r
-100,101,97,32,111,102,99,97,115,101,32,111,102,111,108,100,101,115,116,32,116,\r
-104,105,115,32,105,115,46,115,114,99,32,61,32,99,97,114,116,111,111,110,114,101,\r
-103,105,115,116,114,67,111,109,109,111,110,115,77,117,115,108,105,109,115,87,104\r
-,97,116,32,105,115,105,110,32,109,97,110,121,109,97,114,107,105,110,103,114,101,\r
-118,101,97,108,115,73,110,100,101,101,100,44,101,113,117,97,108,108,121,47,115,\r
-104,111,119,95,97,111,117,116,100,111,111,114,101,115,99,97,112,101,40,65,117,\r
-115,116,114,105,97,103,101,110,101,116,105,99,115,121,115,116,101,109,44,73,110,\r
-32,116,104,101,32,115,105,116,116,105,110,103,72,101,32,97,108,115,111,73,115,\r
-108,97,110,100,115,65,99,97,100,101,109,121,10,9,9,60,33,45,45,68,97,110,105,101\r
-,108,32,98,105,110,100,105,110,103,98,108,111,99,107,34,62,105,109,112,111,115,\r
-101,100,117,116,105,108,105,122,101,65,98,114,97,104,97,109,40,101,120,99,101,\r
-112,116,123,119,105,100,116,104,58,112,117,116,116,105,110,103,41,46,104,116,109\r
-,108,40,124,124,32,91,93,59,10,68,65,84,65,91,32,42,107,105,116,99,104,101,110,\r
-109,111,117,110,116,101,100,97,99,116,117,97,108,32,100,105,97,108,101,99,116,\r
-109,97,105,110,108,121,32,95,98,108,97,110,107,39,105,110,115,116,97,108,108,101\r
-,120,112,101,114,116,115,105,102,40,116,121,112,101,73,116,32,97,108,115,111,38,\r
-99,111,112,121,59,32,34,62,84,101,114,109,115,98,111,114,110,32,105,110,79,112,\r
-116,105,111,110,115,101,97,115,116,101,114,110,116,97,108,107,105,110,103,99,111\r
-,110,99,101,114,110,103,97,105,110,101,100,32,111,110,103,111,105,110,103,106,\r
-117,115,116,105,102,121,99,114,105,116,105,99,115,102,97,99,116,111,114,121,105,\r
-116,115,32,111,119,110,97,115,115,97,117,108,116,105,110,118,105,116,101,100,108\r
-,97,115,116,105,110,103,104,105,115,32,111,119,110,104,114,101,102,61,34,47,34,\r
-32,114,101,108,61,34,100,101,118,101,108,111,112,99,111,110,99,101,114,116,100,\r
-105,97,103,114,97,109,100,111,108,108,97,114,115,99,108,117,115,116,101,114,112,\r
-104,112,63,105,100,61,97,108,99,111,104,111,108,41,59,125,41,40,41,59,117,115,\r
-105,110,103,32,97,62,60,115,112,97,110,62,118,101,115,115,101,108,115,114,101,\r
-118,105,118,97,108,65,100,100,114,101,115,115,97,109,97,116,101,117,114,97,110,\r
-100,114,111,105,100,97,108,108,101,103,101,100,105,108,108,110,101,115,115,119,\r
-97,108,107,105,110,103,99,101,110,116,101,114,115,113,117,97,108,105,102,121,109\r
-,97,116,99,104,101,115,117,110,105,102,105,101,100,101,120,116,105,110,99,116,68\r
-,101,102,101,110,115,101,100,105,101,100,32,105,110,10,9,60,33,45,45,32,99,117,\r
-115,116,111,109,115,108,105,110,107,105,110,103,76,105,116,116,108,101,32,66,111\r
-,111,107,32,111,102,101,118,101,110,105,110,103,109,105,110,46,106,115,63,97,114\r
-,101,32,116,104,101,107,111,110,116,97,107,116,116,111,100,97,121,39,115,46,104,\r
-116,109,108,34,32,116,97,114,103,101,116,61,119,101,97,114,105,110,103,65,108,\r
-108,32,82,105,103,59,10,125,41,40,41,59,114,97,105,115,105,110,103,32,65,108,115\r
-,111,44,32,99,114,117,99,105,97,108,97,98,111,117,116,34,62,100,101,99,108,97,\r
-114,101,45,45,62,10,60,115,99,102,105,114,101,102,111,120,97,115,32,109,117,99,\r
-104,97,112,112,108,105,101,115,105,110,100,101,120,44,32,115,44,32,98,117,116,32\r
-,116,121,112,101,32,61,32,10,13,10,60,33,45,45,116,111,119,97,114,100,115,82,101\r
-,99,111,114,100,115,80,114,105,118,97,116,101,70,111,114,101,105,103,110,80,114,\r
-101,109,105,101,114,99,104,111,105,99,101,115,86,105,114,116,117,97,108,114,101,\r
-116,117,114,110,115,67,111,109,109,101,110,116,80,111,119,101,114,101,100,105,\r
-110,108,105,110,101,59,112,111,118,101,114,116,121,99,104,97,109,98,101,114,76,\r
-105,118,105,110,103,32,118,111,108,117,109,101,115,65,110,116,104,111,110,121,\r
-108,111,103,105,110,34,32,82,101,108,97,116,101,100,69,99,111,110,111,109,121,\r
-114,101,97,99,104,101,115,99,117,116,116,105,110,103,103,114,97,118,105,116,121,\r
-108,105,102,101,32,105,110,67,104,97,112,116,101,114,45,115,104,97,100,111,119,\r
-78,111,116,97,98,108,101,60,47,116,100,62,13,10,32,114,101,116,117,114,110,115,\r
-116,97,100,105,117,109,119,105,100,103,101,116,115,118,97,114,121,105,110,103,\r
-116,114,97,118,101,108,115,104,101,108,100,32,98,121,119,104,111,32,97,114,101,\r
-119,111,114,107,32,105,110,102,97,99,117,108,116,121,97,110,103,117,108,97,114,\r
-119,104,111,32,104,97,100,97,105,114,112,111,114,116,116,111,119,110,32,111,102,\r
-10,10,83,111,109,101,32,39,99,108,105,99,107,39,99,104,97,114,103,101,115,107,\r
-101,121,119,111,114,100,105,116,32,119,105,108,108,99,105,116,121,32,111,102,40,\r
-116,104,105,115,41,59,65,110,100,114,101,119,32,117,110,105,113,117,101,32,99,\r
-104,101,99,107,101,100,111,114,32,109,111,114,101,51,48,48,112,120,59,32,114,101\r
-,116,117,114,110,59,114,115,105,111,110,61,34,112,108,117,103,105,110,115,119,\r
-105,116,104,105,110,32,104,101,114,115,101,108,102,83,116,97,116,105,111,110,70,\r
-101,100,101,114,97,108,118,101,110,116,117,114,101,112,117,98,108,105,115,104,\r
-115,101,110,116,32,116,111,116,101,110,115,105,111,110,97,99,116,114,101,115,115\r
-,99,111,109,101,32,116,111,102,105,110,103,101,114,115,68,117,107,101,32,111,102\r
-,112,101,111,112,108,101,44,101,120,112,108,111,105,116,119,104,97,116,32,105,\r
-115,104,97,114,109,111,110,121,97,32,109,97,106,111,114,34,58,34,104,116,116,112\r
-,105,110,32,104,105,115,32,109,101,110,117,34,62,10,109,111,110,116,104,108,121,\r
-111,102,102,105,99,101,114,99,111,117,110,99,105,108,103,97,105,110,105,110,103,\r
-101,118,101,110,32,105,110,83,117,109,109,97,114,121,100,97,116,101,32,111,102,\r
-108,111,121,97,108,116,121,102,105,116,110,101,115,115,97,110,100,32,119,97,115,\r
-101,109,112,101,114,111,114,115,117,112,114,101,109,101,83,101,99,111,110,100,32\r
-,104,101,97,114,105,110,103,82,117,115,115,105,97,110,108,111,110,103,101,115,\r
-116,65,108,98,101,114,116,97,108,97,116,101,114,97,108,115,101,116,32,111,102,32\r
-,115,109,97,108,108,34,62,46,97,112,112,101,110,100,100,111,32,119,105,116,104,\r
-102,101,100,101,114,97,108,98,97,110,107,32,111,102,98,101,110,101,97,116,104,68\r
-,101,115,112,105,116,101,67,97,112,105,116,97,108,103,114,111,117,110,100,115,41\r
-,44,32,97,110,100,32,112,101,114,99,101,110,116,105,116,32,102,114,111,109,99,\r
-108,111,115,105,110,103,99,111,110,116,97,105,110,73,110,115,116,101,97,100,102,\r
-105,102,116,101,101,110,97,115,32,119,101,108,108,46,121,97,104,111,111,46,114,\r
-101,115,112,111,110,100,102,105,103,104,116,101,114,111,98,115,99,117,114,101,\r
-114,101,102,108,101,99,116,111,114,103,97,110,105,99,61,32,77,97,116,104,46,101,\r
-100,105,116,105,110,103,111,110,108,105,110,101,32,112,97,100,100,105,110,103,97\r
-,32,119,104,111,108,101,111,110,101,114,114,111,114,121,101,97,114,32,111,102,\r
-101,110,100,32,111,102,32,98,97,114,114,105,101,114,119,104,101,110,32,105,116,\r
-104,101,97,100,101,114,32,104,111,109,101,32,111,102,114,101,115,117,109,101,100\r
-,114,101,110,97,109,101,100,115,116,114,111,110,103,62,104,101,97,116,105,110,\r
-103,114,101,116,97,105,110,115,99,108,111,117,100,102,114,119,97,121,32,111,102,\r
-32,77,97,114,99,104,32,49,107,110,111,119,105,110,103,105,110,32,112,97,114,116,\r
-66,101,116,119,101,101,110,108,101,115,115,111,110,115,99,108,111,115,101,115,\r
-116,118,105,114,116,117,97,108,108,105,110,107,115,34,62,99,114,111,115,115,101,\r
-100,69,78,68,32,45,45,62,102,97,109,111,117,115,32,97,119,97,114,100,101,100,76,\r
-105,99,101,110,115,101,72,101,97,108,116,104,32,102,97,105,114,108,121,32,119,\r
-101,97,108,116,104,121,109,105,110,105,109,97,108,65,102,114,105,99,97,110,99,\r
-111,109,112,101,116,101,108,97,98,101,108,34,62,115,105,110,103,105,110,103,102,\r
-97,114,109,101,114,115,66,114,97,115,105,108,41,100,105,115,99,117,115,115,114,\r
-101,112,108,97,99,101,71,114,101,103,111,114,121,102,111,110,116,32,99,111,112,\r
-117,114,115,117,101,100,97,112,112,101,97,114,115,109,97,107,101,32,117,112,114,\r
-111,117,110,100,101,100,98,111,116,104,32,111,102,98,108,111,99,107,101,100,115,\r
-97,119,32,116,104,101,111,102,102,105,99,101,115,99,111,108,111,117,114,115,105,\r
-102,40,100,111,99,117,119,104,101,110,32,104,101,101,110,102,111,114,99,101,112,\r
-117,115,104,40,102,117,65,117,103,117,115,116,32,85,84,70,45,56,34,62,70,97,110,\r
-116,97,115,121,105,110,32,109,111,115,116,105,110,106,117,114,101,100,85,115,117\r
-,97,108,108,121,102,97,114,109,105,110,103,99,108,111,115,117,114,101,111,98,106\r
-,101,99,116,32,100,101,102,101,110,99,101,117,115,101,32,111,102,32,77,101,100,\r
-105,99,97,108,60,98,111,100,121,62,10,101,118,105,100,101,110,116,98,101,32,117,\r
-115,101,100,107,101,121,67,111,100,101,115,105,120,116,101,101,110,73,115,108,97\r
-,109,105,99,35,48,48,48,48,48,48,101,110,116,105,114,101,32,119,105,100,101,108,\r
-121,32,97,99,116,105,118,101,32,40,116,121,112,101,111,102,111,110,101,32,99,97,\r
-110,99,111,108,111,114,32,61,115,112,101,97,107,101,114,101,120,116,101,110,100,\r
-115,80,104,121,115,105,99,115,116,101,114,114,97,105,110,60,116,98,111,100,121,\r
-62,102,117,110,101,114,97,108,118,105,101,119,105,110,103,109,105,100,100,108,\r
-101,32,99,114,105,99,107,101,116,112,114,111,112,104,101,116,115,104,105,102,116\r
-,101,100,100,111,99,116,111,114,115,82,117,115,115,101,108,108,32,116,97,114,103\r
-,101,116,99,111,109,112,97,99,116,97,108,103,101,98,114,97,115,111,99,105,97,108\r
-,45,98,117,108,107,32,111,102,109,97,110,32,97,110,100,60,47,116,100,62,10,32,\r
-104,101,32,108,101,102,116,41,46,118,97,108,40,41,102,97,108,115,101,41,59,108,\r
-111,103,105,99,97,108,98,97,110,107,105,110,103,104,111,109,101,32,116,111,110,\r
-97,109,105,110,103,32,65,114,105,122,111,110,97,99,114,101,100,105,116,115,41,59\r
-,10,125,41,59,10,102,111,117,110,100,101,114,105,110,32,116,117,114,110,67,111,\r
-108,108,105,110,115,98,101,102,111,114,101,32,66,117,116,32,116,104,101,99,104,\r
-97,114,103,101,100,84,105,116,108,101,34,62,67,97,112,116,97,105,110,115,112,101\r
-,108,108,101,100,103,111,100,100,101,115,115,84,97,103,32,45,45,62,65,100,100,\r
-105,110,103,58,98,117,116,32,119,97,115,82,101,99,101,110,116,32,112,97,116,105,\r
-101,110,116,98,97,99,107,32,105,110,61,102,97,108,115,101,38,76,105,110,99,111,\r
-108,110,119,101,32,107,110,111,119,67,111,117,110,116,101,114,74,117,100,97,105,\r
-115,109,115,99,114,105,112,116,32,97,108,116,101,114,101,100,39,93,41,59,10,32,\r
-32,104,97,115,32,116,104,101,117,110,99,108,101,97,114,69,118,101,110,116,39,44,\r
-98,111,116,104,32,105,110,110,111,116,32,97,108,108,10,10,60,33,45,45,32,112,108\r
-,97,99,105,110,103,104,97,114,100,32,116,111,32,99,101,110,116,101,114,115,111,\r
-114,116,32,111,102,99,108,105,101,110,116,115,115,116,114,101,101,116,115,66,101\r
-,114,110,97,114,100,97,115,115,101,114,116,115,116,101,110,100,32,116,111,102,97\r
-,110,116,97,115,121,100,111,119,110,32,105,110,104,97,114,98,111,117,114,70,114,\r
-101,101,100,111,109,106,101,119,101,108,114,121,47,97,98,111,117,116,46,46,115,\r
-101,97,114,99,104,108,101,103,101,110,100,115,105,115,32,109,97,100,101,109,111,\r
-100,101,114,110,32,111,110,108,121,32,111,110,111,110,108,121,32,116,111,105,109\r
-,97,103,101,34,32,108,105,110,101,97,114,32,112,97,105,110,116,101,114,97,110,\r
-100,32,110,111,116,114,97,114,101,108,121,32,97,99,114,111,110,121,109,100,101,\r
-108,105,118,101,114,115,104,111,114,116,101,114,48,48,38,97,109,112,59,97,115,32\r
-,109,97,110,121,119,105,100,116,104,61,34,47,42,32,60,33,91,67,116,105,116,108,\r
-101,32,61,111,102,32,116,104,101,32,108,111,119,101,115,116,32,112,105,99,107,\r
-101,100,32,101,115,99,97,112,101,100,117,115,101,115,32,111,102,112,101,111,112,\r
-108,101,115,32,80,117,98,108,105,99,77,97,116,116,104,101,119,116,97,99,116,105,\r
-99,115,100,97,109,97,103,101,100,119,97,121,32,102,111,114,108,97,119,115,32,111\r
-,102,101,97,115,121,32,116,111,32,119,105,110,100,111,119,115,116,114,111,110,\r
-103,32,32,115,105,109,112,108,101,125,99,97,116,99,104,40,115,101,118,101,110,\r
-116,104,105,110,102,111,98,111,120,119,101,110,116,32,116,111,112,97,105,110,116\r
-,101,100,99,105,116,105,122,101,110,73,32,100,111,110,39,116,114,101,116,114,101\r
-,97,116,46,32,83,111,109,101,32,119,119,46,34,41,59,10,98,111,109,98,105,110,103\r
-,109,97,105,108,116,111,58,109,97,100,101,32,105,110,46,32,77,97,110,121,32,99,\r
-97,114,114,105,101,115,124,124,123,125,59,119,105,119,111,114,107,32,111,102,115\r
-,121,110,111,110,121,109,100,101,102,101,97,116,115,102,97,118,111,114,101,100,\r
-111,112,116,105,99,97,108,112,97,103,101,84,114,97,117,110,108,101,115,115,32,\r
-115,101,110,100,105,110,103,108,101,102,116,34,62,60,99,111,109,83,99,111,114,65\r
-,108,108,32,116,104,101,106,81,117,101,114,121,46,116,111,117,114,105,115,116,67\r
-,108,97,115,115,105,99,102,97,108,115,101,34,32,87,105,108,104,101,108,109,115,\r
-117,98,117,114,98,115,103,101,110,117,105,110,101,98,105,115,104,111,112,115,46,\r
-115,112,108,105,116,40,103,108,111,98,97,108,32,102,111,108,108,111,119,115,98,\r
-111,100,121,32,111,102,110,111,109,105,110,97,108,67,111,110,116,97,99,116,115,\r
-101,99,117,108,97,114,108,101,102,116,32,116,111,99,104,105,101,102,108,121,45,\r
-104,105,100,100,101,110,45,98,97,110,110,101,114,60,47,108,105,62,10,10,46,32,87\r
-,104,101,110,32,105,110,32,98,111,116,104,100,105,115,109,105,115,115,69,120,112\r
-,108,111,114,101,97,108,119,97,121,115,32,118,105,97,32,116,104,101,115,112,97,\r
-195,177,111,108,119,101,108,102,97,114,101,114,117,108,105,110,103,32,97,114,114\r
-,97,110,103,101,99,97,112,116,97,105,110,104,105,115,32,115,111,110,114,117,108,\r
-101,32,111,102,104,101,32,116,111,111,107,105,116,115,101,108,102,44,61,48,38,97\r
-,109,112,59,40,99,97,108,108,101,100,115,97,109,112,108,101,115,116,111,32,109,\r
-97,107,101,99,111,109,47,112,97,103,77,97,114,116,105,110,32,75,101,110,110,101,\r
-100,121,97,99,99,101,112,116,115,102,117,108,108,32,111,102,104,97,110,100,108,\r
-101,100,66,101,115,105,100,101,115,47,47,45,45,62,60,47,97,98,108,101,32,116,111\r
-,116,97,114,103,101,116,115,101,115,115,101,110,99,101,104,105,109,32,116,111,32\r
-,105,116,115,32,98,121,32,99,111,109,109,111,110,46,109,105,110,101,114,97,108,\r
-116,111,32,116,97,107,101,119,97,121,115,32,116,111,115,46,111,114,103,47,108,97\r
-,100,118,105,115,101,100,112,101,110,97,108,116,121,115,105,109,112,108,101,58,\r
-105,102,32,116,104,101,121,76,101,116,116,101,114,115,97,32,115,104,111,114,116,\r
-72,101,114,98,101,114,116,115,116,114,105,107,101,115,32,103,114,111,117,112,115\r
-,46,108,101,110,103,116,104,102,108,105,103,104,116,115,111,118,101,114,108,97,\r
-112,115,108,111,119,108,121,32,108,101,115,115,101,114,32,115,111,99,105,97,108,\r
-32,60,47,112,62,10,9,9,105,116,32,105,110,116,111,114,97,110,107,101,100,32,114,\r
-97,116,101,32,111,102,117,108,62,13,10,32,32,97,116,116,101,109,112,116,112,97,\r
-105,114,32,111,102,109,97,107,101,32,105,116,75,111,110,116,97,107,116,65,110,\r
-116,111,110,105,111,104,97,118,105,110,103,32,114,97,116,105,110,103,115,32,97,\r
-99,116,105,118,101,115,116,114,101,97,109,115,116,114,97,112,112,101,100,34,41,\r
-46,99,115,115,40,104,111,115,116,105,108,101,108,101,97,100,32,116,111,108,105,\r
-116,116,108,101,32,103,114,111,117,112,115,44,80,105,99,116,117,114,101,45,45,62\r
-,13,10,13,10,32,114,111,119,115,61,34,32,111,98,106,101,99,116,105,110,118,101,\r
-114,115,101,60,102,111,111,116,101,114,67,117,115,116,111,109,86,62,60,92,47,115\r
-,99,114,115,111,108,118,105,110,103,67,104,97,109,98,101,114,115,108,97,118,101,\r
-114,121,119,111,117,110,100,101,100,119,104,101,114,101,97,115,33,61,32,39,117,\r
-110,100,102,111,114,32,97,108,108,112,97,114,116,108,121,32,45,114,105,103,104,\r
-116,58,65,114,97,98,105,97,110,98,97,99,107,101,100,32,99,101,110,116,117,114,\r
-121,117,110,105,116,32,111,102,109,111,98,105,108,101,45,69,117,114,111,112,101,\r
-44,105,115,32,104,111,109,101,114,105,115,107,32,111,102,100,101,115,105,114,101\r
-,100,67,108,105,110,116,111,110,99,111,115,116,32,111,102,97,103,101,32,111,102,\r
-32,98,101,99,111,109,101,32,110,111,110,101,32,111,102,112,38,113,117,111,116,59\r
-,77,105,100,100,108,101,32,101,97,100,39,41,91,48,67,114,105,116,105,99,115,115,\r
-116,117,100,105,111,115,62,38,99,111,112,121,59,103,114,111,117,112,34,62,97,115\r
-,115,101,109,98,108,109,97,107,105,110,103,32,112,114,101,115,115,101,100,119,\r
-105,100,103,101,116,46,112,115,58,34,32,63,32,114,101,98,117,105,108,116,98,121,\r
-32,115,111,109,101,70,111,114,109,101,114,32,101,100,105,116,111,114,115,100,101\r
-,108,97,121,101,100,67,97,110,111,110,105,99,104,97,100,32,116,104,101,112,117,\r
-115,104,105,110,103,99,108,97,115,115,61,34,98,117,116,32,97,114,101,112,97,114,\r
-116,105,97,108,66,97,98,121,108,111,110,98,111,116,116,111,109,32,99,97,114,114,\r
-105,101,114,67,111,109,109,97,110,100,105,116,115,32,117,115,101,65,115,32,119,\r
-105,116,104,99,111,117,114,115,101,115,97,32,116,104,105,114,100,100,101,110,111\r
-,116,101,115,97,108,115,111,32,105,110,72,111,117,115,116,111,110,50,48,112,120,\r
-59,34,62,97,99,99,117,115,101,100,100,111,117,98,108,101,32,103,111,97,108,32,\r
-111,102,70,97,109,111,117,115,32,41,46,98,105,110,100,40,112,114,105,101,115,116\r
-,115,32,79,110,108,105,110,101,105,110,32,74,117,108,121,115,116,32,43,32,34,103\r
-,99,111,110,115,117,108,116,100,101,99,105,109,97,108,104,101,108,112,102,117,\r
-108,114,101,118,105,118,101,100,105,115,32,118,101,114,121,114,39,43,39,105,112,\r
-116,108,111,115,105,110,103,32,102,101,109,97,108,101,115,105,115,32,97,108,115,\r
-111,115,116,114,105,110,103,115,100,97,121,115,32,111,102,97,114,114,105,118,97,\r
-108,102,117,116,117,114,101,32,60,111,98,106,101,99,116,102,111,114,99,105,110,\r
-103,83,116,114,105,110,103,40,34,32,47,62,10,9,9,104,101,114,101,32,105,115,101,\r
-110,99,111,100,101,100,46,32,32,84,104,101,32,98,97,108,108,111,111,110,100,111,\r
-110,101,32,98,121,47,99,111,109,109,111,110,98,103,99,111,108,111,114,108,97,119\r
-,32,111,102,32,73,110,100,105,97,110,97,97,118,111,105,100,101,100,98,117,116,32\r
-,116,104,101,50,112,120,32,51,112,120,106,113,117,101,114,121,46,97,102,116,101,\r
-114,32,97,112,111,108,105,99,121,46,109,101,110,32,97,110,100,102,111,111,116,\r
-101,114,45,61,32,116,114,117,101,59,102,111,114,32,117,115,101,115,99,114,101,\r
-101,110,46,73,110,100,105,97,110,32,105,109,97,103,101,32,61,102,97,109,105,108,\r
-121,44,104,116,116,112,58,47,47,32,38,110,98,115,112,59,100,114,105,118,101,114,\r
-115,101,116,101,114,110,97,108,115,97,109,101,32,97,115,110,111,116,105,99,101,\r
-100,118,105,101,119,101,114,115,125,41,40,41,59,10,32,105,115,32,109,111,114,101\r
-,115,101,97,115,111,110,115,102,111,114,109,101,114,32,116,104,101,32,110,101,\r
-119,105,115,32,106,117,115,116,99,111,110,115,101,110,116,32,83,101,97,114,99,\r
-104,119,97,115,32,116,104,101,119,104,121,32,116,104,101,115,104,105,112,112,101\r
-,100,98,114,62,60,98,114,62,119,105,100,116,104,58,32,104,101,105,103,104,116,61\r
-,109,97,100,101,32,111,102,99,117,105,115,105,110,101,105,115,32,116,104,97,116,\r
-97,32,118,101,114,121,32,65,100,109,105,114,97,108,32,102,105,120,101,100,59,110\r
-,111,114,109,97,108,32,77,105,115,115,105,111,110,80,114,101,115,115,44,32,111,\r
-110,116,97,114,105,111,99,104,97,114,115,101,116,116,114,121,32,116,111,32,105,\r
-110,118,97,100,101,100,61,34,116,114,117,101,34,115,112,97,99,105,110,103,105,\r
-115,32,109,111,115,116,97,32,109,111,114,101,32,116,111,116,97,108,108,121,102,\r
-97,108,108,32,111,102,125,41,59,13,10,32,32,105,109,109,101,110,115,101,116,105,\r
-109,101,32,105,110,115,101,116,32,111,117,116,115,97,116,105,115,102,121,116,111\r
-,32,102,105,110,100,100,111,119,110,32,116,111,108,111,116,32,111,102,32,80,108,\r
-97,121,101,114,115,105,110,32,74,117,110,101,113,117,97,110,116,117,109,110,111,\r
-116,32,116,104,101,116,105,109,101,32,116,111,100,105,115,116,97,110,116,70,105,\r
-110,110,105,115,104,115,114,99,32,61,32,40,115,105,110,103,108,101,32,104,101,\r
-108,112,32,111,102,71,101,114,109,97,110,32,108,97,119,32,97,110,100,108,97,98,\r
-101,108,101,100,102,111,114,101,115,116,115,99,111,111,107,105,110,103,115,112,\r
-97,99,101,34,62,104,101,97,100,101,114,45,119,101,108,108,32,97,115,83,116,97,\r
-110,108,101,121,98,114,105,100,103,101,115,47,103,108,111,98,97,108,67,114,111,\r
-97,116,105,97,32,65,98,111,117,116,32,91,48,93,59,10,32,32,105,116,44,32,97,110,\r
-100,103,114,111,117,112,101,100,98,101,105,110,103,32,97,41,123,116,104,114,111,\r
-119,104,101,32,109,97,100,101,108,105,103,104,116,101,114,101,116,104,105,99,97,\r
-108,70,70,70,70,70,70,34,98,111,116,116,111,109,34,108,105,107,101,32,97,32,101,\r
-109,112,108,111,121,115,108,105,118,101,32,105,110,97,115,32,115,101,101,110,112\r
-,114,105,110,116,101,114,109,111,115,116,32,111,102,117,98,45,108,105,110,107,\r
-114,101,106,101,99,116,115,97,110,100,32,117,115,101,105,109,97,103,101,34,62,\r
-115,117,99,99,101,101,100,102,101,101,100,105,110,103,78,117,99,108,101,97,114,\r
-105,110,102,111,114,109,97,116,111,32,104,101,108,112,87,111,109,101,110,39,115,\r
-78,101,105,116,104,101,114,77,101,120,105,99,97,110,112,114,111,116,101,105,110,\r
-60,116,97,98,108,101,32,98,121,32,109,97,110,121,104,101,97,108,116,104,121,108,\r
-97,119,115,117,105,116,100,101,118,105,115,101,100,46,112,117,115,104,40,123,115\r
-,101,108,108,101,114,115,115,105,109,112,108,121,32,84,104,114,111,117,103,104,\r
-46,99,111,111,107,105,101,32,73,109,97,103,101,40,111,108,100,101,114,34,62,117,\r
-115,46,106,115,34,62,32,83,105,110,99,101,32,117,110,105,118,101,114,115,108,97,\r
-114,103,101,114,32,111,112,101,110,32,116,111,33,45,45,32,101,110,100,108,105,\r
-101,115,32,105,110,39,93,41,59,13,10,32,32,109,97,114,107,101,116,119,104,111,32\r
-,105,115,32,40,34,68,79,77,67,111,109,97,110,97,103,101,100,111,110,101,32,102,\r
-111,114,116,121,112,101,111,102,32,75,105,110,103,100,111,109,112,114,111,102,\r
-105,116,115,112,114,111,112,111,115,101,116,111,32,115,104,111,119,99,101,110,\r
-116,101,114,59,109,97,100,101,32,105,116,100,114,101,115,115,101,100,119,101,114\r
-,101,32,105,110,109,105,120,116,117,114,101,112,114,101,99,105,115,101,97,114,\r
-105,115,105,110,103,115,114,99,32,61,32,39,109,97,107,101,32,97,32,115,101,99,\r
-117,114,101,100,66,97,112,116,105,115,116,118,111,116,105,110,103,32,10,9,9,118,\r
-97,114,32,77,97,114,99,104,32,50,103,114,101,119,32,117,112,67,108,105,109,97,\r
-116,101,46,114,101,109,111,118,101,115,107,105,108,108,101,100,119,97,121,32,116\r
-,104,101,60,47,104,101,97,100,62,102,97,99,101,32,111,102,97,99,116,105,110,103,\r
-32,114,105,103,104,116,34,62,116,111,32,119,111,114,107,114,101,100,117,99,101,\r
-115,104,97,115,32,104,97,100,101,114,101,99,116,101,100,115,104,111,119,40,41,59\r
-,97,99,116,105,111,110,61,98,111,111,107,32,111,102,97,110,32,97,114,101,97,61,\r
-61,32,34,104,116,116,60,104,101,97,100,101,114,10,60,104,116,109,108,62,99,111,\r
-110,102,111,114,109,102,97,99,105,110,103,32,99,111,111,107,105,101,46,114,101,\r
-108,121,32,111,110,104,111,115,116,101,100,32,46,99,117,115,116,111,109,104,101,\r
-32,119,101,110,116,98,117,116,32,102,111,114,115,112,114,101,97,100,32,70,97,109\r
-,105,108,121,32,97,32,109,101,97,110,115,111,117,116,32,116,104,101,102,111,114,\r
-117,109,115,46,102,111,111,116,97,103,101,34,62,77,111,98,105,108,67,108,101,109\r
-,101,110,116,115,34,32,105,100,61,34,97,115,32,104,105,103,104,105,110,116,101,\r
-110,115,101,45,45,62,60,33,45,45,102,101,109,97,108,101,32,105,115,32,115,101,\r
-101,110,105,109,112,108,105,101,100,115,101,116,32,116,104,101,97,32,115,116,97,\r
-116,101,97,110,100,32,104,105,115,102,97,115,116,101,115,116,98,101,115,105,100,\r
-101,115,98,117,116,116,111,110,95,98,111,117,110,100,101,100,34,62,60,105,109,\r
-103,32,73,110,102,111,98,111,120,101,118,101,110,116,115,44,97,32,121,111,117,\r
-110,103,97,110,100,32,97,114,101,78,97,116,105,118,101,32,99,104,101,97,112,101,\r
-114,84,105,109,101,111,117,116,97,110,100,32,104,97,115,101,110,103,105,110,101,\r
-115,119,111,110,32,116,104,101,40,109,111,115,116,108,121,114,105,103,104,116,58\r
-,32,102,105,110,100,32,97,32,45,98,111,116,116,111,109,80,114,105,110,99,101,32,\r
-97,114,101,97,32,111,102,109,111,114,101,32,111,102,115,101,97,114,99,104,95,110\r
-,97,116,117,114,101,44,108,101,103,97,108,108,121,112,101,114,105,111,100,44,108\r
-,97,110,100,32,111,102,111,114,32,119,105,116,104,105,110,100,117,99,101,100,112\r
-,114,111,118,105,110,103,109,105,115,115,105,108,101,108,111,99,97,108,108,121,\r
-65,103,97,105,110,115,116,116,104,101,32,119,97,121,107,38,113,117,111,116,59,\r
-112,120,59,34,62,13,10,112,117,115,104,101,100,32,97,98,97,110,100,111,110,110,\r
-117,109,101,114,97,108,67,101,114,116,97,105,110,73,110,32,116,104,105,115,109,\r
-111,114,101,32,105,110,111,114,32,115,111,109,101,110,97,109,101,32,105,115,97,\r
-110,100,44,32,105,110,99,114,111,119,110,101,100,73,83,66,78,32,48,45,99,114,101\r
-,97,116,101,115,79,99,116,111,98,101,114,109,97,121,32,110,111,116,99,101,110,\r
-116,101,114,32,108,97,116,101,32,105,110,68,101,102,101,110,99,101,101,110,97,99\r
-,116,101,100,119,105,115,104,32,116,111,98,114,111,97,100,108,121,99,111,111,108\r
-,105,110,103,111,110,108,111,97,100,61,105,116,46,32,84,104,101,114,101,99,111,\r
-118,101,114,77,101,109,98,101,114,115,104,101,105,103,104,116,32,97,115,115,117,\r
-109,101,115,60,104,116,109,108,62,10,112,101,111,112,108,101,46,105,110,32,111,\r
-110,101,32,61,119,105,110,100,111,119,102,111,111,116,101,114,95,97,32,103,111,\r
-111,100,32,114,101,107,108,97,109,97,111,116,104,101,114,115,44,116,111,32,116,\r
-104,105,115,95,99,111,111,107,105,101,112,97,110,101,108,34,62,76,111,110,100,\r
-111,110,44,100,101,102,105,110,101,115,99,114,117,115,104,101,100,98,97,112,116,\r
-105,115,109,99,111,97,115,116,97,108,115,116,97,116,117,115,32,116,105,116,108,\r
-101,34,32,109,111,118,101,32,116,111,108,111,115,116,32,105,110,98,101,116,116,\r
-101,114,32,105,109,112,108,105,101,115,114,105,118,97,108,114,121,115,101,114,\r
-118,101,114,115,32,83,121,115,116,101,109,80,101,114,104,97,112,115,101,115,32,\r
-97,110,100,32,99,111,110,116,101,110,100,102,108,111,119,105,110,103,108,97,115,\r
-116,101,100,32,114,105,115,101,32,105,110,71,101,110,101,115,105,115,118,105,101\r
-,119,32,111,102,114,105,115,105,110,103,32,115,101,101,109,32,116,111,98,117,116\r
-,32,105,110,32,98,97,99,107,105,110,103,104,101,32,119,105,108,108,103,105,118,\r
-101,110,32,97,103,105,118,105,110,103,32,99,105,116,105,101,115,46,102,108,111,\r
-119,32,111,102,32,76,97,116,101,114,32,97,108,108,32,98,117,116,72,105,103,104,\r
-119,97,121,111,110,108,121,32,98,121,115,105,103,110,32,111,102,104,101,32,100,\r
-111,101,115,100,105,102,102,101,114,115,98,97,116,116,101,114,121,38,97,109,112,\r
-59,108,97,115,105,110,103,108,101,115,116,104,114,101,97,116,115,105,110,116,101\r
-,103,101,114,116,97,107,101,32,111,110,114,101,102,117,115,101,100,99,97,108,108\r
-,101,100,32,61,85,83,38,97,109,112,83,101,101,32,116,104,101,110,97,116,105,118,\r
-101,115,98,121,32,116,104,105,115,115,121,115,116,101,109,46,104,101,97,100,32,\r
-111,102,58,104,111,118,101,114,44,108,101,115,98,105,97,110,115,117,114,110,97,\r
-109,101,97,110,100,32,97,108,108,99,111,109,109,111,110,47,104,101,97,100,101,\r
-114,95,95,112,97,114,97,109,115,72,97,114,118,97,114,100,47,112,105,120,101,108,\r
-46,114,101,109,111,118,97,108,115,111,32,108,111,110,103,114,111,108,101,32,111,\r
-102,106,111,105,110,116,108,121,115,107,121,115,99,114,97,85,110,105,99,111,100,\r
-101,98,114,32,47,62,13,10,65,116,108,97,110,116,97,110,117,99,108,101,117,115,67\r
-,111,117,110,116,121,44,112,117,114,101,108,121,32,99,111,117,110,116,34,62,101,\r
-97,115,105,108,121,32,98,117,105,108,100,32,97,111,110,99,108,105,99,107,97,32,\r
-103,105,118,101,110,112,111,105,110,116,101,114,104,38,113,117,111,116,59,101,\r
-118,101,110,116,115,32,101,108,115,101,32,123,10,100,105,116,105,111,110,115,110\r
-,111,119,32,116,104,101,44,32,119,105,116,104,32,109,97,110,32,119,104,111,111,\r
-114,103,47,87,101,98,111,110,101,32,97,110,100,99,97,118,97,108,114,121,72,101,\r
-32,100,105,101,100,115,101,97,116,116,108,101,48,48,44,48,48,48,32,123,119,105,\r
-110,100,111,119,104,97,118,101,32,116,111,105,102,40,119,105,110,100,97,110,100,\r
-32,105,116,115,115,111,108,101,108,121,32,109,38,113,117,111,116,59,114,101,110,\r
-101,119,101,100,68,101,116,114,111,105,116,97,109,111,110,103,115,116,101,105,\r
-116,104,101,114,32,116,104,101,109,32,105,110,83,101,110,97,116,111,114,85,115,\r
-60,47,97,62,60,75,105,110,103,32,111,102,70,114,97,110,99,105,115,45,112,114,111\r
-,100,117,99,104,101,32,117,115,101,100,97,114,116,32,97,110,100,104,105,109,32,\r
-97,110,100,117,115,101,100,32,98,121,115,99,111,114,105,110,103,97,116,32,104,\r
-111,109,101,116,111,32,104,97,118,101,114,101,108,97,116,101,115,105,98,105,108,\r
-105,116,121,102,97,99,116,105,111,110,66,117,102,102,97,108,111,108,105,110,107,\r
-34,62,60,119,104,97,116,32,104,101,102,114,101,101,32,116,111,67,105,116,121,32,\r
-111,102,99,111,109,101,32,105,110,115,101,99,116,111,114,115,99,111,117,110,116,\r
-101,100,111,110,101,32,100,97,121,110,101,114,118,111,117,115,115,113,117,97,114\r
-,101,32,125,59,105,102,40,103,111,105,110,32,119,104,97,116,105,109,103,34,32,97\r
-,108,105,115,32,111,110,108,121,115,101,97,114,99,104,47,116,117,101,115,100,97,\r
-121,108,111,111,115,101,108,121,83,111,108,111,109,111,110,115,101,120,117,97,\r
-108,32,45,32,60,97,32,104,114,109,101,100,105,117,109,34,68,79,32,78,79,84,32,70\r
-,114,97,110,99,101,44,119,105,116,104,32,97,32,119,97,114,32,97,110,100,115,101,\r
-99,111,110,100,32,116,97,107,101,32,97,32,62,13,10,13,10,13,10,109,97,114,107,\r
-101,116,46,104,105,103,104,119,97,121,100,111,110,101,32,105,110,99,116,105,118,\r
-105,116,121,34,108,97,115,116,34,62,111,98,108,105,103,101,100,114,105,115,101,\r
-32,116,111,34,117,110,100,101,102,105,109,97,100,101,32,116,111,32,69,97,114,108\r
-,121,32,112,114,97,105,115,101,100,105,110,32,105,116,115,32,102,111,114,32,104,\r
-105,115,97,116,104,108,101,116,101,74,117,112,105,116,101,114,89,97,104,111,111,\r
-33,32,116,101,114,109,101,100,32,115,111,32,109,97,110,121,114,101,97,108,108,\r
-121,32,115,46,32,84,104,101,32,97,32,119,111,109,97,110,63,118,97,108,117,101,61\r
-,100,105,114,101,99,116,32,114,105,103,104,116,34,32,98,105,99,121,99,108,101,97\r
-,99,105,110,103,61,34,100,97,121,32,97,110,100,115,116,97,116,105,110,103,82,97,\r
-116,104,101,114,44,104,105,103,104,101,114,32,79,102,102,105,99,101,32,97,114,\r
-101,32,110,111,119,116,105,109,101,115,44,32,119,104,101,110,32,97,32,112,97,121\r
-,32,102,111,114,111,110,32,116,104,105,115,45,108,105,110,107,34,62,59,98,111,\r
-114,100,101,114,97,114,111,117,110,100,32,97,110,110,117,97,108,32,116,104,101,\r
-32,78,101,119,112,117,116,32,116,104,101,46,99,111,109,34,32,116,97,107,105,110,\r
-32,116,111,97,32,98,114,105,101,102,40,105,110,32,116,104,101,103,114,111,117,\r
-112,115,46,59,32,119,105,100,116,104,101,110,122,121,109,101,115,115,105,109,112\r
-,108,101,32,105,110,32,108,97,116,101,123,114,101,116,117,114,110,116,104,101,\r
-114,97,112,121,97,32,112,111,105,110,116,98,97,110,110,105,110,103,105,110,107,\r
-115,34,62,10,40,41,59,34,32,114,101,97,32,112,108,97,99,101,92,117,48,48,51,67,\r
-97,97,98,111,117,116,32,97,116,114,62,13,10,9,9,99,99,111,117,110,116,32,103,105\r
-,118,101,115,32,97,60,83,67,82,73,80,84,82,97,105,108,119,97,121,116,104,101,109\r
-,101,115,47,116,111,111,108,98,111,120,66,121,73,100,40,34,120,104,117,109,97,\r
-110,115,44,119,97,116,99,104,101,115,105,110,32,115,111,109,101,32,105,102,32,40\r
-,119,105,99,111,109,105,110,103,32,102,111,114,109,97,116,115,32,85,110,100,101,\r
-114,32,98,117,116,32,104,97,115,104,97,110,100,101,100,32,109,97,100,101,32,98,\r
-121,116,104,97,110,32,105,110,102,101,97,114,32,111,102,100,101,110,111,116,101,\r
-100,47,105,102,114,97,109,101,108,101,102,116,32,105,110,118,111,108,116,97,103,\r
-101,105,110,32,101,97,99,104,97,38,113,117,111,116,59,98,97,115,101,32,111,102,\r
-73,110,32,109,97,110,121,117,110,100,101,114,103,111,114,101,103,105,109,101,115\r
-,97,99,116,105,111,110,32,60,47,112,62,13,10,60,117,115,116,111,109,86,97,59,38,\r
-103,116,59,60,47,105,109,112,111,114,116,115,111,114,32,116,104,97,116,109,111,\r
-115,116,108,121,32,38,97,109,112,59,114,101,32,115,105,122,101,61,34,60,47,97,62\r
-,60,47,104,97,32,99,108,97,115,115,112,97,115,115,105,118,101,72,111,115,116,32,\r
-61,32,87,104,101,116,104,101,114,102,101,114,116,105,108,101,86,97,114,105,111,\r
-117,115,61,91,93,59,40,102,117,99,97,109,101,114,97,115,47,62,60,47,116,100,62,\r
-97,99,116,115,32,97,115,73,110,32,115,111,109,101,62,13,10,13,10,60,33,111,114,\r
-103,97,110,105,115,32,60,98,114,32,47,62,66,101,105,106,105,110,103,99,97,116,97\r
-,108,195,160,100,101,117,116,115,99,104,101,117,114,111,112,101,117,101,117,115,\r
-107,97,114,97,103,97,101,105,108,103,101,115,118,101,110,115,107,97,101,115,112,\r
-97,195,177,97,109,101,110,115,97,106,101,117,115,117,97,114,105,111,116,114,97,\r
-98,97,106,111,109,195,169,120,105,99,111,112,195,161,103,105,110,97,115,105,101,\r
-109,112,114,101,115,105,115,116,101,109,97,111,99,116,117,98,114,101,100,117,114\r
-,97,110,116,101,97,195,177,97,100,105,114,101,109,112,114,101,115,97,109,111,109\r
-,101,110,116,111,110,117,101,115,116,114,111,112,114,105,109,101,114,97,116,114,\r
-97,118,195,169,115,103,114,97,99,105,97,115,110,117,101,115,116,114,97,112,114,\r
-111,99,101,115,111,101,115,116,97,100,111,115,99,97,108,105,100,97,100,112,101,\r
-114,115,111,110,97,110,195,186,109,101,114,111,97,99,117,101,114,100,111,109,195\r
-,186,115,105,99,97,109,105,101,109,98,114,111,111,102,101,114,116,97,115,97,108,\r
-103,117,110,111,115,112,97,195,173,115,101,115,101,106,101,109,112,108,111,100,\r
-101,114,101,99,104,111,97,100,101,109,195,161,115,112,114,105,118,97,100,111,97,\r
-103,114,101,103,97,114,101,110,108,97,99,101,115,112,111,115,105,98,108,101,104,\r
-111,116,101,108,101,115,115,101,118,105,108,108,97,112,114,105,109,101,114,111,\r
-195,186,108,116,105,109,111,101,118,101,110,116,111,115,97,114,99,104,105,118,\r
-111,99,117,108,116,117,114,97,109,117,106,101,114,101,115,101,110,116,114,97,100\r
-,97,97,110,117,110,99,105,111,101,109,98,97,114,103,111,109,101,114,99,97,100,\r
-111,103,114,97,110,100,101,115,101,115,116,117,100,105,111,109,101,106,111,114,\r
-101,115,102,101,98,114,101,114,111,100,105,115,101,195,177,111,116,117,114,105,\r
-115,109,111,99,195,179,100,105,103,111,112,111,114,116,97,100,97,101,115,112,97,\r
-99,105,111,102,97,109,105,108,105,97,97,110,116,111,110,105,111,112,101,114,109,\r
-105,116,101,103,117,97,114,100,97,114,97,108,103,117,110,97,115,112,114,101,99,\r
-105,111,115,97,108,103,117,105,101,110,115,101,110,116,105,100,111,118,105,115,\r
-105,116,97,115,116,195,173,116,117,108,111,99,111,110,111,99,101,114,115,101,103\r
-,117,110,100,111,99,111,110,115,101,106,111,102,114,97,110,99,105,97,109,105,110\r
-,117,116,111,115,115,101,103,117,110,100,97,116,101,110,101,109,111,115,101,102,\r
-101,99,116,111,115,109,195,161,108,97,103,97,115,101,115,105,195,179,110,114,101\r
-,118,105,115,116,97,103,114,97,110,97,100,97,99,111,109,112,114,97,114,105,110,\r
-103,114,101,115,111,103,97,114,99,195,173,97,97,99,99,105,195,179,110,101,99,117\r
-,97,100,111,114,113,117,105,101,110,101,115,105,110,99,108,117,115,111,100,101,\r
-98,101,114,195,161,109,97,116,101,114,105,97,104,111,109,98,114,101,115,109,117,\r
-101,115,116,114,97,112,111,100,114,195,173,97,109,97,195,177,97,110,97,195,186,\r
-108,116,105,109,97,101,115,116,97,109,111,115,111,102,105,99,105,97,108,116,97,\r
-109,98,105,101,110,110,105,110,103,195,186,110,115,97,108,117,100,111,115,112,\r
-111,100,101,109,111,115,109,101,106,111,114,97,114,112,111,115,105,116,105,111,\r
-110,98,117,115,105,110,101,115,115,104,111,109,101,112,97,103,101,115,101,99,117\r
-,114,105,116,121,108,97,110,103,117,97,103,101,115,116,97,110,100,97,114,100,99,\r
-97,109,112,97,105,103,110,102,101,97,116,117,114,101,115,99,97,116,101,103,111,\r
-114,121,101,120,116,101,114,110,97,108,99,104,105,108,100,114,101,110,114,101,\r
-115,101,114,118,101,100,114,101,115,101,97,114,99,104,101,120,99,104,97,110,103,\r
-101,102,97,118,111,114,105,116,101,116,101,109,112,108,97,116,101,109,105,108,\r
-105,116,97,114,121,105,110,100,117,115,116,114,121,115,101,114,118,105,99,101,\r
-115,109,97,116,101,114,105,97,108,112,114,111,100,117,99,116,115,122,45,105,110,\r
-100,101,120,58,99,111,109,109,101,110,116,115,115,111,102,116,119,97,114,101,99,\r
-111,109,112,108,101,116,101,99,97,108,101,110,100,97,114,112,108,97,116,102,111,\r
-114,109,97,114,116,105,99,108,101,115,114,101,113,117,105,114,101,100,109,111,\r
-118,101,109,101,110,116,113,117,101,115,116,105,111,110,98,117,105,108,100,105,\r
-110,103,112,111,108,105,116,105,99,115,112,111,115,115,105,98,108,101,114,101,\r
-108,105,103,105,111,110,112,104,121,115,105,99,97,108,102,101,101,100,98,97,99,\r
-107,114,101,103,105,115,116,101,114,112,105,99,116,117,114,101,115,100,105,115,\r
-97,98,108,101,100,112,114,111,116,111,99,111,108,97,117,100,105,101,110,99,101,\r
-115,101,116,116,105,110,103,115,97,99,116,105,118,105,116,121,101,108,101,109,\r
-101,110,116,115,108,101,97,114,110,105,110,103,97,110,121,116,104,105,110,103,97\r
-,98,115,116,114,97,99,116,112,114,111,103,114,101,115,115,111,118,101,114,118,\r
-105,101,119,109,97,103,97,122,105,110,101,101,99,111,110,111,109,105,99,116,114,\r
-97,105,110,105,110,103,112,114,101,115,115,117,114,101,118,97,114,105,111,117,\r
-115,32,60,115,116,114,111,110,103,62,112,114,111,112,101,114,116,121,115,104,111\r
-,112,112,105,110,103,116,111,103,101,116,104,101,114,97,100,118,97,110,99,101,\r
-100,98,101,104,97,118,105,111,114,100,111,119,110,108,111,97,100,102,101,97,116,\r
-117,114,101,100,102,111,111,116,98,97,108,108,115,101,108,101,99,116,101,100,76,\r
-97,110,103,117,97,103,101,100,105,115,116,97,110,99,101,114,101,109,101,109,98,\r
-101,114,116,114,97,99,107,105,110,103,112,97,115,115,119,111,114,100,109,111,100\r
-,105,102,105,101,100,115,116,117,100,101,110,116,115,100,105,114,101,99,116,108,\r
-121,102,105,103,104,116,105,110,103,110,111,114,116,104,101,114,110,100,97,116,\r
-97,98,97,115,101,102,101,115,116,105,118,97,108,98,114,101,97,107,105,110,103,\r
-108,111,99,97,116,105,111,110,105,110,116,101,114,110,101,116,100,114,111,112,\r
-100,111,119,110,112,114,97,99,116,105,99,101,101,118,105,100,101,110,99,101,102,\r
-117,110,99,116,105,111,110,109,97,114,114,105,97,103,101,114,101,115,112,111,110\r
-,115,101,112,114,111,98,108,101,109,115,110,101,103,97,116,105,118,101,112,114,\r
-111,103,114,97,109,115,97,110,97,108,121,115,105,115,114,101,108,101,97,115,101,\r
-100,98,97,110,110,101,114,34,62,112,117,114,99,104,97,115,101,112,111,108,105,99\r
-,105,101,115,114,101,103,105,111,110,97,108,99,114,101,97,116,105,118,101,97,114\r
-,103,117,109,101,110,116,98,111,111,107,109,97,114,107,114,101,102,101,114,114,\r
-101,114,99,104,101,109,105,99,97,108,100,105,118,105,115,105,111,110,99,97,108,\r
-108,98,97,99,107,115,101,112,97,114,97,116,101,112,114,111,106,101,99,116,115,99\r
-,111,110,102,108,105,99,116,104,97,114,100,119,97,114,101,105,110,116,101,114,\r
-101,115,116,100,101,108,105,118,101,114,121,109,111,117,110,116,97,105,110,111,\r
-98,116,97,105,110,101,100,61,32,102,97,108,115,101,59,102,111,114,40,118,97,114,\r
-32,97,99,99,101,112,116,101,100,99,97,112,97,99,105,116,121,99,111,109,112,117,\r
-116,101,114,105,100,101,110,116,105,116,121,97,105,114,99,114,97,102,116,101,109\r
-,112,108,111,121,101,100,112,114,111,112,111,115,101,100,100,111,109,101,115,116\r
-,105,99,105,110,99,108,117,100,101,115,112,114,111,118,105,100,101,100,104,111,\r
-115,112,105,116,97,108,118,101,114,116,105,99,97,108,99,111,108,108,97,112,115,\r
-101,97,112,112,114,111,97,99,104,112,97,114,116,110,101,114,115,108,111,103,111,\r
-34,62,60,97,100,97,117,103,104,116,101,114,97,117,116,104,111,114,34,32,99,117,\r
-108,116,117,114,97,108,102,97,109,105,108,105,101,115,47,105,109,97,103,101,115,\r
-47,97,115,115,101,109,98,108,121,112,111,119,101,114,102,117,108,116,101,97,99,\r
-104,105,110,103,102,105,110,105,115,104,101,100,100,105,115,116,114,105,99,116,\r
-99,114,105,116,105,99,97,108,99,103,105,45,98,105,110,47,112,117,114,112,111,115\r
-,101,115,114,101,113,117,105,114,101,115,101,108,101,99,116,105,111,110,98,101,\r
-99,111,109,105,110,103,112,114,111,118,105,100,101,115,97,99,97,100,101,109,105,\r
-99,101,120,101,114,99,105,115,101,97,99,116,117,97,108,108,121,109,101,100,105,\r
-99,105,110,101,99,111,110,115,116,97,110,116,97,99,99,105,100,101,110,116,77,97,\r
-103,97,122,105,110,101,100,111,99,117,109,101,110,116,115,116,97,114,116,105,110\r
-,103,98,111,116,116,111,109,34,62,111,98,115,101,114,118,101,100,58,32,38,113,\r
-117,111,116,59,101,120,116,101,110,100,101,100,112,114,101,118,105,111,117,115,\r
-83,111,102,116,119,97,114,101,99,117,115,116,111,109,101,114,100,101,99,105,115,\r
-105,111,110,115,116,114,101,110,103,116,104,100,101,116,97,105,108,101,100,115,\r
-108,105,103,104,116,108,121,112,108,97,110,110,105,110,103,116,101,120,116,97,\r
-114,101,97,99,117,114,114,101,110,99,121,101,118,101,114,121,111,110,101,115,116\r
-,114,97,105,103,104,116,116,114,97,110,115,102,101,114,112,111,115,105,116,105,\r
-118,101,112,114,111,100,117,99,101,100,104,101,114,105,116,97,103,101,115,104,\r
-105,112,112,105,110,103,97,98,115,111,108,117,116,101,114,101,99,101,105,118,101\r
-,100,114,101,108,101,118,97,110,116,98,117,116,116,111,110,34,32,118,105,111,108\r
-,101,110,99,101,97,110,121,119,104,101,114,101,98,101,110,101,102,105,116,115,\r
-108,97,117,110,99,104,101,100,114,101,99,101,110,116,108,121,97,108,108,105,97,\r
-110,99,101,102,111,108,108,111,119,101,100,109,117,108,116,105,112,108,101,98,\r
-117,108,108,101,116,105,110,105,110,99,108,117,100,101,100,111,99,99,117,114,114\r
-,101,100,105,110,116,101,114,110,97,108,36,40,116,104,105,115,41,46,114,101,112,\r
-117,98,108,105,99,62,60,116,114,62,60,116,100,99,111,110,103,114,101,115,115,114\r
-,101,99,111,114,100,101,100,117,108,116,105,109,97,116,101,115,111,108,117,116,\r
-105,111,110,60,117,108,32,105,100,61,34,100,105,115,99,111,118,101,114,72,111,\r
-109,101,60,47,97,62,119,101,98,115,105,116,101,115,110,101,116,119,111,114,107,\r
-115,97,108,116,104,111,117,103,104,101,110,116,105,114,101,108,121,109,101,109,\r
-111,114,105,97,108,109,101,115,115,97,103,101,115,99,111,110,116,105,110,117,101\r
-,97,99,116,105,118,101,34,62,115,111,109,101,119,104,97,116,118,105,99,116,111,\r
-114,105,97,87,101,115,116,101,114,110,32,32,116,105,116,108,101,61,34,76,111,99,\r
-97,116,105,111,110,99,111,110,116,114,97,99,116,118,105,115,105,116,111,114,115,\r
-68,111,119,110,108,111,97,100,119,105,116,104,111,117,116,32,114,105,103,104,116\r
-,34,62,10,109,101,97,115,117,114,101,115,119,105,100,116,104,32,61,32,118,97,114\r
-,105,97,98,108,101,105,110,118,111,108,118,101,100,118,105,114,103,105,110,105,\r
-97,110,111,114,109,97,108,108,121,104,97,112,112,101,110,101,100,97,99,99,111,\r
-117,110,116,115,115,116,97,110,100,105,110,103,110,97,116,105,111,110,97,108,82,\r
-101,103,105,115,116,101,114,112,114,101,112,97,114,101,100,99,111,110,116,114,\r
-111,108,115,97,99,99,117,114,97,116,101,98,105,114,116,104,100,97,121,115,116,\r
-114,97,116,101,103,121,111,102,102,105,99,105,97,108,103,114,97,112,104,105,99,\r
-115,99,114,105,109,105,110,97,108,112,111,115,115,105,98,108,121,99,111,110,115,\r
-117,109,101,114,80,101,114,115,111,110,97,108,115,112,101,97,107,105,110,103,118\r
-,97,108,105,100,97,116,101,97,99,104,105,101,118,101,100,46,106,112,103,34,32,47\r
-,62,109,97,99,104,105,110,101,115,60,47,104,50,62,10,32,32,107,101,121,119,111,\r
-114,100,115,102,114,105,101,110,100,108,121,98,114,111,116,104,101,114,115,99,\r
-111,109,98,105,110,101,100,111,114,105,103,105,110,97,108,99,111,109,112,111,115\r
-,101,100,101,120,112,101,99,116,101,100,97,100,101,113,117,97,116,101,112,97,107\r
-,105,115,116,97,110,102,111,108,108,111,119,34,32,118,97,108,117,97,98,108,101,\r
-60,47,108,97,98,101,108,62,114,101,108,97,116,105,118,101,98,114,105,110,103,105\r
-,110,103,105,110,99,114,101,97,115,101,103,111,118,101,114,110,111,114,112,108,\r
-117,103,105,110,115,47,76,105,115,116,32,111,102,32,72,101,97,100,101,114,34,62,\r
-34,32,110,97,109,101,61,34,32,40,38,113,117,111,116,59,103,114,97,100,117,97,116\r
-,101,60,47,104,101,97,100,62,10,99,111,109,109,101,114,99,101,109,97,108,97,121,\r
-115,105,97,100,105,114,101,99,116,111,114,109,97,105,110,116,97,105,110,59,104,\r
-101,105,103,104,116,58,115,99,104,101,100,117,108,101,99,104,97,110,103,105,110,\r
-103,98,97,99,107,32,116,111,32,99,97,116,104,111,108,105,99,112,97,116,116,101,\r
-114,110,115,99,111,108,111,114,58,32,35,103,114,101,97,116,101,115,116,115,117,\r
-112,112,108,105,101,115,114,101,108,105,97,98,108,101,60,47,117,108,62,10,9,9,60\r
-,115,101,108,101,99,116,32,99,105,116,105,122,101,110,115,99,108,111,116,104,105\r
-,110,103,119,97,116,99,104,105,110,103,60,108,105,32,105,100,61,34,115,112,101,\r
-99,105,102,105,99,99,97,114,114,121,105,110,103,115,101,110,116,101,110,99,101,\r
-60,99,101,110,116,101,114,62,99,111,110,116,114,97,115,116,116,104,105,110,107,\r
-105,110,103,99,97,116,99,104,40,101,41,115,111,117,116,104,101,114,110,77,105,99\r
-,104,97,101,108,32,109,101,114,99,104,97,110,116,99,97,114,111,117,115,101,108,\r
-112,97,100,100,105,110,103,58,105,110,116,101,114,105,111,114,46,115,112,108,105\r
-,116,40,34,108,105,122,97,116,105,111,110,79,99,116,111,98,101,114,32,41,123,114\r
-,101,116,117,114,110,105,109,112,114,111,118,101,100,45,45,38,103,116,59,10,10,\r
-99,111,118,101,114,97,103,101,99,104,97,105,114,109,97,110,46,112,110,103,34,32,\r
-47,62,115,117,98,106,101,99,116,115,82,105,99,104,97,114,100,32,119,104,97,116,\r
-101,118,101,114,112,114,111,98,97,98,108,121,114,101,99,111,118,101,114,121,98,\r
-97,115,101,98,97,108,108,106,117,100,103,109,101,110,116,99,111,110,110,101,99,\r
-116,46,46,99,115,115,34,32,47,62,32,119,101,98,115,105,116,101,114,101,112,111,\r
-114,116,101,100,100,101,102,97,117,108,116,34,47,62,60,47,97,62,13,10,101,108,\r
-101,99,116,114,105,99,115,99,111,116,108,97,110,100,99,114,101,97,116,105,111,\r
-110,113,117,97,110,116,105,116,121,46,32,73,83,66,78,32,48,100,105,100,32,110,\r
-111,116,32,105,110,115,116,97,110,99,101,45,115,101,97,114,99,104,45,34,32,108,\r
-97,110,103,61,34,115,112,101,97,107,101,114,115,67,111,109,112,117,116,101,114,\r
-99,111,110,116,97,105,110,115,97,114,99,104,105,118,101,115,109,105,110,105,115,\r
-116,101,114,114,101,97,99,116,105,111,110,100,105,115,99,111,117,110,116,73,116,\r
-97,108,105,97,110,111,99,114,105,116,101,114,105,97,115,116,114,111,110,103,108,\r
-121,58,32,39,104,116,116,112,58,39,115,99,114,105,112,116,39,99,111,118,101,114,\r
-105,110,103,111,102,102,101,114,105,110,103,97,112,112,101,97,114,101,100,66,114\r
-,105,116,105,115,104,32,105,100,101,110,116,105,102,121,70,97,99,101,98,111,111,\r
-107,110,117,109,101,114,111,117,115,118,101,104,105,99,108,101,115,99,111,110,99\r
-,101,114,110,115,65,109,101,114,105,99,97,110,104,97,110,100,108,105,110,103,100\r
-,105,118,32,105,100,61,34,87,105,108,108,105,97,109,32,112,114,111,118,105,100,\r
-101,114,95,99,111,110,116,101,110,116,97,99,99,117,114,97,99,121,115,101,99,116,\r
-105,111,110,32,97,110,100,101,114,115,111,110,102,108,101,120,105,98,108,101,67,\r
-97,116,101,103,111,114,121,108,97,119,114,101,110,99,101,60,115,99,114,105,112,\r
-116,62,108,97,121,111,117,116,61,34,97,112,112,114,111,118,101,100,32,109,97,120\r
-,105,109,117,109,104,101,97,100,101,114,34,62,60,47,116,97,98,108,101,62,83,101,\r
-114,118,105,99,101,115,104,97,109,105,108,116,111,110,99,117,114,114,101,110,116\r
-,32,99,97,110,97,100,105,97,110,99,104,97,110,110,101,108,115,47,116,104,101,109\r
-,101,115,47,47,97,114,116,105,99,108,101,111,112,116,105,111,110,97,108,112,111,\r
-114,116,117,103,97,108,118,97,108,117,101,61,34,34,105,110,116,101,114,118,97,\r
-108,119,105,114,101,108,101,115,115,101,110,116,105,116,108,101,100,97,103,101,\r
-110,99,105,101,115,83,101,97,114,99,104,34,32,109,101,97,115,117,114,101,100,116\r
-,104,111,117,115,97,110,100,115,112,101,110,100,105,110,103,38,104,101,108,108,\r
-105,112,59,110,101,119,32,68,97,116,101,34,32,115,105,122,101,61,34,112,97,103,\r
-101,78,97,109,101,109,105,100,100,108,101,34,32,34,32,47,62,60,47,97,62,104,105,\r
-100,100,101,110,34,62,115,101,113,117,101,110,99,101,112,101,114,115,111,110,97,\r
-108,111,118,101,114,102,108,111,119,111,112,105,110,105,111,110,115,105,108,108,\r
-105,110,111,105,115,108,105,110,107,115,34,62,10,9,60,116,105,116,108,101,62,118\r
-,101,114,115,105,111,110,115,115,97,116,117,114,100,97,121,116,101,114,109,105,\r
-110,97,108,105,116,101,109,112,114,111,112,101,110,103,105,110,101,101,114,115,\r
-101,99,116,105,111,110,115,100,101,115,105,103,110,101,114,112,114,111,112,111,\r
-115,97,108,61,34,102,97,108,115,101,34,69,115,112,97,195,177,111,108,114,101,108\r
-,101,97,115,101,115,115,117,98,109,105,116,34,32,101,114,38,113,117,111,116,59,\r
-97,100,100,105,116,105,111,110,115,121,109,112,116,111,109,115,111,114,105,101,\r
-110,116,101,100,114,101,115,111,117,114,99,101,114,105,103,104,116,34,62,60,112,\r
-108,101,97,115,117,114,101,115,116,97,116,105,111,110,115,104,105,115,116,111,\r
-114,121,46,108,101,97,118,105,110,103,32,32,98,111,114,100,101,114,61,99,111,110\r
-,116,101,110,116,115,99,101,110,116,101,114,34,62,46,10,10,83,111,109,101,32,100\r
-,105,114,101,99,116,101,100,115,117,105,116,97,98,108,101,98,117,108,103,97,114,\r
-105,97,46,115,104,111,119,40,41,59,100,101,115,105,103,110,101,100,71,101,110,\r
-101,114,97,108,32,99,111,110,99,101,112,116,115,69,120,97,109,112,108,101,115,\r
-119,105,108,108,105,97,109,115,79,114,105,103,105,110,97,108,34,62,60,115,112,97\r
-,110,62,115,101,97,114,99,104,34,62,111,112,101,114,97,116,111,114,114,101,113,\r
-117,101,115,116,115,97,32,38,113,117,111,116,59,97,108,108,111,119,105,110,103,\r
-68,111,99,117,109,101,110,116,114,101,118,105,115,105,111,110,46,32,10,10,84,104\r
-,101,32,121,111,117,114,115,101,108,102,67,111,110,116,97,99,116,32,109,105,99,\r
-104,105,103,97,110,69,110,103,108,105,115,104,32,99,111,108,117,109,98,105,97,\r
-112,114,105,111,114,105,116,121,112,114,105,110,116,105,110,103,100,114,105,110,\r
-107,105,110,103,102,97,99,105,108,105,116,121,114,101,116,117,114,110,101,100,67\r
-,111,110,116,101,110,116,32,111,102,102,105,99,101,114,115,82,117,115,115,105,97\r
-,110,32,103,101,110,101,114,97,116,101,45,56,56,53,57,45,49,34,105,110,100,105,\r
-99,97,116,101,102,97,109,105,108,105,97,114,32,113,117,97,108,105,116,121,109,97\r
-,114,103,105,110,58,48,32,99,111,110,116,101,110,116,118,105,101,119,112,111,114\r
-,116,99,111,110,116,97,99,116,115,45,116,105,116,108,101,34,62,112,111,114,116,\r
-97,98,108,101,46,108,101,110,103,116,104,32,101,108,105,103,105,98,108,101,105,\r
-110,118,111,108,118,101,115,97,116,108,97,110,116,105,99,111,110,108,111,97,100,\r
-61,34,100,101,102,97,117,108,116,46,115,117,112,112,108,105,101,100,112,97,121,\r
-109,101,110,116,115,103,108,111,115,115,97,114,121,10,10,65,102,116,101,114,32,\r
-103,117,105,100,97,110,99,101,60,47,116,100,62,60,116,100,101,110,99,111,100,105\r
-,110,103,109,105,100,100,108,101,34,62,99,97,109,101,32,116,111,32,100,105,115,\r
-112,108,97,121,115,115,99,111,116,116,105,115,104,106,111,110,97,116,104,97,110,\r
-109,97,106,111,114,105,116,121,119,105,100,103,101,116,115,46,99,108,105,110,105\r
-,99,97,108,116,104,97,105,108,97,110,100,116,101,97,99,104,101,114,115,60,104,\r
-101,97,100,62,10,9,97,102,102,101,99,116,101,100,115,117,112,112,111,114,116,115\r
-,112,111,105,110,116,101,114,59,116,111,83,116,114,105,110,103,60,47,115,109,97,\r
-108,108,62,111,107,108,97,104,111,109,97,119,105,108,108,32,98,101,32,105,110,\r
-118,101,115,116,111,114,48,34,32,97,108,116,61,34,104,111,108,105,100,97,121,115\r
-,82,101,115,111,117,114,99,101,108,105,99,101,110,115,101,100,32,40,119,104,105,\r
-99,104,32,46,32,65,102,116,101,114,32,99,111,110,115,105,100,101,114,118,105,115\r
-,105,116,105,110,103,101,120,112,108,111,114,101,114,112,114,105,109,97,114,121,\r
-32,115,101,97,114,99,104,34,32,97,110,100,114,111,105,100,34,113,117,105,99,107,\r
-108,121,32,109,101,101,116,105,110,103,115,101,115,116,105,109,97,116,101,59,114\r
-,101,116,117,114,110,32,59,99,111,108,111,114,58,35,32,104,101,105,103,104,116,\r
-61,97,112,112,114,111,118,97,108,44,32,38,113,117,111,116,59,32,99,104,101,99,\r
-107,101,100,46,109,105,110,46,106,115,34,109,97,103,110,101,116,105,99,62,60,47,\r
-97,62,60,47,104,102,111,114,101,99,97,115,116,46,32,87,104,105,108,101,32,116,\r
-104,117,114,115,100,97,121,100,118,101,114,116,105,115,101,38,101,97,99,117,116,\r
-101,59,104,97,115,67,108,97,115,115,101,118,97,108,117,97,116,101,111,114,100,\r
-101,114,105,110,103,101,120,105,115,116,105,110,103,112,97,116,105,101,110,116,\r
-115,32,79,110,108,105,110,101,32,99,111,108,111,114,97,100,111,79,112,116,105,\r
-111,110,115,34,99,97,109,112,98,101,108,108,60,33,45,45,32,101,110,100,60,47,115\r
-,112,97,110,62,60,60,98,114,32,47,62,13,10,95,112,111,112,117,112,115,124,115,99\r
-,105,101,110,99,101,115,44,38,113,117,111,116,59,32,113,117,97,108,105,116,121,\r
-32,87,105,110,100,111,119,115,32,97,115,115,105,103,110,101,100,104,101,105,103,\r
-104,116,58,32,60,98,32,99,108,97,115,115,108,101,38,113,117,111,116,59,32,118,97\r
-,108,117,101,61,34,32,67,111,109,112,97,110,121,101,120,97,109,112,108,101,115,\r
-60,105,102,114,97,109,101,32,98,101,108,105,101,118,101,115,112,114,101,115,101,\r
-110,116,115,109,97,114,115,104,97,108,108,112,97,114,116,32,111,102,32,112,114,\r
-111,112,101,114,108,121,41,46,10,10,84,104,101,32,116,97,120,111,110,111,109,121\r
-,109,117,99,104,32,111,102,32,60,47,115,112,97,110,62,10,34,32,100,97,116,97,45,\r
-115,114,116,117,103,117,195,170,115,115,99,114,111,108,108,84,111,32,112,114,111\r
-,106,101,99,116,60,104,101,97,100,62,13,10,97,116,116,111,114,110,101,121,101,\r
-109,112,104,97,115,105,115,115,112,111,110,115,111,114,115,102,97,110,99,121,98,\r
-111,120,119,111,114,108,100,39,115,32,119,105,108,100,108,105,102,101,99,104,101\r
-,99,107,101,100,61,115,101,115,115,105,111,110,115,112,114,111,103,114,97,109,\r
-109,112,120,59,102,111,110,116,45,32,80,114,111,106,101,99,116,106,111,117,114,\r
-110,97,108,115,98,101,108,105,101,118,101,100,118,97,99,97,116,105,111,110,116,\r
-104,111,109,112,115,111,110,108,105,103,104,116,105,110,103,97,110,100,32,116,\r
-104,101,32,115,112,101,99,105,97,108,32,98,111,114,100,101,114,61,48,99,104,101,\r
-99,107,105,110,103,60,47,116,98,111,100,121,62,60,98,117,116,116,111,110,32,67,\r
-111,109,112,108,101,116,101,99,108,101,97,114,102,105,120,10,60,104,101,97,100,\r
-62,10,97,114,116,105,99,108,101,32,60,115,101,99,116,105,111,110,102,105,110,100\r
-,105,110,103,115,114,111,108,101,32,105,110,32,112,111,112,117,108,97,114,32,32,\r
-79,99,116,111,98,101,114,119,101,98,115,105,116,101,32,101,120,112,111,115,117,\r
-114,101,117,115,101,100,32,116,111,32,32,99,104,97,110,103,101,115,111,112,101,\r
-114,97,116,101,100,99,108,105,99,107,105,110,103,101,110,116,101,114,105,110,103\r
-,99,111,109,109,97,110,100,115,105,110,102,111,114,109,101,100,32,110,117,109,98\r
-,101,114,115,32,32,60,47,100,105,118,62,99,114,101,97,116,105,110,103,111,110,83\r
-,117,98,109,105,116,109,97,114,121,108,97,110,100,99,111,108,108,101,103,101,115\r
-,97,110,97,108,121,116,105,99,108,105,115,116,105,110,103,115,99,111,110,116,97,\r
-99,116,46,108,111,103,103,101,100,73,110,97,100,118,105,115,111,114,121,115,105,\r
-98,108,105,110,103,115,99,111,110,116,101,110,116,34,115,38,113,117,111,116,59,\r
-41,115,46,32,84,104,105,115,32,112,97,99,107,97,103,101,115,99,104,101,99,107,98\r
-,111,120,115,117,103,103,101,115,116,115,112,114,101,103,110,97,110,116,116,111,\r
-109,111,114,114,111,119,115,112,97,99,105,110,103,61,105,99,111,110,46,112,110,\r
-103,106,97,112,97,110,101,115,101,99,111,100,101,98,97,115,101,98,117,116,116,\r
-111,110,34,62,103,97,109,98,108,105,110,103,115,117,99,104,32,97,115,32,44,32,\r
-119,104,105,108,101,32,60,47,115,112,97,110,62,32,109,105,115,115,111,117,114,\r
-105,115,112,111,114,116,105,110,103,116,111,112,58,49,112,120,32,46,60,47,115,\r
-112,97,110,62,116,101,110,115,105,111,110,115,119,105,100,116,104,61,34,50,108,\r
-97,122,121,108,111,97,100,110,111,118,101,109,98,101,114,117,115,101,100,32,105,\r
-110,32,104,101,105,103,104,116,61,34,99,114,105,112,116,34,62,10,38,110,98,115,\r
-112,59,60,47,60,116,114,62,60,116,100,32,104,101,105,103,104,116,58,50,47,112,\r
-114,111,100,117,99,116,99,111,117,110,116,114,121,32,105,110,99,108,117,100,101,\r
-32,102,111,111,116,101,114,34,32,38,108,116,59,33,45,45,32,116,105,116,108,101,\r
-34,62,60,47,106,113,117,101,114,121,46,60,47,102,111,114,109,62,10,40,231,174,\r
-128,228,189,147,41,40,231,185,129,233,171,148,41,104,114,118,97,116,115,107,105,\r
-105,116,97,108,105,97,110,111,114,111,109,195,162,110,196,131,116,195,188,114,\r
-107,195,167,101,216,167,216,177,216,175,217,136,116,97,109,98,105,195,169,110,\r
-110,111,116,105,99,105,97,115,109,101,110,115,97,106,101,115,112,101,114,115,111\r
-,110,97,115,100,101,114,101,99,104,111,115,110,97,99,105,111,110,97,108,115,101,\r
-114,118,105,99,105,111,99,111,110,116,97,99,116,111,117,115,117,97,114,105,111,\r
-115,112,114,111,103,114,97,109,97,103,111,98,105,101,114,110,111,101,109,112,114\r
-,101,115,97,115,97,110,117,110,99,105,111,115,118,97,108,101,110,99,105,97,99,\r
-111,108,111,109,98,105,97,100,101,115,112,117,195,169,115,100,101,112,111,114,\r
-116,101,115,112,114,111,121,101,99,116,111,112,114,111,100,117,99,116,111,112,\r
-195,186,98,108,105,99,111,110,111,115,111,116,114,111,115,104,105,115,116,111,\r
-114,105,97,112,114,101,115,101,110,116,101,109,105,108,108,111,110,101,115,109,\r
-101,100,105,97,110,116,101,112,114,101,103,117,110,116,97,97,110,116,101,114,105\r
-,111,114,114,101,99,117,114,115,111,115,112,114,111,98,108,101,109,97,115,97,110\r
-,116,105,97,103,111,110,117,101,115,116,114,111,115,111,112,105,110,105,195,179,\r
-110,105,109,112,114,105,109,105,114,109,105,101,110,116,114,97,115,97,109,195,\r
-169,114,105,99,97,118,101,110,100,101,100,111,114,115,111,99,105,101,100,97,100,\r
-114,101,115,112,101,99,116,111,114,101,97,108,105,122,97,114,114,101,103,105,115\r
-,116,114,111,112,97,108,97,98,114,97,115,105,110,116,101,114,195,169,115,101,110\r
-,116,111,110,99,101,115,101,115,112,101,99,105,97,108,109,105,101,109,98,114,111\r
-,115,114,101,97,108,105,100,97,100,99,195,179,114,100,111,98,97,122,97,114,97,\r
-103,111,122,97,112,195,161,103,105,110,97,115,115,111,99,105,97,108,101,115,98,\r
-108,111,113,117,101,97,114,103,101,115,116,105,195,179,110,97,108,113,117,105,\r
-108,101,114,115,105,115,116,101,109,97,115,99,105,101,110,99,105,97,115,99,111,\r
-109,112,108,101,116,111,118,101,114,115,105,195,179,110,99,111,109,112,108,101,\r
-116,97,101,115,116,117,100,105,111,115,112,195,186,98,108,105,99,97,111,98,106,\r
-101,116,105,118,111,97,108,105,99,97,110,116,101,98,117,115,99,97,100,111,114,99\r
-,97,110,116,105,100,97,100,101,110,116,114,97,100,97,115,97,99,99,105,111,110,\r
-101,115,97,114,99,104,105,118,111,115,115,117,112,101,114,105,111,114,109,97,121\r
-,111,114,195,173,97,97,108,101,109,97,110,105,97,102,117,110,99,105,195,179,110,\r
-195,186,108,116,105,109,111,115,104,97,99,105,101,110,100,111,97,113,117,101,108\r
-,108,111,115,101,100,105,99,105,195,179,110,102,101,114,110,97,110,100,111,97,\r
-109,98,105,101,110,116,101,102,97,99,101,98,111,111,107,110,117,101,115,116,114,\r
-97,115,99,108,105,101,110,116,101,115,112,114,111,99,101,115,111,115,98,97,115,\r
-116,97,110,116,101,112,114,101,115,101,110,116,97,114,101,112,111,114,116,97,114\r
-,99,111,110,103,114,101,115,111,112,117,98,108,105,99,97,114,99,111,109,101,114,\r
-99,105,111,99,111,110,116,114,97,116,111,106,195,179,118,101,110,101,115,100,105\r
-,115,116,114,105,116,111,116,195,169,99,110,105,99,97,99,111,110,106,117,110,116\r
-,111,101,110,101,114,103,195,173,97,116,114,97,98,97,106,97,114,97,115,116,117,\r
-114,105,97,115,114,101,99,105,101,110,116,101,117,116,105,108,105,122,97,114,98,\r
-111,108,101,116,195,173,110,115,97,108,118,97,100,111,114,99,111,114,114,101,99,\r
-116,97,116,114,97,98,97,106,111,115,112,114,105,109,101,114,111,115,110,101,103,\r
-111,99,105,111,115,108,105,98,101,114,116,97,100,100,101,116,97,108,108,101,115,\r
-112,97,110,116,97,108,108,97,112,114,195,179,120,105,109,111,97,108,109,101,114,\r
-195,173,97,97,110,105,109,97,108,101,115,113,117,105,195,169,110,101,115,99,111,\r
-114,97,122,195,179,110,115,101,99,99,105,195,179,110,98,117,115,99,97,110,100,\r
-111,111,112,99,105,111,110,101,115,101,120,116,101,114,105,111,114,99,111,110,99\r
-,101,112,116,111,116,111,100,97,118,195,173,97,103,97,108,101,114,195,173,97,101\r
-,115,99,114,105,98,105,114,109,101,100,105,99,105,110,97,108,105,99,101,110,99,\r
-105,97,99,111,110,115,117,108,116,97,97,115,112,101,99,116,111,115,99,114,195,\r
-173,116,105,99,97,100,195,179,108,97,114,101,115,106,117,115,116,105,99,105,97,\r
-100,101,98,101,114,195,161,110,112,101,114,195,173,111,100,111,110,101,99,101,\r
-115,105,116,97,109,97,110,116,101,110,101,114,112,101,113,117,101,195,177,111,\r
-114,101,99,105,98,105,100,97,116,114,105,98,117,110,97,108,116,101,110,101,114,\r
-105,102,101,99,97,110,99,105,195,179,110,99,97,110,97,114,105,97,115,100,101,115\r
-,99,97,114,103,97,100,105,118,101,114,115,111,115,109,97,108,108,111,114,99,97,\r
-114,101,113,117,105,101,114,101,116,195,169,99,110,105,99,111,100,101,98,101,114\r
-,195,173,97,118,105,118,105,101,110,100,97,102,105,110,97,110,122,97,115,97,100,\r
-101,108,97,110,116,101,102,117,110,99,105,111,110,97,99,111,110,115,101,106,111,\r
-115,100,105,102,195,173,99,105,108,99,105,117,100,97,100,101,115,97,110,116,105,\r
-103,117,97,115,97,118,97,110,122,97,100,97,116,195,169,114,109,105,110,111,117,\r
-110,105,100,97,100,101,115,115,195,161,110,99,104,101,122,99,97,109,112,97,195,\r
-177,97,115,111,102,116,111,110,105,99,114,101,118,105,115,116,97,115,99,111,110,\r
-116,105,101,110,101,115,101,99,116,111,114,101,115,109,111,109,101,110,116,111,\r
-115,102,97,99,117,108,116,97,100,99,114,195,169,100,105,116,111,100,105,118,101,\r
-114,115,97,115,115,117,112,117,101,115,116,111,102,97,99,116,111,114,101,115,115\r
-,101,103,117,110,100,111,115,112,101,113,117,101,195,177,97,208,179,208,190,208,\r
-180,208,176,208,181,209,129,208,187,208,184,208,181,209,129,209,130,209,140,208,\r
-177,209,139,208,187,208,190,208,177,209,139,209,130,209,140,209,141,209,130,208,\r
-190,208,188,208,149,209,129,208,187,208,184,209,130,208,190,208,179,208,190,208,\r
-188,208,181,208,189,209,143,208,178,209,129,208,181,209,133,209,141,209,130,208,\r
-190,208,185,208,180,208,176,208,182,208,181,208,177,209,139,208,187,208,184,208,\r
-179,208,190,208,180,209,131,208,180,208,181,208,189,209,140,209,141,209,130,208,\r
-190,209,130,208,177,209,139,208,187,208,176,209,129,208,181,208,177,209,143,208,\r
-190,208,180,208,184,208,189,209,129,208,181,208,177,208,181,208,189,208,176,208,\r
-180,208,190,209,129,208,176,208,185,209,130,209,132,208,190,209,130,208,190,208,\r
-189,208,181,208,179,208,190,209,129,208,178,208,190,208,184,209,129,208,178,208,\r
-190,208,185,208,184,208,179,209,128,209,139,209,130,208,190,208,182,208,181,208,\r
-178,209,129,208,181,208,188,209,129,208,178,208,190,209,142,208,187,208,184,209,\r
-136,209,140,209,141,209,130,208,184,209,133,208,191,208,190,208,186,208,176,208,\r
-180,208,189,208,181,208,185,208,180,208,190,208,188,208,176,208,188,208,184,209,\r
-128,208,176,208,187,208,184,208,177,208,190,209,130,208,181,208,188,209,131,209,\r
-133,208,190,209,130,209,143,208,180,208,178,209,131,209,133,209,129,208,181,209,\r
-130,208,184,208,187,209,142,208,180,208,184,208,180,208,181,208,187,208,190,208,\r
-188,208,184,209,128,208,181,209,130,208,181,208,177,209,143,209,129,208,178,208,\r
-190,208,181,208,178,208,184,208,180,208,181,209,135,208,181,208,179,208,190,209,\r
-141,209,130,208,184,208,188,209,129,209,135,208,181,209,130,209,130,208,181,208,\r
-188,209,139,209,134,208,181,208,189,209,139,209,129,209,130,208,176,208,187,208,\r
-178,208,181,208,180,209,140,209,130,208,181,208,188,208,181,208,178,208,190,208,\r
-180,209,139,209,130,208,181,208,177,208,181,208,178,209,139,209,136,208,181,208,\r
-189,208,176,208,188,208,184,209,130,208,184,208,191,208,176,209,130,208,190,208,\r
-188,209,131,208,191,209,128,208,176,208,178,208,187,208,184,209,134,208,176,208,\r
-190,208,180,208,189,208,176,208,179,208,190,208,180,209,139,208,183,208,189,208,\r
-176,209,142,208,188,208,190,208,179,209,131,208,180,209,128,209,131,208,179,208,\r
-178,209,129,208,181,208,185,208,184,208,180,208,181,209,130,208,186,208,184,208,\r
-189,208,190,208,190,208,180,208,189,208,190,208,180,208,181,208,187,208,176,208,\r
-180,208,181,208,187,208,181,209,129,209,128,208,190,208,186,208,184,209,142,208,\r
-189,209,143,208,178,208,181,209,129,209,140,208,149,209,129,209,130,209,140,209,\r
-128,208,176,208,183,208,176,208,189,208,176,209,136,208,184,216,167,217,132,217,\r
-132,217,135,216,167,217,132,216,170,217,138,216,172,217,133,217,138,216,185,216,\r
-174,216,167,216,181,216,169,216,167,217,132,216,176,217,138,216,185,217,132,217,\r
-138,217,135,216,172,216,175,217,138,216,175,216,167,217,132,216,162,217,134,216,\r
-167,217,132,216,177,216,175,216,170,216,173,217,131,217,133,216,181,217,129,216,\r
-173,216,169,217,131,216,167,217,134,216,170,216,167,217,132,217,132,217,138,217,\r
-138,217,131,217,136,217,134,216,180,216,168,217,131,216,169,217,129,217,138,217,\r
-135,216,167,216,168,217,134,216,167,216,170,216,173,217,136,216,167,216,161,216,\r
-163,217,131,216,171,216,177,216,174,217,132,216,167,217,132,216,167,217,132,216,\r
-173,216,168,216,175,217,132,217,138,217,132,216,175,216,177,217,136,216,179,216,\r
-167,216,182,216,186,216,183,216,170,217,131,217,136,217,134,217,135,217,134,216,\r
-167,217,131,216,179,216,167,216,173,216,169,217,134,216,167,216,175,217,138,216,\r
-167,217,132,216,183,216,168,216,185,217,132,217,138,217,131,216,180,217,131,216,\r
-177,216,167,217,138,217,133,217,131,217,134,217,133,217,134,217,135,216,167,216,\r
-180,216,177,217,131,216,169,216,177,216,166,217,138,216,179,217,134,216,180,217,\r
-138,216,183,217,133,216,167,216,176,216,167,216,167,217,132,217,129,217,134,216,\r
-180,216,168,216,167,216,168,216,170,216,185,216,168,216,177,216,177,216,173,217,\r
-133,216,169,217,131,216,167,217,129,216,169,217,138,217,130,217,136,217,132,217,\r
-133,216,177,217,131,216,178,217,131,217,132,217,133,216,169,216,163,216,173,217,\r
-133,216,175,217,130,217,132,216,168,217,138,217,138,216,185,217,134,217,138,216,\r
-181,217,136,216,177,216,169,216,183,216,177,217,138,217,130,216,180,216,167,216,\r
-177,217,131,216,172,217,136,216,167,217,132,216,163,216,174,216,177,217,137,217,\r
-133,216,185,217,134,216,167,216,167,216,168,216,173,216,171,216,185,216,177,217,\r
-136,216,182,216,168,216,180,217,131,217,132,217,133,216,179,216,172,217,132,216,\r
-168,217,134,216,167,217,134,216,174,216,167,217,132,216,175,217,131,216,170,216,\r
-167,216,168,217,131,217,132,217,138,216,169,216,168,216,175,217,136,217,134,216,\r
-163,217,138,216,182,216,167,217,138,217,136,216,172,216,175,217,129,216,177,217,\r
-138,217,130,217,131,216,170,216,168,216,170,216,163,217,129,216,182,217,132,217,\r
-133,216,183,216,168,216,174,216,167,217,131,216,171,216,177,216,168,216,167,216,\r
-177,217,131,216,167,217,129,216,182,217,132,216,167,216,173,217,132,217,137,217,\r
-134,217,129,216,179,217,135,216,163,217,138,216,167,217,133,216,177,216,175,217,\r
-136,216,175,216,163,217,134,217,135,216,167,216,175,217,138,217,134,216,167,216,\r
-167,217,132,216,167,217,134,217,133,216,185,216,177,216,182,216,170,216,185,217,\r
-132,217,133,216,175,216,167,216,174,217,132,217,133,217,133,217,131,217,134,0,0,\r
-0,0,0,0,0,0,1,0,1,0,1,0,1,0,2,0,2,0,2,0,2,0,4,0,4,0,4,0,4,0,0,1,2,3,4,5,6,7,7,6,\r
-5,4,3,2,1,0,8,9,10,11,12,13,14,15,15,14,13,12,11,10,9,8,16,17,18,19,20,21,22,23,\r
-23,22,21,20,19,18,17,16,24,25,26,27,28,29,30,31,31,30,29,28,27,26,25,24,255,255,\r
-255,255,0,0,0,0,0,0,0,0,255,255,255,255,1,0,0,0,2,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,\r
-3,0,0,0,255,255,0,1,0,0,0,1,0,0,255,255,0,1,0,0,0,8,0,8,0,8,0,8,0,0,0,1,0,2,0,3,\r
-0,4,0,5,0,6,0,7,114,101,115,111,117,114,99,101,115,99,111,117,110,116,114,105,\r
-101,115,113,117,101,115,116,105,111,110,115,101,113,117,105,112,109,101,110,116,\r
-99,111,109,109,117,110,105,116,121,97,118,97,105,108,97,98,108,101,104,105,103,\r
-104,108,105,103,104,116,68,84,68,47,120,104,116,109,108,109,97,114,107,101,116,\r
-105,110,103,107,110,111,119,108,101,100,103,101,115,111,109,101,116,104,105,110,\r
-103,99,111,110,116,97,105,110,101,114,100,105,114,101,99,116,105,111,110,115,117\r
-,98,115,99,114,105,98,101,97,100,118,101,114,116,105,115,101,99,104,97,114,97,99\r
-,116,101,114,34,32,118,97,108,117,101,61,34,60,47,115,101,108,101,99,116,62,65,\r
-117,115,116,114,97,108,105,97,34,32,99,108,97,115,115,61,34,115,105,116,117,97,\r
-116,105,111,110,97,117,116,104,111,114,105,116,121,102,111,108,108,111,119,105,\r
-110,103,112,114,105,109,97,114,105,108,121,111,112,101,114,97,116,105,111,110,99\r
-,104,97,108,108,101,110,103,101,100,101,118,101,108,111,112,101,100,97,110,111,\r
-110,121,109,111,117,115,102,117,110,99,116,105,111,110,32,102,117,110,99,116,105\r
-,111,110,115,99,111,109,112,97,110,105,101,115,115,116,114,117,99,116,117,114,\r
-101,97,103,114,101,101,109,101,110,116,34,32,116,105,116,108,101,61,34,112,111,\r
-116,101,110,116,105,97,108,101,100,117,99,97,116,105,111,110,97,114,103,117,109,\r
-101,110,116,115,115,101,99,111,110,100,97,114,121,99,111,112,121,114,105,103,104\r
-,116,108,97,110,103,117,97,103,101,115,101,120,99,108,117,115,105,118,101,99,111\r
-,110,100,105,116,105,111,110,60,47,102,111,114,109,62,13,10,115,116,97,116,101,\r
-109,101,110,116,97,116,116,101,110,116,105,111,110,66,105,111,103,114,97,112,104\r
-,121,125,32,101,108,115,101,32,123,10,115,111,108,117,116,105,111,110,115,119,\r
-104,101,110,32,116,104,101,32,65,110,97,108,121,116,105,99,115,116,101,109,112,\r
-108,97,116,101,115,100,97,110,103,101,114,111,117,115,115,97,116,101,108,108,105\r
-,116,101,100,111,99,117,109,101,110,116,115,112,117,98,108,105,115,104,101,114,\r
-105,109,112,111,114,116,97,110,116,112,114,111,116,111,116,121,112,101,105,110,\r
-102,108,117,101,110,99,101,38,114,97,113,117,111,59,60,47,101,102,102,101,99,116\r
-,105,118,101,103,101,110,101,114,97,108,108,121,116,114,97,110,115,102,111,114,\r
-109,98,101,97,117,116,105,102,117,108,116,114,97,110,115,112,111,114,116,111,114\r
-,103,97,110,105,122,101,100,112,117,98,108,105,115,104,101,100,112,114,111,109,\r
-105,110,101,110,116,117,110,116,105,108,32,116,104,101,116,104,117,109,98,110,97\r
-,105,108,78,97,116,105,111,110,97,108,32,46,102,111,99,117,115,40,41,59,111,118,\r
-101,114,32,116,104,101,32,109,105,103,114,97,116,105,111,110,97,110,110,111,117,\r
-110,99,101,100,102,111,111,116,101,114,34,62,10,101,120,99,101,112,116,105,111,\r
-110,108,101,115,115,32,116,104,97,110,101,120,112,101,110,115,105,118,101,102,\r
-111,114,109,97,116,105,111,110,102,114,97,109,101,119,111,114,107,116,101,114,\r
-114,105,116,111,114,121,110,100,105,99,97,116,105,111,110,99,117,114,114,101,110\r
-,116,108,121,99,108,97,115,115,78,97,109,101,99,114,105,116,105,99,105,115,109,\r
-116,114,97,100,105,116,105,111,110,101,108,115,101,119,104,101,114,101,65,108,\r
-101,120,97,110,100,101,114,97,112,112,111,105,110,116,101,100,109,97,116,101,114\r
-,105,97,108,115,98,114,111,97,100,99,97,115,116,109,101,110,116,105,111,110,101,\r
-100,97,102,102,105,108,105,97,116,101,60,47,111,112,116,105,111,110,62,116,114,\r
-101,97,116,109,101,110,116,100,105,102,102,101,114,101,110,116,47,100,101,102,97\r
-,117,108,116,46,80,114,101,115,105,100,101,110,116,111,110,99,108,105,99,107,61,\r
-34,98,105,111,103,114,97,112,104,121,111,116,104,101,114,119,105,115,101,112,101\r
-,114,109,97,110,101,110,116,70,114,97,110,195,167,97,105,115,72,111,108,108,121,\r
-119,111,111,100,101,120,112,97,110,115,105,111,110,115,116,97,110,100,97,114,100\r
-,115,60,47,115,116,121,108,101,62,10,114,101,100,117,99,116,105,111,110,68,101,\r
-99,101,109,98,101,114,32,112,114,101,102,101,114,114,101,100,67,97,109,98,114,\r
-105,100,103,101,111,112,112,111,110,101,110,116,115,66,117,115,105,110,101,115,\r
-115,32,99,111,110,102,117,115,105,111,110,62,10,60,116,105,116,108,101,62,112,\r
-114,101,115,101,110,116,101,100,101,120,112,108,97,105,110,101,100,100,111,101,\r
-115,32,110,111,116,32,119,111,114,108,100,119,105,100,101,105,110,116,101,114,\r
-102,97,99,101,112,111,115,105,116,105,111,110,115,110,101,119,115,112,97,112,101\r
-,114,60,47,116,97,98,108,101,62,10,109,111,117,110,116,97,105,110,115,108,105,\r
-107,101,32,116,104,101,32,101,115,115,101,110,116,105,97,108,102,105,110,97,110,\r
-99,105,97,108,115,101,108,101,99,116,105,111,110,97,99,116,105,111,110,61,34,47,\r
-97,98,97,110,100,111,110,101,100,69,100,117,99,97,116,105,111,110,112,97,114,115\r
-,101,73,110,116,40,115,116,97,98,105,108,105,116,121,117,110,97,98,108,101,32,\r
-116,111,60,47,116,105,116,108,101,62,10,114,101,108,97,116,105,111,110,115,78,\r
-111,116,101,32,116,104,97,116,101,102,102,105,99,105,101,110,116,112,101,114,102\r
-,111,114,109,101,100,116,119,111,32,121,101,97,114,115,83,105,110,99,101,32,116,\r
-104,101,116,104,101,114,101,102,111,114,101,119,114,97,112,112,101,114,34,62,97,\r
-108,116,101,114,110,97,116,101,105,110,99,114,101,97,115,101,100,66,97,116,116,\r
-108,101,32,111,102,112,101,114,99,101,105,118,101,100,116,114,121,105,110,103,32\r
-,116,111,110,101,99,101,115,115,97,114,121,112,111,114,116,114,97,121,101,100,\r
-101,108,101,99,116,105,111,110,115,69,108,105,122,97,98,101,116,104,60,47,105,\r
-102,114,97,109,101,62,100,105,115,99,111,118,101,114,121,105,110,115,117,114,97,\r
-110,99,101,115,46,108,101,110,103,116,104,59,108,101,103,101,110,100,97,114,121,\r
-71,101,111,103,114,97,112,104,121,99,97,110,100,105,100,97,116,101,99,111,114,\r
-112,111,114,97,116,101,115,111,109,101,116,105,109,101,115,115,101,114,118,105,\r
-99,101,115,46,105,110,104,101,114,105,116,101,100,60,47,115,116,114,111,110,103,\r
-62,67,111,109,109,117,110,105,116,121,114,101,108,105,103,105,111,117,115,108,\r
-111,99,97,116,105,111,110,115,67,111,109,109,105,116,116,101,101,98,117,105,108,\r
-100,105,110,103,115,116,104,101,32,119,111,114,108,100,110,111,32,108,111,110,\r
-103,101,114,98,101,103,105,110,110,105,110,103,114,101,102,101,114,101,110,99,\r
-101,99,97,110,110,111,116,32,98,101,102,114,101,113,117,101,110,99,121,116,121,\r
-112,105,99,97,108,108,121,105,110,116,111,32,116,104,101,32,114,101,108,97,116,\r
-105,118,101,59,114,101,99,111,114,100,105,110,103,112,114,101,115,105,100,101,\r
-110,116,105,110,105,116,105,97,108,108,121,116,101,99,104,110,105,113,117,101,\r
-116,104,101,32,111,116,104,101,114,105,116,32,99,97,110,32,98,101,101,120,105,\r
-115,116,101,110,99,101,117,110,100,101,114,108,105,110,101,116,104,105,115,32,\r
-116,105,109,101,116,101,108,101,112,104,111,110,101,105,116,101,109,115,99,111,\r
-112,101,112,114,97,99,116,105,99,101,115,97,100,118,97,110,116,97,103,101,41,59,\r
-114,101,116,117,114,110,32,70,111,114,32,111,116,104,101,114,112,114,111,118,105\r
-,100,105,110,103,100,101,109,111,99,114,97,99,121,98,111,116,104,32,116,104,101,\r
-32,101,120,116,101,110,115,105,118,101,115,117,102,102,101,114,105,110,103,115,\r
-117,112,112,111,114,116,101,100,99,111,109,112,117,116,101,114,115,32,102,117,\r
-110,99,116,105,111,110,112,114,97,99,116,105,99,97,108,115,97,105,100,32,116,104\r
-,97,116,105,116,32,109,97,121,32,98,101,69,110,103,108,105,115,104,60,47,102,114\r
-,111,109,32,116,104,101,32,115,99,104,101,100,117,108,101,100,100,111,119,110,\r
-108,111,97,100,115,60,47,108,97,98,101,108,62,10,115,117,115,112,101,99,116,101,\r
-100,109,97,114,103,105,110,58,32,48,115,112,105,114,105,116,117,97,108,60,47,104\r
-,101,97,100,62,10,10,109,105,99,114,111,115,111,102,116,103,114,97,100,117,97,\r
-108,108,121,100,105,115,99,117,115,115,101,100,104,101,32,98,101,99,97,109,101,\r
-101,120,101,99,117,116,105,118,101,106,113,117,101,114,121,46,106,115,104,111,\r
-117,115,101,104,111,108,100,99,111,110,102,105,114,109,101,100,112,117,114,99,\r
-104,97,115,101,100,108,105,116,101,114,97,108,108,121,100,101,115,116,114,111,\r
-121,101,100,117,112,32,116,111,32,116,104,101,118,97,114,105,97,116,105,111,110,\r
-114,101,109,97,105,110,105,110,103,105,116,32,105,115,32,110,111,116,99,101,110,\r
-116,117,114,105,101,115,74,97,112,97,110,101,115,101,32,97,109,111,110,103,32,\r
-116,104,101,99,111,109,112,108,101,116,101,100,97,108,103,111,114,105,116,104,\r
-109,105,110,116,101,114,101,115,116,115,114,101,98,101,108,108,105,111,110,117,\r
-110,100,101,102,105,110,101,100,101,110,99,111,117,114,97,103,101,114,101,115,\r
-105,122,97,98,108,101,105,110,118,111,108,118,105,110,103,115,101,110,115,105,\r
-116,105,118,101,117,110,105,118,101,114,115,97,108,112,114,111,118,105,115,105,\r
-111,110,40,97,108,116,104,111,117,103,104,102,101,97,116,117,114,105,110,103,99,\r
-111,110,100,117,99,116,101,100,41,44,32,119,104,105,99,104,32,99,111,110,116,105\r
-,110,117,101,100,45,104,101,97,100,101,114,34,62,70,101,98,114,117,97,114,121,32\r
-,110,117,109,101,114,111,117,115,32,111,118,101,114,102,108,111,119,58,99,111,\r
-109,112,111,110,101,110,116,102,114,97,103,109,101,110,116,115,101,120,99,101,\r
-108,108,101,110,116,99,111,108,115,112,97,110,61,34,116,101,99,104,110,105,99,97\r
-,108,110,101,97,114,32,116,104,101,32,65,100,118,97,110,99,101,100,32,115,111,\r
-117,114,99,101,32,111,102,101,120,112,114,101,115,115,101,100,72,111,110,103,32,\r
-75,111,110,103,32,70,97,99,101,98,111,111,107,109,117,108,116,105,112,108,101,32\r
-,109,101,99,104,97,110,105,115,109,101,108,101,118,97,116,105,111,110,111,102,\r
-102,101,110,115,105,118,101,60,47,102,111,114,109,62,10,9,115,112,111,110,115,\r
-111,114,101,100,100,111,99,117,109,101,110,116,46,111,114,32,38,113,117,111,116,\r
-59,116,104,101,114,101,32,97,114,101,116,104,111,115,101,32,119,104,111,109,111,\r
-118,101,109,101,110,116,115,112,114,111,99,101,115,115,101,115,100,105,102,102,\r
-105,99,117,108,116,115,117,98,109,105,116,116,101,100,114,101,99,111,109,109,101\r
-,110,100,99,111,110,118,105,110,99,101,100,112,114,111,109,111,116,105,110,103,\r
-34,32,119,105,100,116,104,61,34,46,114,101,112,108,97,99,101,40,99,108,97,115,\r
-115,105,99,97,108,99,111,97,108,105,116,105,111,110,104,105,115,32,102,105,114,\r
-115,116,100,101,99,105,115,105,111,110,115,97,115,115,105,115,116,97,110,116,105\r
-,110,100,105,99,97,116,101,100,101,118,111,108,117,116,105,111,110,45,119,114,97\r
-,112,112,101,114,34,101,110,111,117,103,104,32,116,111,97,108,111,110,103,32,116\r
-,104,101,100,101,108,105,118,101,114,101,100,45,45,62,13,10,60,33,45,45,65,109,\r
-101,114,105,99,97,110,32,112,114,111,116,101,99,116,101,100,78,111,118,101,109,\r
-98,101,114,32,60,47,115,116,121,108,101,62,60,102,117,114,110,105,116,117,114,\r
-101,73,110,116,101,114,110,101,116,32,32,111,110,98,108,117,114,61,34,115,117,\r
-115,112,101,110,100,101,100,114,101,99,105,112,105,101,110,116,98,97,115,101,100\r
-,32,111,110,32,77,111,114,101,111,118,101,114,44,97,98,111,108,105,115,104,101,\r
-100,99,111,108,108,101,99,116,101,100,119,101,114,101,32,109,97,100,101,101,109,\r
-111,116,105,111,110,97,108,101,109,101,114,103,101,110,99,121,110,97,114,114,97,\r
-116,105,118,101,97,100,118,111,99,97,116,101,115,112,120,59,98,111,114,100,101,\r
-114,99,111,109,109,105,116,116,101,100,100,105,114,61,34,108,116,114,34,101,109,\r
-112,108,111,121,101,101,115,114,101,115,101,97,114,99,104,46,32,115,101,108,101,\r
-99,116,101,100,115,117,99,99,101,115,115,111,114,99,117,115,116,111,109,101,114,\r
-115,100,105,115,112,108,97,121,101,100,83,101,112,116,101,109,98,101,114,97,100,\r
-100,67,108,97,115,115,40,70,97,99,101,98,111,111,107,32,115,117,103,103,101,115,\r
-116,101,100,97,110,100,32,108,97,116,101,114,111,112,101,114,97,116,105,110,103,\r
-101,108,97,98,111,114,97,116,101,83,111,109,101,116,105,109,101,115,73,110,115,\r
-116,105,116,117,116,101,99,101,114,116,97,105,110,108,121,105,110,115,116,97,108\r
-,108,101,100,102,111,108,108,111,119,101,114,115,74,101,114,117,115,97,108,101,\r
-109,116,104,101,121,32,104,97,118,101,99,111,109,112,117,116,105,110,103,103,101\r
-,110,101,114,97,116,101,100,112,114,111,118,105,110,99,101,115,103,117,97,114,97\r
-,110,116,101,101,97,114,98,105,116,114,97,114,121,114,101,99,111,103,110,105,122\r
-,101,119,97,110,116,101,100,32,116,111,112,120,59,119,105,100,116,104,58,116,104\r
-,101,111,114,121,32,111,102,98,101,104,97,118,105,111,117,114,87,104,105,108,101\r
-,32,116,104,101,101,115,116,105,109,97,116,101,100,98,101,103,97,110,32,116,111,\r
-32,105,116,32,98,101,99,97,109,101,109,97,103,110,105,116,117,100,101,109,117,\r
-115,116,32,104,97,118,101,109,111,114,101,32,116,104,97,110,68,105,114,101,99,\r
-116,111,114,121,101,120,116,101,110,115,105,111,110,115,101,99,114,101,116,97,\r
-114,121,110,97,116,117,114,97,108,108,121,111,99,99,117,114,114,105,110,103,118,\r
-97,114,105,97,98,108,101,115,103,105,118,101,110,32,116,104,101,112,108,97,116,\r
-102,111,114,109,46,60,47,108,97,98,101,108,62,60,102,97,105,108,101,100,32,116,\r
-111,99,111,109,112,111,117,110,100,115,107,105,110,100,115,32,111,102,32,115,111\r
-,99,105,101,116,105,101,115,97,108,111,110,103,115,105,100,101,32,45,45,38,103,\r
-116,59,10,10,115,111,117,116,104,119,101,115,116,116,104,101,32,114,105,103,104,\r
-116,114,97,100,105,97,116,105,111,110,109,97,121,32,104,97,118,101,32,117,110,\r
-101,115,99,97,112,101,40,115,112,111,107,101,110,32,105,110,34,32,104,114,101,\r
-102,61,34,47,112,114,111,103,114,97,109,109,101,111,110,108,121,32,116,104,101,\r
-32,99,111,109,101,32,102,114,111,109,100,105,114,101,99,116,111,114,121,98,117,\r
-114,105,101,100,32,105,110,97,32,115,105,109,105,108,97,114,116,104,101,121,32,\r
-119,101,114,101,60,47,102,111,110,116,62,60,47,78,111,114,119,101,103,105,97,110\r
-,115,112,101,99,105,102,105,101,100,112,114,111,100,117,99,105,110,103,112,97,\r
-115,115,101,110,103,101,114,40,110,101,119,32,68,97,116,101,116,101,109,112,111,\r
-114,97,114,121,102,105,99,116,105,111,110,97,108,65,102,116,101,114,32,116,104,\r
-101,101,113,117,97,116,105,111,110,115,100,111,119,110,108,111,97,100,46,114,101\r
-,103,117,108,97,114,108,121,100,101,118,101,108,111,112,101,114,97,98,111,118,\r
-101,32,116,104,101,108,105,110,107,101,100,32,116,111,112,104,101,110,111,109,\r
-101,110,97,112,101,114,105,111,100,32,111,102,116,111,111,108,116,105,112,34,62,\r
-115,117,98,115,116,97,110,99,101,97,117,116,111,109,97,116,105,99,97,115,112,101\r
-,99,116,32,111,102,65,109,111,110,103,32,116,104,101,99,111,110,110,101,99,116,\r
-101,100,101,115,116,105,109,97,116,101,115,65,105,114,32,70,111,114,99,101,115,\r
-121,115,116,101,109,32,111,102,111,98,106,101,99,116,105,118,101,105,109,109,101\r
-,100,105,97,116,101,109,97,107,105,110,103,32,105,116,112,97,105,110,116,105,110\r
-,103,115,99,111,110,113,117,101,114,101,100,97,114,101,32,115,116,105,108,108,\r
-112,114,111,99,101,100,117,114,101,103,114,111,119,116,104,32,111,102,104,101,97\r
-,100,101,100,32,98,121,69,117,114,111,112,101,97,110,32,100,105,118,105,115,105,\r
-111,110,115,109,111,108,101,99,117,108,101,115,102,114,97,110,99,104,105,115,101\r
-,105,110,116,101,110,116,105,111,110,97,116,116,114,97,99,116,101,100,99,104,105\r
-,108,100,104,111,111,100,97,108,115,111,32,117,115,101,100,100,101,100,105,99,97\r
-,116,101,100,115,105,110,103,97,112,111,114,101,100,101,103,114,101,101,32,111,\r
-102,102,97,116,104,101,114,32,111,102,99,111,110,102,108,105,99,116,115,60,47,97\r
-,62,60,47,112,62,10,99,97,109,101,32,102,114,111,109,119,101,114,101,32,117,115,\r
-101,100,110,111,116,101,32,116,104,97,116,114,101,99,101,105,118,105,110,103,69,\r
-120,101,99,117,116,105,118,101,101,118,101,110,32,109,111,114,101,97,99,99,101,\r
-115,115,32,116,111,99,111,109,109,97,110,100,101,114,80,111,108,105,116,105,99,\r
-97,108,109,117,115,105,99,105,97,110,115,100,101,108,105,99,105,111,117,115,112,\r
-114,105,115,111,110,101,114,115,97,100,118,101,110,116,32,111,102,85,84,70,45,56\r
-,34,32,47,62,60,33,91,67,68,65,84,65,91,34,62,67,111,110,116,97,99,116,83,111,\r
-117,116,104,101,114,110,32,98,103,99,111,108,111,114,61,34,115,101,114,105,101,\r
-115,32,111,102,46,32,73,116,32,119,97,115,32,105,110,32,69,117,114,111,112,101,\r
-112,101,114,109,105,116,116,101,100,118,97,108,105,100,97,116,101,46,97,112,112,\r
-101,97,114,105,110,103,111,102,102,105,99,105,97,108,115,115,101,114,105,111,117\r
-,115,108,121,45,108,97,110,103,117,97,103,101,105,110,105,116,105,97,116,101,100\r
-,101,120,116,101,110,100,105,110,103,108,111,110,103,45,116,101,114,109,105,110,\r
-102,108,97,116,105,111,110,115,117,99,104,32,116,104,97,116,103,101,116,67,111,\r
-111,107,105,101,109,97,114,107,101,100,32,98,121,60,47,98,117,116,116,111,110,62\r
-,105,109,112,108,101,109,101,110,116,98,117,116,32,105,116,32,105,115,105,110,99\r
-,114,101,97,115,101,115,100,111,119,110,32,116,104,101,32,114,101,113,117,105,\r
-114,105,110,103,100,101,112,101,110,100,101,110,116,45,45,62,10,60,33,45,45,32,\r
-105,110,116,101,114,118,105,101,119,87,105,116,104,32,116,104,101,32,99,111,112,\r
-105,101,115,32,111,102,99,111,110,115,101,110,115,117,115,119,97,115,32,98,117,\r
-105,108,116,86,101,110,101,122,117,101,108,97,40,102,111,114,109,101,114,108,121\r
-,116,104,101,32,115,116,97,116,101,112,101,114,115,111,110,110,101,108,115,116,\r
-114,97,116,101,103,105,99,102,97,118,111,117,114,32,111,102,105,110,118,101,110,\r
-116,105,111,110,87,105,107,105,112,101,100,105,97,99,111,110,116,105,110,101,110\r
-,116,118,105,114,116,117,97,108,108,121,119,104,105,99,104,32,119,97,115,112,114\r
-,105,110,99,105,112,108,101,67,111,109,112,108,101,116,101,32,105,100,101,110,\r
-116,105,99,97,108,115,104,111,119,32,116,104,97,116,112,114,105,109,105,116,105,\r
-118,101,97,119,97,121,32,102,114,111,109,109,111,108,101,99,117,108,97,114,112,\r
-114,101,99,105,115,101,108,121,100,105,115,115,111,108,118,101,100,85,110,100,\r
-101,114,32,116,104,101,118,101,114,115,105,111,110,61,34,62,38,110,98,115,112,59\r
-,60,47,73,116,32,105,115,32,116,104,101,32,84,104,105,115,32,105,115,32,119,105,\r
-108,108,32,104,97,118,101,111,114,103,97,110,105,115,109,115,115,111,109,101,32,\r
-116,105,109,101,70,114,105,101,100,114,105,99,104,119,97,115,32,102,105,114,115,\r
-116,116,104,101,32,111,110,108,121,32,102,97,99,116,32,116,104,97,116,102,111,\r
-114,109,32,105,100,61,34,112,114,101,99,101,100,105,110,103,84,101,99,104,110,\r
-105,99,97,108,112,104,121,115,105,99,105,115,116,111,99,99,117,114,115,32,105,\r
-110,110,97,118,105,103,97,116,111,114,115,101,99,116,105,111,110,34,62,115,112,\r
-97,110,32,105,100,61,34,115,111,117,103,104,116,32,116,111,98,101,108,111,119,32\r
-,116,104,101,115,117,114,118,105,118,105,110,103,125,60,47,115,116,121,108,101,\r
-62,104,105,115,32,100,101,97,116,104,97,115,32,105,110,32,116,104,101,99,97,117,\r
-115,101,100,32,98,121,112,97,114,116,105,97,108,108,121,101,120,105,115,116,105,\r
-110,103,32,117,115,105,110,103,32,116,104,101,119,97,115,32,103,105,118,101,110,\r
-97,32,108,105,115,116,32,111,102,108,101,118,101,108,115,32,111,102,110,111,116,\r
-105,111,110,32,111,102,79,102,102,105,99,105,97,108,32,100,105,115,109,105,115,\r
-115,101,100,115,99,105,101,110,116,105,115,116,114,101,115,101,109,98,108,101,\r
-115,100,117,112,108,105,99,97,116,101,101,120,112,108,111,115,105,118,101,114,\r
-101,99,111,118,101,114,101,100,97,108,108,32,111,116,104,101,114,103,97,108,108,\r
-101,114,105,101,115,123,112,97,100,100,105,110,103,58,112,101,111,112,108,101,32\r
-,111,102,114,101,103,105,111,110,32,111,102,97,100,100,114,101,115,115,101,115,\r
-97,115,115,111,99,105,97,116,101,105,109,103,32,97,108,116,61,34,105,110,32,109,\r
-111,100,101,114,110,115,104,111,117,108,100,32,98,101,109,101,116,104,111,100,32\r
-,111,102,114,101,112,111,114,116,105,110,103,116,105,109,101,115,116,97,109,112,\r
-110,101,101,100,101,100,32,116,111,116,104,101,32,71,114,101,97,116,114,101,103,\r
-97,114,100,105,110,103,115,101,101,109,101,100,32,116,111,118,105,101,119,101,\r
-100,32,97,115,105,109,112,97,99,116,32,111,110,105,100,101,97,32,116,104,97,116,\r
-116,104,101,32,87,111,114,108,100,104,101,105,103,104,116,32,111,102,101,120,112\r
-,97,110,100,105,110,103,84,104,101,115,101,32,97,114,101,99,117,114,114,101,110,\r
-116,34,62,99,97,114,101,102,117,108,108,121,109,97,105,110,116,97,105,110,115,99\r
-,104,97,114,103,101,32,111,102,67,108,97,115,115,105,99,97,108,97,100,100,114,\r
-101,115,115,101,100,112,114,101,100,105,99,116,101,100,111,119,110,101,114,115,\r
-104,105,112,60,100,105,118,32,105,100,61,34,114,105,103,104,116,34,62,13,10,114,\r
-101,115,105,100,101,110,99,101,108,101,97,118,101,32,116,104,101,99,111,110,116,\r
-101,110,116,34,62,97,114,101,32,111,102,116,101,110,32,32,125,41,40,41,59,13,10,\r
-112,114,111,98,97,98,108,121,32,80,114,111,102,101,115,115,111,114,45,98,117,116\r
-,116,111,110,34,32,114,101,115,112,111,110,100,101,100,115,97,121,115,32,116,104\r
-,97,116,104,97,100,32,116,111,32,98,101,112,108,97,99,101,100,32,105,110,72,117,\r
-110,103,97,114,105,97,110,115,116,97,116,117,115,32,111,102,115,101,114,118,101,\r
-115,32,97,115,85,110,105,118,101,114,115,97,108,101,120,101,99,117,116,105,111,\r
-110,97,103,103,114,101,103,97,116,101,102,111,114,32,119,104,105,99,104,105,110,\r
-102,101,99,116,105,111,110,97,103,114,101,101,100,32,116,111,104,111,119,101,118\r
-,101,114,44,32,112,111,112,117,108,97,114,34,62,112,108,97,99,101,100,32,111,110\r
-,99,111,110,115,116,114,117,99,116,101,108,101,99,116,111,114,97,108,115,121,109\r
-,98,111,108,32,111,102,105,110,99,108,117,100,105,110,103,114,101,116,117,114,\r
-110,32,116,111,97,114,99,104,105,116,101,99,116,67,104,114,105,115,116,105,97,\r
-110,112,114,101,118,105,111,117,115,32,108,105,118,105,110,103,32,105,110,101,97\r
-,115,105,101,114,32,116,111,112,114,111,102,101,115,115,111,114,10,38,108,116,59\r
-,33,45,45,32,101,102,102,101,99,116,32,111,102,97,110,97,108,121,116,105,99,115,\r
-119,97,115,32,116,97,107,101,110,119,104,101,114,101,32,116,104,101,116,111,111,\r
-107,32,111,118,101,114,98,101,108,105,101,102,32,105,110,65,102,114,105,107,97,\r
-97,110,115,97,115,32,102,97,114,32,97,115,112,114,101,118,101,110,116,101,100,\r
-119,111,114,107,32,119,105,116,104,97,32,115,112,101,99,105,97,108,60,102,105,\r
-101,108,100,115,101,116,67,104,114,105,115,116,109,97,115,82,101,116,114,105,101\r
-,118,101,100,10,10,73,110,32,116,104,101,32,98,97,99,107,32,105,110,116,111,110,\r
-111,114,116,104,101,97,115,116,109,97,103,97,122,105,110,101,115,62,60,115,116,\r
-114,111,110,103,62,99,111,109,109,105,116,116,101,101,103,111,118,101,114,110,\r
-105,110,103,103,114,111,117,112,115,32,111,102,115,116,111,114,101,100,32,105,\r
-110,101,115,116,97,98,108,105,115,104,97,32,103,101,110,101,114,97,108,105,116,\r
-115,32,102,105,114,115,116,116,104,101,105,114,32,111,119,110,112,111,112,117,\r
-108,97,116,101,100,97,110,32,111,98,106,101,99,116,67,97,114,105,98,98,101,97,\r
-110,97,108,108,111,119,32,116,104,101,100,105,115,116,114,105,99,116,115,119,105\r
-,115,99,111,110,115,105,110,108,111,99,97,116,105,111,110,46,59,32,119,105,100,\r
-116,104,58,32,105,110,104,97,98,105,116,101,100,83,111,99,105,97,108,105,115,116\r
-,74,97,110,117,97,114,121,32,49,60,47,102,111,111,116,101,114,62,115,105,109,105\r
-,108,97,114,108,121,99,104,111,105,99,101,32,111,102,116,104,101,32,115,97,109,\r
-101,32,115,112,101,99,105,102,105,99,32,98,117,115,105,110,101,115,115,32,84,104\r
-,101,32,102,105,114,115,116,46,108,101,110,103,116,104,59,32,100,101,115,105,114\r
-,101,32,116,111,100,101,97,108,32,119,105,116,104,115,105,110,99,101,32,116,104,\r
-101,117,115,101,114,65,103,101,110,116,99,111,110,99,101,105,118,101,100,105,110\r
-,100,101,120,46,112,104,112,97,115,32,38,113,117,111,116,59,101,110,103,97,103,\r
-101,32,105,110,114,101,99,101,110,116,108,121,44,102,101,119,32,121,101,97,114,\r
-115,119,101,114,101,32,97,108,115,111,10,60,104,101,97,100,62,10,60,101,100,105,\r
-116,101,100,32,98,121,97,114,101,32,107,110,111,119,110,99,105,116,105,101,115,\r
-32,105,110,97,99,99,101,115,115,107,101,121,99,111,110,100,101,109,110,101,100,\r
-97,108,115,111,32,104,97,118,101,115,101,114,118,105,99,101,115,44,102,97,109,\r
-105,108,121,32,111,102,83,99,104,111,111,108,32,111,102,99,111,110,118,101,114,\r
-116,101,100,110,97,116,117,114,101,32,111,102,32,108,97,110,103,117,97,103,101,\r
-109,105,110,105,115,116,101,114,115,60,47,111,98,106,101,99,116,62,116,104,101,\r
-114,101,32,105,115,32,97,32,112,111,112,117,108,97,114,115,101,113,117,101,110,\r
-99,101,115,97,100,118,111,99,97,116,101,100,84,104,101,121,32,119,101,114,101,97\r
-,110,121,32,111,116,104,101,114,108,111,99,97,116,105,111,110,61,101,110,116,101\r
-,114,32,116,104,101,109,117,99,104,32,109,111,114,101,114,101,102,108,101,99,116\r
-,101,100,119,97,115,32,110,97,109,101,100,111,114,105,103,105,110,97,108,32,97,\r
-32,116,121,112,105,99,97,108,119,104,101,110,32,116,104,101,121,101,110,103,105,\r
-110,101,101,114,115,99,111,117,108,100,32,110,111,116,114,101,115,105,100,101,\r
-110,116,115,119,101,100,110,101,115,100,97,121,116,104,101,32,116,104,105,114,\r
-100,32,112,114,111,100,117,99,116,115,74,97,110,117,97,114,121,32,50,119,104,97,\r
-116,32,116,104,101,121,97,32,99,101,114,116,97,105,110,114,101,97,99,116,105,111\r
-,110,115,112,114,111,99,101,115,115,111,114,97,102,116,101,114,32,104,105,115,\r
-116,104,101,32,108,97,115,116,32,99,111,110,116,97,105,110,101,100,34,62,60,47,\r
-100,105,118,62,10,60,47,97,62,60,47,116,100,62,100,101,112,101,110,100,32,111,\r
-110,115,101,97,114,99,104,34,62,10,112,105,101,99,101,115,32,111,102,99,111,109,\r
-112,101,116,105,110,103,82,101,102,101,114,101,110,99,101,116,101,110,110,101,\r
-115,115,101,101,119,104,105,99,104,32,104,97,115,32,118,101,114,115,105,111,110,\r
-61,60,47,115,112,97,110,62,32,60,60,47,104,101,97,100,101,114,62,103,105,118,101\r
-,115,32,116,104,101,104,105,115,116,111,114,105,97,110,118,97,108,117,101,61,34,\r
-34,62,112,97,100,100,105,110,103,58,48,118,105,101,119,32,116,104,97,116,116,111\r
-,103,101,116,104,101,114,44,116,104,101,32,109,111,115,116,32,119,97,115,32,102,\r
-111,117,110,100,115,117,98,115,101,116,32,111,102,97,116,116,97,99,107,32,111,\r
-110,99,104,105,108,100,114,101,110,44,112,111,105,110,116,115,32,111,102,112,101\r
-,114,115,111,110,97,108,32,112,111,115,105,116,105,111,110,58,97,108,108,101,103\r
-,101,100,108,121,67,108,101,118,101,108,97,110,100,119,97,115,32,108,97,116,101,\r
-114,97,110,100,32,97,102,116,101,114,97,114,101,32,103,105,118,101,110,119,97,\r
-115,32,115,116,105,108,108,115,99,114,111,108,108,105,110,103,100,101,115,105,\r
-103,110,32,111,102,109,97,107,101,115,32,116,104,101,109,117,99,104,32,108,101,\r
-115,115,65,109,101,114,105,99,97,110,115,46,10,10,65,102,116,101,114,32,44,32,98\r
-,117,116,32,116,104,101,77,117,115,101,117,109,32,111,102,108,111,117,105,115,\r
-105,97,110,97,40,102,114,111,109,32,116,104,101,109,105,110,110,101,115,111,116,\r
-97,112,97,114,116,105,99,108,101,115,97,32,112,114,111,99,101,115,115,68,111,109\r
-,105,110,105,99,97,110,118,111,108,117,109,101,32,111,102,114,101,116,117,114,\r
-110,105,110,103,100,101,102,101,110,115,105,118,101,48,48,112,120,124,114,105,\r
-103,104,109,97,100,101,32,102,114,111,109,109,111,117,115,101,111,118,101,114,34\r
-,32,115,116,121,108,101,61,34,115,116,97,116,101,115,32,111,102,40,119,104,105,\r
-99,104,32,105,115,99,111,110,116,105,110,117,101,115,70,114,97,110,99,105,115,99\r
-,111,98,117,105,108,100,105,110,103,32,119,105,116,104,111,117,116,32,97,119,105\r
-,116,104,32,115,111,109,101,119,104,111,32,119,111,117,108,100,97,32,102,111,114\r
-,109,32,111,102,97,32,112,97,114,116,32,111,102,98,101,102,111,114,101,32,105,\r
-116,107,110,111,119,110,32,97,115,32,32,83,101,114,118,105,99,101,115,108,111,99\r
-,97,116,105,111,110,32,97,110,100,32,111,102,116,101,110,109,101,97,115,117,114,\r
-105,110,103,97,110,100,32,105,116,32,105,115,112,97,112,101,114,98,97,99,107,118\r
-,97,108,117,101,115,32,111,102,13,10,60,116,105,116,108,101,62,61,32,119,105,110\r
-,100,111,119,46,100,101,116,101,114,109,105,110,101,101,114,38,113,117,111,116,\r
-59,32,112,108,97,121,101,100,32,98,121,97,110,100,32,101,97,114,108,121,60,47,99\r
-,101,110,116,101,114,62,102,114,111,109,32,116,104,105,115,116,104,101,32,116,\r
-104,114,101,101,112,111,119,101,114,32,97,110,100,111,102,32,38,113,117,111,116,\r
-59,105,110,110,101,114,72,84,77,76,60,97,32,104,114,101,102,61,34,121,58,105,110\r
-,108,105,110,101,59,67,104,117,114,99,104,32,111,102,116,104,101,32,101,118,101,\r
-110,116,118,101,114,121,32,104,105,103,104,111,102,102,105,99,105,97,108,32,45,\r
-104,101,105,103,104,116,58,32,99,111,110,116,101,110,116,61,34,47,99,103,105,45,\r
-98,105,110,47,116,111,32,99,114,101,97,116,101,97,102,114,105,107,97,97,110,115,\r
-101,115,112,101,114,97,110,116,111,102,114,97,110,195,167,97,105,115,108,97,116,\r
-118,105,101,197,161,117,108,105,101,116,117,118,105,197,179,196,140,101,197,161,\r
-116,105,110,97,196,141,101,197,161,116,105,110,97,224,185,132,224,184,151,224,\r
-184,162,230,151,165,230,156,172,232,170,158,231,174,128,228,189,147,229,173,151,\r
-231,185,129,233,171,148,229,173,151,237,149,156,234,181,173,236,150,180,228,184,\r
-186,228,187,128,228,185,136,232,174,161,231,174,151,230,156,186,231,172,148,232,\r
-174,176,230,156,172,232,168,142,232,171,150,229,141,128,230,156,141,229,138,161,\r
-229,153,168,228,186,146,232,129,148,231,189,145,230,136,191,229,156,176,228,186,\r
-167,228,191,177,228,185,144,233,131,168,229,135,186,231,137,136,231,164,190,230,\r
-142,146,232,161,140,230,166,156,233,131,168,232,144,189,230,160,188,232,191,155,\r
-228,184,128,230,173,165,230,148,175,228,187,152,229,174,157,233,170,140,232,175,\r
-129,231,160,129,229,167,148,229,145,152,228,188,154,230,149,176,230,141,174,229,\r
-186,147,230,182,136,232,180,185,232,128,133,229,138,158,229,133,172,229,174,164,\r
-232,174,168,232,174,186,229,140,186,230,183,177,229,156,179,229,184,130,230,146,\r
-173,230,148,190,229,153,168,229,140,151,228,186,172,229,184,130,229,164,167,229,\r
-173,166,231,148,159,232,182,138,230,157,165,232,182,138,231,174,161,231,144,134,\r
-229,145,152,228,191,161,230,129,175,231,189,145,115,101,114,118,105,99,105,111,\r
-115,97,114,116,195,173,99,117,108,111,97,114,103,101,110,116,105,110,97,98,97,\r
-114,99,101,108,111,110,97,99,117,97,108,113,117,105,101,114,112,117,98,108,105,\r
-99,97,100,111,112,114,111,100,117,99,116,111,115,112,111,108,195,173,116,105,99,\r
-97,114,101,115,112,117,101,115,116,97,119,105,107,105,112,101,100,105,97,115,105\r
-,103,117,105,101,110,116,101,98,195,186,115,113,117,101,100,97,99,111,109,117,\r
-110,105,100,97,100,115,101,103,117,114,105,100,97,100,112,114,105,110,99,105,112\r
-,97,108,112,114,101,103,117,110,116,97,115,99,111,110,116,101,110,105,100,111,\r
-114,101,115,112,111,110,100,101,114,118,101,110,101,122,117,101,108,97,112,114,\r
-111,98,108,101,109,97,115,100,105,99,105,101,109,98,114,101,114,101,108,97,99,\r
-105,195,179,110,110,111,118,105,101,109,98,114,101,115,105,109,105,108,97,114,\r
-101,115,112,114,111,121,101,99,116,111,115,112,114,111,103,114,97,109,97,115,105\r
-,110,115,116,105,116,117,116,111,97,99,116,105,118,105,100,97,100,101,110,99,117\r
-,101,110,116,114,97,101,99,111,110,111,109,195,173,97,105,109,195,161,103,101,\r
-110,101,115,99,111,110,116,97,99,116,97,114,100,101,115,99,97,114,103,97,114,110\r
-,101,99,101,115,97,114,105,111,97,116,101,110,99,105,195,179,110,116,101,108,195\r
-,169,102,111,110,111,99,111,109,105,115,105,195,179,110,99,97,110,99,105,111,110\r
-,101,115,99,97,112,97,99,105,100,97,100,101,110,99,111,110,116,114,97,114,97,110\r
-,195,161,108,105,115,105,115,102,97,118,111,114,105,116,111,115,116,195,169,114,\r
-109,105,110,111,115,112,114,111,118,105,110,99,105,97,101,116,105,113,117,101,\r
-116,97,115,101,108,101,109,101,110,116,111,115,102,117,110,99,105,111,110,101,\r
-115,114,101,115,117,108,116,97,100,111,99,97,114,195,161,99,116,101,114,112,114,\r
-111,112,105,101,100,97,100,112,114,105,110,99,105,112,105,111,110,101,99,101,115\r
-,105,100,97,100,109,117,110,105,99,105,112,97,108,99,114,101,97,99,105,195,179,\r
-110,100,101,115,99,97,114,103,97,115,112,114,101,115,101,110,99,105,97,99,111,\r
-109,101,114,99,105,97,108,111,112,105,110,105,111,110,101,115,101,106,101,114,99\r
-,105,99,105,111,101,100,105,116,111,114,105,97,108,115,97,108,97,109,97,110,99,\r
-97,103,111,110,122,195,161,108,101,122,100,111,99,117,109,101,110,116,111,112,\r
-101,108,195,173,99,117,108,97,114,101,99,105,101,110,116,101,115,103,101,110,101\r
-,114,97,108,101,115,116,97,114,114,97,103,111,110,97,112,114,195,161,99,116,105,\r
-99,97,110,111,118,101,100,97,100,101,115,112,114,111,112,117,101,115,116,97,112,\r
-97,99,105,101,110,116,101,115,116,195,169,99,110,105,99,97,115,111,98,106,101,\r
-116,105,118,111,115,99,111,110,116,97,99,116,111,115,224,164,174,224,165,135,224\r
-,164,130,224,164,178,224,164,191,224,164,143,224,164,185,224,165,136,224,164,130\r
-,224,164,151,224,164,175,224,164,190,224,164,184,224,164,190,224,164,165,224,164\r
-,143,224,164,181,224,164,130,224,164,176,224,164,185,224,165,135,224,164,149,224\r
-,165,139,224,164,136,224,164,149,224,165,129,224,164,155,224,164,176,224,164,185\r
-,224,164,190,224,164,172,224,164,190,224,164,166,224,164,149,224,164,185,224,164\r
-,190,224,164,184,224,164,173,224,165,128,224,164,185,224,165,129,224,164,143,224\r
-,164,176,224,164,185,224,165,128,224,164,174,224,165,136,224,164,130,224,164,166\r
-,224,164,191,224,164,168,224,164,172,224,164,190,224,164,164,100,105,112,108,111\r
-,100,111,99,115,224,164,184,224,164,174,224,164,175,224,164,176,224,165,130,224,\r
-164,170,224,164,168,224,164,190,224,164,174,224,164,170,224,164,164,224,164,190,\r
-224,164,171,224,164,191,224,164,176,224,164,148,224,164,184,224,164,164,224,164,\r
-164,224,164,176,224,164,185,224,164,178,224,165,139,224,164,151,224,164,185,224,\r
-165,129,224,164,134,224,164,172,224,164,190,224,164,176,224,164,166,224,165,135,\r
-224,164,182,224,164,185,224,165,129,224,164,136,224,164,150,224,165,135,224,164,\r
-178,224,164,175,224,164,166,224,164,191,224,164,149,224,164,190,224,164,174,224,\r
-164,181,224,165,135,224,164,172,224,164,164,224,165,128,224,164,168,224,164,172,\r
-224,165,128,224,164,154,224,164,174,224,165,140,224,164,164,224,164,184,224,164,\r
-190,224,164,178,224,164,178,224,165,135,224,164,150,224,164,156,224,165,137,224,\r
-164,172,224,164,174,224,164,166,224,164,166,224,164,164,224,164,165,224,164,190,\r
-224,164,168,224,164,185,224,165,128,224,164,182,224,164,185,224,164,176,224,164,\r
-133,224,164,178,224,164,151,224,164,149,224,164,173,224,165,128,224,164,168,224,\r
-164,151,224,164,176,224,164,170,224,164,190,224,164,184,224,164,176,224,164,190,\r
-224,164,164,224,164,149,224,164,191,224,164,143,224,164,137,224,164,184,224,165,\r
-135,224,164,151,224,164,175,224,165,128,224,164,185,224,165,130,224,164,129,224,\r
-164,134,224,164,151,224,165,135,224,164,159,224,165,128,224,164,174,224,164,150,\r
-224,165,139,224,164,156,224,164,149,224,164,190,224,164,176,224,164,133,224,164,\r
-173,224,165,128,224,164,151,224,164,175,224,165,135,224,164,164,224,165,129,224,\r
-164,174,224,164,181,224,165,139,224,164,159,224,164,166,224,165,135,224,164,130,\r
-224,164,133,224,164,151,224,164,176,224,164,144,224,164,184,224,165,135,224,164,\r
-174,224,165,135,224,164,178,224,164,178,224,164,151,224,164,190,224,164,185,224,\r
-164,190,224,164,178,224,164,138,224,164,170,224,164,176,224,164,154,224,164,190,\r
-224,164,176,224,164,144,224,164,184,224,164,190,224,164,166,224,165,135,224,164,\r
-176,224,164,156,224,164,191,224,164,184,224,164,166,224,164,191,224,164,178,224,\r
-164,172,224,164,130,224,164,166,224,164,172,224,164,168,224,164,190,224,164,185,\r
-224,165,130,224,164,130,224,164,178,224,164,190,224,164,150,224,164,156,224,165,\r
-128,224,164,164,224,164,172,224,164,159,224,164,168,224,164,174,224,164,191,224,\r
-164,178,224,164,135,224,164,184,224,165,135,224,164,134,224,164,168,224,165,135,\r
-224,164,168,224,164,175,224,164,190,224,164,149,224,165,129,224,164,178,224,164,\r
-178,224,165,137,224,164,151,224,164,173,224,164,190,224,164,151,224,164,176,224,\r
-165,135,224,164,178,224,164,156,224,164,151,224,164,185,224,164,176,224,164,190,\r
-224,164,174,224,164,178,224,164,151,224,165,135,224,164,170,224,165,135,224,164,\r
-156,224,164,185,224,164,190,224,164,165,224,164,135,224,164,184,224,165,128,224,\r
-164,184,224,164,185,224,165,128,224,164,149,224,164,178,224,164,190,224,164,160,\r
-224,165,128,224,164,149,224,164,185,224,164,190,224,164,129,224,164,166,224,165,\r
-130,224,164,176,224,164,164,224,164,185,224,164,164,224,164,184,224,164,190,224,\r
-164,164,224,164,175,224,164,190,224,164,166,224,164,134,224,164,175,224,164,190,\r
-224,164,170,224,164,190,224,164,149,224,164,149,224,165,140,224,164,168,224,164,\r
-182,224,164,190,224,164,174,224,164,166,224,165,135,224,164,150,224,164,175,224,\r
-164,185,224,165,128,224,164,176,224,164,190,224,164,175,224,164,150,224,165,129,\r
-224,164,166,224,164,178,224,164,151,224,165,128,99,97,116,101,103,111,114,105,\r
-101,115,101,120,112,101,114,105,101,110,99,101,60,47,116,105,116,108,101,62,13,\r
-10,67,111,112,121,114,105,103,104,116,32,106,97,118,97,115,99,114,105,112,116,99\r
-,111,110,100,105,116,105,111,110,115,101,118,101,114,121,116,104,105,110,103,60,\r
-112,32,99,108,97,115,115,61,34,116,101,99,104,110,111,108,111,103,121,98,97,99,\r
-107,103,114,111,117,110,100,60,97,32,99,108,97,115,115,61,34,109,97,110,97,103,\r
-101,109,101,110,116,38,99,111,112,121,59,32,50,48,49,106,97,118,97,83,99,114,105\r
-,112,116,99,104,97,114,97,99,116,101,114,115,98,114,101,97,100,99,114,117,109,98\r
-,116,104,101,109,115,101,108,118,101,115,104,111,114,105,122,111,110,116,97,108,\r
-103,111,118,101,114,110,109,101,110,116,67,97,108,105,102,111,114,110,105,97,97,\r
-99,116,105,118,105,116,105,101,115,100,105,115,99,111,118,101,114,101,100,78,97,\r
-118,105,103,97,116,105,111,110,116,114,97,110,115,105,116,105,111,110,99,111,110\r
-,110,101,99,116,105,111,110,110,97,118,105,103,97,116,105,111,110,97,112,112,101\r
-,97,114,97,110,99,101,60,47,116,105,116,108,101,62,60,109,99,104,101,99,107,98,\r
-111,120,34,32,116,101,99,104,110,105,113,117,101,115,112,114,111,116,101,99,116,\r
-105,111,110,97,112,112,97,114,101,110,116,108,121,97,115,32,119,101,108,108,32,\r
-97,115,117,110,116,39,44,32,39,85,65,45,114,101,115,111,108,117,116,105,111,110,\r
-111,112,101,114,97,116,105,111,110,115,116,101,108,101,118,105,115,105,111,110,\r
-116,114,97,110,115,108,97,116,101,100,87,97,115,104,105,110,103,116,111,110,110,\r
-97,118,105,103,97,116,111,114,46,32,61,32,119,105,110,100,111,119,46,105,109,112\r
-,114,101,115,115,105,111,110,38,108,116,59,98,114,38,103,116,59,108,105,116,101,\r
-114,97,116,117,114,101,112,111,112,117,108,97,116,105,111,110,98,103,99,111,108,\r
-111,114,61,34,35,101,115,112,101,99,105,97,108,108,121,32,99,111,110,116,101,110\r
-,116,61,34,112,114,111,100,117,99,116,105,111,110,110,101,119,115,108,101,116,\r
-116,101,114,112,114,111,112,101,114,116,105,101,115,100,101,102,105,110,105,116,\r
-105,111,110,108,101,97,100,101,114,115,104,105,112,84,101,99,104,110,111,108,111\r
-,103,121,80,97,114,108,105,97,109,101,110,116,99,111,109,112,97,114,105,115,111,\r
-110,117,108,32,99,108,97,115,115,61,34,46,105,110,100,101,120,79,102,40,34,99,\r
-111,110,99,108,117,115,105,111,110,100,105,115,99,117,115,115,105,111,110,99,111\r
-,109,112,111,110,101,110,116,115,98,105,111,108,111,103,105,99,97,108,82,101,118\r
-,111,108,117,116,105,111,110,95,99,111,110,116,97,105,110,101,114,117,110,100,\r
-101,114,115,116,111,111,100,110,111,115,99,114,105,112,116,62,60,112,101,114,109\r
-,105,115,115,105,111,110,101,97,99,104,32,111,116,104,101,114,97,116,109,111,115\r
-,112,104,101,114,101,32,111,110,102,111,99,117,115,61,34,60,102,111,114,109,32,\r
-105,100,61,34,112,114,111,99,101,115,115,105,110,103,116,104,105,115,46,118,97,\r
-108,117,101,103,101,110,101,114,97,116,105,111,110,67,111,110,102,101,114,101,\r
-110,99,101,115,117,98,115,101,113,117,101,110,116,119,101,108,108,45,107,110,111\r
-,119,110,118,97,114,105,97,116,105,111,110,115,114,101,112,117,116,97,116,105,\r
-111,110,112,104,101,110,111,109,101,110,111,110,100,105,115,99,105,112,108,105,\r
-110,101,108,111,103,111,46,112,110,103,34,32,40,100,111,99,117,109,101,110,116,\r
-44,98,111,117,110,100,97,114,105,101,115,101,120,112,114,101,115,115,105,111,110\r
-,115,101,116,116,108,101,109,101,110,116,66,97,99,107,103,114,111,117,110,100,\r
-111,117,116,32,111,102,32,116,104,101,101,110,116,101,114,112,114,105,115,101,40\r
-,34,104,116,116,112,115,58,34,32,117,110,101,115,99,97,112,101,40,34,112,97,115,\r
-115,119,111,114,100,34,32,100,101,109,111,99,114,97,116,105,99,60,97,32,104,114,\r
-101,102,61,34,47,119,114,97,112,112,101,114,34,62,10,109,101,109,98,101,114,115,\r
-104,105,112,108,105,110,103,117,105,115,116,105,99,112,120,59,112,97,100,100,105\r
-,110,103,112,104,105,108,111,115,111,112,104,121,97,115,115,105,115,116,97,110,\r
-99,101,117,110,105,118,101,114,115,105,116,121,102,97,99,105,108,105,116,105,101\r
-,115,114,101,99,111,103,110,105,122,101,100,112,114,101,102,101,114,101,110,99,\r
-101,105,102,32,40,116,121,112,101,111,102,109,97,105,110,116,97,105,110,101,100,\r
-118,111,99,97,98,117,108,97,114,121,104,121,112,111,116,104,101,115,105,115,46,\r
-115,117,98,109,105,116,40,41,59,38,97,109,112,59,110,98,115,112,59,97,110,110,\r
-111,116,97,116,105,111,110,98,101,104,105,110,100,32,116,104,101,70,111,117,110,\r
-100,97,116,105,111,110,112,117,98,108,105,115,104,101,114,34,97,115,115,117,109,\r
-112,116,105,111,110,105,110,116,114,111,100,117,99,101,100,99,111,114,114,117,\r
-112,116,105,111,110,115,99,105,101,110,116,105,115,116,115,101,120,112,108,105,\r
-99,105,116,108,121,105,110,115,116,101,97,100,32,111,102,100,105,109,101,110,115\r
-,105,111,110,115,32,111,110,67,108,105,99,107,61,34,99,111,110,115,105,100,101,\r
-114,101,100,100,101,112,97,114,116,109,101,110,116,111,99,99,117,112,97,116,105,\r
-111,110,115,111,111,110,32,97,102,116,101,114,105,110,118,101,115,116,109,101,\r
-110,116,112,114,111,110,111,117,110,99,101,100,105,100,101,110,116,105,102,105,\r
-101,100,101,120,112,101,114,105,109,101,110,116,77,97,110,97,103,101,109,101,110\r
-,116,103,101,111,103,114,97,112,104,105,99,34,32,104,101,105,103,104,116,61,34,\r
-108,105,110,107,32,114,101,108,61,34,46,114,101,112,108,97,99,101,40,47,100,101,\r
-112,114,101,115,115,105,111,110,99,111,110,102,101,114,101,110,99,101,112,117,\r
-110,105,115,104,109,101,110,116,101,108,105,109,105,110,97,116,101,100,114,101,\r
-115,105,115,116,97,110,99,101,97,100,97,112,116,97,116,105,111,110,111,112,112,\r
-111,115,105,116,105,111,110,119,101,108,108,32,107,110,111,119,110,115,117,112,\r
-112,108,101,109,101,110,116,100,101,116,101,114,109,105,110,101,100,104,49,32,99\r
-,108,97,115,115,61,34,48,112,120,59,109,97,114,103,105,110,109,101,99,104,97,110\r
-,105,99,97,108,115,116,97,116,105,115,116,105,99,115,99,101,108,101,98,114,97,\r
-116,101,100,71,111,118,101,114,110,109,101,110,116,10,10,68,117,114,105,110,103,\r
-32,116,100,101,118,101,108,111,112,101,114,115,97,114,116,105,102,105,99,105,97,\r
-108,101,113,117,105,118,97,108,101,110,116,111,114,105,103,105,110,97,116,101,\r
-100,67,111,109,109,105,115,115,105,111,110,97,116,116,97,99,104,109,101,110,116,\r
-60,115,112,97,110,32,105,100,61,34,116,104,101,114,101,32,119,101,114,101,78,101\r
-,100,101,114,108,97,110,100,115,98,101,121,111,110,100,32,116,104,101,114,101,\r
-103,105,115,116,101,114,101,100,106,111,117,114,110,97,108,105,115,116,102,114,\r
-101,113,117,101,110,116,108,121,97,108,108,32,111,102,32,116,104,101,108,97,110,\r
-103,61,34,101,110,34,32,60,47,115,116,121,108,101,62,13,10,97,98,115,111,108,117\r
-,116,101,59,32,115,117,112,112,111,114,116,105,110,103,101,120,116,114,101,109,\r
-101,108,121,32,109,97,105,110,115,116,114,101,97,109,60,47,115,116,114,111,110,\r
-103,62,32,112,111,112,117,108,97,114,105,116,121,101,109,112,108,111,121,109,101\r
-,110,116,60,47,116,97,98,108,101,62,13,10,32,99,111,108,115,112,97,110,61,34,60,\r
-47,102,111,114,109,62,10,32,32,99,111,110,118,101,114,115,105,111,110,97,98,111,\r
-117,116,32,116,104,101,32,60,47,112,62,60,47,100,105,118,62,105,110,116,101,103,\r
-114,97,116,101,100,34,32,108,97,110,103,61,34,101,110,80,111,114,116,117,103,117\r
-,101,115,101,115,117,98,115,116,105,116,117,116,101,105,110,100,105,118,105,100,\r
-117,97,108,105,109,112,111,115,115,105,98,108,101,109,117,108,116,105,109,101,\r
-100,105,97,97,108,109,111,115,116,32,97,108,108,112,120,32,115,111,108,105,100,\r
-32,35,97,112,97,114,116,32,102,114,111,109,115,117,98,106,101,99,116,32,116,111,\r
-105,110,32,69,110,103,108,105,115,104,99,114,105,116,105,99,105,122,101,100,101,\r
-120,99,101,112,116,32,102,111,114,103,117,105,100,101,108,105,110,101,115,111,\r
-114,105,103,105,110,97,108,108,121,114,101,109,97,114,107,97,98,108,101,116,104,\r
-101,32,115,101,99,111,110,100,104,50,32,99,108,97,115,115,61,34,60,97,32,116,105\r
-,116,108,101,61,34,40,105,110,99,108,117,100,105,110,103,112,97,114,97,109,101,\r
-116,101,114,115,112,114,111,104,105,98,105,116,101,100,61,32,34,104,116,116,112,\r
-58,47,47,100,105,99,116,105,111,110,97,114,121,112,101,114,99,101,112,116,105,\r
-111,110,114,101,118,111,108,117,116,105,111,110,102,111,117,110,100,97,116,105,\r
-111,110,112,120,59,104,101,105,103,104,116,58,115,117,99,99,101,115,115,102,117,\r
-108,115,117,112,112,111,114,116,101,114,115,109,105,108,108,101,110,110,105,117,\r
-109,104,105,115,32,102,97,116,104,101,114,116,104,101,32,38,113,117,111,116,59,\r
-110,111,45,114,101,112,101,97,116,59,99,111,109,109,101,114,99,105,97,108,105,\r
-110,100,117,115,116,114,105,97,108,101,110,99,111,117,114,97,103,101,100,97,109,\r
-111,117,110,116,32,111,102,32,117,110,111,102,102,105,99,105,97,108,101,102,102,\r
-105,99,105,101,110,99,121,82,101,102,101,114,101,110,99,101,115,99,111,111,114,\r
-100,105,110,97,116,101,100,105,115,99,108,97,105,109,101,114,101,120,112,101,100\r
-,105,116,105,111,110,100,101,118,101,108,111,112,105,110,103,99,97,108,99,117,\r
-108,97,116,101,100,115,105,109,112,108,105,102,105,101,100,108,101,103,105,116,\r
-105,109,97,116,101,115,117,98,115,116,114,105,110,103,40,48,34,32,99,108,97,115,\r
-115,61,34,99,111,109,112,108,101,116,101,108,121,105,108,108,117,115,116,114,97,\r
-116,101,102,105,118,101,32,121,101,97,114,115,105,110,115,116,114,117,109,101,\r
-110,116,80,117,98,108,105,115,104,105,110,103,49,34,32,99,108,97,115,115,61,34,\r
-112,115,121,99,104,111,108,111,103,121,99,111,110,102,105,100,101,110,99,101,110\r
-,117,109,98,101,114,32,111,102,32,97,98,115,101,110,99,101,32,111,102,102,111,99\r
-,117,115,101,100,32,111,110,106,111,105,110,101,100,32,116,104,101,115,116,114,\r
-117,99,116,117,114,101,115,112,114,101,118,105,111,117,115,108,121,62,60,47,105,\r
-102,114,97,109,101,62,111,110,99,101,32,97,103,97,105,110,98,117,116,32,114,97,\r
-116,104,101,114,105,109,109,105,103,114,97,110,116,115,111,102,32,99,111,117,114\r
-,115,101,44,97,32,103,114,111,117,112,32,111,102,76,105,116,101,114,97,116,117,\r
-114,101,85,110,108,105,107,101,32,116,104,101,60,47,97,62,38,110,98,115,112,59,\r
-10,102,117,110,99,116,105,111,110,32,105,116,32,119,97,115,32,116,104,101,67,111\r
-,110,118,101,110,116,105,111,110,97,117,116,111,109,111,98,105,108,101,80,114,\r
-111,116,101,115,116,97,110,116,97,103,103,114,101,115,115,105,118,101,97,102,116\r
-,101,114,32,116,104,101,32,83,105,109,105,108,97,114,108,121,44,34,32,47,62,60,\r
-47,100,105,118,62,99,111,108,108,101,99,116,105,111,110,13,10,102,117,110,99,116\r
-,105,111,110,118,105,115,105,98,105,108,105,116,121,116,104,101,32,117,115,101,\r
-32,111,102,118,111,108,117,110,116,101,101,114,115,97,116,116,114,97,99,116,105,\r
-111,110,117,110,100,101,114,32,116,104,101,32,116,104,114,101,97,116,101,110,101\r
-,100,42,60,33,91,67,68,65,84,65,91,105,109,112,111,114,116,97,110,99,101,105,110\r
-,32,103,101,110,101,114,97,108,116,104,101,32,108,97,116,116,101,114,60,47,102,\r
-111,114,109,62,10,60,47,46,105,110,100,101,120,79,102,40,39,105,32,61,32,48,59,\r
-32,105,32,60,100,105,102,102,101,114,101,110,99,101,100,101,118,111,116,101,100,\r
-32,116,111,116,114,97,100,105,116,105,111,110,115,115,101,97,114,99,104,32,102,\r
-111,114,117,108,116,105,109,97,116,101,108,121,116,111,117,114,110,97,109,101,\r
-110,116,97,116,116,114,105,98,117,116,101,115,115,111,45,99,97,108,108,101,100,\r
-32,125,10,60,47,115,116,121,108,101,62,101,118,97,108,117,97,116,105,111,110,101\r
-,109,112,104,97,115,105,122,101,100,97,99,99,101,115,115,105,98,108,101,60,47,\r
-115,101,99,116,105,111,110,62,115,117,99,99,101,115,115,105,111,110,97,108,111,\r
-110,103,32,119,105,116,104,77,101,97,110,119,104,105,108,101,44,105,110,100,117,\r
-115,116,114,105,101,115,60,47,97,62,60,98,114,32,47,62,104,97,115,32,98,101,99,\r
-111,109,101,97,115,112,101,99,116,115,32,111,102,84,101,108,101,118,105,115,105,\r
-111,110,115,117,102,102,105,99,105,101,110,116,98,97,115,107,101,116,98,97,108,\r
-108,98,111,116,104,32,115,105,100,101,115,99,111,110,116,105,110,117,105,110,103\r
-,97,110,32,97,114,116,105,99,108,101,60,105,109,103,32,97,108,116,61,34,97,100,\r
-118,101,110,116,117,114,101,115,104,105,115,32,109,111,116,104,101,114,109,97,\r
-110,99,104,101,115,116,101,114,112,114,105,110,99,105,112,108,101,115,112,97,114\r
-,116,105,99,117,108,97,114,99,111,109,109,101,110,116,97,114,121,101,102,102,101\r
-,99,116,115,32,111,102,100,101,99,105,100,101,100,32,116,111,34,62,60,115,116,\r
-114,111,110,103,62,112,117,98,108,105,115,104,101,114,115,74,111,117,114,110,97,\r
-108,32,111,102,100,105,102,102,105,99,117,108,116,121,102,97,99,105,108,105,116,\r
-97,116,101,97,99,99,101,112,116,97,98,108,101,115,116,121,108,101,46,99,115,115,\r
-34,9,102,117,110,99,116,105,111,110,32,105,110,110,111,118,97,116,105,111,110,62\r
-,67,111,112,121,114,105,103,104,116,115,105,116,117,97,116,105,111,110,115,119,\r
-111,117,108,100,32,104,97,118,101,98,117,115,105,110,101,115,115,101,115,68,105,\r
-99,116,105,111,110,97,114,121,115,116,97,116,101,109,101,110,116,115,111,102,116\r
-,101,110,32,117,115,101,100,112,101,114,115,105,115,116,101,110,116,105,110,32,\r
-74,97,110,117,97,114,121,99,111,109,112,114,105,115,105,110,103,60,47,116,105,\r
-116,108,101,62,10,9,100,105,112,108,111,109,97,116,105,99,99,111,110,116,97,105,\r
-110,105,110,103,112,101,114,102,111,114,109,105,110,103,101,120,116,101,110,115,\r
-105,111,110,115,109,97,121,32,110,111,116,32,98,101,99,111,110,99,101,112,116,32\r
-,111,102,32,111,110,99,108,105,99,107,61,34,73,116,32,105,115,32,97,108,115,111,\r
-102,105,110,97,110,99,105,97,108,32,109,97,107,105,110,103,32,116,104,101,76,117\r
-,120,101,109,98,111,117,114,103,97,100,100,105,116,105,111,110,97,108,97,114,101\r
-,32,99,97,108,108,101,100,101,110,103,97,103,101,100,32,105,110,34,115,99,114,\r
-105,112,116,34,41,59,98,117,116,32,105,116,32,119,97,115,101,108,101,99,116,114,\r
-111,110,105,99,111,110,115,117,98,109,105,116,61,34,10,60,33,45,45,32,69,110,100\r
-,32,101,108,101,99,116,114,105,99,97,108,111,102,102,105,99,105,97,108,108,121,\r
-115,117,103,103,101,115,116,105,111,110,116,111,112,32,111,102,32,116,104,101,\r
-117,110,108,105,107,101,32,116,104,101,65,117,115,116,114,97,108,105,97,110,79,\r
-114,105,103,105,110,97,108,108,121,114,101,102,101,114,101,110,99,101,115,10,60,\r
-47,104,101,97,100,62,13,10,114,101,99,111,103,110,105,115,101,100,105,110,105,\r
-116,105,97,108,105,122,101,108,105,109,105,116,101,100,32,116,111,65,108,101,120\r
-,97,110,100,114,105,97,114,101,116,105,114,101,109,101,110,116,65,100,118,101,\r
-110,116,117,114,101,115,102,111,117,114,32,121,101,97,114,115,10,10,38,108,116,\r
-59,33,45,45,32,105,110,99,114,101,97,115,105,110,103,100,101,99,111,114,97,116,\r
-105,111,110,104,51,32,99,108,97,115,115,61,34,111,114,105,103,105,110,115,32,111\r
-,102,111,98,108,105,103,97,116,105,111,110,114,101,103,117,108,97,116,105,111,\r
-110,99,108,97,115,115,105,102,105,101,100,40,102,117,110,99,116,105,111,110,40,\r
-97,100,118,97,110,116,97,103,101,115,98,101,105,110,103,32,116,104,101,32,104,\r
-105,115,116,111,114,105,97,110,115,60,98,97,115,101,32,104,114,101,102,114,101,\r
-112,101,97,116,101,100,108,121,119,105,108,108,105,110,103,32,116,111,99,111,109\r
-,112,97,114,97,98,108,101,100,101,115,105,103,110,97,116,101,100,110,111,109,105\r
-,110,97,116,105,111,110,102,117,110,99,116,105,111,110,97,108,105,110,115,105,\r
-100,101,32,116,104,101,114,101,118,101,108,97,116,105,111,110,101,110,100,32,111\r
-,102,32,116,104,101,115,32,102,111,114,32,116,104,101,32,97,117,116,104,111,114,\r
-105,122,101,100,114,101,102,117,115,101,100,32,116,111,116,97,107,101,32,112,108\r
-,97,99,101,97,117,116,111,110,111,109,111,117,115,99,111,109,112,114,111,109,105\r
-,115,101,112,111,108,105,116,105,99,97,108,32,114,101,115,116,97,117,114,97,110,\r
-116,116,119,111,32,111,102,32,116,104,101,70,101,98,114,117,97,114,121,32,50,113\r
-,117,97,108,105,116,121,32,111,102,115,119,102,111,98,106,101,99,116,46,117,110,\r
-100,101,114,115,116,97,110,100,110,101,97,114,108,121,32,97,108,108,119,114,105,\r
-116,116,101,110,32,98,121,105,110,116,101,114,118,105,101,119,115,34,32,119,105,\r
-100,116,104,61,34,49,119,105,116,104,100,114,97,119,97,108,102,108,111,97,116,58\r
-,108,101,102,116,105,115,32,117,115,117,97,108,108,121,99,97,110,100,105,100,97,\r
-116,101,115,110,101,119,115,112,97,112,101,114,115,109,121,115,116,101,114,105,\r
-111,117,115,68,101,112,97,114,116,109,101,110,116,98,101,115,116,32,107,110,111,\r
-119,110,112,97,114,108,105,97,109,101,110,116,115,117,112,112,114,101,115,115,\r
-101,100,99,111,110,118,101,110,105,101,110,116,114,101,109,101,109,98,101,114,\r
-101,100,100,105,102,102,101,114,101,110,116,32,115,121,115,116,101,109,97,116,\r
-105,99,104,97,115,32,108,101,100,32,116,111,112,114,111,112,97,103,97,110,100,97\r
-,99,111,110,116,114,111,108,108,101,100,105,110,102,108,117,101,110,99,101,115,\r
-99,101,114,101,109,111,110,105,97,108,112,114,111,99,108,97,105,109,101,100,80,\r
-114,111,116,101,99,116,105,111,110,108,105,32,99,108,97,115,115,61,34,83,99,105,\r
-101,110,116,105,102,105,99,99,108,97,115,115,61,34,110,111,45,116,114,97,100,101\r
-,109,97,114,107,115,109,111,114,101,32,116,104,97,110,32,119,105,100,101,115,112\r
-,114,101,97,100,76,105,98,101,114,97,116,105,111,110,116,111,111,107,32,112,108,\r
-97,99,101,100,97,121,32,111,102,32,116,104,101,97,115,32,108,111,110,103,32,97,\r
-115,105,109,112,114,105,115,111,110,101,100,65,100,100,105,116,105,111,110,97,\r
-108,10,60,104,101,97,100,62,10,60,109,76,97,98,111,114,97,116,111,114,121,78,111\r
-,118,101,109,98,101,114,32,50,101,120,99,101,112,116,105,111,110,115,73,110,100,\r
-117,115,116,114,105,97,108,118,97,114,105,101,116,121,32,111,102,102,108,111,97,\r
-116,58,32,108,101,102,68,117,114,105,110,103,32,116,104,101,97,115,115,101,115,\r
-115,109,101,110,116,104,97,118,101,32,98,101,101,110,32,100,101,97,108,115,32,\r
-119,105,116,104,83,116,97,116,105,115,116,105,99,115,111,99,99,117,114,114,101,\r
-110,99,101,47,117,108,62,60,47,100,105,118,62,99,108,101,97,114,102,105,120,34,\r
-62,116,104,101,32,112,117,98,108,105,99,109,97,110,121,32,121,101,97,114,115,119\r
-,104,105,99,104,32,119,101,114,101,111,118,101,114,32,116,105,109,101,44,115,121\r
-,110,111,110,121,109,111,117,115,99,111,110,116,101,110,116,34,62,10,112,114,101\r
-,115,117,109,97,98,108,121,104,105,115,32,102,97,109,105,108,121,117,115,101,114\r
-,65,103,101,110,116,46,117,110,101,120,112,101,99,116,101,100,105,110,99,108,117\r
-,100,105,110,103,32,99,104,97,108,108,101,110,103,101,100,97,32,109,105,110,111,\r
-114,105,116,121,117,110,100,101,102,105,110,101,100,34,98,101,108,111,110,103,\r
-115,32,116,111,116,97,107,101,110,32,102,114,111,109,105,110,32,79,99,116,111,98\r
-,101,114,112,111,115,105,116,105,111,110,58,32,115,97,105,100,32,116,111,32,98,\r
-101,114,101,108,105,103,105,111,117,115,32,70,101,100,101,114,97,116,105,111,110\r
-,32,114,111,119,115,112,97,110,61,34,111,110,108,121,32,97,32,102,101,119,109,\r
-101,97,110,116,32,116,104,97,116,108,101,100,32,116,111,32,116,104,101,45,45,62,\r
-13,10,60,100,105,118,32,60,102,105,101,108,100,115,101,116,62,65,114,99,104,98,\r
-105,115,104,111,112,32,99,108,97,115,115,61,34,110,111,98,101,105,110,103,32,117\r
-,115,101,100,97,112,112,114,111,97,99,104,101,115,112,114,105,118,105,108,101,\r
-103,101,115,110,111,115,99,114,105,112,116,62,10,114,101,115,117,108,116,115,32,\r
-105,110,109,97,121,32,98,101,32,116,104,101,69,97,115,116,101,114,32,101,103,103\r
-,109,101,99,104,97,110,105,115,109,115,114,101,97,115,111,110,97,98,108,101,80,\r
-111,112,117,108,97,116,105,111,110,67,111,108,108,101,99,116,105,111,110,115,101\r
-,108,101,99,116,101,100,34,62,110,111,115,99,114,105,112,116,62,13,47,105,110,\r
-100,101,120,46,112,104,112,97,114,114,105,118,97,108,32,111,102,45,106,115,115,\r
-100,107,39,41,41,59,109,97,110,97,103,101,100,32,116,111,105,110,99,111,109,112,\r
-108,101,116,101,99,97,115,117,97,108,116,105,101,115,99,111,109,112,108,101,116,\r
-105,111,110,67,104,114,105,115,116,105,97,110,115,83,101,112,116,101,109,98,101,\r
-114,32,97,114,105,116,104,109,101,116,105,99,112,114,111,99,101,100,117,114,101,\r
-115,109,105,103,104,116,32,104,97,118,101,80,114,111,100,117,99,116,105,111,110,\r
-105,116,32,97,112,112,101,97,114,115,80,104,105,108,111,115,111,112,104,121,102,\r
-114,105,101,110,100,115,104,105,112,108,101,97,100,105,110,103,32,116,111,103,\r
-105,118,105,110,103,32,116,104,101,116,111,119,97,114,100,32,116,104,101,103,117\r
-,97,114,97,110,116,101,101,100,100,111,99,117,109,101,110,116,101,100,99,111,108\r
-,111,114,58,35,48,48,48,118,105,100,101,111,32,103,97,109,101,99,111,109,109,105\r
-,115,115,105,111,110,114,101,102,108,101,99,116,105,110,103,99,104,97,110,103,\r
-101,32,116,104,101,97,115,115,111,99,105,97,116,101,100,115,97,110,115,45,115,\r
-101,114,105,102,111,110,107,101,121,112,114,101,115,115,59,32,112,97,100,100,105\r
-,110,103,58,72,101,32,119,97,115,32,116,104,101,117,110,100,101,114,108,121,105,\r
-110,103,116,121,112,105,99,97,108,108,121,32,44,32,97,110,100,32,116,104,101,32,\r
-115,114,99,69,108,101,109,101,110,116,115,117,99,99,101,115,115,105,118,101,115,\r
-105,110,99,101,32,116,104,101,32,115,104,111,117,108,100,32,98,101,32,110,101,\r
-116,119,111,114,107,105,110,103,97,99,99,111,117,110,116,105,110,103,117,115,101\r
-,32,111,102,32,116,104,101,108,111,119,101,114,32,116,104,97,110,115,104,111,119\r
-,115,32,116,104,97,116,60,47,115,112,97,110,62,10,9,9,99,111,109,112,108,97,105,\r
-110,116,115,99,111,110,116,105,110,117,111,117,115,113,117,97,110,116,105,116,\r
-105,101,115,97,115,116,114,111,110,111,109,101,114,104,101,32,100,105,100,32,110\r
-,111,116,100,117,101,32,116,111,32,105,116,115,97,112,112,108,105,101,100,32,116\r
-,111,97,110,32,97,118,101,114,97,103,101,101,102,102,111,114,116,115,32,116,111,\r
-116,104,101,32,102,117,116,117,114,101,97,116,116,101,109,112,116,32,116,111,84,\r
-104,101,114,101,102,111,114,101,44,99,97,112,97,98,105,108,105,116,121,82,101,\r
-112,117,98,108,105,99,97,110,119,97,115,32,102,111,114,109,101,100,69,108,101,99\r
-,116,114,111,110,105,99,107,105,108,111,109,101,116,101,114,115,99,104,97,108,\r
-108,101,110,103,101,115,112,117,98,108,105,115,104,105,110,103,116,104,101,32,\r
-102,111,114,109,101,114,105,110,100,105,103,101,110,111,117,115,100,105,114,101,\r
-99,116,105,111,110,115,115,117,98,115,105,100,105,97,114,121,99,111,110,115,112,\r
-105,114,97,99,121,100,101,116,97,105,108,115,32,111,102,97,110,100,32,105,110,32\r
-,116,104,101,97,102,102,111,114,100,97,98,108,101,115,117,98,115,116,97,110,99,\r
-101,115,114,101,97,115,111,110,32,102,111,114,99,111,110,118,101,110,116,105,111\r
-,110,105,116,101,109,116,121,112,101,61,34,97,98,115,111,108,117,116,101,108,121\r
-,115,117,112,112,111,115,101,100,108,121,114,101,109,97,105,110,101,100,32,97,97\r
-,116,116,114,97,99,116,105,118,101,116,114,97,118,101,108,108,105,110,103,115,\r
-101,112,97,114,97,116,101,108,121,102,111,99,117,115,101,115,32,111,110,101,108,\r
-101,109,101,110,116,97,114,121,97,112,112,108,105,99,97,98,108,101,102,111,117,\r
-110,100,32,116,104,97,116,115,116,121,108,101,115,104,101,101,116,109,97,110,117\r
-,115,99,114,105,112,116,115,116,97,110,100,115,32,102,111,114,32,110,111,45,114,\r
-101,112,101,97,116,40,115,111,109,101,116,105,109,101,115,67,111,109,109,101,114\r
-,99,105,97,108,105,110,32,65,109,101,114,105,99,97,117,110,100,101,114,116,97,\r
-107,101,110,113,117,97,114,116,101,114,32,111,102,97,110,32,101,120,97,109,112,\r
-108,101,112,101,114,115,111,110,97,108,108,121,105,110,100,101,120,46,112,104,\r
-112,63,60,47,98,117,116,116,111,110,62,10,112,101,114,99,101,110,116,97,103,101,\r
-98,101,115,116,45,107,110,111,119,110,99,114,101,97,116,105,110,103,32,97,34,32,\r
-100,105,114,61,34,108,116,114,76,105,101,117,116,101,110,97,110,116,10,60,100,\r
-105,118,32,105,100,61,34,116,104,101,121,32,119,111,117,108,100,97,98,105,108,\r
-105,116,121,32,111,102,109,97,100,101,32,117,112,32,111,102,110,111,116,101,100,\r
-32,116,104,97,116,99,108,101,97,114,32,116,104,97,116,97,114,103,117,101,32,116,\r
-104,97,116,116,111,32,97,110,111,116,104,101,114,99,104,105,108,100,114,101,110,\r
-39,115,112,117,114,112,111,115,101,32,111,102,102,111,114,109,117,108,97,116,101\r
-,100,98,97,115,101,100,32,117,112,111,110,116,104,101,32,114,101,103,105,111,110\r
-,115,117,98,106,101,99,116,32,111,102,112,97,115,115,101,110,103,101,114,115,112\r
-,111,115,115,101,115,115,105,111,110,46,10,10,73,110,32,116,104,101,32,66,101,\r
-102,111,114,101,32,116,104,101,97,102,116,101,114,119,97,114,100,115,99,117,114,\r
-114,101,110,116,108,121,32,97,99,114,111,115,115,32,116,104,101,115,99,105,101,\r
-110,116,105,102,105,99,99,111,109,109,117,110,105,116,121,46,99,97,112,105,116,\r
-97,108,105,115,109,105,110,32,71,101,114,109,97,110,121,114,105,103,104,116,45,\r
-119,105,110,103,116,104,101,32,115,121,115,116,101,109,83,111,99,105,101,116,121\r
-,32,111,102,112,111,108,105,116,105,99,105,97,110,100,105,114,101,99,116,105,111\r
-,110,58,119,101,110,116,32,111,110,32,116,111,114,101,109,111,118,97,108,32,111,\r
-102,32,78,101,119,32,89,111,114,107,32,97,112,97,114,116,109,101,110,116,115,105\r
-,110,100,105,99,97,116,105,111,110,100,117,114,105,110,103,32,116,104,101,117,\r
-110,108,101,115,115,32,116,104,101,104,105,115,116,111,114,105,99,97,108,104,97,\r
-100,32,98,101,101,110,32,97,100,101,102,105,110,105,116,105,118,101,105,110,103,\r
-114,101,100,105,101,110,116,97,116,116,101,110,100,97,110,99,101,67,101,110,116,\r
-101,114,32,102,111,114,112,114,111,109,105,110,101,110,99,101,114,101,97,100,121\r
-,83,116,97,116,101,115,116,114,97,116,101,103,105,101,115,98,117,116,32,105,110,\r
-32,116,104,101,97,115,32,112,97,114,116,32,111,102,99,111,110,115,116,105,116,\r
-117,116,101,99,108,97,105,109,32,116,104,97,116,108,97,98,111,114,97,116,111,114\r
-,121,99,111,109,112,97,116,105,98,108,101,102,97,105,108,117,114,101,32,111,102,\r
-44,32,115,117,99,104,32,97,115,32,98,101,103,97,110,32,119,105,116,104,117,115,\r
-105,110,103,32,116,104,101,32,116,111,32,112,114,111,118,105,100,101,102,101,97,\r
-116,117,114,101,32,111,102,102,114,111,109,32,119,104,105,99,104,47,34,32,99,108\r
-,97,115,115,61,34,103,101,111,108,111,103,105,99,97,108,115,101,118,101,114,97,\r
-108,32,111,102,100,101,108,105,98,101,114,97,116,101,105,109,112,111,114,116,97,\r
-110,116,32,104,111,108,100,115,32,116,104,97,116,105,110,103,38,113,117,111,116,\r
-59,32,118,97,108,105,103,110,61,116,111,112,116,104,101,32,71,101,114,109,97,110\r
-,111,117,116,115,105,100,101,32,111,102,110,101,103,111,116,105,97,116,101,100,\r
-104,105,115,32,99,97,114,101,101,114,115,101,112,97,114,97,116,105,111,110,105,\r
-100,61,34,115,101,97,114,99,104,119,97,115,32,99,97,108,108,101,100,116,104,101,\r
-32,102,111,117,114,116,104,114,101,99,114,101,97,116,105,111,110,111,116,104,101\r
-,114,32,116,104,97,110,112,114,101,118,101,110,116,105,111,110,119,104,105,108,\r
-101,32,116,104,101,32,101,100,117,99,97,116,105,111,110,44,99,111,110,110,101,99\r
-,116,105,110,103,97,99,99,117,114,97,116,101,108,121,119,101,114,101,32,98,117,\r
-105,108,116,119,97,115,32,107,105,108,108,101,100,97,103,114,101,101,109,101,110\r
-,116,115,109,117,99,104,32,109,111,114,101,32,68,117,101,32,116,111,32,116,104,\r
-101,119,105,100,116,104,58,32,49,48,48,115,111,109,101,32,111,116,104,101,114,75\r
-,105,110,103,100,111,109,32,111,102,116,104,101,32,101,110,116,105,114,101,102,\r
-97,109,111,117,115,32,102,111,114,116,111,32,99,111,110,110,101,99,116,111,98,\r
-106,101,99,116,105,118,101,115,116,104,101,32,70,114,101,110,99,104,112,101,111,\r
-112,108,101,32,97,110,100,102,101,97,116,117,114,101,100,34,62,105,115,32,115,97\r
-,105,100,32,116,111,115,116,114,117,99,116,117,114,97,108,114,101,102,101,114,\r
-101,110,100,117,109,109,111,115,116,32,111,102,116,101,110,97,32,115,101,112,97,\r
-114,97,116,101,45,62,10,60,100,105,118,32,105,100,32,79,102,102,105,99,105,97,\r
-108,32,119,111,114,108,100,119,105,100,101,46,97,114,105,97,45,108,97,98,101,108\r
-,116,104,101,32,112,108,97,110,101,116,97,110,100,32,105,116,32,119,97,115,100,\r
-34,32,118,97,108,117,101,61,34,108,111,111,107,105,110,103,32,97,116,98,101,110,\r
-101,102,105,99,105,97,108,97,114,101,32,105,110,32,116,104,101,109,111,110,105,\r
-116,111,114,105,110,103,114,101,112,111,114,116,101,100,108,121,116,104,101,32,\r
-109,111,100,101,114,110,119,111,114,107,105,110,103,32,111,110,97,108,108,111,\r
-119,101,100,32,116,111,119,104,101,114,101,32,116,104,101,32,105,110,110,111,118\r
-,97,116,105,118,101,60,47,97,62,60,47,100,105,118,62,115,111,117,110,100,116,114\r
-,97,99,107,115,101,97,114,99,104,70,111,114,109,116,101,110,100,32,116,111,32,98\r
-,101,105,110,112,117,116,32,105,100,61,34,111,112,101,110,105,110,103,32,111,102\r
-,114,101,115,116,114,105,99,116,101,100,97,100,111,112,116,101,100,32,98,121,97,\r
-100,100,114,101,115,115,105,110,103,116,104,101,111,108,111,103,105,97,110,109,\r
-101,116,104,111,100,115,32,111,102,118,97,114,105,97,110,116,32,111,102,67,104,\r
-114,105,115,116,105,97,110,32,118,101,114,121,32,108,97,114,103,101,97,117,116,\r
-111,109,111,116,105,118,101,98,121,32,102,97,114,32,116,104,101,114,97,110,103,\r
-101,32,102,114,111,109,112,117,114,115,117,105,116,32,111,102,102,111,108,108,\r
-111,119,32,116,104,101,98,114,111,117,103,104,116,32,116,111,105,110,32,69,110,\r
-103,108,97,110,100,97,103,114,101,101,32,116,104,97,116,97,99,99,117,115,101,100\r
-,32,111,102,99,111,109,101,115,32,102,114,111,109,112,114,101,118,101,110,116,\r
-105,110,103,100,105,118,32,115,116,121,108,101,61,104,105,115,32,111,114,32,104,\r
-101,114,116,114,101,109,101,110,100,111,117,115,102,114,101,101,100,111,109,32,\r
-111,102,99,111,110,99,101,114,110,105,110,103,48,32,49,101,109,32,49,101,109,59,\r
-66,97,115,107,101,116,98,97,108,108,47,115,116,121,108,101,46,99,115,115,97,110,\r
-32,101,97,114,108,105,101,114,101,118,101,110,32,97,102,116,101,114,47,34,32,116\r
-,105,116,108,101,61,34,46,99,111,109,47,105,110,100,101,120,116,97,107,105,110,\r
-103,32,116,104,101,112,105,116,116,115,98,117,114,103,104,99,111,110,116,101,110\r
-,116,34,62,13,60,115,99,114,105,112,116,62,40,102,116,117,114,110,101,100,32,111\r
-,117,116,104,97,118,105,110,103,32,116,104,101,60,47,115,112,97,110,62,13,10,32,\r
-111,99,99,97,115,105,111,110,97,108,98,101,99,97,117,115,101,32,105,116,115,116,\r
-97,114,116,101,100,32,116,111,112,104,121,115,105,99,97,108,108,121,62,60,47,100\r
-,105,118,62,10,32,32,99,114,101,97,116,101,100,32,98,121,67,117,114,114,101,110,\r
-116,108,121,44,32,98,103,99,111,108,111,114,61,34,116,97,98,105,110,100,101,120,\r
-61,34,100,105,115,97,115,116,114,111,117,115,65,110,97,108,121,116,105,99,115,32\r
-,97,108,115,111,32,104,97,115,32,97,62,60,100,105,118,32,105,100,61,34,60,47,115\r
-,116,121,108,101,62,10,60,99,97,108,108,101,100,32,102,111,114,115,105,110,103,\r
-101,114,32,97,110,100,46,115,114,99,32,61,32,34,47,47,118,105,111,108,97,116,105\r
-,111,110,115,116,104,105,115,32,112,111,105,110,116,99,111,110,115,116,97,110,\r
-116,108,121,105,115,32,108,111,99,97,116,101,100,114,101,99,111,114,100,105,110,\r
-103,115,100,32,102,114,111,109,32,116,104,101,110,101,100,101,114,108,97,110,100\r
-,115,112,111,114,116,117,103,117,195,170,115,215,162,215,145,215,168,215,153,215\r
-,170,217,129,216,167,216,177,216,179,219,140,100,101,115,97,114,114,111,108,108,\r
-111,99,111,109,101,110,116,97,114,105,111,101,100,117,99,97,99,105,195,179,110,\r
-115,101,112,116,105,101,109,98,114,101,114,101,103,105,115,116,114,97,100,111,\r
-100,105,114,101,99,99,105,195,179,110,117,98,105,99,97,99,105,195,179,110,112,\r
-117,98,108,105,99,105,100,97,100,114,101,115,112,117,101,115,116,97,115,114,101,\r
-115,117,108,116,97,100,111,115,105,109,112,111,114,116,97,110,116,101,114,101,\r
-115,101,114,118,97,100,111,115,97,114,116,195,173,99,117,108,111,115,100,105,102\r
-,101,114,101,110,116,101,115,115,105,103,117,105,101,110,116,101,115,114,101,112\r
-,195,186,98,108,105,99,97,115,105,116,117,97,99,105,195,179,110,109,105,110,105,\r
-115,116,101,114,105,111,112,114,105,118,97,99,105,100,97,100,100,105,114,101,99,\r
-116,111,114,105,111,102,111,114,109,97,99,105,195,179,110,112,111,98,108,97,99,\r
-105,195,179,110,112,114,101,115,105,100,101,110,116,101,99,111,110,116,101,110,\r
-105,100,111,115,97,99,99,101,115,111,114,105,111,115,116,101,99,104,110,111,114,\r
-97,116,105,112,101,114,115,111,110,97,108,101,115,99,97,116,101,103,111,114,195,\r
-173,97,101,115,112,101,99,105,97,108,101,115,100,105,115,112,111,110,105,98,108,\r
-101,97,99,116,117,97,108,105,100,97,100,114,101,102,101,114,101,110,99,105,97,\r
-118,97,108,108,97,100,111,108,105,100,98,105,98,108,105,111,116,101,99,97,114,\r
-101,108,97,99,105,111,110,101,115,99,97,108,101,110,100,97,114,105,111,112,111,\r
-108,195,173,116,105,99,97,115,97,110,116,101,114,105,111,114,101,115,100,111,99,\r
-117,109,101,110,116,111,115,110,97,116,117,114,97,108,101,122,97,109,97,116,101,\r
-114,105,97,108,101,115,100,105,102,101,114,101,110,99,105,97,101,99,111,110,195,\r
-179,109,105,99,97,116,114,97,110,115,112,111,114,116,101,114,111,100,114,195,173\r
-,103,117,101,122,112,97,114,116,105,99,105,112,97,114,101,110,99,117,101,110,116\r
-,114,97,110,100,105,115,99,117,115,105,195,179,110,101,115,116,114,117,99,116,\r
-117,114,97,102,117,110,100,97,99,105,195,179,110,102,114,101,99,117,101,110,116,\r
-101,115,112,101,114,109,97,110,101,110,116,101,116,111,116,97,108,109,101,110,\r
-116,101,208,188,208,190,208,182,208,189,208,190,208,177,209,131,208,180,208,181,\r
-209,130,208,188,208,190,208,182,208,181,209,130,208,178,209,128,208,181,208,188,\r
-209,143,209,130,208,176,208,186,208,182,208,181,209,135,209,130,208,190,208,177,\r
-209,139,208,177,208,190,208,187,208,181,208,181,208,190,209,135,208,181,208,189,\r
-209,140,209,141,209,130,208,190,208,179,208,190,208,186,208,190,208,179,208,180,\r
-208,176,208,191,208,190,209,129,208,187,208,181,208,178,209,129,208,181,208,179,\r
-208,190,209,129,208,176,208,185,209,130,208,181,209,135,208,181,209,128,208,181,\r
-208,183,208,188,208,190,208,179,209,131,209,130,209,129,208,176,208,185,209,130,\r
-208,176,208,182,208,184,208,183,208,189,208,184,208,188,208,181,208,182,208,180,\r
-209,131,208,177,209,131,208,180,209,131,209,130,208,159,208,190,208,184,209,129,\r
-208,186,208,183,208,180,208,181,209,129,209,140,208,178,208,184,208,180,208,181,\r
-208,190,209,129,208,178,209,143,208,183,208,184,208,189,209,131,208,182,208,189,\r
-208,190,209,129,208,178,208,190,208,181,208,185,208,187,209,142,208,180,208,181,\r
-208,185,208,191,208,190,209,128,208,189,208,190,208,188,208,189,208,190,208,179,\r
-208,190,208,180,208,181,209,130,208,181,208,185,209,129,208,178,208,190,208,184,\r
-209,133,208,191,209,128,208,176,208,178,208,176,209,130,208,176,208,186,208,190,\r
-208,185,208,188,208,181,209,129,209,130,208,190,208,184,208,188,208,181,208,181,\r
-209,130,208,182,208,184,208,183,208,189,209,140,208,190,208,180,208,189,208,190,\r
-208,185,208,187,209,131,209,135,209,136,208,181,208,191,208,181,209,128,208,181,\r
-208,180,209,135,208,176,209,129,209,130,208,184,209,135,208,176,209,129,209,130,\r
-209,140,209,128,208,176,208,177,208,190,209,130,208,189,208,190,208,178,209,139,\r
-209,133,208,191,209,128,208,176,208,178,208,190,209,129,208,190,208,177,208,190,\r
-208,185,208,191,208,190,209,130,208,190,208,188,208,188,208,181,208,189,208,181,\r
-208,181,209,135,208,184,209,129,208,187,208,181,208,189,208,190,208,178,209,139,\r
-208,181,209,131,209,129,208,187,209,131,208,179,208,190,208,186,208,190,208,187,\r
-208,190,208,189,208,176,208,183,208,176,208,180,209,130,208,176,208,186,208,190,\r
-208,181,209,130,208,190,208,179,208,180,208,176,208,191,208,190,209,135,209,130,\r
-208,184,208,159,208,190,209,129,208,187,208,181,209,130,208,176,208,186,208,184,\r
-208,181,208,189,208,190,208,178,209,139,208,185,209,129,209,130,208,190,208,184,\r
-209,130,209,130,208,176,208,186,208,184,209,133,209,129,209,128,208,176,208,183,\r
-209,131,208,161,208,176,208,189,208,186,209,130,209,132,208,190,209,128,209,131,\r
-208,188,208,154,208,190,208,179,208,180,208,176,208,186,208,189,208,184,208,179,\r
-208,184,209,129,208,187,208,190,208,178,208,176,208,189,208,176,209,136,208,181,\r
-208,185,208,189,208,176,208,185,209,130,208,184,209,129,208,178,208,190,208,184,\r
-208,188,209,129,208,178,209,143,208,183,209,140,208,187,209,142,208,177,208,190,\r
-208,185,209,135,208,176,209,129,209,130,208,190,209,129,209,128,208,181,208,180,\r
-208,184,208,154,209,128,208,190,208,188,208,181,208,164,208,190,209,128,209,131,\r
-208,188,209,128,209,139,208,189,208,186,208,181,209,129,209,130,208,176,208,187,\r
-208,184,208,191,208,190,208,184,209,129,208,186,209,130,209,139,209,129,209,143,\r
-209,135,208,188,208,181,209,129,209,143,209,134,209,134,208,181,208,189,209,130,\r
-209,128,209,130,209,128,209,131,208,180,208,176,209,129,208,176,208,188,209,139,\r
-209,133,209,128,209,139,208,189,208,186,208,176,208,157,208,190,208,178,209,139,\r
-208,185,209,135,208,176,209,129,208,190,208,178,208,188,208,181,209,129,209,130,\r
-208,176,209,132,208,184,208,187,209,140,208,188,208,188,208,176,209,128,209,130,\r
-208,176,209,129,209,130,209,128,208,176,208,189,208,188,208,181,209,129,209,130,\r
-208,181,209,130,208,181,208,186,209,129,209,130,208,189,208,176,209,136,208,184,\r
-209,133,208,188,208,184,208,189,209,131,209,130,208,184,208,188,208,181,208,189,\r
-208,184,208,184,208,188,208,181,209,142,209,130,208,189,208,190,208,188,208,181,\r
-209,128,208,179,208,190,209,128,208,190,208,180,209,129,208,176,208,188,208,190,\r
-208,188,209,141,209,130,208,190,208,188,209,131,208,186,208,190,208,189,209,134,\r
-208,181,209,129,208,178,208,190,208,181,208,188,208,186,208,176,208,186,208,190,\r
-208,185,208,144,209,128,209,133,208,184,208,178,217,133,217,134,216,170,216,175,\r
-217,137,216,165,216,177,216,179,216,167,217,132,216,177,216,179,216,167,217,132,\r
-216,169,216,167,217,132,216,185,216,167,217,133,217,131,216,170,216,168,217,135,\r
-216,167,216,168,216,177,216,167,217,133,216,172,216,167,217,132,217,138,217,136,\r
-217,133,216,167,217,132,216,181,217,136,216,177,216,172,216,175,217,138,216,175,\r
-216,169,216,167,217,132,216,185,216,182,217,136,216,165,216,182,216,167,217,129,\r
-216,169,216,167,217,132,217,130,216,179,217,133,216,167,217,132,216,185,216,167,\r
-216,168,216,170,216,173,217,133,217,138,217,132,217,133,217,132,217,129,216,167,\r
-216,170,217,133,217,132,216,170,217,130,217,137,216,170,216,185,216,175,217,138,\r
-217,132,216,167,217,132,216,180,216,185,216,177,216,163,216,174,216,168,216,167,\r
-216,177,216,170,216,183,217,136,217,138,216,177,216,185,217,132,217,138,217,131,\r
-217,133,216,165,216,177,217,129,216,167,217,130,216,183,217,132,216,168,216,167,\r
-216,170,216,167,217,132,217,132,216,186,216,169,216,170,216,177,216,170,217,138,\r
-216,168,216,167,217,132,217,134,216,167,216,179,216,167,217,132,216,180,217,138,\r
-216,174,217,133,217,134,216,170,216,175,217,138,216,167,217,132,216,185,216,177,\r
-216,168,216,167,217,132,217,130,216,181,216,181,216,167,217,129,217,132,216,167,\r
-217,133,216,185,217,132,217,138,217,135,216,167,216,170,216,173,216,175,217,138,\r
-216,171,216,167,217,132,217,132,217,135,217,133,216,167,217,132,216,185,217,133,\r
-217,132,217,133,217,131,216,170,216,168,216,169,217,138,217,133,217,131,217,134,\r
-217,131,216,167,217,132,216,183,217,129,217,132,217,129,217,138,216,175,217,138,\r
-217,136,216,165,216,175,216,167,216,177,216,169,216,170,216,167,216,177,217,138,\r
-216,174,216,167,217,132,216,181,216,173,216,169,216,170,216,179,216,172,217,138,\r
-217,132,216,167,217,132,217,136,217,130,216,170,216,185,217,134,216,175,217,133,\r
-216,167,217,133,216,175,217,138,217,134,216,169,216,170,216,181,217,133,217,138,\r
-217,133,216,163,216,177,216,180,217,138,217,129,216,167,217,132,216,176,217,138,\r
-217,134,216,185,216,177,216,168,217,138,216,169,216,168,217,136,216,167,216,168,\r
-216,169,216,163,217,132,216,185,216,167,216,168,216,167,217,132,216,179,217,129,\r
-216,177,217,133,216,180,216,167,217,131,217,132,216,170,216,185,216,167,217,132,\r
-217,137,216,167,217,132,216,163,217,136,217,132,216,167,217,132,216,179,217,134,\r
-216,169,216,172,216,167,217,133,216,185,216,169,216,167,217,132,216,181,216,173,\r
-217,129,216,167,217,132,216,175,217,138,217,134,217,131,217,132,217,133,216,167,\r
-216,170,216,167,217,132,216,174,216,167,216,181,216,167,217,132,217,133,217,132,\r
-217,129,216,163,216,185,216,182,216,167,216,161,217,131,216,170,216,167,216,168,\r
-216,169,216,167,217,132,216,174,217,138,216,177,216,177,216,179,216,167,216,166,\r
-217,132,216,167,217,132,217,130,217,132,216,168,216,167,217,132,216,163,216,175,\r
-216,168,217,133,217,130,216,167,216,183,216,185,217,133,216,177,216,167,216,179,\r
-217,132,217,133,217,134,216,183,217,130,216,169,216,167,217,132,217,131,216,170,\r
-216,168,216,167,217,132,216,177,216,172,217,132,216,167,216,180,216,170,216,177,\r
-217,131,216,167,217,132,217,130,216,175,217,133,217,138,216,185,216,183,217,138,\r
-217,131,115,66,121,84,97,103,78,97,109,101,40,46,106,112,103,34,32,97,108,116,61\r
-,34,49,112,120,32,115,111,108,105,100,32,35,46,103,105,102,34,32,97,108,116,61,\r
-34,116,114,97,110,115,112,97,114,101,110,116,105,110,102,111,114,109,97,116,105,\r
-111,110,97,112,112,108,105,99,97,116,105,111,110,34,32,111,110,99,108,105,99,107\r
-,61,34,101,115,116,97,98,108,105,115,104,101,100,97,100,118,101,114,116,105,115,\r
-105,110,103,46,112,110,103,34,32,97,108,116,61,34,101,110,118,105,114,111,110,\r
-109,101,110,116,112,101,114,102,111,114,109,97,110,99,101,97,112,112,114,111,112\r
-,114,105,97,116,101,38,97,109,112,59,109,100,97,115,104,59,105,109,109,101,100,\r
-105,97,116,101,108,121,60,47,115,116,114,111,110,103,62,60,47,114,97,116,104,101\r
-,114,32,116,104,97,110,116,101,109,112,101,114,97,116,117,114,101,100,101,118,\r
-101,108,111,112,109,101,110,116,99,111,109,112,101,116,105,116,105,111,110,112,\r
-108,97,99,101,104,111,108,100,101,114,118,105,115,105,98,105,108,105,116,121,58,\r
-99,111,112,121,114,105,103,104,116,34,62,48,34,32,104,101,105,103,104,116,61,34,\r
-101,118,101,110,32,116,104,111,117,103,104,114,101,112,108,97,99,101,109,101,110\r
-,116,100,101,115,116,105,110,97,116,105,111,110,67,111,114,112,111,114,97,116,\r
-105,111,110,60,117,108,32,99,108,97,115,115,61,34,65,115,115,111,99,105,97,116,\r
-105,111,110,105,110,100,105,118,105,100,117,97,108,115,112,101,114,115,112,101,\r
-99,116,105,118,101,115,101,116,84,105,109,101,111,117,116,40,117,114,108,40,104,\r
-116,116,112,58,47,47,109,97,116,104,101,109,97,116,105,99,115,109,97,114,103,105\r
-,110,45,116,111,112,58,101,118,101,110,116,117,97,108,108,121,32,100,101,115,99,\r
-114,105,112,116,105,111,110,41,32,110,111,45,114,101,112,101,97,116,99,111,108,\r
-108,101,99,116,105,111,110,115,46,74,80,71,124,116,104,117,109,98,124,112,97,114\r
-,116,105,99,105,112,97,116,101,47,104,101,97,100,62,60,98,111,100,121,102,108,\r
-111,97,116,58,108,101,102,116,59,60,108,105,32,99,108,97,115,115,61,34,104,117,\r
-110,100,114,101,100,115,32,111,102,10,10,72,111,119,101,118,101,114,44,32,99,111\r
-,109,112,111,115,105,116,105,111,110,99,108,101,97,114,58,98,111,116,104,59,99,\r
-111,111,112,101,114,97,116,105,111,110,119,105,116,104,105,110,32,116,104,101,32\r
-,108,97,98,101,108,32,102,111,114,61,34,98,111,114,100,101,114,45,116,111,112,58\r
-,78,101,119,32,90,101,97,108,97,110,100,114,101,99,111,109,109,101,110,100,101,\r
-100,112,104,111,116,111,103,114,97,112,104,121,105,110,116,101,114,101,115,116,\r
-105,110,103,38,108,116,59,115,117,112,38,103,116,59,99,111,110,116,114,111,118,\r
-101,114,115,121,78,101,116,104,101,114,108,97,110,100,115,97,108,116,101,114,110\r
-,97,116,105,118,101,109,97,120,108,101,110,103,116,104,61,34,115,119,105,116,122\r
-,101,114,108,97,110,100,68,101,118,101,108,111,112,109,101,110,116,101,115,115,\r
-101,110,116,105,97,108,108,121,10,10,65,108,116,104,111,117,103,104,32,60,47,116\r
-,101,120,116,97,114,101,97,62,116,104,117,110,100,101,114,98,105,114,100,114,101\r
-,112,114,101,115,101,110,116,101,100,38,97,109,112,59,110,100,97,115,104,59,115,\r
-112,101,99,117,108,97,116,105,111,110,99,111,109,109,117,110,105,116,105,101,115\r
-,108,101,103,105,115,108,97,116,105,111,110,101,108,101,99,116,114,111,110,105,\r
-99,115,10,9,60,100,105,118,32,105,100,61,34,105,108,108,117,115,116,114,97,116,\r
-101,100,101,110,103,105,110,101,101,114,105,110,103,116,101,114,114,105,116,111,\r
-114,105,101,115,97,117,116,104,111,114,105,116,105,101,115,100,105,115,116,114,\r
-105,98,117,116,101,100,54,34,32,104,101,105,103,104,116,61,34,115,97,110,115,45,\r
-115,101,114,105,102,59,99,97,112,97,98,108,101,32,111,102,32,100,105,115,97,112,\r
-112,101,97,114,101,100,105,110,116,101,114,97,99,116,105,118,101,108,111,111,107\r
-,105,110,103,32,102,111,114,105,116,32,119,111,117,108,100,32,98,101,65,102,103,\r
-104,97,110,105,115,116,97,110,119,97,115,32,99,114,101,97,116,101,100,77,97,116,\r
-104,46,102,108,111,111,114,40,115,117,114,114,111,117,110,100,105,110,103,99,97,\r
-110,32,97,108,115,111,32,98,101,111,98,115,101,114,118,97,116,105,111,110,109,97\r
-,105,110,116,101,110,97,110,99,101,101,110,99,111,117,110,116,101,114,101,100,60\r
-,104,50,32,99,108,97,115,115,61,34,109,111,114,101,32,114,101,99,101,110,116,105\r
-,116,32,104,97,115,32,98,101,101,110,105,110,118,97,115,105,111,110,32,111,102,\r
-41,46,103,101,116,84,105,109,101,40,41,102,117,110,100,97,109,101,110,116,97,108\r
-,68,101,115,112,105,116,101,32,116,104,101,34,62,60,100,105,118,32,105,100,61,34\r
-,105,110,115,112,105,114,97,116,105,111,110,101,120,97,109,105,110,97,116,105,\r
-111,110,112,114,101,112,97,114,97,116,105,111,110,101,120,112,108,97,110,97,116,\r
-105,111,110,60,105,110,112,117,116,32,105,100,61,34,60,47,97,62,60,47,115,112,97\r
-,110,62,118,101,114,115,105,111,110,115,32,111,102,105,110,115,116,114,117,109,\r
-101,110,116,115,98,101,102,111,114,101,32,116,104,101,32,32,61,32,39,104,116,116\r
-,112,58,47,47,68,101,115,99,114,105,112,116,105,111,110,114,101,108,97,116,105,\r
-118,101,108,121,32,46,115,117,98,115,116,114,105,110,103,40,101,97,99,104,32,111\r
-,102,32,116,104,101,101,120,112,101,114,105,109,101,110,116,115,105,110,102,108,\r
-117,101,110,116,105,97,108,105,110,116,101,103,114,97,116,105,111,110,109,97,110\r
-,121,32,112,101,111,112,108,101,100,117,101,32,116,111,32,116,104,101,32,99,111,\r
-109,98,105,110,97,116,105,111,110,100,111,32,110,111,116,32,104,97,118,101,77,\r
-105,100,100,108,101,32,69,97,115,116,60,110,111,115,99,114,105,112,116,62,60,99,\r
-111,112,121,114,105,103,104,116,34,32,112,101,114,104,97,112,115,32,116,104,101,\r
-105,110,115,116,105,116,117,116,105,111,110,105,110,32,68,101,99,101,109,98,101,\r
-114,97,114,114,97,110,103,101,109,101,110,116,109,111,115,116,32,102,97,109,111,\r
-117,115,112,101,114,115,111,110,97,108,105,116,121,99,114,101,97,116,105,111,110\r
-,32,111,102,108,105,109,105,116,97,116,105,111,110,115,101,120,99,108,117,115,\r
-105,118,101,108,121,115,111,118,101,114,101,105,103,110,116,121,45,99,111,110,\r
-116,101,110,116,34,62,10,60,116,100,32,99,108,97,115,115,61,34,117,110,100,101,\r
-114,103,114,111,117,110,100,112,97,114,97,108,108,101,108,32,116,111,100,111,99,\r
-116,114,105,110,101,32,111,102,111,99,99,117,112,105,101,100,32,98,121,116,101,\r
-114,109,105,110,111,108,111,103,121,82,101,110,97,105,115,115,97,110,99,101,97,\r
-32,110,117,109,98,101,114,32,111,102,115,117,112,112,111,114,116,32,102,111,114,\r
-101,120,112,108,111,114,97,116,105,111,110,114,101,99,111,103,110,105,116,105,\r
-111,110,112,114,101,100,101,99,101,115,115,111,114,60,105,109,103,32,115,114,99,\r
-61,34,47,60,104,49,32,99,108,97,115,115,61,34,112,117,98,108,105,99,97,116,105,\r
-111,110,109,97,121,32,97,108,115,111,32,98,101,115,112,101,99,105,97,108,105,122\r
-,101,100,60,47,102,105,101,108,100,115,101,116,62,112,114,111,103,114,101,115,\r
-115,105,118,101,109,105,108,108,105,111,110,115,32,111,102,115,116,97,116,101,\r
-115,32,116,104,97,116,101,110,102,111,114,99,101,109,101,110,116,97,114,111,117,\r
-110,100,32,116,104,101,32,111,110,101,32,97,110,111,116,104,101,114,46,112,97,\r
-114,101,110,116,78,111,100,101,97,103,114,105,99,117,108,116,117,114,101,65,108,\r
-116,101,114,110,97,116,105,118,101,114,101,115,101,97,114,99,104,101,114,115,116\r
-,111,119,97,114,100,115,32,116,104,101,77,111,115,116,32,111,102,32,116,104,101,\r
-109,97,110,121,32,111,116,104,101,114,32,40,101,115,112,101,99,105,97,108,108,\r
-121,60,116,100,32,119,105,100,116,104,61,34,59,119,105,100,116,104,58,49,48,48,\r
-37,105,110,100,101,112,101,110,100,101,110,116,60,104,51,32,99,108,97,115,115,61\r
-,34,32,111,110,99,104,97,110,103,101,61,34,41,46,97,100,100,67,108,97,115,115,40\r
-,105,110,116,101,114,97,99,116,105,111,110,79,110,101,32,111,102,32,116,104,101,\r
-32,100,97,117,103,104,116,101,114,32,111,102,97,99,99,101,115,115,111,114,105,\r
-101,115,98,114,97,110,99,104,101,115,32,111,102,13,10,60,100,105,118,32,105,100,\r
-61,34,116,104,101,32,108,97,114,103,101,115,116,100,101,99,108,97,114,97,116,105\r
-,111,110,114,101,103,117,108,97,116,105,111,110,115,73,110,102,111,114,109,97,\r
-116,105,111,110,116,114,97,110,115,108,97,116,105,111,110,100,111,99,117,109,101\r
-,110,116,97,114,121,105,110,32,111,114,100,101,114,32,116,111,34,62,10,60,104,\r
-101,97,100,62,10,60,34,32,104,101,105,103,104,116,61,34,49,97,99,114,111,115,115\r
-,32,116,104,101,32,111,114,105,101,110,116,97,116,105,111,110,41,59,60,47,115,99\r
-,114,105,112,116,62,105,109,112,108,101,109,101,110,116,101,100,99,97,110,32,98,\r
-101,32,115,101,101,110,116,104,101,114,101,32,119,97,115,32,97,100,101,109,111,\r
-110,115,116,114,97,116,101,99,111,110,116,97,105,110,101,114,34,62,99,111,110,\r
-110,101,99,116,105,111,110,115,116,104,101,32,66,114,105,116,105,115,104,119,97,\r
-115,32,119,114,105,116,116,101,110,33,105,109,112,111,114,116,97,110,116,59,112,\r
-120,59,32,109,97,114,103,105,110,45,102,111,108,108,111,119,101,100,32,98,121,97\r
-,98,105,108,105,116,121,32,116,111,32,99,111,109,112,108,105,99,97,116,101,100,\r
-100,117,114,105,110,103,32,116,104,101,32,105,109,109,105,103,114,97,116,105,111\r
-,110,97,108,115,111,32,99,97,108,108,101,100,60,104,52,32,99,108,97,115,115,61,\r
-34,100,105,115,116,105,110,99,116,105,111,110,114,101,112,108,97,99,101,100,32,\r
-98,121,103,111,118,101,114,110,109,101,110,116,115,108,111,99,97,116,105,111,110\r
-,32,111,102,105,110,32,78,111,118,101,109,98,101,114,119,104,101,116,104,101,114\r
-,32,116,104,101,60,47,112,62,10,60,47,100,105,118,62,97,99,113,117,105,115,105,\r
-116,105,111,110,99,97,108,108,101,100,32,116,104,101,32,112,101,114,115,101,99,\r
-117,116,105,111,110,100,101,115,105,103,110,97,116,105,111,110,123,102,111,110,\r
-116,45,115,105,122,101,58,97,112,112,101,97,114,101,100,32,105,110,105,110,118,\r
-101,115,116,105,103,97,116,101,101,120,112,101,114,105,101,110,99,101,100,109,\r
-111,115,116,32,108,105,107,101,108,121,119,105,100,101,108,121,32,117,115,101,\r
-100,100,105,115,99,117,115,115,105,111,110,115,112,114,101,115,101,110,99,101,32\r
-,111,102,32,40,100,111,99,117,109,101,110,116,46,101,120,116,101,110,115,105,118\r
-,101,108,121,73,116,32,104,97,115,32,98,101,101,110,105,116,32,100,111,101,115,\r
-32,110,111,116,99,111,110,116,114,97,114,121,32,116,111,105,110,104,97,98,105,\r
-116,97,110,116,115,105,109,112,114,111,118,101,109,101,110,116,115,99,104,111,\r
-108,97,114,115,104,105,112,99,111,110,115,117,109,112,116,105,111,110,105,110,\r
-115,116,114,117,99,116,105,111,110,102,111,114,32,101,120,97,109,112,108,101,111\r
-,110,101,32,111,114,32,109,111,114,101,112,120,59,32,112,97,100,100,105,110,103,\r
-116,104,101,32,99,117,114,114,101,110,116,97,32,115,101,114,105,101,115,32,111,\r
-102,97,114,101,32,117,115,117,97,108,108,121,114,111,108,101,32,105,110,32,116,\r
-104,101,112,114,101,118,105,111,117,115,108,121,32,100,101,114,105,118,97,116,\r
-105,118,101,115,101,118,105,100,101,110,99,101,32,111,102,101,120,112,101,114,\r
-105,101,110,99,101,115,99,111,108,111,114,115,99,104,101,109,101,115,116,97,116,\r
-101,100,32,116,104,97,116,99,101,114,116,105,102,105,99,97,116,101,60,47,97,62,\r
-60,47,100,105,118,62,10,32,115,101,108,101,99,116,101,100,61,34,104,105,103,104,\r
-32,115,99,104,111,111,108,114,101,115,112,111,110,115,101,32,116,111,99,111,109,\r
-102,111,114,116,97,98,108,101,97,100,111,112,116,105,111,110,32,111,102,116,104,\r
-114,101,101,32,121,101,97,114,115,116,104,101,32,99,111,117,110,116,114,121,105,\r
-110,32,70,101,98,114,117,97,114,121,115,111,32,116,104,97,116,32,116,104,101,112\r
-,101,111,112,108,101,32,119,104,111,32,112,114,111,118,105,100,101,100,32,98,121\r
-,60,112,97,114,97,109,32,110,97,109,101,97,102,102,101,99,116,101,100,32,98,121,\r
-105,110,32,116,101,114,109,115,32,111,102,97,112,112,111,105,110,116,109,101,110\r
-,116,73,83,79,45,56,56,53,57,45,49,34,119,97,115,32,98,111,114,110,32,105,110,\r
-104,105,115,116,111,114,105,99,97,108,32,114,101,103,97,114,100,101,100,32,97,\r
-115,109,101,97,115,117,114,101,109,101,110,116,105,115,32,98,97,115,101,100,32,\r
-111,110,32,97,110,100,32,111,116,104,101,114,32,58,32,102,117,110,99,116,105,111\r
-,110,40,115,105,103,110,105,102,105,99,97,110,116,99,101,108,101,98,114,97,116,\r
-105,111,110,116,114,97,110,115,109,105,116,116,101,100,47,106,115,47,106,113,117\r
-,101,114,121,46,105,115,32,107,110,111,119,110,32,97,115,116,104,101,111,114,101\r
-,116,105,99,97,108,32,116,97,98,105,110,100,101,120,61,34,105,116,32,99,111,117,\r
-108,100,32,98,101,60,110,111,115,99,114,105,112,116,62,10,104,97,118,105,110,103\r
-,32,98,101,101,110,13,10,60,104,101,97,100,62,13,10,60,32,38,113,117,111,116,59,\r
-84,104,101,32,99,111,109,112,105,108,97,116,105,111,110,104,101,32,104,97,100,32\r
-,98,101,101,110,112,114,111,100,117,99,101,100,32,98,121,112,104,105,108,111,115\r
-,111,112,104,101,114,99,111,110,115,116,114,117,99,116,101,100,105,110,116,101,\r
-110,100,101,100,32,116,111,97,109,111,110,103,32,111,116,104,101,114,99,111,109,\r
-112,97,114,101,100,32,116,111,116,111,32,115,97,121,32,116,104,97,116,69,110,103\r
-,105,110,101,101,114,105,110,103,97,32,100,105,102,102,101,114,101,110,116,114,\r
-101,102,101,114,114,101,100,32,116,111,100,105,102,102,101,114,101,110,99,101,\r
-115,98,101,108,105,101,102,32,116,104,97,116,112,104,111,116,111,103,114,97,112,\r
-104,115,105,100,101,110,116,105,102,121,105,110,103,72,105,115,116,111,114,121,\r
-32,111,102,32,82,101,112,117,98,108,105,99,32,111,102,110,101,99,101,115,115,97,\r
-114,105,108,121,112,114,111,98,97,98,105,108,105,116,121,116,101,99,104,110,105,\r
-99,97,108,108,121,108,101,97,118,105,110,103,32,116,104,101,115,112,101,99,116,\r
-97,99,117,108,97,114,102,114,97,99,116,105,111,110,32,111,102,101,108,101,99,116\r
-,114,105,99,105,116,121,104,101,97,100,32,111,102,32,116,104,101,114,101,115,116\r
-,97,117,114,97,110,116,115,112,97,114,116,110,101,114,115,104,105,112,101,109,\r
-112,104,97,115,105,115,32,111,110,109,111,115,116,32,114,101,99,101,110,116,115,\r
-104,97,114,101,32,119,105,116,104,32,115,97,121,105,110,103,32,116,104,97,116,\r
-102,105,108,108,101,100,32,119,105,116,104,100,101,115,105,103,110,101,100,32,\r
-116,111,105,116,32,105,115,32,111,102,116,101,110,34,62,60,47,105,102,114,97,109\r
-,101,62,97,115,32,102,111,108,108,111,119,115,58,109,101,114,103,101,100,32,119,\r
-105,116,104,116,104,114,111,117,103,104,32,116,104,101,99,111,109,109,101,114,99\r
-,105,97,108,32,112,111,105,110,116,101,100,32,111,117,116,111,112,112,111,114,\r
-116,117,110,105,116,121,118,105,101,119,32,111,102,32,116,104,101,114,101,113,\r
-117,105,114,101,109,101,110,116,100,105,118,105,115,105,111,110,32,111,102,112,\r
-114,111,103,114,97,109,109,105,110,103,104,101,32,114,101,99,101,105,118,101,100\r
-,115,101,116,73,110,116,101,114,118,97,108,34,62,60,47,115,112,97,110,62,60,47,\r
-105,110,32,78,101,119,32,89,111,114,107,97,100,100,105,116,105,111,110,97,108,32\r
-,99,111,109,112,114,101,115,115,105,111,110,10,10,60,100,105,118,32,105,100,61,\r
-34,105,110,99,111,114,112,111,114,97,116,101,59,60,47,115,99,114,105,112,116,62,\r
-60,97,116,116,97,99,104,69,118,101,110,116,98,101,99,97,109,101,32,116,104,101,\r
-32,34,32,116,97,114,103,101,116,61,34,95,99,97,114,114,105,101,100,32,111,117,\r
-116,83,111,109,101,32,111,102,32,116,104,101,115,99,105,101,110,99,101,32,97,110\r
-,100,116,104,101,32,116,105,109,101,32,111,102,67,111,110,116,97,105,110,101,114\r
-,34,62,109,97,105,110,116,97,105,110,105,110,103,67,104,114,105,115,116,111,112,\r
-104,101,114,77,117,99,104,32,111,102,32,116,104,101,119,114,105,116,105,110,103,\r
-115,32,111,102,34,32,104,101,105,103,104,116,61,34,50,115,105,122,101,32,111,102\r
-,32,116,104,101,118,101,114,115,105,111,110,32,111,102,32,109,105,120,116,117,\r
-114,101,32,111,102,32,98,101,116,119,101,101,110,32,116,104,101,69,120,97,109,\r
-112,108,101,115,32,111,102,101,100,117,99,97,116,105,111,110,97,108,99,111,109,\r
-112,101,116,105,116,105,118,101,32,111,110,115,117,98,109,105,116,61,34,100,105,\r
-114,101,99,116,111,114,32,111,102,100,105,115,116,105,110,99,116,105,118,101,47,\r
-68,84,68,32,88,72,84,77,76,32,114,101,108,97,116,105,110,103,32,116,111,116,101,\r
-110,100,101,110,99,121,32,116,111,112,114,111,118,105,110,99,101,32,111,102,119,\r
-104,105,99,104,32,119,111,117,108,100,100,101,115,112,105,116,101,32,116,104,101\r
-,115,99,105,101,110,116,105,102,105,99,32,108,101,103,105,115,108,97,116,117,114\r
-,101,46,105,110,110,101,114,72,84,77,76,32,97,108,108,101,103,97,116,105,111,110\r
-,115,65,103,114,105,99,117,108,116,117,114,101,119,97,115,32,117,115,101,100,32,\r
-105,110,97,112,112,114,111,97,99,104,32,116,111,105,110,116,101,108,108,105,103,\r
-101,110,116,121,101,97,114,115,32,108,97,116,101,114,44,115,97,110,115,45,115,\r
-101,114,105,102,100,101,116,101,114,109,105,110,105,110,103,80,101,114,102,111,\r
-114,109,97,110,99,101,97,112,112,101,97,114,97,110,99,101,115,44,32,119,104,105,\r
-99,104,32,105,115,32,102,111,117,110,100,97,116,105,111,110,115,97,98,98,114,101\r
-,118,105,97,116,101,100,104,105,103,104,101,114,32,116,104,97,110,115,32,102,114\r
-,111,109,32,116,104,101,32,105,110,100,105,118,105,100,117,97,108,32,99,111,109,\r
-112,111,115,101,100,32,111,102,115,117,112,112,111,115,101,100,32,116,111,99,108\r
-,97,105,109,115,32,116,104,97,116,97,116,116,114,105,98,117,116,105,111,110,102,\r
-111,110,116,45,115,105,122,101,58,49,101,108,101,109,101,110,116,115,32,111,102,\r
-72,105,115,116,111,114,105,99,97,108,32,104,105,115,32,98,114,111,116,104,101,\r
-114,97,116,32,116,104,101,32,116,105,109,101,97,110,110,105,118,101,114,115,97,\r
-114,121,103,111,118,101,114,110,101,100,32,98,121,114,101,108,97,116,101,100,32,\r
-116,111,32,117,108,116,105,109,97,116,101,108,121,32,105,110,110,111,118,97,116,\r
-105,111,110,115,105,116,32,105,115,32,115,116,105,108,108,99,97,110,32,111,110,\r
-108,121,32,98,101,100,101,102,105,110,105,116,105,111,110,115,116,111,71,77,84,\r
-83,116,114,105,110,103,65,32,110,117,109,98,101,114,32,111,102,105,109,103,32,99\r
-,108,97,115,115,61,34,69,118,101,110,116,117,97,108,108,121,44,119,97,115,32,99,\r
-104,97,110,103,101,100,111,99,99,117,114,114,101,100,32,105,110,110,101,105,103,\r
-104,98,111,114,105,110,103,100,105,115,116,105,110,103,117,105,115,104,119,104,\r
-101,110,32,104,101,32,119,97,115,105,110,116,114,111,100,117,99,105,110,103,116,\r
-101,114,114,101,115,116,114,105,97,108,77,97,110,121,32,111,102,32,116,104,101,\r
-97,114,103,117,101,115,32,116,104,97,116,97,110,32,65,109,101,114,105,99,97,110,\r
-99,111,110,113,117,101,115,116,32,111,102,119,105,100,101,115,112,114,101,97,100\r
-,32,119,101,114,101,32,107,105,108,108,101,100,115,99,114,101,101,110,32,97,110,\r
-100,32,73,110,32,111,114,100,101,114,32,116,111,101,120,112,101,99,116,101,100,\r
-32,116,111,100,101,115,99,101,110,100,97,110,116,115,97,114,101,32,108,111,99,97\r
-,116,101,100,108,101,103,105,115,108,97,116,105,118,101,103,101,110,101,114,97,\r
-116,105,111,110,115,32,98,97,99,107,103,114,111,117,110,100,109,111,115,116,32,\r
-112,101,111,112,108,101,121,101,97,114,115,32,97,102,116,101,114,116,104,101,114\r
-,101,32,105,115,32,110,111,116,104,101,32,104,105,103,104,101,115,116,102,114,\r
-101,113,117,101,110,116,108,121,32,116,104,101,121,32,100,111,32,110,111,116,97,\r
-114,103,117,101,100,32,116,104,97,116,115,104,111,119,101,100,32,116,104,97,116,\r
-112,114,101,100,111,109,105,110,97,110,116,116,104,101,111,108,111,103,105,99,97\r
-,108,98,121,32,116,104,101,32,116,105,109,101,99,111,110,115,105,100,101,114,105\r
-,110,103,115,104,111,114,116,45,108,105,118,101,100,60,47,115,112,97,110,62,60,\r
-47,97,62,99,97,110,32,98,101,32,117,115,101,100,118,101,114,121,32,108,105,116,\r
-116,108,101,111,110,101,32,111,102,32,116,104,101,32,104,97,100,32,97,108,114,\r
-101,97,100,121,105,110,116,101,114,112,114,101,116,101,100,99,111,109,109,117,\r
-110,105,99,97,116,101,102,101,97,116,117,114,101,115,32,111,102,103,111,118,101,\r
-114,110,109,101,110,116,44,60,47,110,111,115,99,114,105,112,116,62,101,110,116,\r
-101,114,101,100,32,116,104,101,34,32,104,101,105,103,104,116,61,34,51,73,110,100\r
-,101,112,101,110,100,101,110,116,112,111,112,117,108,97,116,105,111,110,115,108,\r
-97,114,103,101,45,115,99,97,108,101,46,32,65,108,116,104,111,117,103,104,32,117,\r
-115,101,100,32,105,110,32,116,104,101,100,101,115,116,114,117,99,116,105,111,110\r
-,112,111,115,115,105,98,105,108,105,116,121,115,116,97,114,116,105,110,103,32,\r
-105,110,116,119,111,32,111,114,32,109,111,114,101,101,120,112,114,101,115,115,\r
-105,111,110,115,115,117,98,111,114,100,105,110,97,116,101,108,97,114,103,101,114\r
-,32,116,104,97,110,104,105,115,116,111,114,121,32,97,110,100,60,47,111,112,116,\r
-105,111,110,62,13,10,67,111,110,116,105,110,101,110,116,97,108,101,108,105,109,\r
-105,110,97,116,105,110,103,119,105,108,108,32,110,111,116,32,98,101,112,114,97,\r
-99,116,105,99,101,32,111,102,105,110,32,102,114,111,110,116,32,111,102,115,105,\r
-116,101,32,111,102,32,116,104,101,101,110,115,117,114,101,32,116,104,97,116,116,\r
-111,32,99,114,101,97,116,101,32,97,109,105,115,115,105,115,115,105,112,112,105,\r
-112,111,116,101,110,116,105,97,108,108,121,111,117,116,115,116,97,110,100,105,\r
-110,103,98,101,116,116,101,114,32,116,104,97,110,119,104,97,116,32,105,115,32,\r
-110,111,119,115,105,116,117,97,116,101,100,32,105,110,109,101,116,97,32,110,97,\r
-109,101,61,34,84,114,97,100,105,116,105,111,110,97,108,115,117,103,103,101,115,\r
-116,105,111,110,115,84,114,97,110,115,108,97,116,105,111,110,116,104,101,32,102,\r
-111,114,109,32,111,102,97,116,109,111,115,112,104,101,114,105,99,105,100,101,111\r
-,108,111,103,105,99,97,108,101,110,116,101,114,112,114,105,115,101,115,99,97,108\r
-,99,117,108,97,116,105,110,103,101,97,115,116,32,111,102,32,116,104,101,114,101,\r
-109,110,97,110,116,115,32,111,102,112,108,117,103,105,110,115,112,97,103,101,47,\r
-105,110,100,101,120,46,112,104,112,63,114,101,109,97,105,110,101,100,32,105,110,\r
-116,114,97,110,115,102,111,114,109,101,100,72,101,32,119,97,115,32,97,108,115,\r
-111,119,97,115,32,97,108,114,101,97,100,121,115,116,97,116,105,115,116,105,99,97\r
-,108,105,110,32,102,97,118,111,114,32,111,102,77,105,110,105,115,116,114,121,32,\r
-111,102,109,111,118,101,109,101,110,116,32,111,102,102,111,114,109,117,108,97,\r
-116,105,111,110,105,115,32,114,101,113,117,105,114,101,100,60,108,105,110,107,32\r
-,114,101,108,61,34,84,104,105,115,32,105,115,32,116,104,101,32,60,97,32,104,114,\r
-101,102,61,34,47,112,111,112,117,108,97,114,105,122,101,100,105,110,118,111,108,\r
-118,101,100,32,105,110,97,114,101,32,117,115,101,100,32,116,111,97,110,100,32,\r
-115,101,118,101,114,97,108,109,97,100,101,32,98,121,32,116,104,101,115,101,101,\r
-109,115,32,116,111,32,98,101,108,105,107,101,108,121,32,116,104,97,116,80,97,108\r
-,101,115,116,105,110,105,97,110,110,97,109,101,100,32,97,102,116,101,114,105,116\r
-,32,104,97,100,32,98,101,101,110,109,111,115,116,32,99,111,109,109,111,110,116,\r
-111,32,114,101,102,101,114,32,116,111,98,117,116,32,116,104,105,115,32,105,115,\r
-99,111,110,115,101,99,117,116,105,118,101,116,101,109,112,111,114,97,114,105,108\r
-,121,73,110,32,103,101,110,101,114,97,108,44,99,111,110,118,101,110,116,105,111,\r
-110,115,116,97,107,101,115,32,112,108,97,99,101,115,117,98,100,105,118,105,115,\r
-105,111,110,116,101,114,114,105,116,111,114,105,97,108,111,112,101,114,97,116,\r
-105,111,110,97,108,112,101,114,109,97,110,101,110,116,108,121,119,97,115,32,108,\r
-97,114,103,101,108,121,111,117,116,98,114,101,97,107,32,111,102,105,110,32,116,\r
-104,101,32,112,97,115,116,102,111,108,108,111,119,105,110,103,32,97,32,120,109,\r
-108,110,115,58,111,103,61,34,62,60,97,32,99,108,97,115,115,61,34,99,108,97,115,\r
-115,61,34,116,101,120,116,67,111,110,118,101,114,115,105,111,110,32,109,97,121,\r
-32,98,101,32,117,115,101,100,109,97,110,117,102,97,99,116,117,114,101,97,102,116\r
-,101,114,32,98,101,105,110,103,99,108,101,97,114,102,105,120,34,62,10,113,117,\r
-101,115,116,105,111,110,32,111,102,119,97,115,32,101,108,101,99,116,101,100,116,\r
-111,32,98,101,99,111,109,101,32,97,98,101,99,97,117,115,101,32,111,102,32,115,\r
-111,109,101,32,112,101,111,112,108,101,105,110,115,112,105,114,101,100,32,98,121\r
-,115,117,99,99,101,115,115,102,117,108,32,97,32,116,105,109,101,32,119,104,101,\r
-110,109,111,114,101,32,99,111,109,109,111,110,97,109,111,110,103,115,116,32,116,\r
-104,101,97,110,32,111,102,102,105,99,105,97,108,119,105,100,116,104,58,49,48,48,\r
-37,59,116,101,99,104,110,111,108,111,103,121,44,119,97,115,32,97,100,111,112,116\r
-,101,100,116,111,32,107,101,101,112,32,116,104,101,115,101,116,116,108,101,109,\r
-101,110,116,115,108,105,118,101,32,98,105,114,116,104,115,105,110,100,101,120,46\r
-,104,116,109,108,34,67,111,110,110,101,99,116,105,99,117,116,97,115,115,105,103,\r
-110,101,100,32,116,111,38,97,109,112,59,116,105,109,101,115,59,97,99,99,111,117,\r
-110,116,32,102,111,114,97,108,105,103,110,61,114,105,103,104,116,116,104,101,32,\r
-99,111,109,112,97,110,121,97,108,119,97,121,115,32,98,101,101,110,114,101,116,\r
-117,114,110,101,100,32,116,111,105,110,118,111,108,118,101,109,101,110,116,66,\r
-101,99,97,117,115,101,32,116,104,101,116,104,105,115,32,112,101,114,105,111,100,\r
-34,32,110,97,109,101,61,34,113,34,32,99,111,110,102,105,110,101,100,32,116,111,\r
-97,32,114,101,115,117,108,116,32,111,102,118,97,108,117,101,61,34,34,32,47,62,\r
-105,115,32,97,99,116,117,97,108,108,121,69,110,118,105,114,111,110,109,101,110,\r
-116,13,10,60,47,104,101,97,100,62,13,10,67,111,110,118,101,114,115,101,108,121,\r
-44,62,10,60,100,105,118,32,105,100,61,34,48,34,32,119,105,100,116,104,61,34,49,\r
-105,115,32,112,114,111,98,97,98,108,121,104,97,118,101,32,98,101,99,111,109,101,\r
-99,111,110,116,114,111,108,108,105,110,103,116,104,101,32,112,114,111,98,108,101\r
-,109,99,105,116,105,122,101,110,115,32,111,102,112,111,108,105,116,105,99,105,97\r
-,110,115,114,101,97,99,104,101,100,32,116,104,101,97,115,32,101,97,114,108,121,\r
-32,97,115,58,110,111,110,101,59,32,111,118,101,114,60,116,97,98,108,101,32,99,\r
-101,108,108,118,97,108,105,100,105,116,121,32,111,102,100,105,114,101,99,116,108\r
-,121,32,116,111,111,110,109,111,117,115,101,100,111,119,110,119,104,101,114,101,\r
-32,105,116,32,105,115,119,104,101,110,32,105,116,32,119,97,115,109,101,109,98,\r
-101,114,115,32,111,102,32,114,101,108,97,116,105,111,110,32,116,111,97,99,99,111\r
-,109,109,111,100,97,116,101,97,108,111,110,103,32,119,105,116,104,32,73,110,32,\r
-116,104,101,32,108,97,116,101,116,104,101,32,69,110,103,108,105,115,104,100,101,\r
-108,105,99,105,111,117,115,34,62,116,104,105,115,32,105,115,32,110,111,116,116,\r
-104,101,32,112,114,101,115,101,110,116,105,102,32,116,104,101,121,32,97,114,101,\r
-97,110,100,32,102,105,110,97,108,108,121,97,32,109,97,116,116,101,114,32,111,102\r
-,13,10,9,60,47,100,105,118,62,13,10,13,10,60,47,115,99,114,105,112,116,62,102,97\r
-,115,116,101,114,32,116,104,97,110,109,97,106,111,114,105,116,121,32,111,102,97,\r
-102,116,101,114,32,119,104,105,99,104,99,111,109,112,97,114,97,116,105,118,101,\r
-116,111,32,109,97,105,110,116,97,105,110,105,109,112,114,111,118,101,32,116,104,\r
-101,97,119,97,114,100,101,100,32,116,104,101,101,114,34,32,99,108,97,115,115,61,\r
-34,102,114,97,109,101,98,111,114,100,101,114,114,101,115,116,111,114,97,116,105,\r
-111,110,105,110,32,116,104,101,32,115,97,109,101,97,110,97,108,121,115,105,115,\r
-32,111,102,116,104,101,105,114,32,102,105,114,115,116,68,117,114,105,110,103,32,\r
-116,104,101,32,99,111,110,116,105,110,101,110,116,97,108,115,101,113,117,101,110\r
-,99,101,32,111,102,102,117,110,99,116,105,111,110,40,41,123,102,111,110,116,45,\r
-115,105,122,101,58,32,119,111,114,107,32,111,110,32,116,104,101,60,47,115,99,114\r
-,105,112,116,62,10,60,98,101,103,105,110,115,32,119,105,116,104,106,97,118,97,\r
-115,99,114,105,112,116,58,99,111,110,115,116,105,116,117,101,110,116,119,97,115,\r
-32,102,111,117,110,100,101,100,101,113,117,105,108,105,98,114,105,117,109,97,115\r
-,115,117,109,101,32,116,104,97,116,105,115,32,103,105,118,101,110,32,98,121,110,\r
-101,101,100,115,32,116,111,32,98,101,99,111,111,114,100,105,110,97,116,101,115,\r
-116,104,101,32,118,97,114,105,111,117,115,97,114,101,32,112,97,114,116,32,111,\r
-102,111,110,108,121,32,105,110,32,116,104,101,115,101,99,116,105,111,110,115,32,\r
-111,102,105,115,32,97,32,99,111,109,109,111,110,116,104,101,111,114,105,101,115,\r
-32,111,102,100,105,115,99,111,118,101,114,105,101,115,97,115,115,111,99,105,97,\r
-116,105,111,110,101,100,103,101,32,111,102,32,116,104,101,115,116,114,101,110,\r
-103,116,104,32,111,102,112,111,115,105,116,105,111,110,32,105,110,112,114,101,\r
-115,101,110,116,45,100,97,121,117,110,105,118,101,114,115,97,108,108,121,116,111\r
-,32,102,111,114,109,32,116,104,101,98,117,116,32,105,110,115,116,101,97,100,99,\r
-111,114,112,111,114,97,116,105,111,110,97,116,116,97,99,104,101,100,32,116,111,\r
-105,115,32,99,111,109,109,111,110,108,121,114,101,97,115,111,110,115,32,102,111,\r
-114,32,38,113,117,111,116,59,116,104,101,32,99,97,110,32,98,101,32,109,97,100,\r
-101,119,97,115,32,97,98,108,101,32,116,111,119,104,105,99,104,32,109,101,97,110,\r
-115,98,117,116,32,100,105,100,32,110,111,116,111,110,77,111,117,115,101,79,118,\r
-101,114,97,115,32,112,111,115,115,105,98,108,101,111,112,101,114,97,116,101,100,\r
-32,98,121,99,111,109,105,110,103,32,102,114,111,109,116,104,101,32,112,114,105,\r
-109,97,114,121,97,100,100,105,116,105,111,110,32,111,102,102,111,114,32,115,101,\r
-118,101,114,97,108,116,114,97,110,115,102,101,114,114,101,100,97,32,112,101,114,\r
-105,111,100,32,111,102,97,114,101,32,97,98,108,101,32,116,111,104,111,119,101,\r
-118,101,114,44,32,105,116,115,104,111,117,108,100,32,104,97,118,101,109,117,99,\r
-104,32,108,97,114,103,101,114,10,9,60,47,115,99,114,105,112,116,62,97,100,111,\r
-112,116,101,100,32,116,104,101,112,114,111,112,101,114,116,121,32,111,102,100,\r
-105,114,101,99,116,101,100,32,98,121,101,102,102,101,99,116,105,118,101,108,121,\r
-119,97,115,32,98,114,111,117,103,104,116,99,104,105,108,100,114,101,110,32,111,\r
-102,80,114,111,103,114,97,109,109,105,110,103,108,111,110,103,101,114,32,116,104\r
-,97,110,109,97,110,117,115,99,114,105,112,116,115,119,97,114,32,97,103,97,105,\r
-110,115,116,98,121,32,109,101,97,110,115,32,111,102,97,110,100,32,109,111,115,\r
-116,32,111,102,115,105,109,105,108,97,114,32,116,111,32,112,114,111,112,114,105,\r
-101,116,97,114,121,111,114,105,103,105,110,97,116,105,110,103,112,114,101,115,\r
-116,105,103,105,111,117,115,103,114,97,109,109,97,116,105,99,97,108,101,120,112,\r
-101,114,105,101,110,99,101,46,116,111,32,109,97,107,101,32,116,104,101,73,116,32\r
-,119,97,115,32,97,108,115,111,105,115,32,102,111,117,110,100,32,105,110,99,111,\r
-109,112,101,116,105,116,111,114,115,105,110,32,116,104,101,32,85,46,83,46,114,\r
-101,112,108,97,99,101,32,116,104,101,98,114,111,117,103,104,116,32,116,104,101,\r
-99,97,108,99,117,108,97,116,105,111,110,102,97,108,108,32,111,102,32,116,104,101\r
-,116,104,101,32,103,101,110,101,114,97,108,112,114,97,99,116,105,99,97,108,108,\r
-121,105,110,32,104,111,110,111,114,32,111,102,114,101,108,101,97,115,101,100,32,\r
-105,110,114,101,115,105,100,101,110,116,105,97,108,97,110,100,32,115,111,109,101\r
-,32,111,102,107,105,110,103,32,111,102,32,116,104,101,114,101,97,99,116,105,111,\r
-110,32,116,111,49,115,116,32,69,97,114,108,32,111,102,99,117,108,116,117,114,101\r
-,32,97,110,100,112,114,105,110,99,105,112,97,108,108,121,60,47,116,105,116,108,\r
-101,62,10,32,32,116,104,101,121,32,99,97,110,32,98,101,98,97,99,107,32,116,111,\r
-32,116,104,101,115,111,109,101,32,111,102,32,104,105,115,101,120,112,111,115,117\r
-,114,101,32,116,111,97,114,101,32,115,105,109,105,108,97,114,102,111,114,109,32,\r
-111,102,32,116,104,101,97,100,100,70,97,118,111,114,105,116,101,99,105,116,105,\r
-122,101,110,115,104,105,112,112,97,114,116,32,105,110,32,116,104,101,112,101,111\r
-,112,108,101,32,119,105,116,104,105,110,32,112,114,97,99,116,105,99,101,116,111,\r
-32,99,111,110,116,105,110,117,101,38,97,109,112,59,109,105,110,117,115,59,97,112\r
-,112,114,111,118,101,100,32,98,121,32,116,104,101,32,102,105,114,115,116,32,97,\r
-108,108,111,119,101,100,32,116,104,101,97,110,100,32,102,111,114,32,116,104,101,\r
-102,117,110,99,116,105,111,110,105,110,103,112,108,97,121,105,110,103,32,116,104\r
-,101,115,111,108,117,116,105,111,110,32,116,111,104,101,105,103,104,116,61,34,48\r
-,34,32,105,110,32,104,105,115,32,98,111,111,107,109,111,114,101,32,116,104,97,\r
-110,32,97,102,111,108,108,111,119,115,32,116,104,101,99,114,101,97,116,101,100,\r
-32,116,104,101,112,114,101,115,101,110,99,101,32,105,110,38,110,98,115,112,59,60\r
-,47,116,100,62,110,97,116,105,111,110,97,108,105,115,116,116,104,101,32,105,100,\r
-101,97,32,111,102,97,32,99,104,97,114,97,99,116,101,114,119,101,114,101,32,102,\r
-111,114,99,101,100,32,99,108,97,115,115,61,34,98,116,110,100,97,121,115,32,111,\r
-102,32,116,104,101,102,101,97,116,117,114,101,100,32,105,110,115,104,111,119,105\r
-,110,103,32,116,104,101,105,110,116,101,114,101,115,116,32,105,110,105,110,32,\r
-112,108,97,99,101,32,111,102,116,117,114,110,32,111,102,32,116,104,101,116,104,\r
-101,32,104,101,97,100,32,111,102,76,111,114,100,32,111,102,32,116,104,101,112,\r
-111,108,105,116,105,99,97,108,108,121,104,97,115,32,105,116,115,32,111,119,110,\r
-69,100,117,99,97,116,105,111,110,97,108,97,112,112,114,111,118,97,108,32,111,102\r
-,115,111,109,101,32,111,102,32,116,104,101,101,97,99,104,32,111,116,104,101,114,\r
-44,98,101,104,97,118,105,111,114,32,111,102,97,110,100,32,98,101,99,97,117,115,\r
-101,97,110,100,32,97,110,111,116,104,101,114,97,112,112,101,97,114,101,100,32,\r
-111,110,114,101,99,111,114,100,101,100,32,105,110,98,108,97,99,107,38,113,117,\r
-111,116,59,109,97,121,32,105,110,99,108,117,100,101,116,104,101,32,119,111,114,\r
-108,100,39,115,99,97,110,32,108,101,97,100,32,116,111,114,101,102,101,114,115,32\r
-,116,111,32,97,98,111,114,100,101,114,61,34,48,34,32,103,111,118,101,114,110,109\r
-,101,110,116,32,119,105,110,110,105,110,103,32,116,104,101,114,101,115,117,108,\r
-116,101,100,32,105,110,32,119,104,105,108,101,32,116,104,101,32,87,97,115,104,\r
-105,110,103,116,111,110,44,116,104,101,32,115,117,98,106,101,99,116,99,105,116,\r
-121,32,105,110,32,116,104,101,62,60,47,100,105,118,62,13,10,9,9,114,101,102,108,\r
-101,99,116,32,116,104,101,116,111,32,99,111,109,112,108,101,116,101,98,101,99,97\r
-,109,101,32,109,111,114,101,114,97,100,105,111,97,99,116,105,118,101,114,101,106\r
-,101,99,116,101,100,32,98,121,119,105,116,104,111,117,116,32,97,110,121,104,105,\r
-115,32,102,97,116,104,101,114,44,119,104,105,99,104,32,99,111,117,108,100,99,111\r
-,112,121,32,111,102,32,116,104,101,116,111,32,105,110,100,105,99,97,116,101,97,\r
-32,112,111,108,105,116,105,99,97,108,97,99,99,111,117,110,116,115,32,111,102,99,\r
-111,110,115,116,105,116,117,116,101,115,119,111,114,107,101,100,32,119,105,116,\r
-104,101,114,60,47,97,62,60,47,108,105,62,111,102,32,104,105,115,32,108,105,102,\r
-101,97,99,99,111,109,112,97,110,105,101,100,99,108,105,101,110,116,87,105,100,\r
-116,104,112,114,101,118,101,110,116,32,116,104,101,76,101,103,105,115,108,97,116\r
-,105,118,101,100,105,102,102,101,114,101,110,116,108,121,116,111,103,101,116,104\r
-,101,114,32,105,110,104,97,115,32,115,101,118,101,114,97,108,102,111,114,32,97,\r
-110,111,116,104,101,114,116,101,120,116,32,111,102,32,116,104,101,102,111,117,\r
-110,100,101,100,32,116,104,101,101,32,119,105,116,104,32,116,104,101,32,105,115,\r
-32,117,115,101,100,32,102,111,114,99,104,97,110,103,101,100,32,116,104,101,117,\r
-115,117,97,108,108,121,32,116,104,101,112,108,97,99,101,32,119,104,101,114,101,\r
-119,104,101,114,101,97,115,32,116,104,101,62,32,60,97,32,104,114,101,102,61,34,\r
-34,62,60,97,32,104,114,101,102,61,34,116,104,101,109,115,101,108,118,101,115,44,\r
-97,108,116,104,111,117,103,104,32,104,101,116,104,97,116,32,99,97,110,32,98,101,\r
-116,114,97,100,105,116,105,111,110,97,108,114,111,108,101,32,111,102,32,116,104,\r
-101,97,115,32,97,32,114,101,115,117,108,116,114,101,109,111,118,101,67,104,105,\r
-108,100,100,101,115,105,103,110,101,100,32,98,121,119,101,115,116,32,111,102,32,\r
-116,104,101,83,111,109,101,32,112,101,111,112,108,101,112,114,111,100,117,99,116\r
-,105,111,110,44,115,105,100,101,32,111,102,32,116,104,101,110,101,119,115,108,\r
-101,116,116,101,114,115,117,115,101,100,32,98,121,32,116,104,101,100,111,119,110\r
-,32,116,111,32,116,104,101,97,99,99,101,112,116,101,100,32,98,121,108,105,118,\r
-101,32,105,110,32,116,104,101,97,116,116,101,109,112,116,115,32,116,111,111,117,\r
-116,115,105,100,101,32,116,104,101,102,114,101,113,117,101,110,99,105,101,115,72\r
-,111,119,101,118,101,114,44,32,105,110,112,114,111,103,114,97,109,109,101,114,\r
-115,97,116,32,108,101,97,115,116,32,105,110,97,112,112,114,111,120,105,109,97,\r
-116,101,97,108,116,104,111,117,103,104,32,105,116,119,97,115,32,112,97,114,116,\r
-32,111,102,97,110,100,32,118,97,114,105,111,117,115,71,111,118,101,114,110,111,\r
-114,32,111,102,116,104,101,32,97,114,116,105,99,108,101,116,117,114,110,101,100,\r
-32,105,110,116,111,62,60,97,32,104,114,101,102,61,34,47,116,104,101,32,101,99,\r
-111,110,111,109,121,105,115,32,116,104,101,32,109,111,115,116,109,111,115,116,32\r
-,119,105,100,101,108,121,119,111,117,108,100,32,108,97,116,101,114,97,110,100,32\r
-,112,101,114,104,97,112,115,114,105,115,101,32,116,111,32,116,104,101,111,99,99,\r
-117,114,115,32,119,104,101,110,117,110,100,101,114,32,119,104,105,99,104,99,111,\r
-110,100,105,116,105,111,110,115,46,116,104,101,32,119,101,115,116,101,114,110,\r
-116,104,101,111,114,121,32,116,104,97,116,105,115,32,112,114,111,100,117,99,101,\r
-100,116,104,101,32,99,105,116,121,32,111,102,105,110,32,119,104,105,99,104,32,\r
-104,101,115,101,101,110,32,105,110,32,116,104,101,116,104,101,32,99,101,110,116,\r
-114,97,108,98,117,105,108,100,105,110,103,32,111,102,109,97,110,121,32,111,102,\r
-32,104,105,115,97,114,101,97,32,111,102,32,116,104,101,105,115,32,116,104,101,32\r
-,111,110,108,121,109,111,115,116,32,111,102,32,116,104,101,109,97,110,121,32,111\r
-,102,32,116,104,101,116,104,101,32,87,101,115,116,101,114,110,84,104,101,114,101\r
-,32,105,115,32,110,111,101,120,116,101,110,100,101,100,32,116,111,83,116,97,116,\r
-105,115,116,105,99,97,108,99,111,108,115,112,97,110,61,50,32,124,115,104,111,114\r
-,116,32,115,116,111,114,121,112,111,115,115,105,98,108,101,32,116,111,116,111,\r
-112,111,108,111,103,105,99,97,108,99,114,105,116,105,99,97,108,32,111,102,114,\r
-101,112,111,114,116,101,100,32,116,111,97,32,67,104,114,105,115,116,105,97,110,\r
-100,101,99,105,115,105,111,110,32,116,111,105,115,32,101,113,117,97,108,32,116,\r
-111,112,114,111,98,108,101,109,115,32,111,102,84,104,105,115,32,99,97,110,32,98,\r
-101,109,101,114,99,104,97,110,100,105,115,101,102,111,114,32,109,111,115,116,32,\r
-111,102,110,111,32,101,118,105,100,101,110,99,101,101,100,105,116,105,111,110,\r
-115,32,111,102,101,108,101,109,101,110,116,115,32,105,110,38,113,117,111,116,59,\r
-46,32,84,104,101,99,111,109,47,105,109,97,103,101,115,47,119,104,105,99,104,32,\r
-109,97,107,101,115,116,104,101,32,112,114,111,99,101,115,115,114,101,109,97,105,\r
-110,115,32,116,104,101,108,105,116,101,114,97,116,117,114,101,44,105,115,32,97,\r
-32,109,101,109,98,101,114,116,104,101,32,112,111,112,117,108,97,114,116,104,101,\r
-32,97,110,99,105,101,110,116,112,114,111,98,108,101,109,115,32,105,110,116,105,\r
-109,101,32,111,102,32,116,104,101,100,101,102,101,97,116,101,100,32,98,121,98,\r
-111,100,121,32,111,102,32,116,104,101,97,32,102,101,119,32,121,101,97,114,115,\r
-109,117,99,104,32,111,102,32,116,104,101,116,104,101,32,119,111,114,107,32,111,\r
-102,67,97,108,105,102,111,114,110,105,97,44,115,101,114,118,101,100,32,97,115,32\r
-,97,103,111,118,101,114,110,109,101,110,116,46,99,111,110,99,101,112,116,115,32,\r
-111,102,109,111,118,101,109,101,110,116,32,105,110,9,9,60,100,105,118,32,105,100\r
-,61,34,105,116,34,32,118,97,108,117,101,61,34,108,97,110,103,117,97,103,101,32,\r
-111,102,97,115,32,116,104,101,121,32,97,114,101,112,114,111,100,117,99,101,100,\r
-32,105,110,105,115,32,116,104,97,116,32,116,104,101,101,120,112,108,97,105,110,\r
-32,116,104,101,100,105,118,62,60,47,100,105,118,62,10,72,111,119,101,118,101,114\r
-,32,116,104,101,108,101,97,100,32,116,111,32,116,104,101,9,60,97,32,104,114,101,\r
-102,61,34,47,119,97,115,32,103,114,97,110,116,101,100,112,101,111,112,108,101,32\r
-,104,97,118,101,99,111,110,116,105,110,117,97,108,108,121,119,97,115,32,115,101,\r
-101,110,32,97,115,97,110,100,32,114,101,108,97,116,101,100,116,104,101,32,114,\r
-111,108,101,32,111,102,112,114,111,112,111,115,101,100,32,98,121,111,102,32,116,\r
-104,101,32,98,101,115,116,101,97,99,104,32,111,116,104,101,114,46,67,111,110,115\r
-,116,97,110,116,105,110,101,112,101,111,112,108,101,32,102,114,111,109,100,105,\r
-97,108,101,99,116,115,32,111,102,116,111,32,114,101,118,105,115,105,111,110,119,\r
-97,115,32,114,101,110,97,109,101,100,97,32,115,111,117,114,99,101,32,111,102,116\r
-,104,101,32,105,110,105,116,105,97,108,108,97,117,110,99,104,101,100,32,105,110,\r
-112,114,111,118,105,100,101,32,116,104,101,116,111,32,116,104,101,32,119,101,115\r
-,116,119,104,101,114,101,32,116,104,101,114,101,97,110,100,32,115,105,109,105,\r
-108,97,114,98,101,116,119,101,101,110,32,116,119,111,105,115,32,97,108,115,111,\r
-32,116,104,101,69,110,103,108,105,115,104,32,97,110,100,99,111,110,100,105,116,\r
-105,111,110,115,44,116,104,97,116,32,105,116,32,119,97,115,101,110,116,105,116,\r
-108,101,100,32,116,111,116,104,101,109,115,101,108,118,101,115,46,113,117,97,110\r
-,116,105,116,121,32,111,102,114,97,110,115,112,97,114,101,110,99,121,116,104,101\r
-,32,115,97,109,101,32,97,115,116,111,32,106,111,105,110,32,116,104,101,99,111,\r
-117,110,116,114,121,32,97,110,100,116,104,105,115,32,105,115,32,116,104,101,84,\r
-104,105,115,32,108,101,100,32,116,111,97,32,115,116,97,116,101,109,101,110,116,\r
-99,111,110,116,114,97,115,116,32,116,111,108,97,115,116,73,110,100,101,120,79,\r
-102,116,104,114,111,117,103,104,32,104,105,115,105,115,32,100,101,115,105,103,\r
-110,101,100,116,104,101,32,116,101,114,109,32,105,115,105,115,32,112,114,111,118\r
-,105,100,101,100,112,114,111,116,101,99,116,32,116,104,101,110,103,60,47,97,62,\r
-60,47,108,105,62,84,104,101,32,99,117,114,114,101,110,116,116,104,101,32,115,105\r
-,116,101,32,111,102,115,117,98,115,116,97,110,116,105,97,108,101,120,112,101,114\r
-,105,101,110,99,101,44,105,110,32,116,104,101,32,87,101,115,116,116,104,101,121,\r
-32,115,104,111,117,108,100,115,108,111,118,101,110,196,141,105,110,97,99,111,109\r
-,101,110,116,97,114,105,111,115,117,110,105,118,101,114,115,105,100,97,100,99,\r
-111,110,100,105,99,105,111,110,101,115,97,99,116,105,118,105,100,97,100,101,115,\r
-101,120,112,101,114,105,101,110,99,105,97,116,101,99,110,111,108,111,103,195,173\r
-,97,112,114,111,100,117,99,99,105,195,179,110,112,117,110,116,117,97,99,105,195,\r
-179,110,97,112,108,105,99,97,99,105,195,179,110,99,111,110,116,114,97,115,101,\r
-195,177,97,99,97,116,101,103,111,114,195,173,97,115,114,101,103,105,115,116,114,\r
-97,114,115,101,112,114,111,102,101,115,105,111,110,97,108,116,114,97,116,97,109,\r
-105,101,110,116,111,114,101,103,195,173,115,116,114,97,116,101,115,101,99,114,\r
-101,116,97,114,195,173,97,112,114,105,110,99,105,112,97,108,101,115,112,114,111,\r
-116,101,99,99,105,195,179,110,105,109,112,111,114,116,97,110,116,101,115,105,109\r
-,112,111,114,116,97,110,99,105,97,112,111,115,105,98,105,108,105,100,97,100,105,\r
-110,116,101,114,101,115,97,110,116,101,99,114,101,99,105,109,105,101,110,116,111\r
-,110,101,99,101,115,105,100,97,100,101,115,115,117,115,99,114,105,98,105,114,115\r
-,101,97,115,111,99,105,97,99,105,195,179,110,100,105,115,112,111,110,105,98,108,\r
-101,115,101,118,97,108,117,97,99,105,195,179,110,101,115,116,117,100,105,97,110,\r
-116,101,115,114,101,115,112,111,110,115,97,98,108,101,114,101,115,111,108,117,99\r
-,105,195,179,110,103,117,97,100,97,108,97,106,97,114,97,114,101,103,105,115,116,\r
-114,97,100,111,115,111,112,111,114,116,117,110,105,100,97,100,99,111,109,101,114\r
-,99,105,97,108,101,115,102,111,116,111,103,114,97,102,195,173,97,97,117,116,111,\r
-114,105,100,97,100,101,115,105,110,103,101,110,105,101,114,195,173,97,116,101,\r
-108,101,118,105,115,105,195,179,110,99,111,109,112,101,116,101,110,99,105,97,111\r
-,112,101,114,97,99,105,111,110,101,115,101,115,116,97,98,108,101,99,105,100,111,\r
-115,105,109,112,108,101,109,101,110,116,101,97,99,116,117,97,108,109,101,110,116\r
-,101,110,97,118,101,103,97,99,105,195,179,110,99,111,110,102,111,114,109,105,100\r
-,97,100,108,105,110,101,45,104,101,105,103,104,116,58,102,111,110,116,45,102,97,\r
-109,105,108,121,58,34,32,58,32,34,104,116,116,112,58,47,47,97,112,112,108,105,99\r
-,97,116,105,111,110,115,108,105,110,107,34,32,104,114,101,102,61,34,115,112,101,\r
-99,105,102,105,99,97,108,108,121,47,47,60,33,91,67,68,65,84,65,91,10,79,114,103,\r
-97,110,105,122,97,116,105,111,110,100,105,115,116,114,105,98,117,116,105,111,110\r
-,48,112,120,59,32,104,101,105,103,104,116,58,114,101,108,97,116,105,111,110,115,\r
-104,105,112,100,101,118,105,99,101,45,119,105,100,116,104,60,100,105,118,32,99,\r
-108,97,115,115,61,34,60,108,97,98,101,108,32,102,111,114,61,34,114,101,103,105,\r
-115,116,114,97,116,105,111,110,60,47,110,111,115,99,114,105,112,116,62,10,47,105\r
-,110,100,101,120,46,104,116,109,108,34,119,105,110,100,111,119,46,111,112,101,\r
-110,40,32,33,105,109,112,111,114,116,97,110,116,59,97,112,112,108,105,99,97,116,\r
-105,111,110,47,105,110,100,101,112,101,110,100,101,110,99,101,47,47,119,119,119,\r
-46,103,111,111,103,108,101,111,114,103,97,110,105,122,97,116,105,111,110,97,117,\r
-116,111,99,111,109,112,108,101,116,101,114,101,113,117,105,114,101,109,101,110,\r
-116,115,99,111,110,115,101,114,118,97,116,105,118,101,60,102,111,114,109,32,110,\r
-97,109,101,61,34,105,110,116,101,108,108,101,99,116,117,97,108,109,97,114,103,\r
-105,110,45,108,101,102,116,58,49,56,116,104,32,99,101,110,116,117,114,121,97,110\r
-,32,105,109,112,111,114,116,97,110,116,105,110,115,116,105,116,117,116,105,111,\r
-110,115,97,98,98,114,101,118,105,97,116,105,111,110,60,105,109,103,32,99,108,97,\r
-115,115,61,34,111,114,103,97,110,105,115,97,116,105,111,110,99,105,118,105,108,\r
-105,122,97,116,105,111,110,49,57,116,104,32,99,101,110,116,117,114,121,97,114,99\r
-,104,105,116,101,99,116,117,114,101,105,110,99,111,114,112,111,114,97,116,101,\r
-100,50,48,116,104,32,99,101,110,116,117,114,121,45,99,111,110,116,97,105,110,101\r
-,114,34,62,109,111,115,116,32,110,111,116,97,98,108,121,47,62,60,47,97,62,60,47,\r
-100,105,118,62,110,111,116,105,102,105,99,97,116,105,111,110,39,117,110,100,101,\r
-102,105,110,101,100,39,41,70,117,114,116,104,101,114,109,111,114,101,44,98,101,\r
-108,105,101,118,101,32,116,104,97,116,105,110,110,101,114,72,84,77,76,32,61,32,\r
-112,114,105,111,114,32,116,111,32,116,104,101,100,114,97,109,97,116,105,99,97,\r
-108,108,121,114,101,102,101,114,114,105,110,103,32,116,111,110,101,103,111,116,\r
-105,97,116,105,111,110,115,104,101,97,100,113,117,97,114,116,101,114,115,83,111,\r
-117,116,104,32,65,102,114,105,99,97,117,110,115,117,99,99,101,115,115,102,117,\r
-108,80,101,110,110,115,121,108,118,97,110,105,97,65,115,32,97,32,114,101,115,117\r
-,108,116,44,60,104,116,109,108,32,108,97,110,103,61,34,38,108,116,59,47,115,117,\r
-112,38,103,116,59,100,101,97,108,105,110,103,32,119,105,116,104,112,104,105,108,\r
-97,100,101,108,112,104,105,97,104,105,115,116,111,114,105,99,97,108,108,121,41,\r
-59,60,47,115,99,114,105,112,116,62,10,112,97,100,100,105,110,103,45,116,111,112,\r
-58,101,120,112,101,114,105,109,101,110,116,97,108,103,101,116,65,116,116,114,105\r
-,98,117,116,101,105,110,115,116,114,117,99,116,105,111,110,115,116,101,99,104,\r
-110,111,108,111,103,105,101,115,112,97,114,116,32,111,102,32,116,104,101,32,61,\r
-102,117,110,99,116,105,111,110,40,41,123,115,117,98,115,99,114,105,112,116,105,\r
-111,110,108,46,100,116,100,34,62,13,10,60,104,116,103,101,111,103,114,97,112,104\r
-,105,99,97,108,67,111,110,115,116,105,116,117,116,105,111,110,39,44,32,102,117,\r
-110,99,116,105,111,110,40,115,117,112,112,111,114,116,101,100,32,98,121,97,103,\r
-114,105,99,117,108,116,117,114,97,108,99,111,110,115,116,114,117,99,116,105,111,\r
-110,112,117,98,108,105,99,97,116,105,111,110,115,102,111,110,116,45,115,105,122,\r
-101,58,32,49,97,32,118,97,114,105,101,116,121,32,111,102,60,100,105,118,32,115,\r
-116,121,108,101,61,34,69,110,99,121,99,108,111,112,101,100,105,97,105,102,114,97\r
-,109,101,32,115,114,99,61,34,100,101,109,111,110,115,116,114,97,116,101,100,97,\r
-99,99,111,109,112,108,105,115,104,101,100,117,110,105,118,101,114,115,105,116,\r
-105,101,115,68,101,109,111,103,114,97,112,104,105,99,115,41,59,60,47,115,99,114,\r
-105,112,116,62,60,100,101,100,105,99,97,116,101,100,32,116,111,107,110,111,119,\r
-108,101,100,103,101,32,111,102,115,97,116,105,115,102,97,99,116,105,111,110,112,\r
-97,114,116,105,99,117,108,97,114,108,121,60,47,100,105,118,62,60,47,100,105,118,\r
-62,69,110,103,108,105,115,104,32,40,85,83,41,97,112,112,101,110,100,67,104,105,\r
-108,100,40,116,114,97,110,115,109,105,115,115,105,111,110,115,46,32,72,111,119,\r
-101,118,101,114,44,32,105,110,116,101,108,108,105,103,101,110,99,101,34,32,116,\r
-97,98,105,110,100,101,120,61,34,102,108,111,97,116,58,114,105,103,104,116,59,67,\r
-111,109,109,111,110,119,101,97,108,116,104,114,97,110,103,105,110,103,32,102,114\r
-,111,109,105,110,32,119,104,105,99,104,32,116,104,101,97,116,32,108,101,97,115,\r
-116,32,111,110,101,114,101,112,114,111,100,117,99,116,105,111,110,101,110,99,121\r
-,99,108,111,112,101,100,105,97,59,102,111,110,116,45,115,105,122,101,58,49,106,\r
-117,114,105,115,100,105,99,116,105,111,110,97,116,32,116,104,97,116,32,116,105,\r
-109,101,34,62,60,97,32,99,108,97,115,115,61,34,73,110,32,97,100,100,105,116,105,\r
-111,110,44,100,101,115,99,114,105,112,116,105,111,110,43,99,111,110,118,101,114,\r
-115,97,116,105,111,110,99,111,110,116,97,99,116,32,119,105,116,104,105,115,32,\r
-103,101,110,101,114,97,108,108,121,114,34,32,99,111,110,116,101,110,116,61,34,\r
-114,101,112,114,101,115,101,110,116,105,110,103,38,108,116,59,109,97,116,104,38,\r
-103,116,59,112,114,101,115,101,110,116,97,116,105,111,110,111,99,99,97,115,105,\r
-111,110,97,108,108,121,60,105,109,103,32,119,105,100,116,104,61,34,110,97,118,\r
-105,103,97,116,105,111,110,34,62,99,111,109,112,101,110,115,97,116,105,111,110,\r
-99,104,97,109,112,105,111,110,115,104,105,112,109,101,100,105,97,61,34,97,108,\r
-108,34,32,118,105,111,108,97,116,105,111,110,32,111,102,114,101,102,101,114,101,\r
-110,99,101,32,116,111,114,101,116,117,114,110,32,116,114,117,101,59,83,116,114,\r
-105,99,116,47,47,69,78,34,32,116,114,97,110,115,97,99,116,105,111,110,115,105,\r
-110,116,101,114,118,101,110,116,105,111,110,118,101,114,105,102,105,99,97,116,\r
-105,111,110,73,110,102,111,114,109,97,116,105,111,110,32,100,105,102,102,105,99,\r
-117,108,116,105,101,115,67,104,97,109,112,105,111,110,115,104,105,112,99,97,112,\r
-97,98,105,108,105,116,105,101,115,60,33,91,101,110,100,105,102,93,45,45,62,125,\r
-10,60,47,115,99,114,105,112,116,62,10,67,104,114,105,115,116,105,97,110,105,116,\r
-121,102,111,114,32,101,120,97,109,112,108,101,44,80,114,111,102,101,115,115,105,\r
-111,110,97,108,114,101,115,116,114,105,99,116,105,111,110,115,115,117,103,103,\r
-101,115,116,32,116,104,97,116,119,97,115,32,114,101,108,101,97,115,101,100,40,\r
-115,117,99,104,32,97,115,32,116,104,101,114,101,109,111,118,101,67,108,97,115,\r
-115,40,117,110,101,109,112,108,111,121,109,101,110,116,116,104,101,32,65,109,101\r
-,114,105,99,97,110,115,116,114,117,99,116,117,114,101,32,111,102,47,105,110,100,\r
-101,120,46,104,116,109,108,32,112,117,98,108,105,115,104,101,100,32,105,110,115,\r
-112,97,110,32,99,108,97,115,115,61,34,34,62,60,97,32,104,114,101,102,61,34,47,\r
-105,110,116,114,111,100,117,99,116,105,111,110,98,101,108,111,110,103,105,110,\r
-103,32,116,111,99,108,97,105,109,101,100,32,116,104,97,116,99,111,110,115,101,\r
-113,117,101,110,99,101,115,60,109,101,116,97,32,110,97,109,101,61,34,71,117,105,\r
-100,101,32,116,111,32,116,104,101,111,118,101,114,119,104,101,108,109,105,110,\r
-103,97,103,97,105,110,115,116,32,116,104,101,32,99,111,110,99,101,110,116,114,97\r
-,116,101,100,44,10,46,110,111,110,116,111,117,99,104,32,111,98,115,101,114,118,\r
-97,116,105,111,110,115,60,47,97,62,10,60,47,100,105,118,62,10,102,32,40,100,111,\r
-99,117,109,101,110,116,46,98,111,114,100,101,114,58,32,49,112,120,32,123,102,111\r
-,110,116,45,115,105,122,101,58,49,116,114,101,97,116,109,101,110,116,32,111,102,\r
-48,34,32,104,101,105,103,104,116,61,34,49,109,111,100,105,102,105,99,97,116,105,\r
-111,110,73,110,100,101,112,101,110,100,101,110,99,101,100,105,118,105,100,101,\r
-100,32,105,110,116,111,103,114,101,97,116,101,114,32,116,104,97,110,97,99,104,\r
-105,101,118,101,109,101,110,116,115,101,115,116,97,98,108,105,115,104,105,110,\r
-103,74,97,118,97,83,99,114,105,112,116,34,32,110,101,118,101,114,116,104,101,108\r
-,101,115,115,115,105,103,110,105,102,105,99,97,110,99,101,66,114,111,97,100,99,\r
-97,115,116,105,110,103,62,38,110,98,115,112,59,60,47,116,100,62,99,111,110,116,\r
-97,105,110,101,114,34,62,10,115,117,99,104,32,97,115,32,116,104,101,32,105,110,\r
-102,108,117,101,110,99,101,32,111,102,97,32,112,97,114,116,105,99,117,108,97,114\r
-,115,114,99,61,39,104,116,116,112,58,47,47,110,97,118,105,103,97,116,105,111,110\r
-,34,32,104,97,108,102,32,111,102,32,116,104,101,32,115,117,98,115,116,97,110,116\r
-,105,97,108,32,38,110,98,115,112,59,60,47,100,105,118,62,97,100,118,97,110,116,\r
-97,103,101,32,111,102,100,105,115,99,111,118,101,114,121,32,111,102,102,117,110,\r
-100,97,109,101,110,116,97,108,32,109,101,116,114,111,112,111,108,105,116,97,110,\r
-116,104,101,32,111,112,112,111,115,105,116,101,34,32,120,109,108,58,108,97,110,\r
-103,61,34,100,101,108,105,98,101,114,97,116,101,108,121,97,108,105,103,110,61,99\r
-,101,110,116,101,114,101,118,111,108,117,116,105,111,110,32,111,102,112,114,101,\r
-115,101,114,118,97,116,105,111,110,105,109,112,114,111,118,101,109,101,110,116,\r
-115,98,101,103,105,110,110,105,110,103,32,105,110,74,101,115,117,115,32,67,104,\r
-114,105,115,116,80,117,98,108,105,99,97,116,105,111,110,115,100,105,115,97,103,\r
-114,101,101,109,101,110,116,116,101,120,116,45,97,108,105,103,110,58,114,44,32,\r
-102,117,110,99,116,105,111,110,40,41,115,105,109,105,108,97,114,105,116,105,101,\r
-115,98,111,100,121,62,60,47,104,116,109,108,62,105,115,32,99,117,114,114,101,110\r
-,116,108,121,97,108,112,104,97,98,101,116,105,99,97,108,105,115,32,115,111,109,\r
-101,116,105,109,101,115,116,121,112,101,61,34,105,109,97,103,101,47,109,97,110,\r
-121,32,111,102,32,116,104,101,32,102,108,111,119,58,104,105,100,100,101,110,59,\r
-97,118,97,105,108,97,98,108,101,32,105,110,100,101,115,99,114,105,98,101,32,116,\r
-104,101,101,120,105,115,116,101,110,99,101,32,111,102,97,108,108,32,111,118,101,\r
-114,32,116,104,101,116,104,101,32,73,110,116,101,114,110,101,116,9,60,117,108,32\r
-,99,108,97,115,115,61,34,105,110,115,116,97,108,108,97,116,105,111,110,110,101,\r
-105,103,104,98,111,114,104,111,111,100,97,114,109,101,100,32,102,111,114,99,101,\r
-115,114,101,100,117,99,105,110,103,32,116,104,101,99,111,110,116,105,110,117,101\r
-,115,32,116,111,78,111,110,101,116,104,101,108,101,115,115,44,116,101,109,112,\r
-101,114,97,116,117,114,101,115,10,9,9,60,97,32,104,114,101,102,61,34,99,108,111,\r
-115,101,32,116,111,32,116,104,101,101,120,97,109,112,108,101,115,32,111,102,32,\r
-105,115,32,97,98,111,117,116,32,116,104,101,40,115,101,101,32,98,101,108,111,119\r
-,41,46,34,32,105,100,61,34,115,101,97,114,99,104,112,114,111,102,101,115,115,105\r
-,111,110,97,108,105,115,32,97,118,97,105,108,97,98,108,101,116,104,101,32,111,\r
-102,102,105,99,105,97,108,9,9,60,47,115,99,114,105,112,116,62,10,10,9,9,60,100,\r
-105,118,32,105,100,61,34,97,99,99,101,108,101,114,97,116,105,111,110,116,104,114\r
-,111,117,103,104,32,116,104,101,32,72,97,108,108,32,111,102,32,70,97,109,101,100\r
-,101,115,99,114,105,112,116,105,111,110,115,116,114,97,110,115,108,97,116,105,\r
-111,110,115,105,110,116,101,114,102,101,114,101,110,99,101,32,116,121,112,101,61\r
-,39,116,101,120,116,47,114,101,99,101,110,116,32,121,101,97,114,115,105,110,32,\r
-116,104,101,32,119,111,114,108,100,118,101,114,121,32,112,111,112,117,108,97,114\r
-,123,98,97,99,107,103,114,111,117,110,100,58,116,114,97,100,105,116,105,111,110,\r
-97,108,32,115,111,109,101,32,111,102,32,116,104,101,32,99,111,110,110,101,99,116\r
-,101,100,32,116,111,101,120,112,108,111,105,116,97,116,105,111,110,101,109,101,\r
-114,103,101,110,99,101,32,111,102,99,111,110,115,116,105,116,117,116,105,111,110\r
-,65,32,72,105,115,116,111,114,121,32,111,102,115,105,103,110,105,102,105,99,97,\r
-110,116,32,109,97,110,117,102,97,99,116,117,114,101,100,101,120,112,101,99,116,\r
-97,116,105,111,110,115,62,60,110,111,115,99,114,105,112,116,62,60,99,97,110,32,\r
-98,101,32,102,111,117,110,100,98,101,99,97,117,115,101,32,116,104,101,32,104,97,\r
-115,32,110,111,116,32,98,101,101,110,110,101,105,103,104,98,111,117,114,105,110,\r
-103,119,105,116,104,111,117,116,32,116,104,101,32,97,100,100,101,100,32,116,111,\r
-32,116,104,101,9,60,108,105,32,99,108,97,115,115,61,34,105,110,115,116,114,117,\r
-109,101,110,116,97,108,83,111,118,105,101,116,32,85,110,105,111,110,97,99,107,\r
-110,111,119,108,101,100,103,101,100,119,104,105,99,104,32,99,97,110,32,98,101,\r
-110,97,109,101,32,102,111,114,32,116,104,101,97,116,116,101,110,116,105,111,110,\r
-32,116,111,97,116,116,101,109,112,116,115,32,116,111,32,100,101,118,101,108,111,\r
-112,109,101,110,116,115,73,110,32,102,97,99,116,44,32,116,104,101,60,108,105,32,\r
-99,108,97,115,115,61,34,97,105,109,112,108,105,99,97,116,105,111,110,115,115,117\r
-,105,116,97,98,108,101,32,102,111,114,109,117,99,104,32,111,102,32,116,104,101,\r
-32,99,111,108,111,110,105,122,97,116,105,111,110,112,114,101,115,105,100,101,110\r
-,116,105,97,108,99,97,110,99,101,108,66,117,98,98,108,101,32,73,110,102,111,114,\r
-109,97,116,105,111,110,109,111,115,116,32,111,102,32,116,104,101,32,105,115,32,\r
-100,101,115,99,114,105,98,101,100,114,101,115,116,32,111,102,32,116,104,101,32,\r
-109,111,114,101,32,111,114,32,108,101,115,115,105,110,32,83,101,112,116,101,109,\r
-98,101,114,73,110,116,101,108,108,105,103,101,110,99,101,115,114,99,61,34,104,\r
-116,116,112,58,47,47,112,120,59,32,104,101,105,103,104,116,58,32,97,118,97,105,\r
-108,97,98,108,101,32,116,111,109,97,110,117,102,97,99,116,117,114,101,114,104,\r
-117,109,97,110,32,114,105,103,104,116,115,108,105,110,107,32,104,114,101,102,61,\r
-34,47,97,118,97,105,108,97,98,105,108,105,116,121,112,114,111,112,111,114,116,\r
-105,111,110,97,108,111,117,116,115,105,100,101,32,116,104,101,32,97,115,116,114,\r
-111,110,111,109,105,99,97,108,104,117,109,97,110,32,98,101,105,110,103,115,110,\r
-97,109,101,32,111,102,32,116,104,101,32,97,114,101,32,102,111,117,110,100,32,105\r
-,110,97,114,101,32,98,97,115,101,100,32,111,110,115,109,97,108,108,101,114,32,\r
-116,104,97,110,97,32,112,101,114,115,111,110,32,119,104,111,101,120,112,97,110,\r
-115,105,111,110,32,111,102,97,114,103,117,105,110,103,32,116,104,97,116,110,111,\r
-119,32,107,110,111,119,110,32,97,115,73,110,32,116,104,101,32,101,97,114,108,121\r
-,105,110,116,101,114,109,101,100,105,97,116,101,100,101,114,105,118,101,100,32,\r
-102,114,111,109,83,99,97,110,100,105,110,97,118,105,97,110,60,47,97,62,60,47,100\r
-,105,118,62,13,10,99,111,110,115,105,100,101,114,32,116,104,101,97,110,32,101,\r
-115,116,105,109,97,116,101,100,116,104,101,32,78,97,116,105,111,110,97,108,60,\r
-100,105,118,32,105,100,61,34,112,97,103,114,101,115,117,108,116,105,110,103,32,\r
-105,110,99,111,109,109,105,115,115,105,111,110,101,100,97,110,97,108,111,103,111\r
-,117,115,32,116,111,97,114,101,32,114,101,113,117,105,114,101,100,47,117,108,62,\r
-10,60,47,100,105,118,62,10,119,97,115,32,98,97,115,101,100,32,111,110,97,110,100\r
-,32,98,101,99,97,109,101,32,97,38,110,98,115,112,59,38,110,98,115,112,59,116,34,\r
-32,118,97,108,117,101,61,34,34,32,119,97,115,32,99,97,112,116,117,114,101,100,\r
-110,111,32,109,111,114,101,32,116,104,97,110,114,101,115,112,101,99,116,105,118,\r
-101,108,121,99,111,110,116,105,110,117,101,32,116,111,32,62,13,10,60,104,101,97,\r
-100,62,13,10,60,119,101,114,101,32,99,114,101,97,116,101,100,109,111,114,101,32,\r
-103,101,110,101,114,97,108,105,110,102,111,114,109,97,116,105,111,110,32,117,115\r
-,101,100,32,102,111,114,32,116,104,101,105,110,100,101,112,101,110,100,101,110,\r
-116,32,116,104,101,32,73,109,112,101,114,105,97,108,99,111,109,112,111,110,101,\r
-110,116,32,111,102,116,111,32,116,104,101,32,110,111,114,116,104,105,110,99,108,\r
-117,100,101,32,116,104,101,32,67,111,110,115,116,114,117,99,116,105,111,110,115,\r
-105,100,101,32,111,102,32,116,104,101,32,119,111,117,108,100,32,110,111,116,32,\r
-98,101,102,111,114,32,105,110,115,116,97,110,99,101,105,110,118,101,110,116,105,\r
-111,110,32,111,102,109,111,114,101,32,99,111,109,112,108,101,120,99,111,108,108,\r
-101,99,116,105,118,101,108,121,98,97,99,107,103,114,111,117,110,100,58,32,116,\r
-101,120,116,45,97,108,105,103,110,58,32,105,116,115,32,111,114,105,103,105,110,\r
-97,108,105,110,116,111,32,97,99,99,111,117,110,116,116,104,105,115,32,112,114,\r
-111,99,101,115,115,97,110,32,101,120,116,101,110,115,105,118,101,104,111,119,101\r
-,118,101,114,44,32,116,104,101,116,104,101,121,32,97,114,101,32,110,111,116,114,\r
-101,106,101,99,116,101,100,32,116,104,101,99,114,105,116,105,99,105,115,109,32,\r
-111,102,100,117,114,105,110,103,32,119,104,105,99,104,112,114,111,98,97,98,108,\r
-121,32,116,104,101,116,104,105,115,32,97,114,116,105,99,108,101,40,102,117,110,\r
-99,116,105,111,110,40,41,123,73,116,32,115,104,111,117,108,100,32,98,101,97,110,\r
-32,97,103,114,101,101,109,101,110,116,97,99,99,105,100,101,110,116,97,108,108,\r
-121,100,105,102,102,101,114,115,32,102,114,111,109,65,114,99,104,105,116,101,99,\r
-116,117,114,101,98,101,116,116,101,114,32,107,110,111,119,110,97,114,114,97,110,\r
-103,101,109,101,110,116,115,105,110,102,108,117,101,110,99,101,32,111,110,97,116\r
-,116,101,110,100,101,100,32,116,104,101,105,100,101,110,116,105,99,97,108,32,116\r
-,111,115,111,117,116,104,32,111,102,32,116,104,101,112,97,115,115,32,116,104,114\r
-,111,117,103,104,120,109,108,34,32,116,105,116,108,101,61,34,119,101,105,103,104\r
-,116,58,98,111,108,100,59,99,114,101,97,116,105,110,103,32,116,104,101,100,105,\r
-115,112,108,97,121,58,110,111,110,101,114,101,112,108,97,99,101,100,32,116,104,\r
-101,60,105,109,103,32,115,114,99,61,34,47,105,104,116,116,112,115,58,47,47,119,\r
-119,119,46,87,111,114,108,100,32,87,97,114,32,73,73,116,101,115,116,105,109,111,\r
-110,105,97,108,115,102,111,117,110,100,32,105,110,32,116,104,101,114,101,113,117\r
-,105,114,101,100,32,116,111,32,97,110,100,32,116,104,97,116,32,116,104,101,98,\r
-101,116,119,101,101,110,32,116,104,101,32,119,97,115,32,100,101,115,105,103,110,\r
-101,100,99,111,110,115,105,115,116,115,32,111,102,32,99,111,110,115,105,100,101,\r
-114,97,98,108,121,112,117,98,108,105,115,104,101,100,32,98,121,116,104,101,32,\r
-108,97,110,103,117,97,103,101,67,111,110,115,101,114,118,97,116,105,111,110,99,\r
-111,110,115,105,115,116,101,100,32,111,102,114,101,102,101,114,32,116,111,32,116\r
-,104,101,98,97,99,107,32,116,111,32,116,104,101,32,99,115,115,34,32,109,101,100,\r
-105,97,61,34,80,101,111,112,108,101,32,102,114,111,109,32,97,118,97,105,108,97,\r
-98,108,101,32,111,110,112,114,111,118,101,100,32,116,111,32,98,101,115,117,103,\r
-103,101,115,116,105,111,110,115,34,119,97,115,32,107,110,111,119,110,32,97,115,\r
-118,97,114,105,101,116,105,101,115,32,111,102,108,105,107,101,108,121,32,116,111\r
-,32,98,101,99,111,109,112,114,105,115,101,100,32,111,102,115,117,112,112,111,114\r
-,116,32,116,104,101,32,104,97,110,100,115,32,111,102,32,116,104,101,99,111,117,\r
-112,108,101,100,32,119,105,116,104,99,111,110,110,101,99,116,32,97,110,100,32,98\r
-,111,114,100,101,114,58,110,111,110,101,59,112,101,114,102,111,114,109,97,110,99\r
-,101,115,98,101,102,111,114,101,32,98,101,105,110,103,108,97,116,101,114,32,98,\r
-101,99,97,109,101,99,97,108,99,117,108,97,116,105,111,110,115,111,102,116,101,\r
-110,32,99,97,108,108,101,100,114,101,115,105,100,101,110,116,115,32,111,102,109,\r
-101,97,110,105,110,103,32,116,104,97,116,62,60,108,105,32,99,108,97,115,115,61,\r
-34,101,118,105,100,101,110,99,101,32,102,111,114,101,120,112,108,97,110,97,116,\r
-105,111,110,115,101,110,118,105,114,111,110,109,101,110,116,115,34,62,60,47,97,\r
-62,60,47,100,105,118,62,119,104,105,99,104,32,97,108,108,111,119,115,73,110,116,\r
-114,111,100,117,99,116,105,111,110,100,101,118,101,108,111,112,101,100,32,98,121\r
-,97,32,119,105,100,101,32,114,97,110,103,101,111,110,32,98,101,104,97,108,102,32\r
-,111,102,118,97,108,105,103,110,61,34,116,111,112,34,112,114,105,110,99,105,112,\r
-108,101,32,111,102,97,116,32,116,104,101,32,116,105,109,101,44,60,47,110,111,115\r
-,99,114,105,112,116,62,13,115,97,105,100,32,116,111,32,104,97,118,101,105,110,32\r
-,116,104,101,32,102,105,114,115,116,119,104,105,108,101,32,111,116,104,101,114,\r
-115,104,121,112,111,116,104,101,116,105,99,97,108,112,104,105,108,111,115,111,\r
-112,104,101,114,115,112,111,119,101,114,32,111,102,32,116,104,101,99,111,110,116\r
-,97,105,110,101,100,32,105,110,112,101,114,102,111,114,109,101,100,32,98,121,105\r
-,110,97,98,105,108,105,116,121,32,116,111,119,101,114,101,32,119,114,105,116,116\r
-,101,110,115,112,97,110,32,115,116,121,108,101,61,34,105,110,112,117,116,32,110,\r
-97,109,101,61,34,116,104,101,32,113,117,101,115,116,105,111,110,105,110,116,101,\r
-110,100,101,100,32,102,111,114,114,101,106,101,99,116,105,111,110,32,111,102,105\r
-,109,112,108,105,101,115,32,116,104,97,116,105,110,118,101,110,116,101,100,32,\r
-116,104,101,116,104,101,32,115,116,97,110,100,97,114,100,119,97,115,32,112,114,\r
-111,98,97,98,108,121,108,105,110,107,32,98,101,116,119,101,101,110,112,114,111,\r
-102,101,115,115,111,114,32,111,102,105,110,116,101,114,97,99,116,105,111,110,115\r
-,99,104,97,110,103,105,110,103,32,116,104,101,73,110,100,105,97,110,32,79,99,101\r
-,97,110,32,99,108,97,115,115,61,34,108,97,115,116,119,111,114,107,105,110,103,32\r
-,119,105,116,104,39,104,116,116,112,58,47,47,119,119,119,46,121,101,97,114,115,\r
-32,98,101,102,111,114,101,84,104,105,115,32,119,97,115,32,116,104,101,114,101,99\r
-,114,101,97,116,105,111,110,97,108,101,110,116,101,114,105,110,103,32,116,104,\r
-101,109,101,97,115,117,114,101,109,101,110,116,115,97,110,32,101,120,116,114,101\r
-,109,101,108,121,118,97,108,117,101,32,111,102,32,116,104,101,115,116,97,114,116\r
-,32,111,102,32,116,104,101,10,60,47,115,99,114,105,112,116,62,10,10,97,110,32,\r
-101,102,102,111,114,116,32,116,111,105,110,99,114,101,97,115,101,32,116,104,101,\r
-116,111,32,116,104,101,32,115,111,117,116,104,115,112,97,99,105,110,103,61,34,48\r
-,34,62,115,117,102,102,105,99,105,101,110,116,108,121,116,104,101,32,69,117,114,\r
-111,112,101,97,110,99,111,110,118,101,114,116,101,100,32,116,111,99,108,101,97,\r
-114,84,105,109,101,111,117,116,100,105,100,32,110,111,116,32,104,97,118,101,99,\r
-111,110,115,101,113,117,101,110,116,108,121,102,111,114,32,116,104,101,32,110,\r
-101,120,116,101,120,116,101,110,115,105,111,110,32,111,102,101,99,111,110,111,\r
-109,105,99,32,97,110,100,97,108,116,104,111,117,103,104,32,116,104,101,97,114,\r
-101,32,112,114,111,100,117,99,101,100,97,110,100,32,119,105,116,104,32,116,104,\r
-101,105,110,115,117,102,102,105,99,105,101,110,116,103,105,118,101,110,32,98,121\r
-,32,116,104,101,115,116,97,116,105,110,103,32,116,104,97,116,101,120,112,101,110\r
-,100,105,116,117,114,101,115,60,47,115,112,97,110,62,60,47,97,62,10,116,104,111,\r
-117,103,104,116,32,116,104,97,116,111,110,32,116,104,101,32,98,97,115,105,115,99\r
-,101,108,108,112,97,100,100,105,110,103,61,105,109,97,103,101,32,111,102,32,116,\r
-104,101,114,101,116,117,114,110,105,110,103,32,116,111,105,110,102,111,114,109,\r
-97,116,105,111,110,44,115,101,112,97,114,97,116,101,100,32,98,121,97,115,115,97,\r
-115,115,105,110,97,116,101,100,115,34,32,99,111,110,116,101,110,116,61,34,97,117\r
-,116,104,111,114,105,116,121,32,111,102,110,111,114,116,104,119,101,115,116,101,\r
-114,110,60,47,100,105,118,62,10,60,100,105,118,32,34,62,60,47,100,105,118,62,13,\r
-10,32,32,99,111,110,115,117,108,116,97,116,105,111,110,99,111,109,109,117,110,\r
-105,116,121,32,111,102,116,104,101,32,110,97,116,105,111,110,97,108,105,116,32,\r
-115,104,111,117,108,100,32,98,101,112,97,114,116,105,99,105,112,97,110,116,115,\r
-32,97,108,105,103,110,61,34,108,101,102,116,116,104,101,32,103,114,101,97,116,\r
-101,115,116,115,101,108,101,99,116,105,111,110,32,111,102,115,117,112,101,114,\r
-110,97,116,117,114,97,108,100,101,112,101,110,100,101,110,116,32,111,110,105,115\r
-,32,109,101,110,116,105,111,110,101,100,97,108,108,111,119,105,110,103,32,116,\r
-104,101,119,97,115,32,105,110,118,101,110,116,101,100,97,99,99,111,109,112,97,\r
-110,121,105,110,103,104,105,115,32,112,101,114,115,111,110,97,108,97,118,97,105,\r
-108,97,98,108,101,32,97,116,115,116,117,100,121,32,111,102,32,116,104,101,111,\r
-110,32,116,104,101,32,111,116,104,101,114,101,120,101,99,117,116,105,111,110,32,\r
-111,102,72,117,109,97,110,32,82,105,103,104,116,115,116,101,114,109,115,32,111,\r
-102,32,116,104,101,97,115,115,111,99,105,97,116,105,111,110,115,114,101,115,101,\r
-97,114,99,104,32,97,110,100,115,117,99,99,101,101,100,101,100,32,98,121,100,101,\r
-102,101,97,116,101,100,32,116,104,101,97,110,100,32,102,114,111,109,32,116,104,\r
-101,98,117,116,32,116,104,101,121,32,97,114,101,99,111,109,109,97,110,100,101,\r
-114,32,111,102,115,116,97,116,101,32,111,102,32,116,104,101,121,101,97,114,115,\r
-32,111,102,32,97,103,101,116,104,101,32,115,116,117,100,121,32,111,102,60,117,\r
-108,32,99,108,97,115,115,61,34,115,112,108,97,99,101,32,105,110,32,116,104,101,\r
-119,104,101,114,101,32,104,101,32,119,97,115,60,108,105,32,99,108,97,115,115,61,\r
-34,102,116,104,101,114,101,32,97,114,101,32,110,111,119,104,105,99,104,32,98,101\r
-,99,97,109,101,104,101,32,112,117,98,108,105,115,104,101,100,101,120,112,114,101\r
-,115,115,101,100,32,105,110,116,111,32,119,104,105,99,104,32,116,104,101,99,111,\r
-109,109,105,115,115,105,111,110,101,114,102,111,110,116,45,119,101,105,103,104,\r
-116,58,116,101,114,114,105,116,111,114,121,32,111,102,101,120,116,101,110,115,\r
-105,111,110,115,34,62,82,111,109,97,110,32,69,109,112,105,114,101,101,113,117,97\r
-,108,32,116,111,32,116,104,101,73,110,32,99,111,110,116,114,97,115,116,44,104,\r
-111,119,101,118,101,114,44,32,97,110,100,105,115,32,116,121,112,105,99,97,108,\r
-108,121,97,110,100,32,104,105,115,32,119,105,102,101,40,97,108,115,111,32,99,97,\r
-108,108,101,100,62,60,117,108,32,99,108,97,115,115,61,34,101,102,102,101,99,116,\r
-105,118,101,108,121,32,101,118,111,108,118,101,100,32,105,110,116,111,115,101,\r
-101,109,32,116,111,32,104,97,118,101,119,104,105,99,104,32,105,115,32,116,104,\r
-101,116,104,101,114,101,32,119,97,115,32,110,111,97,110,32,101,120,99,101,108,\r
-108,101,110,116,97,108,108,32,111,102,32,116,104,101,115,101,100,101,115,99,114,\r
-105,98,101,100,32,98,121,73,110,32,112,114,97,99,116,105,99,101,44,98,114,111,97\r
-,100,99,97,115,116,105,110,103,99,104,97,114,103,101,100,32,119,105,116,104,114,\r
-101,102,108,101,99,116,101,100,32,105,110,115,117,98,106,101,99,116,101,100,32,\r
-116,111,109,105,108,105,116,97,114,121,32,97,110,100,116,111,32,116,104,101,32,\r
-112,111,105,110,116,101,99,111,110,111,109,105,99,97,108,108,121,115,101,116,84,\r
-97,114,103,101,116,105,110,103,97,114,101,32,97,99,116,117,97,108,108,121,118,\r
-105,99,116,111,114,121,32,111,118,101,114,40,41,59,60,47,115,99,114,105,112,116,\r
-62,99,111,110,116,105,110,117,111,117,115,108,121,114,101,113,117,105,114,101,\r
-100,32,102,111,114,101,118,111,108,117,116,105,111,110,97,114,121,97,110,32,101,\r
-102,102,101,99,116,105,118,101,110,111,114,116,104,32,111,102,32,116,104,101,44,\r
-32,119,104,105,99,104,32,119,97,115,32,102,114,111,110,116,32,111,102,32,116,104\r
-,101,111,114,32,111,116,104,101,114,119,105,115,101,115,111,109,101,32,102,111,\r
-114,109,32,111,102,104,97,100,32,110,111,116,32,98,101,101,110,103,101,110,101,\r
-114,97,116,101,100,32,98,121,105,110,102,111,114,109,97,116,105,111,110,46,112,\r
-101,114,109,105,116,116,101,100,32,116,111,105,110,99,108,117,100,101,115,32,116\r
-,104,101,100,101,118,101,108,111,112,109,101,110,116,44,101,110,116,101,114,101,\r
-100,32,105,110,116,111,116,104,101,32,112,114,101,118,105,111,117,115,99,111,110\r
-,115,105,115,116,101,110,116,108,121,97,114,101,32,107,110,111,119,110,32,97,115\r
-,116,104,101,32,102,105,101,108,100,32,111,102,116,104,105,115,32,116,121,112,\r
-101,32,111,102,103,105,118,101,110,32,116,111,32,116,104,101,116,104,101,32,116,\r
-105,116,108,101,32,111,102,99,111,110,116,97,105,110,115,32,116,104,101,105,110,\r
-115,116,97,110,99,101,115,32,111,102,105,110,32,116,104,101,32,110,111,114,116,\r
-104,100,117,101,32,116,111,32,116,104,101,105,114,97,114,101,32,100,101,115,105,\r
-103,110,101,100,99,111,114,112,111,114,97,116,105,111,110,115,119,97,115,32,116,\r
-104,97,116,32,116,104,101,111,110,101,32,111,102,32,116,104,101,115,101,109,111,\r
-114,101,32,112,111,112,117,108,97,114,115,117,99,99,101,101,100,101,100,32,105,\r
-110,115,117,112,112,111,114,116,32,102,114,111,109,105,110,32,100,105,102,102,\r
-101,114,101,110,116,100,111,109,105,110,97,116,101,100,32,98,121,100,101,115,105\r
-,103,110,101,100,32,102,111,114,111,119,110,101,114,115,104,105,112,32,111,102,\r
-97,110,100,32,112,111,115,115,105,98,108,121,115,116,97,110,100,97,114,100,105,\r
-122,101,100,114,101,115,112,111,110,115,101,84,101,120,116,119,97,115,32,105,110\r
-,116,101,110,100,101,100,114,101,99,101,105,118,101,100,32,116,104,101,97,115,\r
-115,117,109,101,100,32,116,104,97,116,97,114,101,97,115,32,111,102,32,116,104,\r
-101,112,114,105,109,97,114,105,108,121,32,105,110,116,104,101,32,98,97,115,105,\r
-115,32,111,102,105,110,32,116,104,101,32,115,101,110,115,101,97,99,99,111,117,\r
-110,116,115,32,102,111,114,100,101,115,116,114,111,121,101,100,32,98,121,97,116,\r
-32,108,101,97,115,116,32,116,119,111,119,97,115,32,100,101,99,108,97,114,101,100\r
-,99,111,117,108,100,32,110,111,116,32,98,101,83,101,99,114,101,116,97,114,121,32\r
-,111,102,97,112,112,101,97,114,32,116,111,32,98,101,109,97,114,103,105,110,45,\r
-116,111,112,58,49,47,94,92,115,43,124,92,115,43,36,47,103,101,41,123,116,104,114\r
-,111,119,32,101,125,59,116,104,101,32,115,116,97,114,116,32,111,102,116,119,111,\r
-32,115,101,112,97,114,97,116,101,108,97,110,103,117,97,103,101,32,97,110,100,119\r
-,104,111,32,104,97,100,32,98,101,101,110,111,112,101,114,97,116,105,111,110,32,\r
-111,102,100,101,97,116,104,32,111,102,32,116,104,101,114,101,97,108,32,110,117,\r
-109,98,101,114,115,9,60,108,105,110,107,32,114,101,108,61,34,112,114,111,118,105\r
-,100,101,100,32,116,104,101,116,104,101,32,115,116,111,114,121,32,111,102,99,111\r
-,109,112,101,116,105,116,105,111,110,115,101,110,103,108,105,115,104,32,40,85,75\r
-,41,101,110,103,108,105,115,104,32,40,85,83,41,208,156,208,190,208,189,208,179,\r
-208,190,208,187,208,161,209,128,208,191,209,129,208,186,208,184,209,129,209,128,\r
-208,191,209,129,208,186,208,184,209,129,209,128,208,191,209,129,208,186,208,190,\r
-217,132,216,185,216,177,216,168,217,138,216,169,230,173,163,233,171,148,228,184,\r
-173,230,150,135,231,174,128,228,189,147,228,184,173,230,150,135,231,185,129,228,\r
-189,147,228,184,173,230,150,135,230,156,137,233,153,144,229,133,172,229,143,184,\r
-228,186,186,230,176,145,230,148,191,229,186,156,233,152,191,233,135,140,229,183,\r
-180,229,183,180,231,164,190,228,188,154,228,184,187,228,185,137,230,147,141,228,\r
-189,156,231,179,187,231,187,159,230,148,191,231,173,150,230,179,149,232,167,132,\r
-105,110,102,111,114,109,97,99,105,195,179,110,104,101,114,114,97,109,105,101,110\r
-,116,97,115,101,108,101,99,116,114,195,179,110,105,99,111,100,101,115,99,114,105\r
-,112,99,105,195,179,110,99,108,97,115,105,102,105,99,97,100,111,115,99,111,110,\r
-111,99,105,109,105,101,110,116,111,112,117,98,108,105,99,97,99,105,195,179,110,\r
-114,101,108,97,99,105,111,110,97,100,97,115,105,110,102,111,114,109,195,161,116,\r
-105,99,97,114,101,108,97,99,105,111,110,97,100,111,115,100,101,112,97,114,116,97\r
-,109,101,110,116,111,116,114,97,98,97,106,97,100,111,114,101,115,100,105,114,101\r
-,99,116,97,109,101,110,116,101,97,121,117,110,116,97,109,105,101,110,116,111,109\r
-,101,114,99,97,100,111,76,105,98,114,101,99,111,110,116,195,161,99,116,101,110,\r
-111,115,104,97,98,105,116,97,99,105,111,110,101,115,99,117,109,112,108,105,109,\r
-105,101,110,116,111,114,101,115,116,97,117,114,97,110,116,101,115,100,105,115,\r
-112,111,115,105,99,105,195,179,110,99,111,110,115,101,99,117,101,110,99,105,97,\r
-101,108,101,99,116,114,195,179,110,105,99,97,97,112,108,105,99,97,99,105,111,110\r
-,101,115,100,101,115,99,111,110,101,99,116,97,100,111,105,110,115,116,97,108,97,\r
-99,105,195,179,110,114,101,97,108,105,122,97,99,105,195,179,110,117,116,105,108,\r
-105,122,97,99,105,195,179,110,101,110,99,105,99,108,111,112,101,100,105,97,101,\r
-110,102,101,114,109,101,100,97,100,101,115,105,110,115,116,114,117,109,101,110,\r
-116,111,115,101,120,112,101,114,105,101,110,99,105,97,115,105,110,115,116,105,\r
-116,117,99,105,195,179,110,112,97,114,116,105,99,117,108,97,114,101,115,115,117,\r
-98,99,97,116,101,103,111,114,105,97,209,130,208,190,208,187,209,140,208,186,208,\r
-190,208,160,208,190,209,129,209,129,208,184,208,184,209,128,208,176,208,177,208,\r
-190,209,130,209,139,208,177,208,190,208,187,209,140,209,136,208,181,208,191,209,\r
-128,208,190,209,129,209,130,208,190,208,188,208,190,208,182,208,181,209,130,208,\r
-181,208,180,209,128,209,131,208,179,208,184,209,133,209,129,208,187,209,131,209,\r
-135,208,176,208,181,209,129,208,181,208,185,209,135,208,176,209,129,208,178,209,\r
-129,208,181,208,179,208,180,208,176,208,160,208,190,209,129,209,129,208,184,209,\r
-143,208,156,208,190,209,129,208,186,208,178,208,181,208,180,209,128,209,131,208,\r
-179,208,184,208,181,208,179,208,190,209,128,208,190,208,180,208,176,208,178,208,\r
-190,208,191,209,128,208,190,209,129,208,180,208,176,208,189,208,189,209,139,209,\r
-133,208,180,208,190,208,187,208,182,208,189,209,139,208,184,208,188,208,181,208,\r
-189,208,189,208,190,208,156,208,190,209,129,208,186,208,178,209,139,209,128,209,\r
-131,208,177,208,187,208,181,208,185,208,156,208,190,209,129,208,186,208,178,208,\r
-176,209,129,209,130,209,128,208,176,208,189,209,139,208,189,208,184,209,135,208,\r
-181,208,179,208,190,209,128,208,176,208,177,208,190,209,130,208,181,208,180,208,\r
-190,208,187,208,182,208,181,208,189,209,131,209,129,208,187,209,131,208,179,208,\r
-184,209,130,208,181,208,191,208,181,209,128,209,140,208,158,208,180,208,189,208,\r
-176,208,186,208,190,208,191,208,190,209,130,208,190,208,188,209,131,209,128,208,\r
-176,208,177,208,190,209,130,209,131,208,176,208,191,209,128,208,181,208,187,209,\r
-143,208,178,208,190,208,190,208,177,209,137,208,181,208,190,208,180,208,189,208,\r
-190,208,179,208,190,209,129,208,178,208,190,208,181,208,179,208,190,209,129,209,\r
-130,208,176,209,130,209,140,208,184,208,180,209,128,209,131,208,179,208,190,208,\r
-185,209,132,208,190,209,128,209,131,208,188,208,181,209,133,208,190,209,128,208,\r
-190,209,136,208,190,208,191,209,128,208,190,209,130,208,184,208,178,209,129,209,\r
-129,209,139,208,187,208,186,208,176,208,186,208,176,208,182,208,180,209,139,208,\r
-185,208,178,208,187,208,176,209,129,209,130,208,184,208,179,209,128,209,131,208,\r
-191,208,191,209,139,208,178,208,188,208,181,209,129,209,130,208,181,209,128,208,\r
-176,208,177,208,190,209,130,208,176,209,129,208,186,208,176,208,183,208,176,208,\r
-187,208,191,208,181,209,128,208,178,209,139,208,185,208,180,208,181,208,187,208,\r
-176,209,130,209,140,208,180,208,181,208,189,209,140,208,179,208,184,208,191,208,\r
-181,209,128,208,184,208,190,208,180,208,177,208,184,208,183,208,189,208,181,209,\r
-129,208,190,209,129,208,189,208,190,208,178,208,181,208,188,208,190,208,188,208,\r
-181,208,189,209,130,208,186,209,131,208,191,208,184,209,130,209,140,208,180,208,\r
-190,208,187,208,182,208,189,208,176,209,128,208,176,208,188,208,186,208,176,209,\r
-133,208,189,208,176,209,135,208,176,208,187,208,190,208,160,208,176,208,177,208,\r
-190,209,130,208,176,208,162,208,190,208,187,209,140,208,186,208,190,209,129,208,\r
-190,208,178,209,129,208,181,208,188,208,178,209,130,208,190,209,128,208,190,208,\r
-185,208,189,208,176,209,135,208,176,208,187,208,176,209,129,208,191,208,184,209,\r
-129,208,190,208,186,209,129,208,187,209,131,208,182,208,177,209,139,209,129,208,\r
-184,209,129,209,130,208,181,208,188,208,191,208,181,209,135,208,176,209,130,208,\r
-184,208,189,208,190,208,178,208,190,208,179,208,190,208,191,208,190,208,188,208,\r
-190,209,137,208,184,209,129,208,176,208,185,209,130,208,190,208,178,208,191,208,\r
-190,209,135,208,181,208,188,209,131,208,191,208,190,208,188,208,190,209,137,209,\r
-140,208,180,208,190,208,187,208,182,208,189,208,190,209,129,209,129,209,139,208,\r
-187,208,186,208,184,208,177,209,139,209,129,209,130,209,128,208,190,208,180,208,\r
-176,208,189,208,189,209,139,208,181,208,188,208,189,208,190,208,179,208,184,208,\r
-181,208,191,209,128,208,190,208,181,208,186,209,130,208,161,208,181,208,185,209,\r
-135,208,176,209,129,208,188,208,190,208,180,208,181,208,187,208,184,209,130,208,\r
-176,208,186,208,190,208,179,208,190,208,190,208,189,208,187,208,176,208,185,208,\r
-189,208,179,208,190,209,128,208,190,208,180,208,181,208,178,208,181,209,128,209,\r
-129,208,184,209,143,209,129,209,130,209,128,208,176,208,189,208,181,209,132,208,\r
-184,208,187,209,140,208,188,209,139,209,131,209,128,208,190,208,178,208,189,209,\r
-143,209,128,208,176,208,183,208,189,209,139,209,133,208,184,209,129,208,186,208,\r
-176,209,130,209,140,208,189,208,181,208,180,208,181,208,187,209,142,209,143,208,\r
-189,208,178,208,176,209,128,209,143,208,188,208,181,208,189,209,140,209,136,208,\r
-181,208,188,208,189,208,190,208,179,208,184,209,133,208,180,208,176,208,189,208,\r
-189,208,190,208,185,208,183,208,189,208,176,209,135,208,184,209,130,208,189,208,\r
-181,208,187,209,140,208,183,209,143,209,132,208,190,209,128,209,131,208,188,208,\r
-176,208,162,208,181,208,191,208,181,209,128,209,140,208,188,208,181,209,129,209,\r
-143,209,134,208,176,208,183,208,176,209,137,208,184,209,130,209,139,208,155,209,\r
-131,209,135,209,136,208,184,208,181,224,164,168,224,164,185,224,165,128,224,164,\r
-130,224,164,149,224,164,176,224,164,168,224,165,135,224,164,133,224,164,170,224,\r
-164,168,224,165,135,224,164,149,224,164,191,224,164,175,224,164,190,224,164,149,\r
-224,164,176,224,165,135,224,164,130,224,164,133,224,164,168,224,165,141,224,164,\r
-175,224,164,149,224,165,141,224,164,175,224,164,190,224,164,151,224,164,190,224,\r
-164,135,224,164,161,224,164,172,224,164,190,224,164,176,224,165,135,224,164,149,\r
-224,164,191,224,164,184,224,165,128,224,164,166,224,164,191,224,164,175,224,164,\r
-190,224,164,170,224,164,185,224,164,178,224,165,135,224,164,184,224,164,191,224,\r
-164,130,224,164,185,224,164,173,224,164,190,224,164,176,224,164,164,224,164,133,\r
-224,164,170,224,164,168,224,165,128,224,164,181,224,164,190,224,164,178,224,165,\r
-135,224,164,184,224,165,135,224,164,181,224,164,190,224,164,149,224,164,176,224,\r
-164,164,224,165,135,224,164,174,224,165,135,224,164,176,224,165,135,224,164,185,\r
-224,165,139,224,164,168,224,165,135,224,164,184,224,164,149,224,164,164,224,165,\r
-135,224,164,172,224,164,185,224,165,129,224,164,164,224,164,184,224,164,190,224,\r
-164,135,224,164,159,224,164,185,224,165,139,224,164,151,224,164,190,224,164,156,\r
-224,164,190,224,164,168,224,165,135,224,164,174,224,164,191,224,164,168,224,164,\r
-159,224,164,149,224,164,176,224,164,164,224,164,190,224,164,149,224,164,176,224,\r
-164,168,224,164,190,224,164,137,224,164,168,224,164,149,224,165,135,224,164,175,\r
-224,164,185,224,164,190,224,164,129,224,164,184,224,164,172,224,164,184,224,165,\r
-135,224,164,173,224,164,190,224,164,183,224,164,190,224,164,134,224,164,170,224,\r
-164,149,224,165,135,224,164,178,224,164,191,224,164,175,224,165,135,224,164,182,\r
-224,165,129,224,164,176,224,165,130,224,164,135,224,164,184,224,164,149,224,165,\r
-135,224,164,152,224,164,130,224,164,159,224,165,135,224,164,174,224,165,135,224,\r
-164,176,224,165,128,224,164,184,224,164,149,224,164,164,224,164,190,224,164,174,\r
-224,165,135,224,164,176,224,164,190,224,164,178,224,165,135,224,164,149,224,164,\r
-176,224,164,133,224,164,167,224,164,191,224,164,149,224,164,133,224,164,170,224,\r
-164,168,224,164,190,224,164,184,224,164,174,224,164,190,224,164,156,224,164,174,\r
-224,165,129,224,164,157,224,165,135,224,164,149,224,164,190,224,164,176,224,164,\r
-163,224,164,185,224,165,139,224,164,164,224,164,190,224,164,149,224,164,161,224,\r
-164,188,224,165,128,224,164,175,224,164,185,224,164,190,224,164,130,224,164,185,\r
-224,165,139,224,164,159,224,164,178,224,164,182,224,164,172,224,165,141,224,164,\r
-166,224,164,178,224,164,191,224,164,175,224,164,190,224,164,156,224,165,128,224,\r
-164,181,224,164,168,224,164,156,224,164,190,224,164,164,224,164,190,224,164,149,\r
-224,165,136,224,164,184,224,165,135,224,164,134,224,164,170,224,164,149,224,164,\r
-190,224,164,181,224,164,190,224,164,178,224,165,128,224,164,166,224,165,135,224,\r
-164,168,224,165,135,224,164,170,224,165,130,224,164,176,224,165,128,224,164,170,\r
-224,164,190,224,164,168,224,165,128,224,164,137,224,164,184,224,164,149,224,165,\r
-135,224,164,185,224,165,139,224,164,151,224,165,128,224,164,172,224,165,136,224,\r
-164,160,224,164,149,224,164,134,224,164,170,224,164,149,224,165,128,224,164,181,\r
-224,164,176,224,165,141,224,164,183,224,164,151,224,164,190,224,164,130,224,164,\r
-181,224,164,134,224,164,170,224,164,149,224,165,139,224,164,156,224,164,191,224,\r
-164,178,224,164,190,224,164,156,224,164,190,224,164,168,224,164,190,224,164,184,\r
-224,164,185,224,164,174,224,164,164,224,164,185,224,164,174,224,165,135,224,164,\r
-130,224,164,137,224,164,168,224,164,149,224,165,128,224,164,175,224,164,190,224,\r
-164,185,224,165,130,224,164,166,224,164,176,224,165,141,224,164,156,224,164,184,\r
-224,165,130,224,164,154,224,165,128,224,164,170,224,164,184,224,164,130,224,164,\r
-166,224,164,184,224,164,181,224,164,190,224,164,178,224,164,185,224,165,139,224,\r
-164,168,224,164,190,224,164,185,224,165,139,224,164,164,224,165,128,224,164,156,\r
-224,165,136,224,164,184,224,165,135,224,164,181,224,164,190,224,164,170,224,164,\r
-184,224,164,156,224,164,168,224,164,164,224,164,190,224,164,168,224,165,135,224,\r
-164,164,224,164,190,224,164,156,224,164,190,224,164,176,224,165,128,224,164,152,\r
-224,164,190,224,164,175,224,164,178,224,164,156,224,164,191,224,164,178,224,165,\r
-135,224,164,168,224,165,128,224,164,154,224,165,135,224,164,156,224,164,190,224,\r
-164,130,224,164,154,224,164,170,224,164,164,224,165,141,224,164,176,224,164,151,\r
-224,165,130,224,164,151,224,164,178,224,164,156,224,164,190,224,164,164,224,165,\r
-135,224,164,172,224,164,190,224,164,185,224,164,176,224,164,134,224,164,170,224,\r
-164,168,224,165,135,224,164,181,224,164,190,224,164,185,224,164,168,224,164,135,\r
-224,164,184,224,164,149,224,164,190,224,164,184,224,165,129,224,164,172,224,164,\r
-185,224,164,176,224,164,185,224,164,168,224,165,135,224,164,135,224,164,184,224,\r
-164,184,224,165,135,224,164,184,224,164,185,224,164,191,224,164,164,224,164,172,\r
-224,164,161,224,164,188,224,165,135,224,164,152,224,164,159,224,164,168,224,164,\r
-190,224,164,164,224,164,178,224,164,190,224,164,182,224,164,170,224,164,190,224,\r
-164,130,224,164,154,224,164,182,224,165,141,224,164,176,224,165,128,224,164,172,\r
-224,164,161,224,164,188,224,165,128,224,164,185,224,165,139,224,164,164,224,165,\r
-135,224,164,184,224,164,190,224,164,136,224,164,159,224,164,182,224,164,190,224,\r
-164,175,224,164,166,224,164,184,224,164,149,224,164,164,224,165,128,224,164,156,\r
-224,164,190,224,164,164,224,165,128,224,164,181,224,164,190,224,164,178,224,164,\r
-190,224,164,185,224,164,156,224,164,190,224,164,176,224,164,170,224,164,159,224,\r
-164,168,224,164,190,224,164,176,224,164,150,224,164,168,224,165,135,224,164,184,\r
-224,164,161,224,164,188,224,164,149,224,164,174,224,164,191,224,164,178,224,164,\r
-190,224,164,137,224,164,184,224,164,149,224,165,128,224,164,149,224,165,135,224,\r
-164,181,224,164,178,224,164,178,224,164,151,224,164,164,224,164,190,224,164,150,\r
-224,164,190,224,164,168,224,164,190,224,164,133,224,164,176,224,165,141,224,164,\r
-165,224,164,156,224,164,185,224,164,190,224,164,130,224,164,166,224,165,135,224,\r
-164,150,224,164,190,224,164,170,224,164,185,224,164,178,224,165,128,224,164,168,\r
-224,164,191,224,164,175,224,164,174,224,164,172,224,164,191,224,164,168,224,164,\r
-190,224,164,172,224,165,136,224,164,130,224,164,149,224,164,149,224,164,185,224,\r
-165,128,224,164,130,224,164,149,224,164,185,224,164,168,224,164,190,224,164,166,\r
-224,165,135,224,164,164,224,164,190,224,164,185,224,164,174,224,164,178,224,165,\r
-135,224,164,149,224,164,190,224,164,171,224,165,128,224,164,156,224,164,172,224,\r
-164,149,224,164,191,224,164,164,224,165,129,224,164,176,224,164,164,224,164,174,\r
-224,164,190,224,164,130,224,164,151,224,164,181,224,164,185,224,165,128,224,164,\r
-130,224,164,176,224,165,139,224,164,156,224,164,188,224,164,174,224,164,191,224,\r
-164,178,224,165,128,224,164,134,224,164,176,224,165,139,224,164,170,224,164,184,\r
-224,165,135,224,164,168,224,164,190,224,164,175,224,164,190,224,164,166,224,164,\r
-181,224,164,178,224,165,135,224,164,168,224,165,135,224,164,150,224,164,190,224,\r
-164,164,224,164,190,224,164,149,224,164,176,224,165,128,224,164,172,224,164,137,\r
-224,164,168,224,164,149,224,164,190,224,164,156,224,164,181,224,164,190,224,164,\r
-172,224,164,170,224,165,130,224,164,176,224,164,190,224,164,172,224,164,161,224,\r
-164,188,224,164,190,224,164,184,224,165,140,224,164,166,224,164,190,224,164,182,\r
-224,165,135,224,164,175,224,164,176,224,164,149,224,164,191,224,164,175,224,165,\r
-135,224,164,149,224,164,185,224,164,190,224,164,130,224,164,133,224,164,149,224,\r
-164,184,224,164,176,224,164,172,224,164,168,224,164,190,224,164,143,224,164,181,\r
-224,164,185,224,164,190,224,164,130,224,164,184,224,165,141,224,164,165,224,164,\r
-178,224,164,174,224,164,191,224,164,178,224,165,135,224,164,178,224,165,135,224,\r
-164,150,224,164,149,224,164,181,224,164,191,224,164,183,224,164,175,224,164,149,\r
-224,165,141,224,164,176,224,164,130,224,164,184,224,164,174,224,165,130,224,164,\r
-185,224,164,165,224,164,190,224,164,168,224,164,190,216,170,216,179,216,170,216,\r
-183,217,138,216,185,217,133,216,180,216,167,216,177,217,131,216,169,216,168,217,\r
-136,216,167,216,179,216,183,216,169,216,167,217,132,216,181,217,129,216,173,216,\r
-169,217,133,217,136,216,167,216,182,217,138,216,185,216,167,217,132,216,174,216,\r
-167,216,181,216,169,216,167,217,132,217,133,216,178,217,138,216,175,216,167,217,\r
-132,216,185,216,167,217,133,216,169,216,167,217,132,217,131,216,167,216,170,216,\r
-168,216,167,217,132,216,177,216,175,217,136,216,175,216,168,216,177,217,134,216,\r
-167,217,133,216,172,216,167,217,132,216,175,217,136,217,132,216,169,216,167,217,\r
-132,216,185,216,167,217,132,217,133,216,167,217,132,217,133,217,136,217,130,216,\r
-185,216,167,217,132,216,185,216,177,216,168,217,138,216,167,217,132,216,179,216,\r
-177,217,138,216,185,216,167,217,132,216,172,217,136,216,167,217,132,216,167,217,\r
-132,216,176,217,135,216,167,216,168,216,167,217,132,216,173,217,138,216,167,216,\r
-169,216,167,217,132,216,173,217,130,217,136,217,130,216,167,217,132,217,131,216,\r
-177,217,138,217,133,216,167,217,132,216,185,216,177,216,167,217,130,217,133,216,\r
-173,217,129,217,136,216,184,216,169,216,167,217,132,216,171,216,167,217,134,217,\r
-138,217,133,216,180,216,167,217,135,216,175,216,169,216,167,217,132,217,133,216,\r
-177,216,163,216,169,216,167,217,132,217,130,216,177,216,162,217,134,216,167,217,\r
-132,216,180,216,168,216,167,216,168,216,167,217,132,216,173,217,136,216,167,216,\r
-177,216,167,217,132,216,172,216,175,217,138,216,175,216,167,217,132,216,163,216,\r
-179,216,177,216,169,216,167,217,132,216,185,217,132,217,136,217,133,217,133,216,\r
-172,217,133,217,136,216,185,216,169,216,167,217,132,216,177,216,173,217,133,217,\r
-134,216,167,217,132,217,134,217,130,216,167,216,183,217,129,217,132,216,179,216,\r
-183,217,138,217,134,216,167,217,132,217,131,217,136,217,138,216,170,216,167,217,\r
-132,216,175,217,134,217,138,216,167,216,168,216,177,217,131,216,167,216,170,217,\r
-135,216,167,217,132,216,177,217,138,216,167,216,182,216,170,216,173,217,138,216,\r
-167,216,170,217,138,216,168,216,170,217,136,217,130,217,138,216,170,216,167,217,\r
-132,216,163,217,136,217,132,217,137,216,167,217,132,216,168,216,177,217,138,216,\r
-175,216,167,217,132,217,131,217,132,216,167,217,133,216,167,217,132,216,177,216,\r
-167,216,168,216,183,216,167,217,132,216,180,216,174,216,181,217,138,216,179,217,\r
-138,216,167,216,177,216,167,216,170,216,167,217,132,216,171,216,167,217,132,216,\r
-171,216,167,217,132,216,181,217,132,216,167,216,169,216,167,217,132,216,173,216,\r
-175,217,138,216,171,216,167,217,132,216,178,217,136,216,167,216,177,216,167,217,\r
-132,216,174,217,132,217,138,216,172,216,167,217,132,216,172,217,133,217,138,216,\r
-185,216,167,217,132,216,185,216,167,217,133,217,135,216,167,217,132,216,172,217,\r
-133,216,167,217,132,216,167,217,132,216,179,216,167,216,185,216,169,217,133,216,\r
-180,216,167,217,135,216,175,217,135,216,167,217,132,216,177,216,166,217,138,216,\r
-179,216,167,217,132,216,175,216,174,217,136,217,132,216,167,217,132,217,129,217,\r
-134,217,138,216,169,216,167,217,132,217,131,216,170,216,167,216,168,216,167,217,\r
-132,216,175,217,136,216,177,217,138,216,167,217,132,216,175,216,177,217,136,216,\r
-179,216,167,216,179,216,170,216,186,216,177,217,130,216,170,216,181,216,167,217,\r
-133,217,138,217,133,216,167,217,132,216,168,217,134,216,167,216,170,216,167,217,\r
-132,216,185,216,184,217,138,217,133,101,110,116,101,114,116,97,105,110,109,101,\r
-110,116,117,110,100,101,114,115,116,97,110,100,105,110,103,32,61,32,102,117,110,\r
-99,116,105,111,110,40,41,46,106,112,103,34,32,119,105,100,116,104,61,34,99,111,\r
-110,102,105,103,117,114,97,116,105,111,110,46,112,110,103,34,32,119,105,100,116,\r
-104,61,34,60,98,111,100,121,32,99,108,97,115,115,61,34,77,97,116,104,46,114,97,\r
-110,100,111,109,40,41,99,111,110,116,101,109,112,111,114,97,114,121,32,85,110,\r
-105,116,101,100,32,83,116,97,116,101,115,99,105,114,99,117,109,115,116,97,110,99\r
-,101,115,46,97,112,112,101,110,100,67,104,105,108,100,40,111,114,103,97,110,105,\r
-122,97,116,105,111,110,115,60,115,112,97,110,32,99,108,97,115,115,61,34,34,62,60\r
-,105,109,103,32,115,114,99,61,34,47,100,105,115,116,105,110,103,117,105,115,104,\r
-101,100,116,104,111,117,115,97,110,100,115,32,111,102,32,99,111,109,109,117,110,\r
-105,99,97,116,105,111,110,99,108,101,97,114,34,62,60,47,100,105,118,62,105,110,\r
-118,101,115,116,105,103,97,116,105,111,110,102,97,118,105,99,111,110,46,105,99,\r
-111,34,32,109,97,114,103,105,110,45,114,105,103,104,116,58,98,97,115,101,100,32,\r
-111,110,32,116,104,101,32,77,97,115,115,97,99,104,117,115,101,116,116,115,116,97\r
-,98,108,101,32,98,111,114,100,101,114,61,105,110,116,101,114,110,97,116,105,111,\r
-110,97,108,97,108,115,111,32,107,110,111,119,110,32,97,115,112,114,111,110,117,\r
-110,99,105,97,116,105,111,110,98,97,99,107,103,114,111,117,110,100,58,35,102,112\r
-,97,100,100,105,110,103,45,108,101,102,116,58,70,111,114,32,101,120,97,109,112,\r
-108,101,44,32,109,105,115,99,101,108,108,97,110,101,111,117,115,38,108,116,59,47\r
-,109,97,116,104,38,103,116,59,112,115,121,99,104,111,108,111,103,105,99,97,108,\r
-105,110,32,112,97,114,116,105,99,117,108,97,114,101,97,114,99,104,34,32,116,121,\r
-112,101,61,34,102,111,114,109,32,109,101,116,104,111,100,61,34,97,115,32,111,112\r
-,112,111,115,101,100,32,116,111,83,117,112,114,101,109,101,32,67,111,117,114,116\r
-,111,99,99,97,115,105,111,110,97,108,108,121,32,65,100,100,105,116,105,111,110,\r
-97,108,108,121,44,78,111,114,116,104,32,65,109,101,114,105,99,97,112,120,59,98,\r
-97,99,107,103,114,111,117,110,100,111,112,112,111,114,116,117,110,105,116,105,\r
-101,115,69,110,116,101,114,116,97,105,110,109,101,110,116,46,116,111,76,111,119,\r
-101,114,67,97,115,101,40,109,97,110,117,102,97,99,116,117,114,105,110,103,112,\r
-114,111,102,101,115,115,105,111,110,97,108,32,99,111,109,98,105,110,101,100,32,\r
-119,105,116,104,70,111,114,32,105,110,115,116,97,110,99,101,44,99,111,110,115,\r
-105,115,116,105,110,103,32,111,102,34,32,109,97,120,108,101,110,103,116,104,61,\r
-34,114,101,116,117,114,110,32,102,97,108,115,101,59,99,111,110,115,99,105,111,\r
-117,115,110,101,115,115,77,101,100,105,116,101,114,114,97,110,101,97,110,101,120\r
-,116,114,97,111,114,100,105,110,97,114,121,97,115,115,97,115,115,105,110,97,116,\r
-105,111,110,115,117,98,115,101,113,117,101,110,116,108,121,32,98,117,116,116,111\r
-,110,32,116,121,112,101,61,34,116,104,101,32,110,117,109,98,101,114,32,111,102,\r
-116,104,101,32,111,114,105,103,105,110,97,108,32,99,111,109,112,114,101,104,101,\r
-110,115,105,118,101,114,101,102,101,114,115,32,116,111,32,116,104,101,60,47,117,\r
-108,62,10,60,47,100,105,118,62,10,112,104,105,108,111,115,111,112,104,105,99,97,\r
-108,108,111,99,97,116,105,111,110,46,104,114,101,102,119,97,115,32,112,117,98,\r
-108,105,115,104,101,100,83,97,110,32,70,114,97,110,99,105,115,99,111,40,102,117,\r
-110,99,116,105,111,110,40,41,123,10,60,100,105,118,32,105,100,61,34,109,97,105,\r
-110,115,111,112,104,105,115,116,105,99,97,116,101,100,109,97,116,104,101,109,97,\r
-116,105,99,97,108,32,47,104,101,97,100,62,13,10,60,98,111,100,121,115,117,103,\r
-103,101,115,116,115,32,116,104,97,116,100,111,99,117,109,101,110,116,97,116,105,\r
-111,110,99,111,110,99,101,110,116,114,97,116,105,111,110,114,101,108,97,116,105,\r
-111,110,115,104,105,112,115,109,97,121,32,104,97,118,101,32,98,101,101,110,40,\r
-102,111,114,32,101,120,97,109,112,108,101,44,84,104,105,115,32,97,114,116,105,99\r
-,108,101,32,105,110,32,115,111,109,101,32,99,97,115,101,115,112,97,114,116,115,\r
-32,111,102,32,116,104,101,32,100,101,102,105,110,105,116,105,111,110,32,111,102,\r
-71,114,101,97,116,32,66,114,105,116,97,105,110,32,99,101,108,108,112,97,100,100,\r
-105,110,103,61,101,113,117,105,118,97,108,101,110,116,32,116,111,112,108,97,99,\r
-101,104,111,108,100,101,114,61,34,59,32,102,111,110,116,45,115,105,122,101,58,32\r
-,106,117,115,116,105,102,105,99,97,116,105,111,110,98,101,108,105,101,118,101,\r
-100,32,116,104,97,116,115,117,102,102,101,114,101,100,32,102,114,111,109,97,116,\r
-116,101,109,112,116,101,100,32,116,111,32,108,101,97,100,101,114,32,111,102,32,\r
-116,104,101,99,114,105,112,116,34,32,115,114,99,61,34,47,40,102,117,110,99,116,\r
-105,111,110,40,41,32,123,97,114,101,32,97,118,97,105,108,97,98,108,101,10,9,60,\r
-108,105,110,107,32,114,101,108,61,34,32,115,114,99,61,39,104,116,116,112,58,47,\r
-47,105,110,116,101,114,101,115,116,101,100,32,105,110,99,111,110,118,101,110,116\r
-,105,111,110,97,108,32,34,32,97,108,116,61,34,34,32,47,62,60,47,97,114,101,32,\r
-103,101,110,101,114,97,108,108,121,104,97,115,32,97,108,115,111,32,98,101,101,\r
-110,109,111,115,116,32,112,111,112,117,108,97,114,32,99,111,114,114,101,115,112,\r
-111,110,100,105,110,103,99,114,101,100,105,116,101,100,32,119,105,116,104,116,\r
-121,108,101,61,34,98,111,114,100,101,114,58,60,47,97,62,60,47,115,112,97,110,62,\r
-60,47,46,103,105,102,34,32,119,105,100,116,104,61,34,60,105,102,114,97,109,101,\r
-32,115,114,99,61,34,116,97,98,108,101,32,99,108,97,115,115,61,34,105,110,108,105\r
-,110,101,45,98,108,111,99,107,59,97,99,99,111,114,100,105,110,103,32,116,111,32,\r
-116,111,103,101,116,104,101,114,32,119,105,116,104,97,112,112,114,111,120,105,\r
-109,97,116,101,108,121,112,97,114,108,105,97,109,101,110,116,97,114,121,109,111,\r
-114,101,32,97,110,100,32,109,111,114,101,100,105,115,112,108,97,121,58,110,111,\r
-110,101,59,116,114,97,100,105,116,105,111,110,97,108,108,121,112,114,101,100,111\r
-,109,105,110,97,110,116,108,121,38,110,98,115,112,59,124,38,110,98,115,112,59,38\r
-,110,98,115,112,59,60,47,115,112,97,110,62,32,99,101,108,108,115,112,97,99,105,\r
-110,103,61,60,105,110,112,117,116,32,110,97,109,101,61,34,111,114,34,32,99,111,\r
-110,116,101,110,116,61,34,99,111,110,116,114,111,118,101,114,115,105,97,108,112,\r
-114,111,112,101,114,116,121,61,34,111,103,58,47,120,45,115,104,111,99,107,119,97\r
-,118,101,45,100,101,109,111,110,115,116,114,97,116,105,111,110,115,117,114,114,\r
-111,117,110,100,101,100,32,98,121,78,101,118,101,114,116,104,101,108,101,115,115\r
-,44,119,97,115,32,116,104,101,32,102,105,114,115,116,99,111,110,115,105,100,101,\r
-114,97,98,108,101,32,65,108,116,104,111,117,103,104,32,116,104,101,32,99,111,108\r
-,108,97,98,111,114,97,116,105,111,110,115,104,111,117,108,100,32,110,111,116,32,\r
-98,101,112,114,111,112,111,114,116,105,111,110,32,111,102,60,115,112,97,110,32,\r
-115,116,121,108,101,61,34,107,110,111,119,110,32,97,115,32,116,104,101,32,115,\r
-104,111,114,116,108,121,32,97,102,116,101,114,102,111,114,32,105,110,115,116,97,\r
-110,99,101,44,100,101,115,99,114,105,98,101,100,32,97,115,32,47,104,101,97,100,\r
-62,10,60,98,111,100,121,32,115,116,97,114,116,105,110,103,32,119,105,116,104,105\r
-,110,99,114,101,97,115,105,110,103,108,121,32,116,104,101,32,102,97,99,116,32,\r
-116,104,97,116,100,105,115,99,117,115,115,105,111,110,32,111,102,109,105,100,100\r
-,108,101,32,111,102,32,116,104,101,97,110,32,105,110,100,105,118,105,100,117,97,\r
-108,100,105,102,102,105,99,117,108,116,32,116,111,32,112,111,105,110,116,32,111,\r
-102,32,118,105,101,119,104,111,109,111,115,101,120,117,97,108,105,116,121,97,99,\r
-99,101,112,116,97,110,99,101,32,111,102,60,47,115,112,97,110,62,60,47,100,105,\r
-118,62,109,97,110,117,102,97,99,116,117,114,101,114,115,111,114,105,103,105,110,\r
-32,111,102,32,116,104,101,99,111,109,109,111,110,108,121,32,117,115,101,100,105,\r
-109,112,111,114,116,97,110,99,101,32,111,102,100,101,110,111,109,105,110,97,116,\r
-105,111,110,115,98,97,99,107,103,114,111,117,110,100,58,32,35,108,101,110,103,\r
-116,104,32,111,102,32,116,104,101,100,101,116,101,114,109,105,110,97,116,105,111\r
-,110,97,32,115,105,103,110,105,102,105,99,97,110,116,34,32,98,111,114,100,101,\r
-114,61,34,48,34,62,114,101,118,111,108,117,116,105,111,110,97,114,121,112,114,\r
-105,110,99,105,112,108,101,115,32,111,102,105,115,32,99,111,110,115,105,100,101,\r
-114,101,100,119,97,115,32,100,101,118,101,108,111,112,101,100,73,110,100,111,45,\r
-69,117,114,111,112,101,97,110,118,117,108,110,101,114,97,98,108,101,32,116,111,\r
-112,114,111,112,111,110,101,110,116,115,32,111,102,97,114,101,32,115,111,109,101\r
-,116,105,109,101,115,99,108,111,115,101,114,32,116,111,32,116,104,101,78,101,119\r
-,32,89,111,114,107,32,67,105,116,121,32,110,97,109,101,61,34,115,101,97,114,99,\r
-104,97,116,116,114,105,98,117,116,101,100,32,116,111,99,111,117,114,115,101,32,\r
-111,102,32,116,104,101,109,97,116,104,101,109,97,116,105,99,105,97,110,98,121,32\r
-,116,104,101,32,101,110,100,32,111,102,97,116,32,116,104,101,32,101,110,100,32,\r
-111,102,34,32,98,111,114,100,101,114,61,34,48,34,32,116,101,99,104,110,111,108,\r
-111,103,105,99,97,108,46,114,101,109,111,118,101,67,108,97,115,115,40,98,114,97,\r
-110,99,104,32,111,102,32,116,104,101,101,118,105,100,101,110,99,101,32,116,104,\r
-97,116,33,91,101,110,100,105,102,93,45,45,62,13,10,73,110,115,116,105,116,117,\r
-116,101,32,111,102,32,105,110,116,111,32,97,32,115,105,110,103,108,101,114,101,\r
-115,112,101,99,116,105,118,101,108,121,46,97,110,100,32,116,104,101,114,101,102,\r
-111,114,101,112,114,111,112,101,114,116,105,101,115,32,111,102,105,115,32,108,\r
-111,99,97,116,101,100,32,105,110,115,111,109,101,32,111,102,32,119,104,105,99,\r
-104,84,104,101,114,101,32,105,115,32,97,108,115,111,99,111,110,116,105,110,117,\r
-101,100,32,116,111,32,97,112,112,101,97,114,97,110,99,101,32,111,102,32,38,97,\r
-109,112,59,110,100,97,115,104,59,32,100,101,115,99,114,105,98,101,115,32,116,104\r
-,101,99,111,110,115,105,100,101,114,97,116,105,111,110,97,117,116,104,111,114,32\r
-,111,102,32,116,104,101,105,110,100,101,112,101,110,100,101,110,116,108,121,101,\r
-113,117,105,112,112,101,100,32,119,105,116,104,100,111,101,115,32,110,111,116,32\r
-,104,97,118,101,60,47,97,62,60,97,32,104,114,101,102,61,34,99,111,110,102,117,\r
-115,101,100,32,119,105,116,104,60,108,105,110,107,32,104,114,101,102,61,34,47,97\r
-,116,32,116,104,101,32,97,103,101,32,111,102,97,112,112,101,97,114,32,105,110,32\r
-,116,104,101,84,104,101,115,101,32,105,110,99,108,117,100,101,114,101,103,97,114\r
-,100,108,101,115,115,32,111,102,99,111,117,108,100,32,98,101,32,117,115,101,100,\r
-32,115,116,121,108,101,61,38,113,117,111,116,59,115,101,118,101,114,97,108,32,\r
-116,105,109,101,115,114,101,112,114,101,115,101,110,116,32,116,104,101,98,111,\r
-100,121,62,10,60,47,104,116,109,108,62,116,104,111,117,103,104,116,32,116,111,32\r
-,98,101,112,111,112,117,108,97,116,105,111,110,32,111,102,112,111,115,115,105,98\r
-,105,108,105,116,105,101,115,112,101,114,99,101,110,116,97,103,101,32,111,102,97\r
-,99,99,101,115,115,32,116,111,32,116,104,101,97,110,32,97,116,116,101,109,112,\r
-116,32,116,111,112,114,111,100,117,99,116,105,111,110,32,111,102,106,113,117,101\r
-,114,121,47,106,113,117,101,114,121,116,119,111,32,100,105,102,102,101,114,101,\r
-110,116,98,101,108,111,110,103,32,116,111,32,116,104,101,101,115,116,97,98,108,\r
-105,115,104,109,101,110,116,114,101,112,108,97,99,105,110,103,32,116,104,101,100\r
-,101,115,99,114,105,112,116,105,111,110,34,32,100,101,116,101,114,109,105,110,\r
-101,32,116,104,101,97,118,97,105,108,97,98,108,101,32,102,111,114,65,99,99,111,\r
-114,100,105,110,103,32,116,111,32,119,105,100,101,32,114,97,110,103,101,32,111,\r
-102,9,60,100,105,118,32,99,108,97,115,115,61,34,109,111,114,101,32,99,111,109,\r
-109,111,110,108,121,111,114,103,97,110,105,115,97,116,105,111,110,115,102,117,\r
-110,99,116,105,111,110,97,108,105,116,121,119,97,115,32,99,111,109,112,108,101,\r
-116,101,100,32,38,97,109,112,59,109,100,97,115,104,59,32,112,97,114,116,105,99,\r
-105,112,97,116,105,111,110,116,104,101,32,99,104,97,114,97,99,116,101,114,97,110\r
-,32,97,100,100,105,116,105,111,110,97,108,97,112,112,101,97,114,115,32,116,111,\r
-32,98,101,102,97,99,116,32,116,104,97,116,32,116,104,101,97,110,32,101,120,97,\r
-109,112,108,101,32,111,102,115,105,103,110,105,102,105,99,97,110,116,108,121,111\r
-,110,109,111,117,115,101,111,118,101,114,61,34,98,101,99,97,117,115,101,32,116,\r
-104,101,121,32,97,115,121,110,99,32,61,32,116,114,117,101,59,112,114,111,98,108,\r
-101,109,115,32,119,105,116,104,115,101,101,109,115,32,116,111,32,104,97,118,101,\r
-116,104,101,32,114,101,115,117,108,116,32,111,102,32,115,114,99,61,34,104,116,\r
-116,112,58,47,47,102,97,109,105,108,105,97,114,32,119,105,116,104,112,111,115,\r
-115,101,115,115,105,111,110,32,111,102,102,117,110,99,116,105,111,110,32,40,41,\r
-32,123,116,111,111,107,32,112,108,97,99,101,32,105,110,97,110,100,32,115,111,109\r
-,101,116,105,109,101,115,115,117,98,115,116,97,110,116,105,97,108,108,121,60,115\r
-,112,97,110,62,60,47,115,112,97,110,62,105,115,32,111,102,116,101,110,32,117,115\r
-,101,100,105,110,32,97,110,32,97,116,116,101,109,112,116,103,114,101,97,116,32,\r
-100,101,97,108,32,111,102,69,110,118,105,114,111,110,109,101,110,116,97,108,115,\r
-117,99,99,101,115,115,102,117,108,108,121,32,118,105,114,116,117,97,108,108,121,\r
-32,97,108,108,50,48,116,104,32,99,101,110,116,117,114,121,44,112,114,111,102,101\r
-,115,115,105,111,110,97,108,115,110,101,99,101,115,115,97,114,121,32,116,111,32,\r
-100,101,116,101,114,109,105,110,101,100,32,98,121,99,111,109,112,97,116,105,98,\r
-105,108,105,116,121,98,101,99,97,117,115,101,32,105,116,32,105,115,68,105,99,116\r
-,105,111,110,97,114,121,32,111,102,109,111,100,105,102,105,99,97,116,105,111,110\r
-,115,84,104,101,32,102,111,108,108,111,119,105,110,103,109,97,121,32,114,101,102\r
-,101,114,32,116,111,58,67,111,110,115,101,113,117,101,110,116,108,121,44,73,110,\r
-116,101,114,110,97,116,105,111,110,97,108,97,108,116,104,111,117,103,104,32,115,\r
-111,109,101,116,104,97,116,32,119,111,117,108,100,32,98,101,119,111,114,108,100,\r
-39,115,32,102,105,114,115,116,99,108,97,115,115,105,102,105,101,100,32,97,115,98\r
-,111,116,116,111,109,32,111,102,32,116,104,101,40,112,97,114,116,105,99,117,108,\r
-97,114,108,121,97,108,105,103,110,61,34,108,101,102,116,34,32,109,111,115,116,32\r
-,99,111,109,109,111,110,108,121,98,97,115,105,115,32,102,111,114,32,116,104,101,\r
-102,111,117,110,100,97,116,105,111,110,32,111,102,99,111,110,116,114,105,98,117,\r
-116,105,111,110,115,112,111,112,117,108,97,114,105,116,121,32,111,102,99,101,110\r
-,116,101,114,32,111,102,32,116,104,101,116,111,32,114,101,100,117,99,101,32,116,\r
-104,101,106,117,114,105,115,100,105,99,116,105,111,110,115,97,112,112,114,111,\r
-120,105,109,97,116,105,111,110,32,111,110,109,111,117,115,101,111,117,116,61,34,\r
-78,101,119,32,84,101,115,116,97,109,101,110,116,99,111,108,108,101,99,116,105,\r
-111,110,32,111,102,60,47,115,112,97,110,62,60,47,97,62,60,47,105,110,32,116,104,\r
-101,32,85,110,105,116,101,100,102,105,108,109,32,100,105,114,101,99,116,111,114,\r
-45,115,116,114,105,99,116,46,100,116,100,34,62,104,97,115,32,98,101,101,110,32,\r
-117,115,101,100,114,101,116,117,114,110,32,116,111,32,116,104,101,97,108,116,104\r
-,111,117,103,104,32,116,104,105,115,99,104,97,110,103,101,32,105,110,32,116,104,\r
-101,115,101,118,101,114,97,108,32,111,116,104,101,114,98,117,116,32,116,104,101,\r
-114,101,32,97,114,101,117,110,112,114,101,99,101,100,101,110,116,101,100,105,115\r
-,32,115,105,109,105,108,97,114,32,116,111,101,115,112,101,99,105,97,108,108,121,\r
-32,105,110,119,101,105,103,104,116,58,32,98,111,108,100,59,105,115,32,99,97,108,\r
-108,101,100,32,116,104,101,99,111,109,112,117,116,97,116,105,111,110,97,108,105,\r
-110,100,105,99,97,116,101,32,116,104,97,116,114,101,115,116,114,105,99,116,101,\r
-100,32,116,111,9,60,109,101,116,97,32,110,97,109,101,61,34,97,114,101,32,116,121\r
-,112,105,99,97,108,108,121,99,111,110,102,108,105,99,116,32,119,105,116,104,72,\r
-111,119,101,118,101,114,44,32,116,104,101,32,65,110,32,101,120,97,109,112,108,\r
-101,32,111,102,99,111,109,112,97,114,101,100,32,119,105,116,104,113,117,97,110,\r
-116,105,116,105,101,115,32,111,102,114,97,116,104,101,114,32,116,104,97,110,32,\r
-97,99,111,110,115,116,101,108,108,97,116,105,111,110,110,101,99,101,115,115,97,\r
-114,121,32,102,111,114,114,101,112,111,114,116,101,100,32,116,104,97,116,115,112\r
-,101,99,105,102,105,99,97,116,105,111,110,112,111,108,105,116,105,99,97,108,32,\r
-97,110,100,38,110,98,115,112,59,38,110,98,115,112,59,60,114,101,102,101,114,101,\r
-110,99,101,115,32,116,111,116,104,101,32,115,97,109,101,32,121,101,97,114,71,111\r
-,118,101,114,110,109,101,110,116,32,111,102,103,101,110,101,114,97,116,105,111,\r
-110,32,111,102,104,97,118,101,32,110,111,116,32,98,101,101,110,115,101,118,101,\r
-114,97,108,32,121,101,97,114,115,99,111,109,109,105,116,109,101,110,116,32,116,\r
-111,9,9,60,117,108,32,99,108,97,115,115,61,34,118,105,115,117,97,108,105,122,97,\r
-116,105,111,110,49,57,116,104,32,99,101,110,116,117,114,121,44,112,114,97,99,116\r
-,105,116,105,111,110,101,114,115,116,104,97,116,32,104,101,32,119,111,117,108,\r
-100,97,110,100,32,99,111,110,116,105,110,117,101,100,111,99,99,117,112,97,116,\r
-105,111,110,32,111,102,105,115,32,100,101,102,105,110,101,100,32,97,115,99,101,\r
-110,116,114,101,32,111,102,32,116,104,101,116,104,101,32,97,109,111,117,110,116,\r
-32,111,102,62,60,100,105,118,32,115,116,121,108,101,61,34,101,113,117,105,118,97\r
-,108,101,110,116,32,111,102,100,105,102,102,101,114,101,110,116,105,97,116,101,\r
-98,114,111,117,103,104,116,32,97,98,111,117,116,109,97,114,103,105,110,45,108,\r
-101,102,116,58,32,97,117,116,111,109,97,116,105,99,97,108,108,121,116,104,111,\r
-117,103,104,116,32,111,102,32,97,115,83,111,109,101,32,111,102,32,116,104,101,\r
-115,101,10,60,100,105,118,32,99,108,97,115,115,61,34,105,110,112,117,116,32,99,\r
-108,97,115,115,61,34,114,101,112,108,97,99,101,100,32,119,105,116,104,105,115,32\r
-,111,110,101,32,111,102,32,116,104,101,101,100,117,99,97,116,105,111,110,32,97,\r
-110,100,105,110,102,108,117,101,110,99,101,100,32,98,121,114,101,112,117,116,97,\r
-116,105,111,110,32,97,115,10,60,109,101,116,97,32,110,97,109,101,61,34,97,99,99,\r
-111,109,109,111,100,97,116,105,111,110,60,47,100,105,118,62,10,60,47,100,105,118\r
-,62,108,97,114,103,101,32,112,97,114,116,32,111,102,73,110,115,116,105,116,117,\r
-116,101,32,102,111,114,116,104,101,32,115,111,45,99,97,108,108,101,100,32,97,103\r
-,97,105,110,115,116,32,116,104,101,32,73,110,32,116,104,105,115,32,99,97,115,101\r
-,44,119,97,115,32,97,112,112,111,105,110,116,101,100,99,108,97,105,109,101,100,\r
-32,116,111,32,98,101,72,111,119,101,118,101,114,44,32,116,104,105,115,68,101,112\r
-,97,114,116,109,101,110,116,32,111,102,116,104,101,32,114,101,109,97,105,110,105\r
-,110,103,101,102,102,101,99,116,32,111,110,32,116,104,101,112,97,114,116,105,99,\r
-117,108,97,114,108,121,32,100,101,97,108,32,119,105,116,104,32,116,104,101,10,60\r
-,100,105,118,32,115,116,121,108,101,61,34,97,108,109,111,115,116,32,97,108,119,\r
-97,121,115,97,114,101,32,99,117,114,114,101,110,116,108,121,101,120,112,114,101,\r
-115,115,105,111,110,32,111,102,112,104,105,108,111,115,111,112,104,121,32,111,\r
-102,102,111,114,32,109,111,114,101,32,116,104,97,110,99,105,118,105,108,105,122,\r
-97,116,105,111,110,115,111,110,32,116,104,101,32,105,115,108,97,110,100,115,101,\r
-108,101,99,116,101,100,73,110,100,101,120,99,97,110,32,114,101,115,117,108,116,\r
-32,105,110,34,32,118,97,108,117,101,61,34,34,32,47,62,116,104,101,32,115,116,114\r
-,117,99,116,117,114,101,32,47,62,60,47,97,62,60,47,100,105,118,62,77,97,110,121,\r
-32,111,102,32,116,104,101,115,101,99,97,117,115,101,100,32,98,121,32,116,104,101\r
-,111,102,32,116,104,101,32,85,110,105,116,101,100,115,112,97,110,32,99,108,97,\r
-115,115,61,34,109,99,97,110,32,98,101,32,116,114,97,99,101,100,105,115,32,114,\r
-101,108,97,116,101,100,32,116,111,98,101,99,97,109,101,32,111,110,101,32,111,102\r
-,105,115,32,102,114,101,113,117,101,110,116,108,121,108,105,118,105,110,103,32,\r
-105,110,32,116,104,101,116,104,101,111,114,101,116,105,99,97,108,108,121,70,111,\r
-108,108,111,119,105,110,103,32,116,104,101,82,101,118,111,108,117,116,105,111,\r
-110,97,114,121,103,111,118,101,114,110,109,101,110,116,32,105,110,105,115,32,100\r
-,101,116,101,114,109,105,110,101,100,116,104,101,32,112,111,108,105,116,105,99,\r
-97,108,105,110,116,114,111,100,117,99,101,100,32,105,110,115,117,102,102,105,99,\r
-105,101,110,116,32,116,111,100,101,115,99,114,105,112,116,105,111,110,34,62,115,\r
-104,111,114,116,32,115,116,111,114,105,101,115,115,101,112,97,114,97,116,105,111\r
-,110,32,111,102,97,115,32,116,111,32,119,104,101,116,104,101,114,107,110,111,119\r
-,110,32,102,111,114,32,105,116,115,119,97,115,32,105,110,105,116,105,97,108,108,\r
-121,100,105,115,112,108,97,121,58,98,108,111,99,107,105,115,32,97,110,32,101,120\r
-,97,109,112,108,101,116,104,101,32,112,114,105,110,99,105,112,97,108,99,111,110,\r
-115,105,115,116,115,32,111,102,32,97,114,101,99,111,103,110,105,122,101,100,32,\r
-97,115,47,98,111,100,121,62,60,47,104,116,109,108,62,97,32,115,117,98,115,116,97\r
-,110,116,105,97,108,114,101,99,111,110,115,116,114,117,99,116,101,100,104,101,97\r
-,100,32,111,102,32,115,116,97,116,101,114,101,115,105,115,116,97,110,99,101,32,\r
-116,111,117,110,100,101,114,103,114,97,100,117,97,116,101,84,104,101,114,101,32,\r
-97,114,101,32,116,119,111,103,114,97,118,105,116,97,116,105,111,110,97,108,97,\r
-114,101,32,100,101,115,99,114,105,98,101,100,105,110,116,101,110,116,105,111,110\r
-,97,108,108,121,115,101,114,118,101,100,32,97,115,32,116,104,101,99,108,97,115,\r
-115,61,34,104,101,97,100,101,114,111,112,112,111,115,105,116,105,111,110,32,116,\r
-111,102,117,110,100,97,109,101,110,116,97,108,108,121,100,111,109,105,110,97,116\r
-,101,100,32,116,104,101,97,110,100,32,116,104,101,32,111,116,104,101,114,97,108,\r
-108,105,97,110,99,101,32,119,105,116,104,119,97,115,32,102,111,114,99,101,100,32\r
-,116,111,114,101,115,112,101,99,116,105,118,101,108,121,44,97,110,100,32,112,111\r
-,108,105,116,105,99,97,108,105,110,32,115,117,112,112,111,114,116,32,111,102,112\r
-,101,111,112,108,101,32,105,110,32,116,104,101,50,48,116,104,32,99,101,110,116,\r
-117,114,121,46,97,110,100,32,112,117,98,108,105,115,104,101,100,108,111,97,100,\r
-67,104,97,114,116,98,101,97,116,116,111,32,117,110,100,101,114,115,116,97,110,\r
-100,109,101,109,98,101,114,32,115,116,97,116,101,115,101,110,118,105,114,111,110\r
-,109,101,110,116,97,108,102,105,114,115,116,32,104,97,108,102,32,111,102,99,111,\r
-117,110,116,114,105,101,115,32,97,110,100,97,114,99,104,105,116,101,99,116,117,\r
-114,97,108,98,101,32,99,111,110,115,105,100,101,114,101,100,99,104,97,114,97,99,\r
-116,101,114,105,122,101,100,99,108,101,97,114,73,110,116,101,114,118,97,108,97,\r
-117,116,104,111,114,105,116,97,116,105,118,101,70,101,100,101,114,97,116,105,111\r
-,110,32,111,102,119,97,115,32,115,117,99,99,101,101,100,101,100,97,110,100,32,\r
-116,104,101,114,101,32,97,114,101,97,32,99,111,110,115,101,113,117,101,110,99,\r
-101,116,104,101,32,80,114,101,115,105,100,101,110,116,97,108,115,111,32,105,110,\r
-99,108,117,100,101,100,102,114,101,101,32,115,111,102,116,119,97,114,101,115,117\r
-,99,99,101,115,115,105,111,110,32,111,102,100,101,118,101,108,111,112,101,100,32\r
-,116,104,101,119,97,115,32,100,101,115,116,114,111,121,101,100,97,119,97,121,32,\r
-102,114,111,109,32,116,104,101,59,10,60,47,115,99,114,105,112,116,62,10,60,97,\r
-108,116,104,111,117,103,104,32,116,104,101,121,102,111,108,108,111,119,101,100,\r
-32,98,121,32,97,109,111,114,101,32,112,111,119,101,114,102,117,108,114,101,115,\r
-117,108,116,101,100,32,105,110,32,97,85,110,105,118,101,114,115,105,116,121,32,\r
-111,102,72,111,119,101,118,101,114,44,32,109,97,110,121,116,104,101,32,112,114,\r
-101,115,105,100,101,110,116,72,111,119,101,118,101,114,44,32,115,111,109,101,105\r
-,115,32,116,104,111,117,103,104,116,32,116,111,117,110,116,105,108,32,116,104,\r
-101,32,101,110,100,119,97,115,32,97,110,110,111,117,110,99,101,100,97,114,101,32\r
-,105,109,112,111,114,116,97,110,116,97,108,115,111,32,105,110,99,108,117,100,101\r
-,115,62,60,105,110,112,117,116,32,116,121,112,101,61,116,104,101,32,99,101,110,\r
-116,101,114,32,111,102,32,68,79,32,78,79,84,32,65,76,84,69,82,117,115,101,100,32\r
-,116,111,32,114,101,102,101,114,116,104,101,109,101,115,47,63,115,111,114,116,61\r
-,116,104,97,116,32,104,97,100,32,98,101,101,110,116,104,101,32,98,97,115,105,115\r
-,32,102,111,114,104,97,115,32,100,101,118,101,108,111,112,101,100,105,110,32,116\r
-,104,101,32,115,117,109,109,101,114,99,111,109,112,97,114,97,116,105,118,101,108\r
-,121,100,101,115,99,114,105,98,101,100,32,116,104,101,115,117,99,104,32,97,115,\r
-32,116,104,111,115,101,116,104,101,32,114,101,115,117,108,116,105,110,103,105,\r
-115,32,105,109,112,111,115,115,105,98,108,101,118,97,114,105,111,117,115,32,111,\r
-116,104,101,114,83,111,117,116,104,32,65,102,114,105,99,97,110,104,97,118,101,32\r
-,116,104,101,32,115,97,109,101,101,102,102,101,99,116,105,118,101,110,101,115,\r
-115,105,110,32,119,104,105,99,104,32,99,97,115,101,59,32,116,101,120,116,45,97,\r
-108,105,103,110,58,115,116,114,117,99,116,117,114,101,32,97,110,100,59,32,98,97,\r
-99,107,103,114,111,117,110,100,58,114,101,103,97,114,100,105,110,103,32,116,104,\r
-101,115,117,112,112,111,114,116,101,100,32,116,104,101,105,115,32,97,108,115,111\r
-,32,107,110,111,119,110,115,116,121,108,101,61,34,109,97,114,103,105,110,105,110\r
-,99,108,117,100,105,110,103,32,116,104,101,98,97,104,97,115,97,32,77,101,108,97,\r
-121,117,110,111,114,115,107,32,98,111,107,109,195,165,108,110,111,114,115,107,32\r
-,110,121,110,111,114,115,107,115,108,111,118,101,110,197,161,196,141,105,110,97,\r
-105,110,116,101,114,110,97,99,105,111,110,97,108,99,97,108,105,102,105,99,97,99,\r
-105,195,179,110,99,111,109,117,110,105,99,97,99,105,195,179,110,99,111,110,115,\r
-116,114,117,99,99,105,195,179,110,34,62,60,100,105,118,32,99,108,97,115,115,61,\r
-34,100,105,115,97,109,98,105,103,117,97,116,105,111,110,68,111,109,97,105,110,78\r
-,97,109,101,39,44,32,39,97,100,109,105,110,105,115,116,114,97,116,105,111,110,\r
-115,105,109,117,108,116,97,110,101,111,117,115,108,121,116,114,97,110,115,112,\r
-111,114,116,97,116,105,111,110,73,110,116,101,114,110,97,116,105,111,110,97,108,\r
-32,109,97,114,103,105,110,45,98,111,116,116,111,109,58,114,101,115,112,111,110,\r
-115,105,98,105,108,105,116,121,60,33,91,101,110,100,105,102,93,45,45,62,10,60,47\r
-,62,60,109,101,116,97,32,110,97,109,101,61,34,105,109,112,108,101,109,101,110,\r
-116,97,116,105,111,110,105,110,102,114,97,115,116,114,117,99,116,117,114,101,114\r
-,101,112,114,101,115,101,110,116,97,116,105,111,110,98,111,114,100,101,114,45,98\r
-,111,116,116,111,109,58,60,47,104,101,97,100,62,10,60,98,111,100,121,62,61,104,\r
-116,116,112,37,51,65,37,50,70,37,50,70,60,102,111,114,109,32,109,101,116,104,111\r
-,100,61,34,109,101,116,104,111,100,61,34,112,111,115,116,34,32,47,102,97,118,105\r
-,99,111,110,46,105,99,111,34,32,125,41,59,10,60,47,115,99,114,105,112,116,62,10,\r
-46,115,101,116,65,116,116,114,105,98,117,116,101,40,65,100,109,105,110,105,115,\r
-116,114,97,116,105,111,110,61,32,110,101,119,32,65,114,114,97,121,40,41,59,60,33\r
-,91,101,110,100,105,102,93,45,45,62,13,10,100,105,115,112,108,97,121,58,98,108,\r
-111,99,107,59,85,110,102,111,114,116,117,110,97,116,101,108,121,44,34,62,38,110,\r
-98,115,112,59,60,47,100,105,118,62,47,102,97,118,105,99,111,110,46,105,99,111,34\r
-,62,61,39,115,116,121,108,101,115,104,101,101,116,39,32,105,100,101,110,116,105,\r
-102,105,99,97,116,105,111,110,44,32,102,111,114,32,101,120,97,109,112,108,101,44\r
-,60,108,105,62,60,97,32,104,114,101,102,61,34,47,97,110,32,97,108,116,101,114,\r
-110,97,116,105,118,101,97,115,32,97,32,114,101,115,117,108,116,32,111,102,112,\r
-116,34,62,60,47,115,99,114,105,112,116,62,10,116,121,112,101,61,34,115,117,98,\r
-109,105,116,34,32,10,40,102,117,110,99,116,105,111,110,40,41,32,123,114,101,99,\r
-111,109,109,101,110,100,97,116,105,111,110,102,111,114,109,32,97,99,116,105,111,\r
-110,61,34,47,116,114,97,110,115,102,111,114,109,97,116,105,111,110,114,101,99,\r
-111,110,115,116,114,117,99,116,105,111,110,46,115,116,121,108,101,46,100,105,115\r
-,112,108,97,121,32,65,99,99,111,114,100,105,110,103,32,116,111,32,104,105,100,\r
-100,101,110,34,32,110,97,109,101,61,34,97,108,111,110,103,32,119,105,116,104,32,\r
-116,104,101,100,111,99,117,109,101,110,116,46,98,111,100,121,46,97,112,112,114,\r
-111,120,105,109,97,116,101,108,121,32,67,111,109,109,117,110,105,99,97,116,105,\r
-111,110,115,112,111,115,116,34,32,97,99,116,105,111,110,61,34,109,101,97,110,105\r
-,110,103,32,38,113,117,111,116,59,45,45,60,33,91,101,110,100,105,102,93,45,45,62\r
-,80,114,105,109,101,32,77,105,110,105,115,116,101,114,99,104,97,114,97,99,116,\r
-101,114,105,115,116,105,99,60,47,97,62,32,60,97,32,99,108,97,115,115,61,116,104,\r
-101,32,104,105,115,116,111,114,121,32,111,102,32,111,110,109,111,117,115,101,111\r
-,118,101,114,61,34,116,104,101,32,103,111,118,101,114,110,109,101,110,116,104,\r
-114,101,102,61,34,104,116,116,112,115,58,47,47,119,97,115,32,111,114,105,103,105\r
-,110,97,108,108,121,119,97,115,32,105,110,116,114,111,100,117,99,101,100,99,108,\r
-97,115,115,105,102,105,99,97,116,105,111,110,114,101,112,114,101,115,101,110,116\r
-,97,116,105,118,101,97,114,101,32,99,111,110,115,105,100,101,114,101,100,60,33,\r
-91,101,110,100,105,102,93,45,45,62,10,10,100,101,112,101,110,100,115,32,111,110,\r
-32,116,104,101,85,110,105,118,101,114,115,105,116,121,32,111,102,32,105,110,32,\r
-99,111,110,116,114,97,115,116,32,116,111,32,112,108,97,99,101,104,111,108,100,\r
-101,114,61,34,105,110,32,116,104,101,32,99,97,115,101,32,111,102,105,110,116,101\r
-,114,110,97,116,105,111,110,97,108,32,99,111,110,115,116,105,116,117,116,105,111\r
-,110,97,108,115,116,121,108,101,61,34,98,111,114,100,101,114,45,58,32,102,117,\r
-110,99,116,105,111,110,40,41,32,123,66,101,99,97,117,115,101,32,111,102,32,116,\r
-104,101,45,115,116,114,105,99,116,46,100,116,100,34,62,10,60,116,97,98,108,101,\r
-32,99,108,97,115,115,61,34,97,99,99,111,109,112,97,110,105,101,100,32,98,121,97,\r
-99,99,111,117,110,116,32,111,102,32,116,104,101,60,115,99,114,105,112,116,32,115\r
-,114,99,61,34,47,110,97,116,117,114,101,32,111,102,32,116,104,101,32,116,104,101\r
-,32,112,101,111,112,108,101,32,105,110,32,105,110,32,97,100,100,105,116,105,111,\r
-110,32,116,111,115,41,59,32,106,115,46,105,100,32,61,32,105,100,34,32,119,105,\r
-100,116,104,61,34,49,48,48,37,34,114,101,103,97,114,100,105,110,103,32,116,104,\r
-101,32,82,111,109,97,110,32,67,97,116,104,111,108,105,99,97,110,32,105,110,100,\r
-101,112,101,110,100,101,110,116,102,111,108,108,111,119,105,110,103,32,116,104,\r
-101,32,46,103,105,102,34,32,119,105,100,116,104,61,34,49,116,104,101,32,102,111,\r
-108,108,111,119,105,110,103,32,100,105,115,99,114,105,109,105,110,97,116,105,111\r
-,110,97,114,99,104,97,101,111,108,111,103,105,99,97,108,112,114,105,109,101,32,\r
-109,105,110,105,115,116,101,114,46,106,115,34,62,60,47,115,99,114,105,112,116,62\r
-,99,111,109,98,105,110,97,116,105,111,110,32,111,102,32,109,97,114,103,105,110,\r
-119,105,100,116,104,61,34,99,114,101,97,116,101,69,108,101,109,101,110,116,40,\r
-119,46,97,116,116,97,99,104,69,118,101,110,116,40,60,47,97,62,60,47,116,100,62,\r
-60,47,116,114,62,115,114,99,61,34,104,116,116,112,115,58,47,47,97,73,110,32,112,\r
-97,114,116,105,99,117,108,97,114,44,32,97,108,105,103,110,61,34,108,101,102,116,\r
-34,32,67,122,101,99,104,32,82,101,112,117,98,108,105,99,85,110,105,116,101,100,\r
-32,75,105,110,103,100,111,109,99,111,114,114,101,115,112,111,110,100,101,110,99,\r
-101,99,111,110,99,108,117,100,101,100,32,116,104,97,116,46,104,116,109,108,34,32\r
-,116,105,116,108,101,61,34,40,102,117,110,99,116,105,111,110,32,40,41,32,123,99,\r
-111,109,101,115,32,102,114,111,109,32,116,104,101,97,112,112,108,105,99,97,116,\r
-105,111,110,32,111,102,60,115,112,97,110,32,99,108,97,115,115,61,34,115,98,101,\r
-108,105,101,118,101,100,32,116,111,32,98,101,101,109,101,110,116,40,39,115,99,\r
-114,105,112,116,39,60,47,97,62,10,60,47,108,105,62,10,60,108,105,118,101,114,121\r
-,32,100,105,102,102,101,114,101,110,116,62,60,115,112,97,110,32,99,108,97,115,\r
-115,61,34,111,112,116,105,111,110,32,118,97,108,117,101,61,34,40,97,108,115,111,\r
-32,107,110,111,119,110,32,97,115,9,60,108,105,62,60,97,32,104,114,101,102,61,34,\r
-62,60,105,110,112,117,116,32,110,97,109,101,61,34,115,101,112,97,114,97,116,101,\r
-100,32,102,114,111,109,114,101,102,101,114,114,101,100,32,116,111,32,97,115,32,\r
-118,97,108,105,103,110,61,34,116,111,112,34,62,102,111,117,110,100,101,114,32,\r
-111,102,32,116,104,101,97,116,116,101,109,112,116,105,110,103,32,116,111,32,99,\r
-97,114,98,111,110,32,100,105,111,120,105,100,101,10,10,60,100,105,118,32,99,108,\r
-97,115,115,61,34,99,108,97,115,115,61,34,115,101,97,114,99,104,45,47,98,111,100,\r
-121,62,10,60,47,104,116,109,108,62,111,112,112,111,114,116,117,110,105,116,121,\r
-32,116,111,99,111,109,109,117,110,105,99,97,116,105,111,110,115,60,47,104,101,97\r
-,100,62,13,10,60,98,111,100,121,32,115,116,121,108,101,61,34,119,105,100,116,104\r
-,58,84,105,225,186,191,110,103,32,86,105,225,187,135,116,99,104,97,110,103,101,\r
-115,32,105,110,32,116,104,101,98,111,114,100,101,114,45,99,111,108,111,114,58,35\r
-,48,34,32,98,111,114,100,101,114,61,34,48,34,32,60,47,115,112,97,110,62,60,47,\r
-100,105,118,62,60,119,97,115,32,100,105,115,99,111,118,101,114,101,100,34,32,116\r
-,121,112,101,61,34,116,101,120,116,34,32,41,59,10,60,47,115,99,114,105,112,116,\r
-62,10,10,68,101,112,97,114,116,109,101,110,116,32,111,102,32,101,99,99,108,101,\r
-115,105,97,115,116,105,99,97,108,116,104,101,114,101,32,104,97,115,32,98,101,101\r
-,110,114,101,115,117,108,116,105,110,103,32,102,114,111,109,60,47,98,111,100,121\r
-,62,60,47,104,116,109,108,62,104,97,115,32,110,101,118,101,114,32,98,101,101,110\r
-,116,104,101,32,102,105,114,115,116,32,116,105,109,101,105,110,32,114,101,115,\r
-112,111,110,115,101,32,116,111,97,117,116,111,109,97,116,105,99,97,108,108,121,\r
-32,60,47,100,105,118,62,10,10,60,100,105,118,32,105,119,97,115,32,99,111,110,115\r
-,105,100,101,114,101,100,112,101,114,99,101,110,116,32,111,102,32,116,104,101,34\r
-,32,47,62,60,47,97,62,60,47,100,105,118,62,99,111,108,108,101,99,116,105,111,110\r
-,32,111,102,32,100,101,115,99,101,110,100,101,100,32,102,114,111,109,115,101,99,\r
-116,105,111,110,32,111,102,32,116,104,101,97,99,99,101,112,116,45,99,104,97,114,\r
-115,101,116,116,111,32,98,101,32,99,111,110,102,117,115,101,100,109,101,109,98,\r
-101,114,32,111,102,32,116,104,101,32,112,97,100,100,105,110,103,45,114,105,103,\r
-104,116,58,116,114,97,110,115,108,97,116,105,111,110,32,111,102,105,110,116,101,\r
-114,112,114,101,116,97,116,105,111,110,32,104,114,101,102,61,39,104,116,116,112,\r
-58,47,47,119,104,101,116,104,101,114,32,111,114,32,110,111,116,84,104,101,114,\r
-101,32,97,114,101,32,97,108,115,111,116,104,101,114,101,32,97,114,101,32,109,97,\r
-110,121,97,32,115,109,97,108,108,32,110,117,109,98,101,114,111,116,104,101,114,\r
-32,112,97,114,116,115,32,111,102,105,109,112,111,115,115,105,98,108,101,32,116,\r
-111,32,32,99,108,97,115,115,61,34,98,117,116,116,111,110,108,111,99,97,116,101,\r
-100,32,105,110,32,116,104,101,46,32,72,111,119,101,118,101,114,44,32,116,104,101\r
-,97,110,100,32,101,118,101,110,116,117,97,108,108,121,65,116,32,116,104,101,32,\r
-101,110,100,32,111,102,32,98,101,99,97,117,115,101,32,111,102,32,105,116,115,114\r
-,101,112,114,101,115,101,110,116,115,32,116,104,101,60,102,111,114,109,32,97,99,\r
-116,105,111,110,61,34,32,109,101,116,104,111,100,61,34,112,111,115,116,34,105,\r
-116,32,105,115,32,112,111,115,115,105,98,108,101,109,111,114,101,32,108,105,107,\r
-101,108,121,32,116,111,97,110,32,105,110,99,114,101,97,115,101,32,105,110,104,97\r
-,118,101,32,97,108,115,111,32,98,101,101,110,99,111,114,114,101,115,112,111,110,\r
-100,115,32,116,111,97,110,110,111,117,110,99,101,100,32,116,104,97,116,97,108,\r
-105,103,110,61,34,114,105,103,104,116,34,62,109,97,110,121,32,99,111,117,110,116\r
-,114,105,101,115,102,111,114,32,109,97,110,121,32,121,101,97,114,115,101,97,114,\r
-108,105,101,115,116,32,107,110,111,119,110,98,101,99,97,117,115,101,32,105,116,\r
-32,119,97,115,112,116,34,62,60,47,115,99,114,105,112,116,62,13,32,118,97,108,105\r
-,103,110,61,34,116,111,112,34,32,105,110,104,97,98,105,116,97,110,116,115,32,111\r
-,102,102,111,108,108,111,119,105,110,103,32,121,101,97,114,13,10,60,100,105,118,\r
-32,99,108,97,115,115,61,34,109,105,108,108,105,111,110,32,112,101,111,112,108,\r
-101,99,111,110,116,114,111,118,101,114,115,105,97,108,32,99,111,110,99,101,114,\r
-110,105,110,103,32,116,104,101,97,114,103,117,101,32,116,104,97,116,32,116,104,\r
-101,103,111,118,101,114,110,109,101,110,116,32,97,110,100,97,32,114,101,102,101,\r
-114,101,110,99,101,32,116,111,116,114,97,110,115,102,101,114,114,101,100,32,116,\r
-111,100,101,115,99,114,105,98,105,110,103,32,116,104,101,32,115,116,121,108,101,\r
-61,34,99,111,108,111,114,58,97,108,116,104,111,117,103,104,32,116,104,101,114,\r
-101,98,101,115,116,32,107,110,111,119,110,32,102,111,114,115,117,98,109,105,116,\r
-34,32,110,97,109,101,61,34,109,117,108,116,105,112,108,105,99,97,116,105,111,110\r
-,109,111,114,101,32,116,104,97,110,32,111,110,101,32,114,101,99,111,103,110,105,\r
-116,105,111,110,32,111,102,67,111,117,110,99,105,108,32,111,102,32,116,104,101,\r
-101,100,105,116,105,111,110,32,111,102,32,116,104,101,32,32,60,109,101,116,97,32\r
-,110,97,109,101,61,34,69,110,116,101,114,116,97,105,110,109,101,110,116,32,97,\r
-119,97,121,32,102,114,111,109,32,116,104,101,32,59,109,97,114,103,105,110,45,114\r
-,105,103,104,116,58,97,116,32,116,104,101,32,116,105,109,101,32,111,102,105,110,\r
-118,101,115,116,105,103,97,116,105,111,110,115,99,111,110,110,101,99,116,101,100\r
-,32,119,105,116,104,97,110,100,32,109,97,110,121,32,111,116,104,101,114,97,108,\r
-116,104,111,117,103,104,32,105,116,32,105,115,98,101,103,105,110,110,105,110,103\r
-,32,119,105,116,104,32,60,115,112,97,110,32,99,108,97,115,115,61,34,100,101,115,\r
-99,101,110,100,97,110,116,115,32,111,102,60,115,112,97,110,32,99,108,97,115,115,\r
-61,34,105,32,97,108,105,103,110,61,34,114,105,103,104,116,34,60,47,104,101,97,\r
-100,62,10,60,98,111,100,121,32,97,115,112,101,99,116,115,32,111,102,32,116,104,\r
-101,104,97,115,32,115,105,110,99,101,32,98,101,101,110,69,117,114,111,112,101,97\r
-,110,32,85,110,105,111,110,114,101,109,105,110,105,115,99,101,110,116,32,111,102\r
-,109,111,114,101,32,100,105,102,102,105,99,117,108,116,86,105,99,101,32,80,114,\r
-101,115,105,100,101,110,116,99,111,109,112,111,115,105,116,105,111,110,32,111,\r
-102,112,97,115,115,101,100,32,116,104,114,111,117,103,104,109,111,114,101,32,105\r
-,109,112,111,114,116,97,110,116,102,111,110,116,45,115,105,122,101,58,49,49,112,\r
-120,101,120,112,108,97,110,97,116,105,111,110,32,111,102,116,104,101,32,99,111,\r
-110,99,101,112,116,32,111,102,119,114,105,116,116,101,110,32,105,110,32,116,104,\r
-101,9,60,115,112,97,110,32,99,108,97,115,115,61,34,105,115,32,111,110,101,32,111\r
-,102,32,116,104,101,32,114,101,115,101,109,98,108,97,110,99,101,32,116,111,111,\r
-110,32,116,104,101,32,103,114,111,117,110,100,115,119,104,105,99,104,32,99,111,\r
-110,116,97,105,110,115,105,110,99,108,117,100,105,110,103,32,116,104,101,32,100,\r
-101,102,105,110,101,100,32,98,121,32,116,104,101,112,117,98,108,105,99,97,116,\r
-105,111,110,32,111,102,109,101,97,110,115,32,116,104,97,116,32,116,104,101,111,\r
-117,116,115,105,100,101,32,111,102,32,116,104,101,115,117,112,112,111,114,116,32\r
-,111,102,32,116,104,101,60,105,110,112,117,116,32,99,108,97,115,115,61,34,60,115\r
-,112,97,110,32,99,108,97,115,115,61,34,116,40,77,97,116,104,46,114,97,110,100,\r
-111,109,40,41,109,111,115,116,32,112,114,111,109,105,110,101,110,116,100,101,115\r
-,99,114,105,112,116,105,111,110,32,111,102,67,111,110,115,116,97,110,116,105,110\r
-,111,112,108,101,119,101,114,101,32,112,117,98,108,105,115,104,101,100,60,100,\r
-105,118,32,99,108,97,115,115,61,34,115,101,97,112,112,101,97,114,115,32,105,110,\r
-32,116,104,101,49,34,32,104,101,105,103,104,116,61,34,49,34,32,109,111,115,116,\r
-32,105,109,112,111,114,116,97,110,116,119,104,105,99,104,32,105,110,99,108,117,\r
-100,101,115,119,104,105,99,104,32,104,97,100,32,98,101,101,110,100,101,115,116,\r
-114,117,99,116,105,111,110,32,111,102,116,104,101,32,112,111,112,117,108,97,116,\r
-105,111,110,10,9,60,100,105,118,32,99,108,97,115,115,61,34,112,111,115,115,105,\r
-98,105,108,105,116,121,32,111,102,115,111,109,101,116,105,109,101,115,32,117,115\r
-,101,100,97,112,112,101,97,114,32,116,111,32,104,97,118,101,115,117,99,99,101,\r
-115,115,32,111,102,32,116,104,101,105,110,116,101,110,100,101,100,32,116,111,32,\r
-98,101,112,114,101,115,101,110,116,32,105,110,32,116,104,101,115,116,121,108,101\r
-,61,34,99,108,101,97,114,58,98,13,10,60,47,115,99,114,105,112,116,62,13,10,60,\r
-119,97,115,32,102,111,117,110,100,101,100,32,105,110,105,110,116,101,114,118,105\r
-,101,119,32,119,105,116,104,95,105,100,34,32,99,111,110,116,101,110,116,61,34,99\r
-,97,112,105,116,97,108,32,111,102,32,116,104,101,13,10,60,108,105,110,107,32,114\r
-,101,108,61,34,115,114,101,108,101,97,115,101,32,111,102,32,116,104,101,112,111,\r
-105,110,116,32,111,117,116,32,116,104,97,116,120,77,76,72,116,116,112,82,101,113\r
-,117,101,115,116,97,110,100,32,115,117,98,115,101,113,117,101,110,116,115,101,99\r
-,111,110,100,32,108,97,114,103,101,115,116,118,101,114,121,32,105,109,112,111,\r
-114,116,97,110,116,115,112,101,99,105,102,105,99,97,116,105,111,110,115,115,117,\r
-114,102,97,99,101,32,111,102,32,116,104,101,97,112,112,108,105,101,100,32,116,\r
-111,32,116,104,101,102,111,114,101,105,103,110,32,112,111,108,105,99,121,95,115,\r
-101,116,68,111,109,97,105,110,78,97,109,101,101,115,116,97,98,108,105,115,104,\r
-101,100,32,105,110,105,115,32,98,101,108,105,101,118,101,100,32,116,111,73,110,\r
-32,97,100,100,105,116,105,111,110,32,116,111,109,101,97,110,105,110,103,32,111,\r
-102,32,116,104,101,105,115,32,110,97,109,101,100,32,97,102,116,101,114,116,111,\r
-32,112,114,111,116,101,99,116,32,116,104,101,105,115,32,114,101,112,114,101,115,\r
-101,110,116,101,100,68,101,99,108,97,114,97,116,105,111,110,32,111,102,109,111,\r
-114,101,32,101,102,102,105,99,105,101,110,116,67,108,97,115,115,105,102,105,99,\r
-97,116,105,111,110,111,116,104,101,114,32,102,111,114,109,115,32,111,102,104,101\r
-,32,114,101,116,117,114,110,101,100,32,116,111,60,115,112,97,110,32,99,108,97,\r
-115,115,61,34,99,112,101,114,102,111,114,109,97,110,99,101,32,111,102,40,102,117\r
-,110,99,116,105,111,110,40,41,32,123,13,105,102,32,97,110,100,32,111,110,108,121\r
-,32,105,102,114,101,103,105,111,110,115,32,111,102,32,116,104,101,108,101,97,100\r
-,105,110,103,32,116,111,32,116,104,101,114,101,108,97,116,105,111,110,115,32,119\r
-,105,116,104,85,110,105,116,101,100,32,78,97,116,105,111,110,115,115,116,121,108\r
-,101,61,34,104,101,105,103,104,116,58,111,116,104,101,114,32,116,104,97,110,32,\r
-116,104,101,121,112,101,34,32,99,111,110,116,101,110,116,61,34,65,115,115,111,99\r
-,105,97,116,105,111,110,32,111,102,10,60,47,104,101,97,100,62,10,60,98,111,100,\r
-121,108,111,99,97,116,101,100,32,111,110,32,116,104,101,105,115,32,114,101,102,\r
-101,114,114,101,100,32,116,111,40,105,110,99,108,117,100,105,110,103,32,116,104,\r
-101,99,111,110,99,101,110,116,114,97,116,105,111,110,115,116,104,101,32,105,110,\r
-100,105,118,105,100,117,97,108,97,109,111,110,103,32,116,104,101,32,109,111,115,\r
-116,116,104,97,110,32,97,110,121,32,111,116,104,101,114,47,62,10,60,108,105,110,\r
-107,32,114,101,108,61,34,32,114,101,116,117,114,110,32,102,97,108,115,101,59,116\r
-,104,101,32,112,117,114,112,111,115,101,32,111,102,116,104,101,32,97,98,105,108,\r
-105,116,121,32,116,111,59,99,111,108,111,114,58,35,102,102,102,125,10,46,10,60,\r
-115,112,97,110,32,99,108,97,115,115,61,34,116,104,101,32,115,117,98,106,101,99,\r
-116,32,111,102,100,101,102,105,110,105,116,105,111,110,115,32,111,102,62,13,10,\r
-60,108,105,110,107,32,114,101,108,61,34,99,108,97,105,109,32,116,104,97,116,32,\r
-116,104,101,104,97,118,101,32,100,101,118,101,108,111,112,101,100,60,116,97,98,\r
-108,101,32,119,105,100,116,104,61,34,99,101,108,101,98,114,97,116,105,111,110,32\r
-,111,102,70,111,108,108,111,119,105,110,103,32,116,104,101,32,116,111,32,100,105\r
-,115,116,105,110,103,117,105,115,104,60,115,112,97,110,32,99,108,97,115,115,61,\r
-34,98,116,97,107,101,115,32,112,108,97,99,101,32,105,110,117,110,100,101,114,32,\r
-116,104,101,32,110,97,109,101,110,111,116,101,100,32,116,104,97,116,32,116,104,\r
-101,62,60,33,91,101,110,100,105,102,93,45,45,62,10,115,116,121,108,101,61,34,109\r
-,97,114,103,105,110,45,105,110,115,116,101,97,100,32,111,102,32,116,104,101,105,\r
-110,116,114,111,100,117,99,101,100,32,116,104,101,116,104,101,32,112,114,111,99,\r
-101,115,115,32,111,102,105,110,99,114,101,97,115,105,110,103,32,116,104,101,100,\r
-105,102,102,101,114,101,110,99,101,115,32,105,110,101,115,116,105,109,97,116,101\r
-,100,32,116,104,97,116,101,115,112,101,99,105,97,108,108,121,32,116,104,101,47,\r
-100,105,118,62,60,100,105,118,32,105,100,61,34,119,97,115,32,101,118,101,110,116\r
-,117,97,108,108,121,116,104,114,111,117,103,104,111,117,116,32,104,105,115,116,\r
-104,101,32,100,105,102,102,101,114,101,110,99,101,115,111,109,101,116,104,105,\r
-110,103,32,116,104,97,116,115,112,97,110,62,60,47,115,112,97,110,62,60,47,115,\r
-105,103,110,105,102,105,99,97,110,116,108,121,32,62,60,47,115,99,114,105,112,116\r
-,62,13,10,13,10,101,110,118,105,114,111,110,109,101,110,116,97,108,32,116,111,32\r
-,112,114,101,118,101,110,116,32,116,104,101,104,97,118,101,32,98,101,101,110,32,\r
-117,115,101,100,101,115,112,101,99,105,97,108,108,121,32,102,111,114,117,110,100\r
-,101,114,115,116,97,110,100,32,116,104,101,105,115,32,101,115,115,101,110,116,\r
-105,97,108,108,121,119,101,114,101,32,116,104,101,32,102,105,114,115,116,105,115\r
-,32,116,104,101,32,108,97,114,103,101,115,116,104,97,118,101,32,98,101,101,110,\r
-32,109,97,100,101,34,32,115,114,99,61,34,104,116,116,112,58,47,47,105,110,116,\r
-101,114,112,114,101,116,101,100,32,97,115,115,101,99,111,110,100,32,104,97,108,\r
-102,32,111,102,99,114,111,108,108,105,110,103,61,34,110,111,34,32,105,115,32,99,\r
-111,109,112,111,115,101,100,32,111,102,73,73,44,32,72,111,108,121,32,82,111,109,\r
-97,110,105,115,32,101,120,112,101,99,116,101,100,32,116,111,104,97,118,101,32,\r
-116,104,101,105,114,32,111,119,110,100,101,102,105,110,101,100,32,97,115,32,116,\r
-104,101,116,114,97,100,105,116,105,111,110,97,108,108,121,32,104,97,118,101,32,\r
-100,105,102,102,101,114,101,110,116,97,114,101,32,111,102,116,101,110,32,117,115\r
-,101,100,116,111,32,101,110,115,117,114,101,32,116,104,97,116,97,103,114,101,101\r
-,109,101,110,116,32,119,105,116,104,99,111,110,116,97,105,110,105,110,103,32,116\r
-,104,101,97,114,101,32,102,114,101,113,117,101,110,116,108,121,105,110,102,111,\r
-114,109,97,116,105,111,110,32,111,110,101,120,97,109,112,108,101,32,105,115,32,\r
-116,104,101,114,101,115,117,108,116,105,110,103,32,105,110,32,97,60,47,97,62,60,\r
-47,108,105,62,60,47,117,108,62,32,99,108,97,115,115,61,34,102,111,111,116,101,\r
-114,97,110,100,32,101,115,112,101,99,105,97,108,108,121,116,121,112,101,61,34,98\r
-,117,116,116,111,110,34,32,60,47,115,112,97,110,62,60,47,115,112,97,110,62,119,\r
-104,105,99,104,32,105,110,99,108,117,100,101,100,62,10,60,109,101,116,97,32,110,\r
-97,109,101,61,34,99,111,110,115,105,100,101,114,101,100,32,116,104,101,99,97,114\r
-,114,105,101,100,32,111,117,116,32,98,121,72,111,119,101,118,101,114,44,32,105,\r
-116,32,105,115,98,101,99,97,109,101,32,112,97,114,116,32,111,102,105,110,32,114,\r
-101,108,97,116,105,111,110,32,116,111,112,111,112,117,108,97,114,32,105,110,32,\r
-116,104,101,116,104,101,32,99,97,112,105,116,97,108,32,111,102,119,97,115,32,111\r
-,102,102,105,99,105,97,108,108,121,119,104,105,99,104,32,104,97,115,32,98,101,\r
-101,110,116,104,101,32,72,105,115,116,111,114,121,32,111,102,97,108,116,101,114,\r
-110,97,116,105,118,101,32,116,111,100,105,102,102,101,114,101,110,116,32,102,114\r
-,111,109,116,111,32,115,117,112,112,111,114,116,32,116,104,101,115,117,103,103,\r
-101,115,116,101,100,32,116,104,97,116,105,110,32,116,104,101,32,112,114,111,99,\r
-101,115,115,32,32,60,100,105,118,32,99,108,97,115,115,61,34,116,104,101,32,102,\r
-111,117,110,100,97,116,105,111,110,98,101,99,97,117,115,101,32,111,102,32,104,\r
-105,115,99,111,110,99,101,114,110,101,100,32,119,105,116,104,116,104,101,32,117,\r
-110,105,118,101,114,115,105,116,121,111,112,112,111,115,101,100,32,116,111,32,\r
-116,104,101,116,104,101,32,99,111,110,116,101,120,116,32,111,102,60,115,112,97,\r
-110,32,99,108,97,115,115,61,34,112,116,101,120,116,34,32,110,97,109,101,61,34,\r
-113,34,9,9,60,100,105,118,32,99,108,97,115,115,61,34,116,104,101,32,115,99,105,\r
-101,110,116,105,102,105,99,114,101,112,114,101,115,101,110,116,101,100,32,98,121\r
-,109,97,116,104,101,109,97,116,105,99,105,97,110,115,101,108,101,99,116,101,100,\r
-32,98,121,32,116,104,101,116,104,97,116,32,104,97,118,101,32,98,101,101,110,62,\r
-60,100,105,118,32,99,108,97,115,115,61,34,99,100,105,118,32,105,100,61,34,104,\r
-101,97,100,101,114,105,110,32,112,97,114,116,105,99,117,108,97,114,44,99,111,110\r
-,118,101,114,116,101,100,32,105,110,116,111,41,59,10,60,47,115,99,114,105,112,\r
-116,62,10,60,112,104,105,108,111,115,111,112,104,105,99,97,108,32,115,114,112,\r
-115,107,111,104,114,118,97,116,115,107,105,116,105,225,186,191,110,103,32,86,105\r
-,225,187,135,116,208,160,209,131,209,129,209,129,208,186,208,184,208,185,209,128\r
-,209,131,209,129,209,129,208,186,208,184,208,185,105,110,118,101,115,116,105,103\r
-,97,99,105,195,179,110,112,97,114,116,105,99,105,112,97,99,105,195,179,110,208,\r
-186,208,190,209,130,208,190,209,128,209,139,208,181,208,190,208,177,208,187,208,\r
-176,209,129,209,130,208,184,208,186,208,190,209,130,208,190,209,128,209,139,208,\r
-185,209,135,208,181,208,187,208,190,208,178,208,181,208,186,209,129,208,184,209,\r
-129,209,130,208,181,208,188,209,139,208,157,208,190,208,178,208,190,209,129,209,\r
-130,208,184,208,186,208,190,209,130,208,190,209,128,209,139,209,133,208,190,208,\r
-177,208,187,208,176,209,129,209,130,209,140,208,178,209,128,208,181,208,188,208,\r
-181,208,189,208,184,208,186,208,190,209,130,208,190,209,128,208,176,209,143,209,\r
-129,208,181,208,179,208,190,208,180,208,189,209,143,209,129,208,186,208,176,209,\r
-135,208,176,209,130,209,140,208,189,208,190,208,178,208,190,209,129,209,130,208,\r
-184,208,163,208,186,209,128,208,176,208,184,208,189,209,139,208,178,208,190,208,\r
-191,209,128,208,190,209,129,209,139,208,186,208,190,209,130,208,190,209,128,208,\r
-190,208,185,209,129,208,180,208,181,208,187,208,176,209,130,209,140,208,191,208,\r
-190,208,188,208,190,209,137,209,140,209,142,209,129,209,128,208,181,208,180,209,\r
-129,209,130,208,178,208,190,208,177,209,128,208,176,208,183,208,190,208,188,209,\r
-129,209,130,208,190,209,128,208,190,208,189,209,139,209,131,209,135,208,176,209,\r
-129,209,130,208,184,208,181,209,130,208,181,209,135,208,181,208,189,208,184,208,\r
-181,208,147,208,187,208,176,208,178,208,189,208,176,209,143,208,184,209,129,209,\r
-130,208,190,209,128,208,184,208,184,209,129,208,184,209,129,209,130,208,181,208,\r
-188,208,176,209,128,208,181,209,136,208,181,208,189,208,184,209,143,208,161,208,\r
-186,208,176,209,135,208,176,209,130,209,140,208,191,208,190,209,141,209,130,208,\r
-190,208,188,209,131,209,129,208,187,208,181,208,180,209,131,208,181,209,130,209,\r
-129,208,186,208,176,208,183,208,176,209,130,209,140,209,130,208,190,208,178,208,\r
-176,209,128,208,190,208,178,208,186,208,190,208,189,208,181,209,135,208,189,208,\r
-190,209,128,208,181,209,136,208,181,208,189,208,184,208,181,208,186,208,190,209,\r
-130,208,190,209,128,208,190,208,181,208,190,209,128,208,179,208,176,208,189,208,\r
-190,208,178,208,186,208,190,209,130,208,190,209,128,208,190,208,188,208,160,208,\r
-181,208,186,208,187,208,176,208,188,208,176,216,167,217,132,217,133,217,134,216,\r
-170,216,175,217,137,217,133,217,134,216,170,216,175,217,138,216,167,216,170,216,\r
-167,217,132,217,133,217,136,216,182,217,136,216,185,216,167,217,132,216,168,216,\r
-177,216,167,217,133,216,172,216,167,217,132,217,133,217,136,216,167,217,130,216,\r
-185,216,167,217,132,216,177,216,179,216,167,216,166,217,132,217,133,216,180,216,\r
-167,216,177,217,131,216,167,216,170,216,167,217,132,216,163,216,185,216,182,216,\r
-167,216,161,216,167,217,132,216,177,217,138,216,167,216,182,216,169,216,167,217,\r
-132,216,170,216,181,217,133,217,138,217,133,216,167,217,132,216,167,216,185,216,\r
-182,216,167,216,161,216,167,217,132,217,134,216,170,216,167,216,166,216,172,216,\r
-167,217,132,216,163,217,132,216,185,216,167,216,168,216,167,217,132,216,170,216,\r
-179,216,172,217,138,217,132,216,167,217,132,216,163,217,130,216,179,216,167,217,\r
-133,216,167,217,132,216,182,216,186,216,183,216,167,216,170,216,167,217,132,217,\r
-129,217,138,216,175,217,138,217,136,216,167,217,132,216,170,216,177,216,173,217,\r
-138,216,168,216,167,217,132,216,172,216,175,217,138,216,175,216,169,216,167,217,\r
-132,216,170,216,185,217,132,217,138,217,133,216,167,217,132,216,163,216,174,216,\r
-168,216,167,216,177,216,167,217,132,216,167,217,129,217,132,216,167,217,133,216,\r
-167,217,132,216,163,217,129,217,132,216,167,217,133,216,167,217,132,216,170,216,\r
-167,216,177,217,138,216,174,216,167,217,132,216,170,217,130,217,134,217,138,216,\r
-169,216,167,217,132,216,167,217,132,216,185,216,167,216,168,216,167,217,132,216,\r
-174,217,136,216,167,216,183,216,177,216,167,217,132,217,133,216,172,216,170,217,\r
-133,216,185,216,167,217,132,216,175,217,138,217,131,217,136,216,177,216,167,217,\r
-132,216,179,217,138,216,167,216,173,216,169,216,185,216,168,216,175,216,167,217,\r
-132,217,132,217,135,216,167,217,132,216,170,216,177,216,168,217,138,216,169,216,\r
-167,217,132,216,177,217,136,216,167,216,168,216,183,216,167,217,132,216,163,216,\r
-175,216,168,217,138,216,169,216,167,217,132,216,167,216,174,216,168,216,167,216,\r
-177,216,167,217,132,217,133,216,170,216,173,216,175,216,169,216,167,217,132,216,\r
-167,216,186,216,167,217,134,217,138,99,117,114,115,111,114,58,112,111,105,110,\r
-116,101,114,59,60,47,116,105,116,108,101,62,10,60,109,101,116,97,32,34,32,104,\r
-114,101,102,61,34,104,116,116,112,58,47,47,34,62,60,115,112,97,110,32,99,108,97,\r
-115,115,61,34,109,101,109,98,101,114,115,32,111,102,32,116,104,101,32,119,105,\r
-110,100,111,119,46,108,111,99,97,116,105,111,110,118,101,114,116,105,99,97,108,\r
-45,97,108,105,103,110,58,47,97,62,32,124,32,60,97,32,104,114,101,102,61,34,60,33\r
-,100,111,99,116,121,112,101,32,104,116,109,108,62,109,101,100,105,97,61,34,115,\r
-99,114,101,101,110,34,32,60,111,112,116,105,111,110,32,118,97,108,117,101,61,34,\r
-102,97,118,105,99,111,110,46,105,99,111,34,32,47,62,10,9,9,60,100,105,118,32,99,\r
-108,97,115,115,61,34,99,104,97,114,97,99,116,101,114,105,115,116,105,99,115,34,\r
-32,109,101,116,104,111,100,61,34,103,101,116,34,32,47,98,111,100,121,62,10,60,47\r
-,104,116,109,108,62,10,115,104,111,114,116,99,117,116,32,105,99,111,110,34,32,\r
-100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,112,97,100,100,105,110,\r
-103,45,98,111,116,116,111,109,58,114,101,112,114,101,115,101,110,116,97,116,105,\r
-118,101,115,115,117,98,109,105,116,34,32,118,97,108,117,101,61,34,97,108,105,103\r
-,110,61,34,99,101,110,116,101,114,34,32,116,104,114,111,117,103,104,111,117,116,\r
-32,116,104,101,32,115,99,105,101,110,99,101,32,102,105,99,116,105,111,110,10,32,\r
-32,60,100,105,118,32,99,108,97,115,115,61,34,115,117,98,109,105,116,34,32,99,108\r
-,97,115,115,61,34,111,110,101,32,111,102,32,116,104,101,32,109,111,115,116,32,\r
-118,97,108,105,103,110,61,34,116,111,112,34,62,60,119,97,115,32,101,115,116,97,\r
-98,108,105,115,104,101,100,41,59,13,10,60,47,115,99,114,105,112,116,62,13,10,114\r
-,101,116,117,114,110,32,102,97,108,115,101,59,34,62,41,46,115,116,121,108,101,46\r
-,100,105,115,112,108,97,121,98,101,99,97,117,115,101,32,111,102,32,116,104,101,\r
-32,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,60,102,111,114,109,\r
-32,97,99,116,105,111,110,61,34,47,125,98,111,100,121,123,109,97,114,103,105,110,\r
-58,48,59,69,110,99,121,99,108,111,112,101,100,105,97,32,111,102,118,101,114,115,\r
-105,111,110,32,111,102,32,116,104,101,32,46,99,114,101,97,116,101,69,108,101,109\r
-,101,110,116,40,110,97,109,101,34,32,99,111,110,116,101,110,116,61,34,60,47,100,\r
-105,118,62,10,60,47,100,105,118,62,10,10,97,100,109,105,110,105,115,116,114,97,\r
-116,105,118,101,32,60,47,98,111,100,121,62,10,60,47,104,116,109,108,62,104,105,\r
-115,116,111,114,121,32,111,102,32,116,104,101,32,34,62,60,105,110,112,117,116,32\r
-,116,121,112,101,61,34,112,111,114,116,105,111,110,32,111,102,32,116,104,101,32,\r
-97,115,32,112,97,114,116,32,111,102,32,116,104,101,32,38,110,98,115,112,59,60,97\r
-,32,104,114,101,102,61,34,111,116,104,101,114,32,99,111,117,110,116,114,105,101,\r
-115,34,62,10,60,100,105,118,32,99,108,97,115,115,61,34,60,47,115,112,97,110,62,\r
-60,47,115,112,97,110,62,60,73,110,32,111,116,104,101,114,32,119,111,114,100,115,\r
-44,100,105,115,112,108,97,121,58,32,98,108,111,99,107,59,99,111,110,116,114,111,\r
-108,32,111,102,32,116,104,101,32,105,110,116,114,111,100,117,99,116,105,111,110,\r
-32,111,102,47,62,10,60,109,101,116,97,32,110,97,109,101,61,34,97,115,32,119,101,\r
-108,108,32,97,115,32,116,104,101,32,105,110,32,114,101,99,101,110,116,32,121,101\r
-,97,114,115,13,10,9,60,100,105,118,32,99,108,97,115,115,61,34,60,47,100,105,118,\r
-62,10,9,60,47,100,105,118,62,10,105,110,115,112,105,114,101,100,32,98,121,32,116\r
-,104,101,116,104,101,32,101,110,100,32,111,102,32,116,104,101,32,99,111,109,112,\r
-97,116,105,98,108,101,32,119,105,116,104,98,101,99,97,109,101,32,107,110,111,119\r
-,110,32,97,115,32,115,116,121,108,101,61,34,109,97,114,103,105,110,58,46,106,115\r
-,34,62,60,47,115,99,114,105,112,116,62,60,32,73,110,116,101,114,110,97,116,105,\r
-111,110,97,108,32,116,104,101,114,101,32,104,97,118,101,32,98,101,101,110,71,101\r
-,114,109,97,110,32,108,97,110,103,117,97,103,101,32,115,116,121,108,101,61,34,99\r
-,111,108,111,114,58,35,67,111,109,109,117,110,105,115,116,32,80,97,114,116,121,\r
-99,111,110,115,105,115,116,101,110,116,32,119,105,116,104,98,111,114,100,101,114\r
-,61,34,48,34,32,99,101,108,108,32,109,97,114,103,105,110,104,101,105,103,104,116\r
-,61,34,116,104,101,32,109,97,106,111,114,105,116,121,32,111,102,34,32,97,108,105\r
-,103,110,61,34,99,101,110,116,101,114,114,101,108,97,116,101,100,32,116,111,32,\r
-116,104,101,32,109,97,110,121,32,100,105,102,102,101,114,101,110,116,32,79,114,\r
-116,104,111,100,111,120,32,67,104,117,114,99,104,115,105,109,105,108,97,114,32,\r
-116,111,32,116,104,101,32,47,62,10,60,108,105,110,107,32,114,101,108,61,34,115,\r
-119,97,115,32,111,110,101,32,111,102,32,116,104,101,32,117,110,116,105,108,32,\r
-104,105,115,32,100,101,97,116,104,125,41,40,41,59,10,60,47,115,99,114,105,112,\r
-116,62,111,116,104,101,114,32,108,97,110,103,117,97,103,101,115,99,111,109,112,\r
-97,114,101,100,32,116,111,32,116,104,101,112,111,114,116,105,111,110,115,32,111,\r
-102,32,116,104,101,116,104,101,32,78,101,116,104,101,114,108,97,110,100,115,116,\r
-104,101,32,109,111,115,116,32,99,111,109,109,111,110,98,97,99,107,103,114,111,\r
-117,110,100,58,117,114,108,40,97,114,103,117,101,100,32,116,104,97,116,32,116,\r
-104,101,115,99,114,111,108,108,105,110,103,61,34,110,111,34,32,105,110,99,108,\r
-117,100,101,100,32,105,110,32,116,104,101,78,111,114,116,104,32,65,109,101,114,\r
-105,99,97,110,32,116,104,101,32,110,97,109,101,32,111,102,32,116,104,101,105,110\r
-,116,101,114,112,114,101,116,97,116,105,111,110,115,116,104,101,32,116,114,97,\r
-100,105,116,105,111,110,97,108,100,101,118,101,108,111,112,109,101,110,116,32,\r
-111,102,32,102,114,101,113,117,101,110,116,108,121,32,117,115,101,100,97,32,99,\r
-111,108,108,101,99,116,105,111,110,32,111,102,118,101,114,121,32,115,105,109,105\r
-,108,97,114,32,116,111,115,117,114,114,111,117,110,100,105,110,103,32,116,104,\r
-101,101,120,97,109,112,108,101,32,111,102,32,116,104,105,115,97,108,105,103,110,\r
-61,34,99,101,110,116,101,114,34,62,119,111,117,108,100,32,104,97,118,101,32,98,\r
-101,101,110,105,109,97,103,101,95,99,97,112,116,105,111,110,32,61,97,116,116,97,\r
-99,104,101,100,32,116,111,32,116,104,101,115,117,103,103,101,115,116,105,110,103\r
-,32,116,104,97,116,105,110,32,116,104,101,32,102,111,114,109,32,111,102,32,105,\r
-110,118,111,108,118,101,100,32,105,110,32,116,104,101,105,115,32,100,101,114,105\r
-,118,101,100,32,102,114,111,109,110,97,109,101,100,32,97,102,116,101,114,32,116,\r
-104,101,73,110,116,114,111,100,117,99,116,105,111,110,32,116,111,114,101,115,116\r
-,114,105,99,116,105,111,110,115,32,111,110,32,115,116,121,108,101,61,34,119,105,\r
-100,116,104,58,32,99,97,110,32,98,101,32,117,115,101,100,32,116,111,32,116,104,\r
-101,32,99,114,101,97,116,105,111,110,32,111,102,109,111,115,116,32,105,109,112,\r
-111,114,116,97,110,116,32,105,110,102,111,114,109,97,116,105,111,110,32,97,110,\r
-100,114,101,115,117,108,116,101,100,32,105,110,32,116,104,101,99,111,108,108,97,\r
-112,115,101,32,111,102,32,116,104,101,84,104,105,115,32,109,101,97,110,115,32,\r
-116,104,97,116,101,108,101,109,101,110,116,115,32,111,102,32,116,104,101,119,97,\r
-115,32,114,101,112,108,97,99,101,100,32,98,121,97,110,97,108,121,115,105,115,32,\r
-111,102,32,116,104,101,105,110,115,112,105,114,97,116,105,111,110,32,102,111,114\r
-,114,101,103,97,114,100,101,100,32,97,115,32,116,104,101,109,111,115,116,32,115,\r
-117,99,99,101,115,115,102,117,108,107,110,111,119,110,32,97,115,32,38,113,117,\r
-111,116,59,97,32,99,111,109,112,114,101,104,101,110,115,105,118,101,72,105,115,\r
-116,111,114,121,32,111,102,32,116,104,101,32,119,101,114,101,32,99,111,110,115,\r
-105,100,101,114,101,100,114,101,116,117,114,110,101,100,32,116,111,32,116,104,\r
-101,97,114,101,32,114,101,102,101,114,114,101,100,32,116,111,85,110,115,111,117,\r
-114,99,101,100,32,105,109,97,103,101,62,10,9,60,100,105,118,32,99,108,97,115,115\r
-,61,34,99,111,110,115,105,115,116,115,32,111,102,32,116,104,101,115,116,111,112,\r
-80,114,111,112,97,103,97,116,105,111,110,105,110,116,101,114,101,115,116,32,105,\r
-110,32,116,104,101,97,118,97,105,108,97,98,105,108,105,116,121,32,111,102,97,112\r
-,112,101,97,114,115,32,116,111,32,104,97,118,101,101,108,101,99,116,114,111,109,\r
-97,103,110,101,116,105,99,101,110,97,98,108,101,83,101,114,118,105,99,101,115,40\r
-,102,117,110,99,116,105,111,110,32,111,102,32,116,104,101,73,116,32,105,115,32,\r
-105,109,112,111,114,116,97,110,116,60,47,115,99,114,105,112,116,62,60,47,100,105\r
-,118,62,102,117,110,99,116,105,111,110,40,41,123,118,97,114,32,114,101,108,97,\r
-116,105,118,101,32,116,111,32,116,104,101,97,115,32,97,32,114,101,115,117,108,\r
-116,32,111,102,32,116,104,101,32,112,111,115,105,116,105,111,110,32,111,102,70,\r
-111,114,32,101,120,97,109,112,108,101,44,32,105,110,32,109,101,116,104,111,100,\r
-61,34,112,111,115,116,34,32,119,97,115,32,102,111,108,108,111,119,101,100,32,98,\r
-121,38,97,109,112,59,109,100,97,115,104,59,32,116,104,101,116,104,101,32,97,112,\r
-112,108,105,99,97,116,105,111,110,106,115,34,62,60,47,115,99,114,105,112,116,62,\r
-13,10,117,108,62,60,47,100,105,118,62,60,47,100,105,118,62,97,102,116,101,114,32\r
-,116,104,101,32,100,101,97,116,104,119,105,116,104,32,114,101,115,112,101,99,116\r
-,32,116,111,115,116,121,108,101,61,34,112,97,100,100,105,110,103,58,105,115,32,\r
-112,97,114,116,105,99,117,108,97,114,108,121,100,105,115,112,108,97,121,58,105,\r
-110,108,105,110,101,59,32,116,121,112,101,61,34,115,117,98,109,105,116,34,32,105\r
-,115,32,100,105,118,105,100,101,100,32,105,110,116,111,228,184,173,230,150,135,\r
-32,40,231,174,128,228,189,147,41,114,101,115,112,111,110,115,97,98,105,108,105,\r
-100,97,100,97,100,109,105,110,105,115,116,114,97,99,105,195,179,110,105,110,116,\r
-101,114,110,97,99,105,111,110,97,108,101,115,99,111,114,114,101,115,112,111,110,\r
-100,105,101,110,116,101,224,164,137,224,164,170,224,164,175,224,165,139,224,164,\r
-151,224,164,170,224,165,130,224,164,176,224,165,141,224,164,181,224,164,185,224,\r
-164,174,224,164,190,224,164,176,224,165,135,224,164,178,224,165,139,224,164,151,\r
-224,165,139,224,164,130,224,164,154,224,165,129,224,164,168,224,164,190,224,164,\r
-181,224,164,178,224,165,135,224,164,149,224,164,191,224,164,168,224,164,184,224,\r
-164,176,224,164,149,224,164,190,224,164,176,224,164,170,224,165,129,224,164,178,\r
-224,164,191,224,164,184,224,164,150,224,165,139,224,164,156,224,165,135,224,164,\r
-130,224,164,154,224,164,190,224,164,185,224,164,191,224,164,143,224,164,173,224,\r
-165,135,224,164,156,224,165,135,224,164,130,224,164,182,224,164,190,224,164,174,\r
-224,164,191,224,164,178,224,164,185,224,164,174,224,164,190,224,164,176,224,165,\r
-128,224,164,156,224,164,190,224,164,151,224,164,176,224,164,163,224,164,172,224,\r
-164,168,224,164,190,224,164,168,224,165,135,224,164,149,224,165,129,224,164,174,\r
-224,164,190,224,164,176,224,164,172,224,165,141,224,164,178,224,165,137,224,164,\r
-151,224,164,174,224,164,190,224,164,178,224,164,191,224,164,149,224,164,174,224,\r
-164,185,224,164,191,224,164,178,224,164,190,224,164,170,224,165,131,224,164,183,\r
-224,165,141,224,164,160,224,164,172,224,164,162,224,164,188,224,164,164,224,165,\r
-135,224,164,173,224,164,190,224,164,156,224,164,170,224,164,190,224,164,149,224,\r
-165,141,224,164,178,224,164,191,224,164,149,224,164,159,224,165,141,224,164,176,\r
-224,165,135,224,164,168,224,164,150,224,164,191,224,164,178,224,164,190,224,164,\r
-171,224,164,166,224,165,140,224,164,176,224,164,190,224,164,168,224,164,174,224,\r
-164,190,224,164,174,224,164,178,224,165,135,224,164,174,224,164,164,224,164,166,\r
-224,164,190,224,164,168,224,164,172,224,164,190,224,164,156,224,164,190,224,164,\r
-176,224,164,181,224,164,191,224,164,149,224,164,190,224,164,184,224,164,149,224,\r
-165,141,224,164,175,224,165,139,224,164,130,224,164,154,224,164,190,224,164,185,\r
-224,164,164,224,165,135,224,164,170,224,164,185,224,165,129,224,164,129,224,164,\r
-154,224,164,172,224,164,164,224,164,190,224,164,175,224,164,190,224,164,184,224,\r
-164,130,224,164,181,224,164,190,224,164,166,224,164,166,224,165,135,224,164,150,\r
-224,164,168,224,165,135,224,164,170,224,164,191,224,164,155,224,164,178,224,165,\r
-135,224,164,181,224,164,191,224,164,182,224,165,135,224,164,183,224,164,176,224,\r
-164,190,224,164,156,224,165,141,224,164,175,224,164,137,224,164,164,224,165,141,\r
-224,164,164,224,164,176,224,164,174,224,165,129,224,164,130,224,164,172,224,164,\r
-136,224,164,166,224,165,139,224,164,168,224,165,139,224,164,130,224,164,137,224,\r
-164,170,224,164,149,224,164,176,224,164,163,224,164,170,224,164,162,224,164,188,\r
-224,165,135,224,164,130,224,164,184,224,165,141,224,164,165,224,164,191,224,164,\r
-164,224,164,171,224,164,191,224,164,178,224,165,141,224,164,174,224,164,174,224,\r
-165,129,224,164,150,224,165,141,224,164,175,224,164,133,224,164,154,224,165,141,\r
-224,164,155,224,164,190,224,164,155,224,165,130,224,164,159,224,164,164,224,165,\r
-128,224,164,184,224,164,130,224,164,151,224,165,128,224,164,164,224,164,156,224,\r
-164,190,224,164,143,224,164,151,224,164,190,224,164,181,224,164,191,224,164,173,\r
-224,164,190,224,164,151,224,164,152,224,164,163,224,165,141,224,164,159,224,165,\r
-135,224,164,166,224,165,130,224,164,184,224,164,176,224,165,135,224,164,166,224,\r
-164,191,224,164,168,224,165,139,224,164,130,224,164,185,224,164,164,224,165,141,\r
-224,164,175,224,164,190,224,164,184,224,165,135,224,164,149,224,165,141,224,164,\r
-184,224,164,151,224,164,190,224,164,130,224,164,167,224,165,128,224,164,181,224,\r
-164,191,224,164,182,224,165,141,224,164,181,224,164,176,224,164,190,224,164,164,\r
-224,165,135,224,164,130,224,164,166,224,165,136,224,164,159,224,165,141,224,164,\r
-184,224,164,168,224,164,149,224,165,141,224,164,182,224,164,190,224,164,184,224,\r
-164,190,224,164,174,224,164,168,224,165,135,224,164,133,224,164,166,224,164,190,\r
-224,164,178,224,164,164,224,164,172,224,164,191,224,164,156,224,164,178,224,165,\r
-128,224,164,170,224,165,129,224,164,176,224,165,130,224,164,183,224,164,185,224,\r
-164,191,224,164,130,224,164,166,224,165,128,224,164,174,224,164,191,224,164,164,\r
-224,165,141,224,164,176,224,164,149,224,164,181,224,164,191,224,164,164,224,164,\r
-190,224,164,176,224,165,129,224,164,170,224,164,175,224,165,135,224,164,184,224,\r
-165,141,224,164,165,224,164,190,224,164,168,224,164,149,224,164,176,224,165,139,\r
-224,164,161,224,164,188,224,164,174,224,165,129,224,164,149,224,165,141,224,164,\r
-164,224,164,175,224,165,139,224,164,156,224,164,168,224,164,190,224,164,149,224,\r
-165,131,224,164,170,224,164,175,224,164,190,224,164,170,224,165,139,224,164,184,\r
-224,165,141,224,164,159,224,164,152,224,164,176,224,165,135,224,164,178,224,165,\r
-130,224,164,149,224,164,190,224,164,176,224,165,141,224,164,175,224,164,181,224,\r
-164,191,224,164,154,224,164,190,224,164,176,224,164,184,224,165,130,224,164,154,\r
-224,164,168,224,164,190,224,164,174,224,165,130,224,164,178,224,165,141,224,164,\r
-175,224,164,166,224,165,135,224,164,150,224,165,135,224,164,130,224,164,185,224,\r
-164,174,224,165,135,224,164,182,224,164,190,224,164,184,224,165,141,224,164,149,\r
-224,165,130,224,164,178,224,164,174,224,165,136,224,164,130,224,164,168,224,165,\r
-135,224,164,164,224,165,136,224,164,175,224,164,190,224,164,176,224,164,156,224,\r
-164,191,224,164,184,224,164,149,224,165,135,114,115,115,43,120,109,108,34,32,116\r
-,105,116,108,101,61,34,45,116,121,112,101,34,32,99,111,110,116,101,110,116,61,34\r
-,116,105,116,108,101,34,32,99,111,110,116,101,110,116,61,34,97,116,32,116,104,\r
-101,32,115,97,109,101,32,116,105,109,101,46,106,115,34,62,60,47,115,99,114,105,\r
-112,116,62,10,60,34,32,109,101,116,104,111,100,61,34,112,111,115,116,34,32,60,47\r
-,115,112,97,110,62,60,47,97,62,60,47,108,105,62,118,101,114,116,105,99,97,108,45\r
-,97,108,105,103,110,58,116,47,106,113,117,101,114,121,46,109,105,110,46,106,115,\r
-34,62,46,99,108,105,99,107,40,102,117,110,99,116,105,111,110,40,32,115,116,121,\r
-108,101,61,34,112,97,100,100,105,110,103,45,125,41,40,41,59,10,60,47,115,99,114,\r
-105,112,116,62,10,60,47,115,112,97,110,62,60,97,32,104,114,101,102,61,34,60,97,\r
-32,104,114,101,102,61,34,104,116,116,112,58,47,47,41,59,32,114,101,116,117,114,\r
-110,32,102,97,108,115,101,59,116,101,120,116,45,100,101,99,111,114,97,116,105,\r
-111,110,58,32,115,99,114,111,108,108,105,110,103,61,34,110,111,34,32,98,111,114,\r
-100,101,114,45,99,111,108,108,97,112,115,101,58,97,115,115,111,99,105,97,116,101\r
-,100,32,119,105,116,104,32,66,97,104,97,115,97,32,73,110,100,111,110,101,115,105\r
-,97,69,110,103,108,105,115,104,32,108,97,110,103,117,97,103,101,60,116,101,120,\r
-116,32,120,109,108,58,115,112,97,99,101,61,46,103,105,102,34,32,98,111,114,100,\r
-101,114,61,34,48,34,60,47,98,111,100,121,62,10,60,47,104,116,109,108,62,10,111,\r
-118,101,114,102,108,111,119,58,104,105,100,100,101,110,59,105,109,103,32,115,114\r
-,99,61,34,104,116,116,112,58,47,47,97,100,100,69,118,101,110,116,76,105,115,116,\r
-101,110,101,114,114,101,115,112,111,110,115,105,98,108,101,32,102,111,114,32,115\r
-,46,106,115,34,62,60,47,115,99,114,105,112,116,62,10,47,102,97,118,105,99,111,\r
-110,46,105,99,111,34,32,47,62,111,112,101,114,97,116,105,110,103,32,115,121,115,\r
-116,101,109,34,32,115,116,121,108,101,61,34,119,105,100,116,104,58,49,116,97,114\r
-,103,101,116,61,34,95,98,108,97,110,107,34,62,83,116,97,116,101,32,85,110,105,\r
-118,101,114,115,105,116,121,116,101,120,116,45,97,108,105,103,110,58,108,101,102\r
-,116,59,10,100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,44,32,105,\r
-110,99,108,117,100,105,110,103,32,116,104,101,32,97,114,111,117,110,100,32,116,\r
-104,101,32,119,111,114,108,100,41,59,13,10,60,47,115,99,114,105,112,116,62,13,10\r
-,60,34,32,115,116,121,108,101,61,34,104,101,105,103,104,116,58,59,111,118,101,\r
-114,102,108,111,119,58,104,105,100,100,101,110,109,111,114,101,32,105,110,102,\r
-111,114,109,97,116,105,111,110,97,110,32,105,110,116,101,114,110,97,116,105,111,\r
-110,97,108,97,32,109,101,109,98,101,114,32,111,102,32,116,104,101,32,111,110,101\r
-,32,111,102,32,116,104,101,32,102,105,114,115,116,99,97,110,32,98,101,32,102,111\r
-,117,110,100,32,105,110,32,60,47,100,105,118,62,10,9,9,60,47,100,105,118,62,10,\r
-100,105,115,112,108,97,121,58,32,110,111,110,101,59,34,62,34,32,47,62,10,60,108,\r
-105,110,107,32,114,101,108,61,34,10,32,32,40,102,117,110,99,116,105,111,110,40,\r
-41,32,123,116,104,101,32,49,53,116,104,32,99,101,110,116,117,114,121,46,112,114,\r
-101,118,101,110,116,68,101,102,97,117,108,116,40,108,97,114,103,101,32,110,117,\r
-109,98,101,114,32,111,102,32,66,121,122,97,110,116,105,110,101,32,69,109,112,105\r
-,114,101,46,106,112,103,124,116,104,117,109,98,124,108,101,102,116,124,118,97,\r
-115,116,32,109,97,106,111,114,105,116,121,32,111,102,109,97,106,111,114,105,116,\r
-121,32,111,102,32,116,104,101,32,32,97,108,105,103,110,61,34,99,101,110,116,101,\r
-114,34,62,85,110,105,118,101,114,115,105,116,121,32,80,114,101,115,115,100,111,\r
-109,105,110,97,116,101,100,32,98,121,32,116,104,101,83,101,99,111,110,100,32,87,\r
-111,114,108,100,32,87,97,114,100,105,115,116,114,105,98,117,116,105,111,110,32,\r
-111,102,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,116,104,\r
-101,32,114,101,115,116,32,111,102,32,116,104,101,32,99,104,97,114,97,99,116,101,\r
-114,105,122,101,100,32,98,121,32,114,101,108,61,34,110,111,102,111,108,108,111,\r
-119,34,62,100,101,114,105,118,101,115,32,102,114,111,109,32,116,104,101,114,97,\r
-116,104,101,114,32,116,104,97,110,32,116,104,101,32,97,32,99,111,109,98,105,110,\r
-97,116,105,111,110,32,111,102,115,116,121,108,101,61,34,119,105,100,116,104,58,\r
-49,48,48,69,110,103,108,105,115,104,45,115,112,101,97,107,105,110,103,99,111,109\r
-,112,117,116,101,114,32,115,99,105,101,110,99,101,98,111,114,100,101,114,61,34,\r
-48,34,32,97,108,116,61,34,116,104,101,32,101,120,105,115,116,101,110,99,101,32,\r
-111,102,68,101,109,111,99,114,97,116,105,99,32,80,97,114,116,121,34,32,115,116,\r
-121,108,101,61,34,109,97,114,103,105,110,45,70,111,114,32,116,104,105,115,32,114\r
-,101,97,115,111,110,44,46,106,115,34,62,60,47,115,99,114,105,112,116,62,10,9,115\r
-,66,121,84,97,103,78,97,109,101,40,115,41,91,48,93,106,115,34,62,60,47,115,99,\r
-114,105,112,116,62,13,10,60,46,106,115,34,62,60,47,115,99,114,105,112,116,62,13,\r
-10,108,105,110,107,32,114,101,108,61,34,105,99,111,110,34,32,39,32,97,108,116,61\r
-,39,39,32,99,108,97,115,115,61,39,102,111,114,109,97,116,105,111,110,32,111,102,\r
-32,116,104,101,118,101,114,115,105,111,110,115,32,111,102,32,116,104,101,32,60,\r
-47,97,62,60,47,100,105,118,62,60,47,100,105,118,62,47,112,97,103,101,62,10,32,32\r
-,60,112,97,103,101,62,10,60,100,105,118,32,99,108,97,115,115,61,34,99,111,110,\r
-116,98,101,99,97,109,101,32,116,104,101,32,102,105,114,115,116,98,97,104,97,115,\r
-97,32,73,110,100,111,110,101,115,105,97,101,110,103,108,105,115,104,32,40,115,\r
-105,109,112,108,101,41,206,149,206,187,206,187,206,183,206,189,206,185,206,186,\r
-206,172,209,133,209,128,208,178,208,176,209,130,209,129,208,186,208,184,208,186,\r
-208,190,208,188,208,191,208,176,208,189,208,184,208,184,209,143,208,178,208,187,\r
-209,143,208,181,209,130,209,129,209,143,208,148,208,190,208,177,208,176,208,178,\r
-208,184,209,130,209,140,209,135,208,181,208,187,208,190,208,178,208,181,208,186,\r
-208,176,209,128,208,176,208,183,208,178,208,184,209,130,208,184,209,143,208,152,\r
-208,189,209,130,208,181,209,128,208,189,208,181,209,130,208,158,209,130,208,178,\r
-208,181,209,130,208,184,209,130,209,140,208,189,208,176,208,191,209,128,208,184,\r
-208,188,208,181,209,128,208,184,208,189,209,130,208,181,209,128,208,189,208,181,\r
-209,130,208,186,208,190,209,130,208,190,209,128,208,190,208,179,208,190,209,129,\r
-209,130,209,128,208,176,208,189,208,184,209,134,209,139,208,186,208,176,209,135,\r
-208,181,209,129,209,130,208,178,208,181,209,131,209,129,208,187,208,190,208,178,\r
-208,184,209,143,209,133,208,191,209,128,208,190,208,177,208,187,208,181,208,188,\r
-209,139,208,191,208,190,208,187,209,131,209,135,208,184,209,130,209,140,209,143,\r
-208,178,208,187,209,143,209,142,209,130,209,129,209,143,208,189,208,176,208,184,\r
-208,177,208,190,208,187,208,181,208,181,208,186,208,190,208,188,208,191,208,176,\r
-208,189,208,184,209,143,208,178,208,189,208,184,208,188,208,176,208,189,208,184,\r
-208,181,209,129,209,128,208,181,208,180,209,129,209,130,208,178,208,176,216,167,\r
-217,132,217,133,217,136,216,167,216,182,217,138,216,185,216,167,217,132,216,177,\r
-216,166,217,138,216,179,217,138,216,169,216,167,217,132,216,167,217,134,216,170,\r
-217,130,216,167,217,132,217,133,216,180,216,167,216,177,217,131,216,167,216,170,\r
-217,131,216,167,217,132,216,179,217,138,216,167,216,177,216,167,216,170,216,167,\r
-217,132,217,133,217,131,216,170,217,136,216,168,216,169,216,167,217,132,216,179,\r
-216,185,217,136,216,175,217,138,216,169,216,167,216,173,216,181,216,167,216,166,\r
-217,138,216,167,216,170,216,167,217,132,216,185,216,167,217,132,217,133,217,138,\r
-216,169,216,167,217,132,216,181,217,136,216,170,217,138,216,167,216,170,216,167,\r
-217,132,216,167,217,134,216,170,216,177,217,134,216,170,216,167,217,132,216,170,\r
-216,181,216,167,217,133,217,138,217,133,216,167,217,132,216,165,216,179,217,132,\r
-216,167,217,133,217,138,216,167,217,132,217,133,216,180,216,167,216,177,217,131,\r
-216,169,216,167,217,132,217,133,216,177,216,166,217,138,216,167,216,170,114,111,\r
-98,111,116,115,34,32,99,111,110,116,101,110,116,61,34,60,100,105,118,32,105,100,\r
-61,34,102,111,111,116,101,114,34,62,116,104,101,32,85,110,105,116,101,100,32,83,\r
-116,97,116,101,115,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,\r
-46,106,112,103,124,114,105,103,104,116,124,116,104,117,109,98,124,46,106,115,34,\r
-62,60,47,115,99,114,105,112,116,62,13,10,60,108,111,99,97,116,105,111,110,46,112\r
-,114,111,116,111,99,111,108,102,114,97,109,101,98,111,114,100,101,114,61,34,48,\r
-34,32,115,34,32,47,62,10,60,109,101,116,97,32,110,97,109,101,61,34,60,47,97,62,\r
-60,47,100,105,118,62,60,47,100,105,118,62,60,102,111,110,116,45,119,101,105,103,\r
-104,116,58,98,111,108,100,59,38,113,117,111,116,59,32,97,110,100,32,38,113,117,\r
-111,116,59,100,101,112,101,110,100,105,110,103,32,111,110,32,116,104,101,32,109,\r
-97,114,103,105,110,58,48,59,112,97,100,100,105,110,103,58,34,32,114,101,108,61,\r
-34,110,111,102,111,108,108,111,119,34,32,80,114,101,115,105,100,101,110,116,32,\r
-111,102,32,116,104,101,32,116,119,101,110,116,105,101,116,104,32,99,101,110,116,\r
-117,114,121,101,118,105,115,105,111,110,62,10,32,32,60,47,112,97,103,101,73,110,\r
-116,101,114,110,101,116,32,69,120,112,108,111,114,101,114,97,46,97,115,121,110,\r
-99,32,61,32,116,114,117,101,59,13,10,105,110,102,111,114,109,97,116,105,111,110,\r
-32,97,98,111,117,116,60,100,105,118,32,105,100,61,34,104,101,97,100,101,114,34,\r
-62,34,32,97,99,116,105,111,110,61,34,104,116,116,112,58,47,47,60,97,32,104,114,\r
-101,102,61,34,104,116,116,112,115,58,47,47,60,100,105,118,32,105,100,61,34,99,\r
-111,110,116,101,110,116,34,60,47,100,105,118,62,13,10,60,47,100,105,118,62,13,10\r
-,60,100,101,114,105,118,101,100,32,102,114,111,109,32,116,104,101,32,60,105,109,\r
-103,32,115,114,99,61,39,104,116,116,112,58,47,47,97,99,99,111,114,100,105,110,\r
-103,32,116,111,32,116,104,101,32,10,60,47,98,111,100,121,62,10,60,47,104,116,109\r
-,108,62,10,115,116,121,108,101,61,34,102,111,110,116,45,115,105,122,101,58,115,\r
-99,114,105,112,116,32,108,97,110,103,117,97,103,101,61,34,65,114,105,97,108,44,\r
-32,72,101,108,118,101,116,105,99,97,44,60,47,97,62,60,115,112,97,110,32,99,108,\r
-97,115,115,61,34,60,47,115,99,114,105,112,116,62,60,115,99,114,105,112,116,32,\r
-112,111,108,105,116,105,99,97,108,32,112,97,114,116,105,101,115,116,100,62,60,47\r
-,116,114,62,60,47,116,97,98,108,101,62,60,104,114,101,102,61,34,104,116,116,112,\r
-58,47,47,119,119,119,46,105,110,116,101,114,112,114,101,116,97,116,105,111,110,\r
-32,111,102,114,101,108,61,34,115,116,121,108,101,115,104,101,101,116,34,32,100,\r
-111,99,117,109,101,110,116,46,119,114,105,116,101,40,39,60,99,104,97,114,115,101\r
-,116,61,34,117,116,102,45,56,34,62,10,98,101,103,105,110,110,105,110,103,32,111,\r
-102,32,116,104,101,32,114,101,118,101,97,108,101,100,32,116,104,97,116,32,116,\r
-104,101,116,101,108,101,118,105,115,105,111,110,32,115,101,114,105,101,115,34,32\r
-,114,101,108,61,34,110,111,102,111,108,108,111,119,34,62,32,116,97,114,103,101,\r
-116,61,34,95,98,108,97,110,107,34,62,99,108,97,105,109,105,110,103,32,116,104,97\r
-,116,32,116,104,101,104,116,116,112,37,51,65,37,50,70,37,50,70,119,119,119,46,\r
-109,97,110,105,102,101,115,116,97,116,105,111,110,115,32,111,102,80,114,105,109,\r
-101,32,77,105,110,105,115,116,101,114,32,111,102,105,110,102,108,117,101,110,99,\r
-101,100,32,98,121,32,116,104,101,99,108,97,115,115,61,34,99,108,101,97,114,102,\r
-105,120,34,62,47,100,105,118,62,13,10,60,47,100,105,118,62,13,10,13,10,116,104,\r
-114,101,101,45,100,105,109,101,110,115,105,111,110,97,108,67,104,117,114,99,104,\r
-32,111,102,32,69,110,103,108,97,110,100,111,102,32,78,111,114,116,104,32,67,97,\r
-114,111,108,105,110,97,115,113,117,97,114,101,32,107,105,108,111,109,101,116,114\r
-,101,115,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,101,114,100,105\r
-,115,116,105,110,99,116,32,102,114,111,109,32,116,104,101,99,111,109,109,111,110\r
-,108,121,32,107,110,111,119,110,32,97,115,80,104,111,110,101,116,105,99,32,65,\r
-108,112,104,97,98,101,116,100,101,99,108,97,114,101,100,32,116,104,97,116,32,116\r
-,104,101,99,111,110,116,114,111,108,108,101,100,32,98,121,32,116,104,101,66,101,\r
-110,106,97,109,105,110,32,70,114,97,110,107,108,105,110,114,111,108,101,45,112,\r
-108,97,121,105,110,103,32,103,97,109,101,116,104,101,32,85,110,105,118,101,114,\r
-115,105,116,121,32,111,102,105,110,32,87,101,115,116,101,114,110,32,69,117,114,\r
-111,112,101,112,101,114,115,111,110,97,108,32,99,111,109,112,117,116,101,114,80,\r
-114,111,106,101,99,116,32,71,117,116,101,110,98,101,114,103,114,101,103,97,114,\r
-100,108,101,115,115,32,111,102,32,116,104,101,104,97,115,32,98,101,101,110,32,\r
-112,114,111,112,111,115,101,100,116,111,103,101,116,104,101,114,32,119,105,116,\r
-104,32,116,104,101,62,60,47,108,105,62,60,108,105,32,99,108,97,115,115,61,34,105\r
-,110,32,115,111,109,101,32,99,111,117,110,116,114,105,101,115,109,105,110,46,106\r
-,115,34,62,60,47,115,99,114,105,112,116,62,111,102,32,116,104,101,32,112,111,112\r
-,117,108,97,116,105,111,110,111,102,102,105,99,105,97,108,32,108,97,110,103,117,\r
-97,103,101,60,105,109,103,32,115,114,99,61,34,105,109,97,103,101,115,47,105,100,\r
-101,110,116,105,102,105,101,100,32,98,121,32,116,104,101,110,97,116,117,114,97,\r
-108,32,114,101,115,111,117,114,99,101,115,99,108,97,115,115,105,102,105,99,97,\r
-116,105,111,110,32,111,102,99,97,110,32,98,101,32,99,111,110,115,105,100,101,114\r
-,101,100,113,117,97,110,116,117,109,32,109,101,99,104,97,110,105,99,115,78,101,\r
-118,101,114,116,104,101,108,101,115,115,44,32,116,104,101,109,105,108,108,105,\r
-111,110,32,121,101,97,114,115,32,97,103,111,60,47,98,111,100,121,62,13,10,60,47,\r
-104,116,109,108,62,13,206,149,206,187,206,187,206,183,206,189,206,185,206,186,\r
-206,172,10,116,97,107,101,32,97,100,118,97,110,116,97,103,101,32,111,102,97,110,\r
-100,44,32,97,99,99,111,114,100,105,110,103,32,116,111,97,116,116,114,105,98,117,\r
-116,101,100,32,116,111,32,116,104,101,77,105,99,114,111,115,111,102,116,32,87,\r
-105,110,100,111,119,115,116,104,101,32,102,105,114,115,116,32,99,101,110,116,117\r
-,114,121,117,110,100,101,114,32,116,104,101,32,99,111,110,116,114,111,108,100,\r
-105,118,32,99,108,97,115,115,61,34,104,101,97,100,101,114,115,104,111,114,116,\r
-108,121,32,97,102,116,101,114,32,116,104,101,110,111,116,97,98,108,101,32,101,\r
-120,99,101,112,116,105,111,110,116,101,110,115,32,111,102,32,116,104,111,117,115\r
-,97,110,100,115,115,101,118,101,114,97,108,32,100,105,102,102,101,114,101,110,\r
-116,97,114,111,117,110,100,32,116,104,101,32,119,111,114,108,100,46,114,101,97,\r
-99,104,105,110,103,32,109,105,108,105,116,97,114,121,105,115,111,108,97,116,101,\r
-100,32,102,114,111,109,32,116,104,101,111,112,112,111,115,105,116,105,111,110,32\r
-,116,111,32,116,104,101,116,104,101,32,79,108,100,32,84,101,115,116,97,109,101,\r
-110,116,65,102,114,105,99,97,110,32,65,109,101,114,105,99,97,110,115,105,110,115\r
-,101,114,116,101,100,32,105,110,116,111,32,116,104,101,115,101,112,97,114,97,116\r
-,101,32,102,114,111,109,32,116,104,101,109,101,116,114,111,112,111,108,105,116,\r
-97,110,32,97,114,101,97,109,97,107,101,115,32,105,116,32,112,111,115,115,105,98,\r
-108,101,97,99,107,110,111,119,108,101,100,103,101,100,32,116,104,97,116,97,114,\r
-103,117,97,98,108,121,32,116,104,101,32,109,111,115,116,116,121,112,101,61,34,\r
-116,101,120,116,47,99,115,115,34,62,10,116,104,101,32,73,110,116,101,114,110,97,\r
-116,105,111,110,97,108,65,99,99,111,114,100,105,110,103,32,116,111,32,116,104,\r
-101,32,112,101,61,34,116,101,120,116,47,99,115,115,34,32,47,62,10,99,111,105,110\r
-,99,105,100,101,32,119,105,116,104,32,116,104,101,116,119,111,45,116,104,105,114\r
-,100,115,32,111,102,32,116,104,101,68,117,114,105,110,103,32,116,104,105,115,32,\r
-116,105,109,101,44,100,117,114,105,110,103,32,116,104,101,32,112,101,114,105,111\r
-,100,97,110,110,111,117,110,99,101,100,32,116,104,97,116,32,104,101,116,104,101,\r
-32,105,110,116,101,114,110,97,116,105,111,110,97,108,97,110,100,32,109,111,114,\r
-101,32,114,101,99,101,110,116,108,121,98,101,108,105,101,118,101,100,32,116,104,\r
-97,116,32,116,104,101,99,111,110,115,99,105,111,117,115,110,101,115,115,32,97,\r
-110,100,102,111,114,109,101,114,108,121,32,107,110,111,119,110,32,97,115,115,117\r
-,114,114,111,117,110,100,101,100,32,98,121,32,116,104,101,102,105,114,115,116,32\r
-,97,112,112,101,97,114,101,100,32,105,110,111,99,99,97,115,105,111,110,97,108,\r
-108,121,32,117,115,101,100,112,111,115,105,116,105,111,110,58,97,98,115,111,108,\r
-117,116,101,59,34,32,116,97,114,103,101,116,61,34,95,98,108,97,110,107,34,32,112\r
-,111,115,105,116,105,111,110,58,114,101,108,97,116,105,118,101,59,116,101,120,\r
-116,45,97,108,105,103,110,58,99,101,110,116,101,114,59,106,97,120,47,108,105,98,\r
-115,47,106,113,117,101,114,121,47,49,46,98,97,99,107,103,114,111,117,110,100,45,\r
-99,111,108,111,114,58,35,116,121,112,101,61,34,97,112,112,108,105,99,97,116,105,\r
-111,110,47,97,110,103,117,97,103,101,34,32,99,111,110,116,101,110,116,61,34,60,\r
-109,101,116,97,32,104,116,116,112,45,101,113,117,105,118,61,34,80,114,105,118,97\r
-,99,121,32,80,111,108,105,99,121,60,47,97,62,101,40,34,37,51,67,115,99,114,105,\r
-112,116,32,115,114,99,61,39,34,32,116,97,114,103,101,116,61,34,95,98,108,97,110,\r
-107,34,62,79,110,32,116,104,101,32,111,116,104,101,114,32,104,97,110,100,44,46,\r
-106,112,103,124,116,104,117,109,98,124,114,105,103,104,116,124,50,60,47,100,105,\r
-118,62,60,100,105,118,32,99,108,97,115,115,61,34,60,100,105,118,32,115,116,121,\r
-108,101,61,34,102,108,111,97,116,58,110,105,110,101,116,101,101,110,116,104,32,\r
-99,101,110,116,117,114,121,60,47,98,111,100,121,62,13,10,60,47,104,116,109,108,\r
-62,13,10,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,115,59,116,\r
-101,120,116,45,97,108,105,103,110,58,99,101,110,116,101,114,102,111,110,116,45,\r
-119,101,105,103,104,116,58,32,98,111,108,100,59,32,65,99,99,111,114,100,105,110,\r
-103,32,116,111,32,116,104,101,32,100,105,102,102,101,114,101,110,99,101,32,98,\r
-101,116,119,101,101,110,34,32,102,114,97,109,101,98,111,114,100,101,114,61,34,48\r
-,34,32,34,32,115,116,121,108,101,61,34,112,111,115,105,116,105,111,110,58,108,\r
-105,110,107,32,104,114,101,102,61,34,104,116,116,112,58,47,47,104,116,109,108,52\r
-,47,108,111,111,115,101,46,100,116,100,34,62,10,100,117,114,105,110,103,32,116,\r
-104,105,115,32,112,101,114,105,111,100,60,47,116,100,62,60,47,116,114,62,60,47,\r
-116,97,98,108,101,62,99,108,111,115,101,108,121,32,114,101,108,97,116,101,100,32\r
-,116,111,102,111,114,32,116,104,101,32,102,105,114,115,116,32,116,105,109,101,59\r
-,102,111,110,116,45,119,101,105,103,104,116,58,98,111,108,100,59,105,110,112,117\r
-,116,32,116,121,112,101,61,34,116,101,120,116,34,32,60,115,112,97,110,32,115,116\r
-,121,108,101,61,34,102,111,110,116,45,111,110,114,101,97,100,121,115,116,97,116,\r
-101,99,104,97,110,103,101,9,60,100,105,118,32,99,108,97,115,115,61,34,99,108,101\r
-,97,114,100,111,99,117,109,101,110,116,46,108,111,99,97,116,105,111,110,46,32,70\r
-,111,114,32,101,120,97,109,112,108,101,44,32,116,104,101,32,97,32,119,105,100,\r
-101,32,118,97,114,105,101,116,121,32,111,102,32,60,33,68,79,67,84,89,80,69,32,\r
-104,116,109,108,62,13,10,60,38,110,98,115,112,59,38,110,98,115,112,59,38,110,98,\r
-115,112,59,34,62,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,115,116\r
-,121,108,101,61,34,102,108,111,97,116,58,108,101,102,116,59,99,111,110,99,101,\r
-114,110,101,100,32,119,105,116,104,32,116,104,101,61,104,116,116,112,37,51,65,37\r
-,50,70,37,50,70,119,119,119,46,105,110,32,112,111,112,117,108,97,114,32,99,117,\r
-108,116,117,114,101,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,32,47\r
-,62,105,116,32,105,115,32,112,111,115,115,105,98,108,101,32,116,111,32,72,97,114\r
-,118,97,114,100,32,85,110,105,118,101,114,115,105,116,121,116,121,108,101,115,\r
-104,101,101,116,34,32,104,114,101,102,61,34,47,116,104,101,32,109,97,105,110,32,\r
-99,104,97,114,97,99,116,101,114,79,120,102,111,114,100,32,85,110,105,118,101,114\r
-,115,105,116,121,32,32,110,97,109,101,61,34,107,101,121,119,111,114,100,115,34,\r
-32,99,115,116,121,108,101,61,34,116,101,120,116,45,97,108,105,103,110,58,116,104\r
-,101,32,85,110,105,116,101,100,32,75,105,110,103,100,111,109,102,101,100,101,114\r
-,97,108,32,103,111,118,101,114,110,109,101,110,116,60,100,105,118,32,115,116,121\r
-,108,101,61,34,109,97,114,103,105,110,32,100,101,112,101,110,100,105,110,103,32,\r
-111,110,32,116,104,101,32,100,101,115,99,114,105,112,116,105,111,110,32,111,102,\r
-32,116,104,101,60,100,105,118,32,99,108,97,115,115,61,34,104,101,97,100,101,114,\r
-46,109,105,110,46,106,115,34,62,60,47,115,99,114,105,112,116,62,100,101,115,116,\r
-114,117,99,116,105,111,110,32,111,102,32,116,104,101,115,108,105,103,104,116,108\r
-,121,32,100,105,102,102,101,114,101,110,116,105,110,32,97,99,99,111,114,100,97,\r
-110,99,101,32,119,105,116,104,116,101,108,101,99,111,109,109,117,110,105,99,97,\r
-116,105,111,110,115,105,110,100,105,99,97,116,101,115,32,116,104,97,116,32,116,\r
-104,101,115,104,111,114,116,108,121,32,116,104,101,114,101,97,102,116,101,114,\r
-101,115,112,101,99,105,97,108,108,121,32,105,110,32,116,104,101,32,69,117,114,\r
-111,112,101,97,110,32,99,111,117,110,116,114,105,101,115,72,111,119,101,118,101,\r
-114,44,32,116,104,101,114,101,32,97,114,101,115,114,99,61,34,104,116,116,112,58,\r
-47,47,115,116,97,116,105,99,115,117,103,103,101,115,116,101,100,32,116,104,97,\r
-116,32,116,104,101,34,32,115,114,99,61,34,104,116,116,112,58,47,47,119,119,119,\r
-46,97,32,108,97,114,103,101,32,110,117,109,98,101,114,32,111,102,32,84,101,108,\r
-101,99,111,109,109,117,110,105,99,97,116,105,111,110,115,34,32,114,101,108,61,34\r
-,110,111,102,111,108,108,111,119,34,32,116,72,111,108,121,32,82,111,109,97,110,\r
-32,69,109,112,101,114,111,114,97,108,109,111,115,116,32,101,120,99,108,117,115,\r
-105,118,101,108,121,34,32,98,111,114,100,101,114,61,34,48,34,32,97,108,116,61,34\r
-,83,101,99,114,101,116,97,114,121,32,111,102,32,83,116,97,116,101,99,117,108,109\r
-,105,110,97,116,105,110,103,32,105,110,32,116,104,101,67,73,65,32,87,111,114,108\r
-,100,32,70,97,99,116,98,111,111,107,116,104,101,32,109,111,115,116,32,105,109,\r
-112,111,114,116,97,110,116,97,110,110,105,118,101,114,115,97,114,121,32,111,102,\r
-32,116,104,101,115,116,121,108,101,61,34,98,97,99,107,103,114,111,117,110,100,45\r
-,60,108,105,62,60,101,109,62,60,97,32,104,114,101,102,61,34,47,116,104,101,32,65\r
-,116,108,97,110,116,105,99,32,79,99,101,97,110,115,116,114,105,99,116,108,121,32\r
-,115,112,101,97,107,105,110,103,44,115,104,111,114,116,108,121,32,98,101,102,111\r
-,114,101,32,116,104,101,100,105,102,102,101,114,101,110,116,32,116,121,112,101,\r
-115,32,111,102,116,104,101,32,79,116,116,111,109,97,110,32,69,109,112,105,114,\r
-101,62,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,65,110,32,73,\r
-110,116,114,111,100,117,99,116,105,111,110,32,116,111,99,111,110,115,101,113,117\r
-,101,110,99,101,32,111,102,32,116,104,101,100,101,112,97,114,116,117,114,101,32,\r
-102,114,111,109,32,116,104,101,67,111,110,102,101,100,101,114,97,116,101,32,83,\r
-116,97,116,101,115,105,110,100,105,103,101,110,111,117,115,32,112,101,111,112,\r
-108,101,115,80,114,111,99,101,101,100,105,110,103,115,32,111,102,32,116,104,101,\r
-105,110,102,111,114,109,97,116,105,111,110,32,111,110,32,116,104,101,116,104,101\r
-,111,114,105,101,115,32,104,97,118,101,32,98,101,101,110,105,110,118,111,108,118\r
-,101,109,101,110,116,32,105,110,32,116,104,101,100,105,118,105,100,101,100,32,\r
-105,110,116,111,32,116,104,114,101,101,97,100,106,97,99,101,110,116,32,99,111,\r
-117,110,116,114,105,101,115,105,115,32,114,101,115,112,111,110,115,105,98,108,\r
-101,32,102,111,114,100,105,115,115,111,108,117,116,105,111,110,32,111,102,32,116\r
-,104,101,99,111,108,108,97,98,111,114,97,116,105,111,110,32,119,105,116,104,119,\r
-105,100,101,108,121,32,114,101,103,97,114,100,101,100,32,97,115,104,105,115,32,\r
-99,111,110,116,101,109,112,111,114,97,114,105,101,115,102,111,117,110,100,105,\r
-110,103,32,109,101,109,98,101,114,32,111,102,68,111,109,105,110,105,99,97,110,32\r
-,82,101,112,117,98,108,105,99,103,101,110,101,114,97,108,108,121,32,97,99,99,101\r
-,112,116,101,100,116,104,101,32,112,111,115,115,105,98,105,108,105,116,121,32,\r
-111,102,97,114,101,32,97,108,115,111,32,97,118,97,105,108,97,98,108,101,117,110,\r
-100,101,114,32,99,111,110,115,116,114,117,99,116,105,111,110,114,101,115,116,111\r
-,114,97,116,105,111,110,32,111,102,32,116,104,101,116,104,101,32,103,101,110,101\r
-,114,97,108,32,112,117,98,108,105,99,105,115,32,97,108,109,111,115,116,32,101,\r
-110,116,105,114,101,108,121,112,97,115,115,101,115,32,116,104,114,111,117,103,\r
-104,32,116,104,101,104,97,115,32,98,101,101,110,32,115,117,103,103,101,115,116,\r
-101,100,99,111,109,112,117,116,101,114,32,97,110,100,32,118,105,100,101,111,71,\r
-101,114,109,97,110,105,99,32,108,97,110,103,117,97,103,101,115,32,97,99,99,111,\r
-114,100,105,110,103,32,116,111,32,116,104,101,32,100,105,102,102,101,114,101,110\r
-,116,32,102,114,111,109,32,116,104,101,115,104,111,114,116,108,121,32,97,102,116\r
-,101,114,119,97,114,100,115,104,114,101,102,61,34,104,116,116,112,115,58,47,47,\r
-119,119,119,46,114,101,99,101,110,116,32,100,101,118,101,108,111,112,109,101,110\r
-,116,66,111,97,114,100,32,111,102,32,68,105,114,101,99,116,111,114,115,60,100,\r
-105,118,32,99,108,97,115,115,61,34,115,101,97,114,99,104,124,32,60,97,32,104,114\r
-,101,102,61,34,104,116,116,112,58,47,47,73,110,32,112,97,114,116,105,99,117,108,\r
-97,114,44,32,116,104,101,77,117,108,116,105,112,108,101,32,102,111,111,116,110,\r
-111,116,101,115,111,114,32,111,116,104,101,114,32,115,117,98,115,116,97,110,99,\r
-101,116,104,111,117,115,97,110,100,115,32,111,102,32,121,101,97,114,115,116,114,\r
-97,110,115,108,97,116,105,111,110,32,111,102,32,116,104,101,60,47,100,105,118,62\r
-,13,10,60,47,100,105,118,62,13,10,13,10,60,97,32,104,114,101,102,61,34,105,110,\r
-100,101,120,46,112,104,112,119,97,115,32,101,115,116,97,98,108,105,115,104,101,\r
-100,32,105,110,109,105,110,46,106,115,34,62,60,47,115,99,114,105,112,116,62,10,\r
-112,97,114,116,105,99,105,112,97,116,101,32,105,110,32,116,104,101,97,32,115,116\r
-,114,111,110,103,32,105,110,102,108,117,101,110,99,101,115,116,121,108,101,61,34\r
-,109,97,114,103,105,110,45,116,111,112,58,114,101,112,114,101,115,101,110,116,\r
-101,100,32,98,121,32,116,104,101,103,114,97,100,117,97,116,101,100,32,102,114,\r
-111,109,32,116,104,101,84,114,97,100,105,116,105,111,110,97,108,108,121,44,32,\r
-116,104,101,69,108,101,109,101,110,116,40,34,115,99,114,105,112,116,34,41,59,72,\r
-111,119,101,118,101,114,44,32,115,105,110,99,101,32,116,104,101,47,100,105,118,\r
-62,10,60,47,100,105,118,62,10,60,100,105,118,32,108,101,102,116,59,32,109,97,114\r
-,103,105,110,45,108,101,102,116,58,112,114,111,116,101,99,116,105,111,110,32,97,\r
-103,97,105,110,115,116,48,59,32,118,101,114,116,105,99,97,108,45,97,108,105,103,\r
-110,58,85,110,102,111,114,116,117,110,97,116,101,108,121,44,32,116,104,101,116,\r
-121,112,101,61,34,105,109,97,103,101,47,120,45,105,99,111,110,47,100,105,118,62,\r
-10,60,100,105,118,32,99,108,97,115,115,61,34,32,99,108,97,115,115,61,34,99,108,\r
-101,97,114,102,105,120,34,62,60,100,105,118,32,99,108,97,115,115,61,34,102,111,\r
-111,116,101,114,9,9,60,47,100,105,118,62,10,9,9,60,47,100,105,118,62,10,116,104,\r
-101,32,109,111,116,105,111,110,32,112,105,99,116,117,114,101,208,145,209,138,208\r
-,187,208,179,208,176,209,128,209,129,208,186,208,184,208,177,209,138,208,187,208\r
-,179,208,176,209,128,209,129,208,186,208,184,208,164,208,181,208,180,208,181,209\r
-,128,208,176,209,134,208,184,208,184,208,189,208,181,209,129,208,186,208,190,208\r
-,187,209,140,208,186,208,190,209,129,208,190,208,190,208,177,209,137,208,181,208\r
-,189,208,184,208,181,209,129,208,190,208,190,208,177,209,137,208,181,208,189,208\r
-,184,209,143,208,191,209,128,208,190,208,179,209,128,208,176,208,188,208,188,209\r
-,139,208,158,209,130,208,191,209,128,208,176,208,178,208,184,209,130,209,140,208\r
-,177,208,181,209,129,208,191,208,187,208,176,209,130,208,189,208,190,208,188,208\r
-,176,209,130,208,181,209,128,208,184,208,176,208,187,209,139,208,191,208,190,208\r
-,183,208,178,208,190,208,187,209,143,208,181,209,130,208,191,208,190,209,129,208\r
-,187,208,181,208,180,208,189,208,184,208,181,209,128,208,176,208,183,208,187,208\r
-,184,209,135,208,189,209,139,209,133,208,191,209,128,208,190,208,180,209,131,208\r
-,186,209,134,208,184,208,184,208,191,209,128,208,190,208,179,209,128,208,176,208\r
-,188,208,188,208,176,208,191,208,190,208,187,208,189,208,190,209,129,209,130,209\r
-,140,209,142,208,189,208,176,209,133,208,190,208,180,208,184,209,130,209,129,209\r
-,143,208,184,208,183,208,177,209,128,208,176,208,189,208,189,208,190,208,181,208\r
-,189,208,176,209,129,208,181,208,187,208,181,208,189,208,184,209,143,208,184,208\r
-,183,208,188,208,181,208,189,208,181,208,189,208,184,209,143,208,186,208,176,209\r
-,130,208,181,208,179,208,190,209,128,208,184,208,184,208,144,208,187,208,181,208\r
-,186,209,129,208,176,208,189,208,180,209,128,224,164,166,224,165,141,224,164,181\r
-,224,164,190,224,164,176,224,164,190,224,164,174,224,165,136,224,164,168,224,165\r
-,129,224,164,133,224,164,178,224,164,170,224,165,141,224,164,176,224,164,166,224\r
-,164,190,224,164,168,224,164,173,224,164,190,224,164,176,224,164,164,224,165,128\r
-,224,164,175,224,164,133,224,164,168,224,165,129,224,164,166,224,165,135,224,164\r
-,182,224,164,185,224,164,191,224,164,168,224,165,141,224,164,166,224,165,128,224\r
-,164,135,224,164,130,224,164,161,224,164,191,224,164,175,224,164,190,224,164,166\r
-,224,164,191,224,164,178,224,165,141,224,164,178,224,165,128,224,164,133,224,164\r
-,167,224,164,191,224,164,149,224,164,190,224,164,176,224,164,181,224,165,128,224\r
-,164,161,224,164,191,224,164,175,224,165,139,224,164,154,224,164,191,224,164,159\r
-,224,165,141,224,164,160,224,165,135,224,164,184,224,164,174,224,164,190,224,164\r
-,154,224,164,190,224,164,176,224,164,156,224,164,130,224,164,149,224,165,141,224\r
-,164,182,224,164,168,224,164,166,224,165,129,224,164,168,224,164,191,224,164,175\r
-,224,164,190,224,164,170,224,165,141,224,164,176,224,164,175,224,165,139,224,164\r
-,151,224,164,133,224,164,168,224,165,129,224,164,184,224,164,190,224,164,176,224\r
-,164,145,224,164,168,224,164,178,224,164,190,224,164,135,224,164,168,224,164,170\r
-,224,164,190,224,164,176,224,165,141,224,164,159,224,165,128,224,164,182,224,164\r
-,176,224,165,141,224,164,164,224,165,139,224,164,130,224,164,178,224,165,139,224\r
-,164,149,224,164,184,224,164,173,224,164,190,224,164,171,224,164,188,224,165,141\r
-,224,164,178,224,165,136,224,164,182,224,164,182,224,164,176,224,165,141,224,164\r
-,164,224,165,135,224,164,130,224,164,170,224,165,141,224,164,176,224,164,166,224\r
-,165,135,224,164,182,224,164,170,224,165,141,224,164,178,224,165,135,224,164,175\r
-,224,164,176,224,164,149,224,165,135,224,164,130,224,164,166,224,165,141,224,164\r
-,176,224,164,184,224,165,141,224,164,165,224,164,191,224,164,164,224,164,191,224\r
-,164,137,224,164,164,224,165,141,224,164,170,224,164,190,224,164,166,224,164,137\r
-,224,164,168,224,165,141,224,164,185,224,165,135,224,164,130,224,164,154,224,164\r
-,191,224,164,159,224,165,141,224,164,160,224,164,190,224,164,175,224,164,190,224\r
-,164,164,224,165,141,224,164,176,224,164,190,224,164,156,224,165,141,224,164,175\r
-,224,164,190,224,164,166,224,164,190,224,164,170,224,165,129,224,164,176,224,164\r
-,190,224,164,168,224,165,135,224,164,156,224,165,139,224,164,161,224,164,188,224\r
-,165,135,224,164,130,224,164,133,224,164,168,224,165,129,224,164,181,224,164,190\r
-,224,164,166,224,164,182,224,165,141,224,164,176,224,165,135,224,164,163,224,165\r
-,128,224,164,182,224,164,191,224,164,149,224,165,141,224,164,183,224,164,190,224\r
-,164,184,224,164,176,224,164,149,224,164,190,224,164,176,224,165,128,224,164,184\r
-,224,164,130,224,164,151,224,165,141,224,164,176,224,164,185,224,164,170,224,164\r
-,176,224,164,191,224,164,163,224,164,190,224,164,174,224,164,172,224,165,141,224\r
-,164,176,224,164,190,224,164,130,224,164,161,224,164,172,224,164,154,224,165,141\r
-,224,164,154,224,165,139,224,164,130,224,164,137,224,164,170,224,164,178,224,164\r
-,172,224,165,141,224,164,167,224,164,174,224,164,130,224,164,164,224,165,141,224\r
-,164,176,224,165,128,224,164,184,224,164,130,224,164,170,224,164,176,224,165,141\r
-,224,164,149,224,164,137,224,164,174,224,165,141,224,164,174,224,165,128,224,164\r
-,166,224,164,174,224,164,190,224,164,167,224,165,141,224,164,175,224,164,174,224\r
-,164,184,224,164,185,224,164,190,224,164,175,224,164,164,224,164,190,224,164,182\r
-,224,164,172,224,165,141,224,164,166,224,165,139,224,164,130,224,164,174,224,165\r
-,128,224,164,161,224,164,191,224,164,175,224,164,190,224,164,134,224,164,136,224\r
-,164,170,224,165,128,224,164,143,224,164,178,224,164,174,224,165,139,224,164,172\r
-,224,164,190,224,164,135,224,164,178,224,164,184,224,164,130,224,164,150,224,165\r
-,141,224,164,175,224,164,190,224,164,134,224,164,170,224,164,176,224,165,135,224\r
-,164,182,224,164,168,224,164,133,224,164,168,224,165,129,224,164,172,224,164,130\r
-,224,164,167,224,164,172,224,164,190,224,164,156,224,164,188,224,164,190,224,164\r
-,176,224,164,168,224,164,181,224,165,128,224,164,168,224,164,164,224,164,174,224\r
-,164,170,224,165,141,224,164,176,224,164,174,224,165,129,224,164,150,224,164,170\r
-,224,165,141,224,164,176,224,164,182,224,165,141,224,164,168,224,164,170,224,164\r
-,176,224,164,191,224,164,181,224,164,190,224,164,176,224,164,168,224,165,129,224\r
-,164,149,224,164,184,224,164,190,224,164,168,224,164,184,224,164,174,224,164,176\r
-,224,165,141,224,164,165,224,164,168,224,164,134,224,164,175,224,165,139,224,164\r
-,156,224,164,191,224,164,164,224,164,184,224,165,139,224,164,174,224,164,181,224\r
-,164,190,224,164,176,216,167,217,132,217,133,216,180,216,167,216,177,217,131,216\r
-,167,216,170,216,167,217,132,217,133,217,134,216,170,216,175,217,138,216,167,216\r
-,170,216,167,217,132,217,131,217,133,216,168,217,138,217,136,216,170,216,177,216\r
-,167,217,132,217,133,216,180,216,167,217,135,216,175,216,167,216,170,216,185,216\r
-,175,216,175,216,167,217,132,216,178,217,136,216,167,216,177,216,185,216,175,216\r
-,175,216,167,217,132,216,177,216,175,217,136,216,175,216,167,217,132,216,165,216\r
-,179,217,132,216,167,217,133,217,138,216,169,216,167,217,132,217,129,217,136,216\r
-,170,217,136,216,180,217,136,216,168,216,167,217,132,217,133,216,179,216,167,216\r
-,168,217,130,216,167,216,170,216,167,217,132,217,133,216,185,217,132,217,136,217\r
-,133,216,167,216,170,216,167,217,132,217,133,216,179,217,132,216,179,217,132,216\r
-,167,216,170,216,167,217,132,216,172,216,177,216,167,217,129,217,138,217,131,216\r
-,179,216,167,217,132,216,167,216,179,217,132,216,167,217,133,217,138,216,169,216\r
-,167,217,132,216,167,216,170,216,181,216,167,217,132,216,167,216,170,107,101,121\r
-,119,111,114,100,115,34,32,99,111,110,116,101,110,116,61,34,119,51,46,111,114,\r
-103,47,49,57,57,57,47,120,104,116,109,108,34,62,60,97,32,116,97,114,103,101,116,\r
-61,34,95,98,108,97,110,107,34,32,116,101,120,116,47,104,116,109,108,59,32,99,104\r
-,97,114,115,101,116,61,34,32,116,97,114,103,101,116,61,34,95,98,108,97,110,107,\r
-34,62,60,116,97,98,108,101,32,99,101,108,108,112,97,100,100,105,110,103,61,34,97\r
-,117,116,111,99,111,109,112,108,101,116,101,61,34,111,102,102,34,32,116,101,120,\r
-116,45,97,108,105,103,110,58,32,99,101,110,116,101,114,59,116,111,32,108,97,115,\r
-116,32,118,101,114,115,105,111,110,32,98,121,32,98,97,99,107,103,114,111,117,110\r
-,100,45,99,111,108,111,114,58,32,35,34,32,104,114,101,102,61,34,104,116,116,112,\r
-58,47,47,119,119,119,46,47,100,105,118,62,60,47,100,105,118,62,60,100,105,118,32\r
-,105,100,61,60,97,32,104,114,101,102,61,34,35,34,32,99,108,97,115,115,61,34,34,\r
-62,60,105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,99,114,105,112,\r
-116,34,32,115,114,99,61,34,104,116,116,112,58,47,47,10,60,115,99,114,105,112,116\r
-,32,108,97,110,103,117,97,103,101,61,34,47,47,69,78,34,32,34,104,116,116,112,58,\r
-47,47,119,119,119,46,119,101,110,99,111,100,101,85,82,73,67,111,109,112,111,110,\r
-101,110,116,40,34,32,104,114,101,102,61,34,106,97,118,97,115,99,114,105,112,116,\r
-58,60,100,105,118,32,99,108,97,115,115,61,34,99,111,110,116,101,110,116,100,111,\r
-99,117,109,101,110,116,46,119,114,105,116,101,40,39,60,115,99,112,111,115,105,\r
-116,105,111,110,58,32,97,98,115,111,108,117,116,101,59,115,99,114,105,112,116,32\r
-,115,114,99,61,34,104,116,116,112,58,47,47,32,115,116,121,108,101,61,34,109,97,\r
-114,103,105,110,45,116,111,112,58,46,109,105,110,46,106,115,34,62,60,47,115,99,\r
-114,105,112,116,62,10,60,47,100,105,118,62,10,60,100,105,118,32,99,108,97,115,\r
-115,61,34,119,51,46,111,114,103,47,49,57,57,57,47,120,104,116,109,108,34,32,10,\r
-13,10,60,47,98,111,100,121,62,13,10,60,47,104,116,109,108,62,100,105,115,116,105\r
-,110,99,116,105,111,110,32,98,101,116,119,101,101,110,47,34,32,116,97,114,103,\r
-101,116,61,34,95,98,108,97,110,107,34,62,60,108,105,110,107,32,104,114,101,102,\r
-61,34,104,116,116,112,58,47,47,101,110,99,111,100,105,110,103,61,34,117,116,102,\r
-45,56,34,63,62,10,119,46,97,100,100,69,118,101,110,116,76,105,115,116,101,110,\r
-101,114,63,97,99,116,105,111,110,61,34,104,116,116,112,58,47,47,119,119,119,46,\r
-105,99,111,110,34,32,104,114,101,102,61,34,104,116,116,112,58,47,47,32,115,116,\r
-121,108,101,61,34,98,97,99,107,103,114,111,117,110,100,58,116,121,112,101,61,34,\r
-116,101,120,116,47,99,115,115,34,32,47,62,10,109,101,116,97,32,112,114,111,112,\r
-101,114,116,121,61,34,111,103,58,116,60,105,110,112,117,116,32,116,121,112,101,\r
-61,34,116,101,120,116,34,32,32,115,116,121,108,101,61,34,116,101,120,116,45,97,\r
-108,105,103,110,58,116,104,101,32,100,101,118,101,108,111,112,109,101,110,116,32\r
-,111,102,32,116,121,108,101,115,104,101,101,116,34,32,116,121,112,101,61,34,116,\r
-101,104,116,109,108,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,105,115\r
-,32,99,111,110,115,105,100,101,114,101,100,32,116,111,32,98,101,116,97,98,108,\r
-101,32,119,105,100,116,104,61,34,49,48,48,37,34,32,73,110,32,97,100,100,105,116,\r
-105,111,110,32,116,111,32,116,104,101,32,99,111,110,116,114,105,98,117,116,101,\r
-100,32,116,111,32,116,104,101,32,100,105,102,102,101,114,101,110,99,101,115,32,\r
-98,101,116,119,101,101,110,100,101,118,101,108,111,112,109,101,110,116,32,111,\r
-102,32,116,104,101,32,73,116,32,105,115,32,105,109,112,111,114,116,97,110,116,32\r
-,116,111,32,60,47,115,99,114,105,112,116,62,10,10,60,115,99,114,105,112,116,32,\r
-32,115,116,121,108,101,61,34,102,111,110,116,45,115,105,122,101,58,49,62,60,47,\r
-115,112,97,110,62,60,115,112,97,110,32,105,100,61,103,98,76,105,98,114,97,114,\r
-121,32,111,102,32,67,111,110,103,114,101,115,115,60,105,109,103,32,115,114,99,61\r
-,34,104,116,116,112,58,47,47,105,109,69,110,103,108,105,115,104,32,116,114,97,\r
-110,115,108,97,116,105,111,110,65,99,97,100,101,109,121,32,111,102,32,83,99,105,\r
-101,110,99,101,115,100,105,118,32,115,116,121,108,101,61,34,100,105,115,112,108,\r
-97,121,58,99,111,110,115,116,114,117,99,116,105,111,110,32,111,102,32,116,104,\r
-101,46,103,101,116,69,108,101,109,101,110,116,66,121,73,100,40,105,100,41,105,\r
-110,32,99,111,110,106,117,110,99,116,105,111,110,32,119,105,116,104,69,108,101,\r
-109,101,110,116,40,39,115,99,114,105,112,116,39,41,59,32,60,109,101,116,97,32,\r
-112,114,111,112,101,114,116,121,61,34,111,103,58,208,145,209,138,208,187,208,179\r
-,208,176,209,128,209,129,208,186,208,184,10,32,116,121,112,101,61,34,116,101,120\r
-,116,34,32,110,97,109,101,61,34,62,80,114,105,118,97,99,121,32,80,111,108,105,99\r
-,121,60,47,97,62,97,100,109,105,110,105,115,116,101,114,101,100,32,98,121,32,116\r
-,104,101,101,110,97,98,108,101,83,105,110,103,108,101,82,101,113,117,101,115,116\r
-,115,116,121,108,101,61,38,113,117,111,116,59,109,97,114,103,105,110,58,60,47,\r
-100,105,118,62,60,47,100,105,118,62,60,47,100,105,118,62,60,62,60,105,109,103,32\r
-,115,114,99,61,34,104,116,116,112,58,47,47,105,32,115,116,121,108,101,61,38,113,\r
-117,111,116,59,102,108,111,97,116,58,114,101,102,101,114,114,101,100,32,116,111,\r
-32,97,115,32,116,104,101,32,116,111,116,97,108,32,112,111,112,117,108,97,116,105\r
-,111,110,32,111,102,105,110,32,87,97,115,104,105,110,103,116,111,110,44,32,68,46\r
-,67,46,32,115,116,121,108,101,61,34,98,97,99,107,103,114,111,117,110,100,45,97,\r
-109,111,110,103,32,111,116,104,101,114,32,116,104,105,110,103,115,44,111,114,103\r
-,97,110,105,122,97,116,105,111,110,32,111,102,32,116,104,101,112,97,114,116,105,\r
-99,105,112,97,116,101,100,32,105,110,32,116,104,101,116,104,101,32,105,110,116,\r
-114,111,100,117,99,116,105,111,110,32,111,102,105,100,101,110,116,105,102,105,\r
-101,100,32,119,105,116,104,32,116,104,101,102,105,99,116,105,111,110,97,108,32,\r
-99,104,97,114,97,99,116,101,114,32,79,120,102,111,114,100,32,85,110,105,118,101,\r
-114,115,105,116,121,32,109,105,115,117,110,100,101,114,115,116,97,110,100,105,\r
-110,103,32,111,102,84,104,101,114,101,32,97,114,101,44,32,104,111,119,101,118,\r
-101,114,44,115,116,121,108,101,115,104,101,101,116,34,32,104,114,101,102,61,34,\r
-47,67,111,108,117,109,98,105,97,32,85,110,105,118,101,114,115,105,116,121,101,\r
-120,112,97,110,100,101,100,32,116,111,32,105,110,99,108,117,100,101,117,115,117,\r
-97,108,108,121,32,114,101,102,101,114,114,101,100,32,116,111,105,110,100,105,99,\r
-97,116,105,110,103,32,116,104,97,116,32,116,104,101,104,97,118,101,32,115,117,\r
-103,103,101,115,116,101,100,32,116,104,97,116,97,102,102,105,108,105,97,116,101,\r
-100,32,119,105,116,104,32,116,104,101,99,111,114,114,101,108,97,116,105,111,110,\r
-32,98,101,116,119,101,101,110,110,117,109,98,101,114,32,111,102,32,100,105,102,\r
-102,101,114,101,110,116,62,60,47,116,100,62,60,47,116,114,62,60,47,116,97,98,108\r
-,101,62,82,101,112,117,98,108,105,99,32,111,102,32,73,114,101,108,97,110,100,10,\r
-60,47,115,99,114,105,112,116,62,10,60,115,99,114,105,112,116,32,117,110,100,101,\r
-114,32,116,104,101,32,105,110,102,108,117,101,110,99,101,99,111,110,116,114,105,\r
-98,117,116,105,111,110,32,116,111,32,116,104,101,79,102,102,105,99,105,97,108,32\r
-,119,101,98,115,105,116,101,32,111,102,104,101,97,100,113,117,97,114,116,101,114\r
-,115,32,111,102,32,116,104,101,99,101,110,116,101,114,101,100,32,97,114,111,117,\r
-110,100,32,116,104,101,105,109,112,108,105,99,97,116,105,111,110,115,32,111,102,\r
-32,116,104,101,104,97,118,101,32,98,101,101,110,32,100,101,118,101,108,111,112,\r
-101,100,70,101,100,101,114,97,108,32,82,101,112,117,98,108,105,99,32,111,102,98,\r
-101,99,97,109,101,32,105,110,99,114,101,97,115,105,110,103,108,121,99,111,110,\r
-116,105,110,117,97,116,105,111,110,32,111,102,32,116,104,101,78,111,116,101,44,\r
-32,104,111,119,101,118,101,114,44,32,116,104,97,116,115,105,109,105,108,97,114,\r
-32,116,111,32,116,104,97,116,32,111,102,32,99,97,112,97,98,105,108,105,116,105,\r
-101,115,32,111,102,32,116,104,101,97,99,99,111,114,100,97,110,99,101,32,119,105,\r
-116,104,32,116,104,101,112,97,114,116,105,99,105,112,97,110,116,115,32,105,110,\r
-32,116,104,101,102,117,114,116,104,101,114,32,100,101,118,101,108,111,112,109,\r
-101,110,116,117,110,100,101,114,32,116,104,101,32,100,105,114,101,99,116,105,111\r
-,110,105,115,32,111,102,116,101,110,32,99,111,110,115,105,100,101,114,101,100,\r
-104,105,115,32,121,111,117,110,103,101,114,32,98,114,111,116,104,101,114,60,47,\r
-116,100,62,60,47,116,114,62,60,47,116,97,98,108,101,62,60,97,32,104,116,116,112,\r
-45,101,113,117,105,118,61,34,88,45,85,65,45,112,104,121,115,105,99,97,108,32,112\r
-,114,111,112,101,114,116,105,101,115,111,102,32,66,114,105,116,105,115,104,32,67\r
-,111,108,117,109,98,105,97,104,97,115,32,98,101,101,110,32,99,114,105,116,105,99\r
-,105,122,101,100,40,119,105,116,104,32,116,104,101,32,101,120,99,101,112,116,105\r
-,111,110,113,117,101,115,116,105,111,110,115,32,97,98,111,117,116,32,116,104,101\r
-,112,97,115,115,105,110,103,32,116,104,114,111,117,103,104,32,116,104,101,48,34,\r
-32,99,101,108,108,112,97,100,100,105,110,103,61,34,48,34,32,116,104,111,117,115,\r
-97,110,100,115,32,111,102,32,112,101,111,112,108,101,114,101,100,105,114,101,99,\r
-116,115,32,104,101,114,101,46,32,70,111,114,104,97,118,101,32,99,104,105,108,100\r
-,114,101,110,32,117,110,100,101,114,37,51,69,37,51,67,47,115,99,114,105,112,116,\r
-37,51,69,34,41,41,59,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119\r
-,119,119,46,60,108,105,62,60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,\r
-47,115,105,116,101,95,110,97,109,101,34,32,99,111,110,116,101,110,116,61,34,116,\r
-101,120,116,45,100,101,99,111,114,97,116,105,111,110,58,110,111,110,101,115,116,\r
-121,108,101,61,34,100,105,115,112,108,97,121,58,32,110,111,110,101,60,109,101,\r
-116,97,32,104,116,116,112,45,101,113,117,105,118,61,34,88,45,110,101,119,32,68,\r
-97,116,101,40,41,46,103,101,116,84,105,109,101,40,41,32,116,121,112,101,61,34,\r
-105,109,97,103,101,47,120,45,105,99,111,110,34,60,47,115,112,97,110,62,60,115,\r
-112,97,110,32,99,108,97,115,115,61,34,108,97,110,103,117,97,103,101,61,34,106,97\r
-,118,97,115,99,114,105,112,116,119,105,110,100,111,119,46,108,111,99,97,116,105,\r
-111,110,46,104,114,101,102,60,97,32,104,114,101,102,61,34,106,97,118,97,115,99,\r
-114,105,112,116,58,45,45,62,13,10,60,115,99,114,105,112,116,32,116,121,112,101,\r
-61,34,116,60,97,32,104,114,101,102,61,39,104,116,116,112,58,47,47,119,119,119,46\r
-,104,111,114,116,99,117,116,32,105,99,111,110,34,32,104,114,101,102,61,34,60,47,\r
-100,105,118,62,13,10,60,100,105,118,32,99,108,97,115,115,61,34,60,115,99,114,105\r
-,112,116,32,115,114,99,61,34,104,116,116,112,58,47,47,34,32,114,101,108,61,34,\r
-115,116,121,108,101,115,104,101,101,116,34,32,116,60,47,100,105,118,62,10,60,115\r
-,99,114,105,112,116,32,116,121,112,101,61,47,97,62,32,60,97,32,104,114,101,102,\r
-61,34,104,116,116,112,58,47,47,32,97,108,108,111,119,84,114,97,110,115,112,97,\r
-114,101,110,99,121,61,34,88,45,85,65,45,67,111,109,112,97,116,105,98,108,101,34,\r
-32,99,111,110,114,101,108,97,116,105,111,110,115,104,105,112,32,98,101,116,119,\r
-101,101,110,10,60,47,115,99,114,105,112,116,62,13,10,60,115,99,114,105,112,116,\r
-32,60,47,97,62,60,47,108,105,62,60,47,117,108,62,60,47,100,105,118,62,97,115,115\r
-,111,99,105,97,116,101,100,32,119,105,116,104,32,116,104,101,32,112,114,111,103,\r
-114,97,109,109,105,110,103,32,108,97,110,103,117,97,103,101,60,47,97,62,60,97,32\r
-,104,114,101,102,61,34,104,116,116,112,58,47,47,60,47,97,62,60,47,108,105,62,60,\r
-108,105,32,99,108,97,115,115,61,34,102,111,114,109,32,97,99,116,105,111,110,61,\r
-34,104,116,116,112,58,47,47,60,100,105,118,32,115,116,121,108,101,61,34,100,105,\r
-115,112,108,97,121,58,116,121,112,101,61,34,116,101,120,116,34,32,110,97,109,101\r
-,61,34,113,34,60,116,97,98,108,101,32,119,105,100,116,104,61,34,49,48,48,37,34,\r
-32,98,97,99,107,103,114,111,117,110,100,45,112,111,115,105,116,105,111,110,58,34\r
-,32,98,111,114,100,101,114,61,34,48,34,32,119,105,100,116,104,61,34,114,101,108,\r
-61,34,115,104,111,114,116,99,117,116,32,105,99,111,110,34,32,104,54,62,60,117,\r
-108,62,60,108,105,62,60,97,32,104,114,101,102,61,34,32,32,60,109,101,116,97,32,\r
-104,116,116,112,45,101,113,117,105,118,61,34,99,115,115,34,32,109,101,100,105,97\r
-,61,34,115,99,114,101,101,110,34,32,114,101,115,112,111,110,115,105,98,108,101,\r
-32,102,111,114,32,116,104,101,32,34,32,116,121,112,101,61,34,97,112,112,108,105,\r
-99,97,116,105,111,110,47,34,32,115,116,121,108,101,61,34,98,97,99,107,103,114,\r
-111,117,110,100,45,104,116,109,108,59,32,99,104,97,114,115,101,116,61,117,116,\r
-102,45,56,34,32,97,108,108,111,119,116,114,97,110,115,112,97,114,101,110,99,121,\r
-61,34,115,116,121,108,101,115,104,101,101,116,34,32,116,121,112,101,61,34,116,\r
-101,13,10,60,109,101,116,97,32,104,116,116,112,45,101,113,117,105,118,61,34,62,\r
-60,47,115,112,97,110,62,60,115,112,97,110,32,99,108,97,115,115,61,34,48,34,32,99\r
-,101,108,108,115,112,97,99,105,110,103,61,34,48,34,62,59,10,60,47,115,99,114,105\r
-,112,116,62,10,60,115,99,114,105,112,116,32,115,111,109,101,116,105,109,101,115,\r
-32,99,97,108,108,101,100,32,116,104,101,100,111,101,115,32,110,111,116,32,110,\r
-101,99,101,115,115,97,114,105,108,121,70,111,114,32,109,111,114,101,32,105,110,\r
-102,111,114,109,97,116,105,111,110,97,116,32,116,104,101,32,98,101,103,105,110,\r
-110,105,110,103,32,111,102,32,60,33,68,79,67,84,89,80,69,32,104,116,109,108,62,\r
-60,104,116,109,108,112,97,114,116,105,99,117,108,97,114,108,121,32,105,110,32,\r
-116,104,101,32,116,121,112,101,61,34,104,105,100,100,101,110,34,32,110,97,109,\r
-101,61,34,106,97,118,97,115,99,114,105,112,116,58,118,111,105,100,40,48,41,59,34\r
-,101,102,102,101,99,116,105,118,101,110,101,115,115,32,111,102,32,116,104,101,32\r
-,97,117,116,111,99,111,109,112,108,101,116,101,61,34,111,102,102,34,32,103,101,\r
-110,101,114,97,108,108,121,32,99,111,110,115,105,100,101,114,101,100,62,60,105,\r
-110,112,117,116,32,116,121,112,101,61,34,116,101,120,116,34,32,34,62,60,47,115,\r
-99,114,105,112,116,62,13,10,60,115,99,114,105,112,116,116,104,114,111,117,103,\r
-104,111,117,116,32,116,104,101,32,119,111,114,108,100,99,111,109,109,111,110,32,\r
-109,105,115,99,111,110,99,101,112,116,105,111,110,97,115,115,111,99,105,97,116,\r
-105,111,110,32,119,105,116,104,32,116,104,101,60,47,100,105,118,62,10,60,47,100,\r
-105,118,62,10,60,100,105,118,32,99,100,117,114,105,110,103,32,104,105,115,32,108\r
-,105,102,101,116,105,109,101,44,99,111,114,114,101,115,112,111,110,100,105,110,\r
-103,32,116,111,32,116,104,101,116,121,112,101,61,34,105,109,97,103,101,47,120,45\r
-,105,99,111,110,34,32,97,110,32,105,110,99,114,101,97,115,105,110,103,32,110,117\r
-,109,98,101,114,100,105,112,108,111,109,97,116,105,99,32,114,101,108,97,116,105,\r
-111,110,115,97,114,101,32,111,102,116,101,110,32,99,111,110,115,105,100,101,114,\r
-101,100,109,101,116,97,32,99,104,97,114,115,101,116,61,34,117,116,102,45,56,34,\r
-32,60,105,110,112,117,116,32,116,121,112,101,61,34,116,101,120,116,34,32,101,120\r
-,97,109,112,108,101,115,32,105,110,99,108,117,100,101,32,116,104,101,34,62,60,\r
-105,109,103,32,115,114,99,61,34,104,116,116,112,58,47,47,105,112,97,114,116,105,\r
-99,105,112,97,116,105,111,110,32,105,110,32,116,104,101,116,104,101,32,101,115,\r
-116,97,98,108,105,115,104,109,101,110,116,32,111,102,10,60,47,100,105,118,62,10,\r
-60,100,105,118,32,99,108,97,115,115,61,34,38,97,109,112,59,110,98,115,112,59,38,\r
-97,109,112,59,110,98,115,112,59,116,111,32,100,101,116,101,114,109,105,110,101,\r
-32,119,104,101,116,104,101,114,113,117,105,116,101,32,100,105,102,102,101,114,\r
-101,110,116,32,102,114,111,109,109,97,114,107,101,100,32,116,104,101,32,98,101,\r
-103,105,110,110,105,110,103,100,105,115,116,97,110,99,101,32,98,101,116,119,101,\r
-101,110,32,116,104,101,99,111,110,116,114,105,98,117,116,105,111,110,115,32,116,\r
-111,32,116,104,101,99,111,110,102,108,105,99,116,32,98,101,116,119,101,101,110,\r
-32,116,104,101,119,105,100,101,108,121,32,99,111,110,115,105,100,101,114,101,100\r
-,32,116,111,119,97,115,32,111,110,101,32,111,102,32,116,104,101,32,102,105,114,\r
-115,116,119,105,116,104,32,118,97,114,121,105,110,103,32,100,101,103,114,101,101\r
-,115,104,97,118,101,32,115,112,101,99,117,108,97,116,101,100,32,116,104,97,116,\r
-40,100,111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,112,\r
-97,114,116,105,99,105,112,97,116,105,110,103,32,105,110,32,116,104,101,111,114,\r
-105,103,105,110,97,108,108,121,32,100,101,118,101,108,111,112,101,100,101,116,97\r
-,32,99,104,97,114,115,101,116,61,34,117,116,102,45,56,34,62,32,116,121,112,101,\r
-61,34,116,101,120,116,47,99,115,115,34,32,47,62,10,105,110,116,101,114,99,104,97\r
-,110,103,101,97,98,108,121,32,119,105,116,104,109,111,114,101,32,99,108,111,115,\r
-101,108,121,32,114,101,108,97,116,101,100,115,111,99,105,97,108,32,97,110,100,32\r
-,112,111,108,105,116,105,99,97,108,116,104,97,116,32,119,111,117,108,100,32,111,\r
-116,104,101,114,119,105,115,101,112,101,114,112,101,110,100,105,99,117,108,97,\r
-114,32,116,111,32,116,104,101,115,116,121,108,101,32,116,121,112,101,61,34,116,\r
-101,120,116,47,99,115,115,116,121,112,101,61,34,115,117,98,109,105,116,34,32,110\r
-,97,109,101,61,34,102,97,109,105,108,105,101,115,32,114,101,115,105,100,105,110,\r
-103,32,105,110,100,101,118,101,108,111,112,105,110,103,32,99,111,117,110,116,114\r
-,105,101,115,99,111,109,112,117,116,101,114,32,112,114,111,103,114,97,109,109,\r
-105,110,103,101,99,111,110,111,109,105,99,32,100,101,118,101,108,111,112,109,101\r
-,110,116,100,101,116,101,114,109,105,110,97,116,105,111,110,32,111,102,32,116,\r
-104,101,102,111,114,32,109,111,114,101,32,105,110,102,111,114,109,97,116,105,111\r
-,110,111,110,32,115,101,118,101,114,97,108,32,111,99,99,97,115,105,111,110,115,\r
-112,111,114,116,117,103,117,195,170,115,32,40,69,117,114,111,112,101,117,41,208,\r
-163,208,186,209,128,208,176,209,151,208,189,209,129,209,140,208,186,208,176,209,\r
-131,208,186,209,128,208,176,209,151,208,189,209,129,209,140,208,186,208,176,208,\r
-160,208,190,209,129,209,129,208,184,208,185,209,129,208,186,208,190,208,185,208,\r
-188,208,176,209,130,208,181,209,128,208,184,208,176,208,187,208,190,208,178,208,\r
-184,208,189,209,132,208,190,209,128,208,188,208,176,209,134,208,184,208,184,209,\r
-131,208,191,209,128,208,176,208,178,208,187,208,181,208,189,208,184,209,143,208,\r
-189,208,181,208,190,208,177,209,133,208,190,208,180,208,184,208,188,208,190,208,\r
-184,208,189,209,132,208,190,209,128,208,188,208,176,209,134,208,184,209,143,208,\r
-152,208,189,209,132,208,190,209,128,208,188,208,176,209,134,208,184,209,143,208,\r
-160,208,181,209,129,208,191,209,131,208,177,208,187,208,184,208,186,208,184,208,\r
-186,208,190,208,187,208,184,209,135,208,181,209,129,209,130,208,178,208,190,208,\r
-184,208,189,209,132,208,190,209,128,208,188,208,176,209,134,208,184,209,142,209,\r
-130,208,181,209,128,209,128,208,184,209,130,208,190,209,128,208,184,208,184,208,\r
-180,208,190,209,129,209,130,208,176,209,130,208,190,209,135,208,189,208,190,216,\r
-167,217,132,217,133,216,170,217,136,216,167,216,172,216,175,217,136,217,134,216,\r
-167,217,132,216,167,216,180,216,170,216,177,216,167,217,131,216,167,216,170,216,\r
-167,217,132,216,167,217,130,216,170,216,177,216,167,216,173,216,167,216,170,104,\r
-116,109,108,59,32,99,104,97,114,115,101,116,61,85,84,70,45,56,34,32,115,101,116,\r
-84,105,109,101,111,117,116,40,102,117,110,99,116,105,111,110,40,41,100,105,115,\r
-112,108,97,121,58,105,110,108,105,110,101,45,98,108,111,99,107,59,60,105,110,112\r
-,117,116,32,116,121,112,101,61,34,115,117,98,109,105,116,34,32,116,121,112,101,\r
-32,61,32,39,116,101,120,116,47,106,97,118,97,115,99,114,105,60,105,109,103,32,\r
-115,114,99,61,34,104,116,116,112,58,47,47,119,119,119,46,34,32,34,104,116,116,\r
-112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,115,104,111,114,116,99,117,\r
-116,32,105,99,111,110,34,32,104,114,101,102,61,34,34,32,97,117,116,111,99,111,\r
-109,112,108,101,116,101,61,34,111,102,102,34,32,60,47,97,62,60,47,100,105,118,62\r
-,60,100,105,118,32,99,108,97,115,115,61,60,47,97,62,60,47,108,105,62,10,60,108,\r
-105,32,99,108,97,115,115,61,34,99,115,115,34,32,116,121,112,101,61,34,116,101,\r
-120,116,47,99,115,115,34,32,60,102,111,114,109,32,97,99,116,105,111,110,61,34,\r
-104,116,116,112,58,47,47,120,116,47,99,115,115,34,32,104,114,101,102,61,34,104,\r
-116,116,112,58,47,47,108,105,110,107,32,114,101,108,61,34,97,108,116,101,114,110\r
-,97,116,101,34,32,13,10,60,115,99,114,105,112,116,32,116,121,112,101,61,34,116,\r
-101,120,116,47,32,111,110,99,108,105,99,107,61,34,106,97,118,97,115,99,114,105,\r
-112,116,58,40,110,101,119,32,68,97,116,101,41,46,103,101,116,84,105,109,101,40,\r
-41,125,104,101,105,103,104,116,61,34,49,34,32,119,105,100,116,104,61,34,49,34,32\r
-,80,101,111,112,108,101,39,115,32,82,101,112,117,98,108,105,99,32,111,102,32,32,\r
-60,97,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,116,101,\r
-120,116,45,100,101,99,111,114,97,116,105,111,110,58,117,110,100,101,114,116,104,\r
-101,32,98,101,103,105,110,110,105,110,103,32,111,102,32,116,104,101,32,60,47,100\r
-,105,118,62,10,60,47,100,105,118,62,10,60,47,100,105,118,62,10,101,115,116,97,98\r
-,108,105,115,104,109,101,110,116,32,111,102,32,116,104,101,32,60,47,100,105,118,\r
-62,60,47,100,105,118,62,60,47,100,105,118,62,60,47,100,35,118,105,101,119,112,\r
-111,114,116,123,109,105,110,45,104,101,105,103,104,116,58,10,60,115,99,114,105,\r
-112,116,32,115,114,99,61,34,104,116,116,112,58,47,47,111,112,116,105,111,110,62,\r
-60,111,112,116,105,111,110,32,118,97,108,117,101,61,111,102,116,101,110,32,114,\r
-101,102,101,114,114,101,100,32,116,111,32,97,115,32,47,111,112,116,105,111,110,\r
-62,10,60,111,112,116,105,111,110,32,118,97,108,117,60,33,68,79,67,84,89,80,69,32\r
-,104,116,109,108,62,10,60,33,45,45,91,73,110,116,101,114,110,97,116,105,111,110,\r
-97,108,32,65,105,114,112,111,114,116,62,10,60,97,32,104,114,101,102,61,34,104,\r
-116,116,112,58,47,47,119,119,119,60,47,97,62,60,97,32,104,114,101,102,61,34,104,\r
-116,116,112,58,47,47,119,224,184,160,224,184,178,224,184,169,224,184,178,224,185\r
-,132,224,184,151,224,184,162,225,131,165,225,131,144,225,131,160,225,131,151,225\r
-,131,163,225,131,154,225,131,152,230,173,163,233,171,148,228,184,173,230,150,135\r
-,32,40,231,185,129,233,171,148,41,224,164,168,224,164,191,224,164,176,224,165,\r
-141,224,164,166,224,165,135,224,164,182,224,164,161,224,164,190,224,164,137,224,\r
-164,168,224,164,178,224,165,139,224,164,161,224,164,149,224,165,141,224,164,183,\r
-224,165,135,224,164,164,224,165,141,224,164,176,224,164,156,224,164,190,224,164,\r
-168,224,164,149,224,164,190,224,164,176,224,165,128,224,164,184,224,164,130,224,\r
-164,172,224,164,130,224,164,167,224,164,191,224,164,164,224,164,184,224,165,141,\r
-224,164,165,224,164,190,224,164,170,224,164,168,224,164,190,224,164,184,224,165,\r
-141,224,164,181,224,165,128,224,164,149,224,164,190,224,164,176,224,164,184,224,\r
-164,130,224,164,184,224,165,141,224,164,149,224,164,176,224,164,163,224,164,184,\r
-224,164,190,224,164,174,224,164,151,224,165,141,224,164,176,224,165,128,224,164,\r
-154,224,164,191,224,164,159,224,165,141,224,164,160,224,165,139,224,164,130,224,\r
-164,181,224,164,191,224,164,156,224,165,141,224,164,158,224,164,190,224,164,168,\r
-224,164,133,224,164,174,224,165,135,224,164,176,224,164,191,224,164,149,224,164,\r
-190,224,164,181,224,164,191,224,164,173,224,164,191,224,164,168,224,165,141,224,\r
-164,168,224,164,151,224,164,190,224,164,161,224,164,191,224,164,175,224,164,190,\r
-224,164,129,224,164,149,224,165,141,224,164,175,224,165,139,224,164,130,224,164,\r
-149,224,164,191,224,164,184,224,165,129,224,164,176,224,164,149,224,165,141,224,\r
-164,183,224,164,190,224,164,170,224,164,185,224,165,129,224,164,129,224,164,154,\r
-224,164,164,224,165,128,224,164,170,224,165,141,224,164,176,224,164,172,224,164,\r
-130,224,164,167,224,164,168,224,164,159,224,164,191,224,164,170,224,165,141,224,\r
-164,170,224,164,163,224,165,128,224,164,149,224,165,141,224,164,176,224,164,191,\r
-224,164,149,224,165,135,224,164,159,224,164,170,224,165,141,224,164,176,224,164,\r
-190,224,164,176,224,164,130,224,164,173,224,164,170,224,165,141,224,164,176,224,\r
-164,190,224,164,170,224,165,141,224,164,164,224,164,174,224,164,190,224,164,178,\r
-224,164,191,224,164,149,224,165,139,224,164,130,224,164,176,224,164,171,224,164,\r
-188,224,165,141,224,164,164,224,164,190,224,164,176,224,164,168,224,164,191,224,\r
-164,176,224,165,141,224,164,174,224,164,190,224,164,163,224,164,178,224,164,191,\r
-224,164,174,224,164,191,224,164,159,224,165,135,224,164,161,100,101,115,99,114,\r
-105,112,116,105,111,110,34,32,99,111,110,116,101,110,116,61,34,100,111,99,117,\r
-109,101,110,116,46,108,111,99,97,116,105,111,110,46,112,114,111,116,46,103,101,\r
-116,69,108,101,109,101,110,116,115,66,121,84,97,103,78,97,109,101,40,60,33,68,79\r
-,67,84,89,80,69,32,104,116,109,108,62,10,60,104,116,109,108,32,60,109,101,116,97\r
-,32,99,104,97,114,115,101,116,61,34,117,116,102,45,56,34,62,58,117,114,108,34,32\r
-,99,111,110,116,101,110,116,61,34,104,116,116,112,58,47,47,46,99,115,115,34,32,\r
-114,101,108,61,34,115,116,121,108,101,115,104,101,101,116,34,115,116,121,108,101\r
-,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,62,116,121,112,101,61\r
-,34,116,101,120,116,47,99,115,115,34,32,104,114,101,102,61,34,119,51,46,111,114,\r
-103,47,49,57,57,57,47,120,104,116,109,108,34,32,120,109,108,116,121,112,101,61,\r
-34,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,34,32,109,101,116,104\r
-,111,100,61,34,103,101,116,34,32,97,99,116,105,111,110,61,34,108,105,110,107,32,\r
-114,101,108,61,34,115,116,121,108,101,115,104,101,101,116,34,32,32,61,32,100,111\r
-,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,116,121,112,\r
-101,61,34,105,109,97,103,101,47,120,45,105,99,111,110,34,32,47,62,99,101,108,108\r
-,112,97,100,100,105,110,103,61,34,48,34,32,99,101,108,108,115,112,46,99,115,115,\r
-34,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34,32,60,47,97,62,60,\r
-47,108,105,62,60,108,105,62,60,97,32,104,114,101,102,61,34,34,32,119,105,100,116\r
-,104,61,34,49,34,32,104,101,105,103,104,116,61,34,49,34,34,62,60,97,32,104,114,\r
-101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,115,116,121,108,101,61,34,\r
-100,105,115,112,108,97,121,58,110,111,110,101,59,34,62,97,108,116,101,114,110,97\r
-,116,101,34,32,116,121,112,101,61,34,97,112,112,108,105,45,47,47,87,51,67,47,47,\r
-68,84,68,32,88,72,84,77,76,32,49,46,48,32,101,108,108,115,112,97,99,105,110,103,\r
-61,34,48,34,32,99,101,108,108,112,97,100,32,116,121,112,101,61,34,104,105,100,\r
-100,101,110,34,32,118,97,108,117,101,61,34,47,97,62,38,110,98,115,112,59,60,115,\r
-112,97,110,32,114,111,108,101,61,34,115,10,60,105,110,112,117,116,32,116,121,112\r
-,101,61,34,104,105,100,100,101,110,34,32,108,97,110,103,117,97,103,101,61,34,74,\r
-97,118,97,83,99,114,105,112,116,34,32,32,100,111,99,117,109,101,110,116,46,103,\r
-101,116,69,108,101,109,101,110,116,115,66,103,61,34,48,34,32,99,101,108,108,115,\r
-112,97,99,105,110,103,61,34,48,34,32,121,112,101,61,34,116,101,120,116,47,99,115\r
-,115,34,32,109,101,100,105,97,61,34,116,121,112,101,61,39,116,101,120,116,47,106\r
-,97,118,97,115,99,114,105,112,116,39,119,105,116,104,32,116,104,101,32,101,120,\r
-99,101,112,116,105,111,110,32,111,102,32,121,112,101,61,34,116,101,120,116,47,99\r
-,115,115,34,32,114,101,108,61,34,115,116,32,104,101,105,103,104,116,61,34,49,34,\r
-32,119,105,100,116,104,61,34,49,34,32,61,39,43,101,110,99,111,100,101,85,82,73,\r
-67,111,109,112,111,110,101,110,116,40,60,108,105,110,107,32,114,101,108,61,34,97\r
-,108,116,101,114,110,97,116,101,34,32,10,98,111,100,121,44,32,116,114,44,32,105,\r
-110,112,117,116,44,32,116,101,120,116,109,101,116,97,32,110,97,109,101,61,34,114\r
-,111,98,111,116,115,34,32,99,111,110,109,101,116,104,111,100,61,34,112,111,115,\r
-116,34,32,97,99,116,105,111,110,61,34,62,10,60,97,32,104,114,101,102,61,34,104,\r
-116,116,112,58,47,47,119,119,119,46,99,115,115,34,32,114,101,108,61,34,115,116,\r
-121,108,101,115,104,101,101,116,34,32,60,47,100,105,118,62,60,47,100,105,118,62,\r
-60,100,105,118,32,99,108,97,115,115,108,97,110,103,117,97,103,101,61,34,106,97,\r
-118,97,115,99,114,105,112,116,34,62,97,114,105,97,45,104,105,100,100,101,110,61,\r
-34,116,114,117,101,34,62,194,183,60,114,105,112,116,34,32,116,121,112,101,61,34,\r
-116,101,120,116,47,106,97,118,97,115,108,61,48,59,125,41,40,41,59,10,40,102,117,\r
-110,99,116,105,111,110,40,41,123,98,97,99,107,103,114,111,117,110,100,45,105,109\r
-,97,103,101,58,32,117,114,108,40,47,97,62,60,47,108,105,62,60,108,105,62,60,97,\r
-32,104,114,101,102,61,34,104,9,9,60,108,105,62,60,97,32,104,114,101,102,61,34,\r
-104,116,116,112,58,47,47,97,116,111,114,34,32,97,114,105,97,45,104,105,100,100,\r
-101,110,61,34,116,114,117,62,32,60,97,32,104,114,101,102,61,34,104,116,116,112,\r
-58,47,47,119,119,119,46,108,97,110,103,117,97,103,101,61,34,106,97,118,97,115,99\r
-,114,105,112,116,34,32,47,111,112,116,105,111,110,62,10,60,111,112,116,105,111,\r
-110,32,118,97,108,117,101,47,100,105,118,62,60,47,100,105,118,62,60,100,105,118,\r
-32,99,108,97,115,115,61,114,97,116,111,114,34,32,97,114,105,97,45,104,105,100,\r
-100,101,110,61,34,116,114,101,61,40,110,101,119,32,68,97,116,101,41,46,103,101,\r
-116,84,105,109,101,40,41,112,111,114,116,117,103,117,195,170,115,32,40,100,111,\r
-32,66,114,97,115,105,108,41,208,190,209,128,208,179,208,176,208,189,208,184,208,\r
-183,208,176,209,134,208,184,208,184,208,178,208,190,208,183,208,188,208,190,208,\r
-182,208,189,208,190,209,129,209,130,209,140,208,190,208,177,209,128,208,176,208,\r
-183,208,190,208,178,208,176,208,189,208,184,209,143,209,128,208,181,208,179,208,\r
-184,209,129,209,130,209,128,208,176,209,134,208,184,208,184,208,178,208,190,208,\r
-183,208,188,208,190,208,182,208,189,208,190,209,129,209,130,208,184,208,190,208,\r
-177,209,143,208,183,208,176,209,130,208,181,208,187,209,140,208,189,208,176,60,\r
-33,68,79,67,84,89,80,69,32,104,116,109,108,32,80,85,66,76,73,67,32,34,110,116,45\r
-,84,121,112,101,34,32,99,111,110,116,101,110,116,61,34,116,101,120,116,47,60,109\r
-,101,116,97,32,104,116,116,112,45,101,113,117,105,118,61,34,67,111,110,116,101,\r
-114,97,110,115,105,116,105,111,110,97,108,47,47,69,78,34,32,34,104,116,116,112,\r
-58,60,104,116,109,108,32,120,109,108,110,115,61,34,104,116,116,112,58,47,47,119,\r
-119,119,45,47,47,87,51,67,47,47,68,84,68,32,88,72,84,77,76,32,49,46,48,32,84,68,\r
-84,68,47,120,104,116,109,108,49,45,116,114,97,110,115,105,116,105,111,110,97,108\r
-,47,47,119,119,119,46,119,51,46,111,114,103,47,84,82,47,120,104,116,109,108,49,\r
-47,112,101,32,61,32,39,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,\r
-39,59,60,109,101,116,97,32,110,97,109,101,61,34,100,101,115,99,114,105,112,116,\r
-105,111,110,112,97,114,101,110,116,78,111,100,101,46,105,110,115,101,114,116,66,\r
-101,102,111,114,101,60,105,110,112,117,116,32,116,121,112,101,61,34,104,105,100,\r
-100,101,110,34,32,110,97,106,115,34,32,116,121,112,101,61,34,116,101,120,116,47,\r
-106,97,118,97,115,99,114,105,40,100,111,99,117,109,101,110,116,41,46,114,101,97,\r
-100,121,40,102,117,110,99,116,105,115,99,114,105,112,116,32,116,121,112,101,61,\r
-34,116,101,120,116,47,106,97,118,97,115,105,109,97,103,101,34,32,99,111,110,116,\r
-101,110,116,61,34,104,116,116,112,58,47,47,85,65,45,67,111,109,112,97,116,105,98\r
-,108,101,34,32,99,111,110,116,101,110,116,61,116,109,108,59,32,99,104,97,114,115\r
-,101,116,61,117,116,102,45,56,34,32,47,62,10,108,105,110,107,32,114,101,108,61,\r
-34,115,104,111,114,116,99,117,116,32,105,99,111,110,60,108,105,110,107,32,114,\r
-101,108,61,34,115,116,121,108,101,115,104,101,101,116,34,32,60,47,115,99,114,105\r
-,112,116,62,10,60,115,99,114,105,112,116,32,116,121,112,101,61,61,32,100,111,99,\r
-117,109,101,110,116,46,99,114,101,97,116,101,69,108,101,109,101,110,60,97,32,116\r
-,97,114,103,101,116,61,34,95,98,108,97,110,107,34,32,104,114,101,102,61,32,100,\r
-111,99,117,109,101,110,116,46,103,101,116,69,108,101,109,101,110,116,115,66,105,\r
-110,112,117,116,32,116,121,112,101,61,34,116,101,120,116,34,32,110,97,109,101,61\r
-,97,46,116,121,112,101,32,61,32,39,116,101,120,116,47,106,97,118,97,115,99,114,\r
-105,110,112,117,116,32,116,121,112,101,61,34,104,105,100,100,101,110,34,32,110,\r
-97,109,101,104,116,109,108,59,32,99,104,97,114,115,101,116,61,117,116,102,45,56,\r
-34,32,47,62,100,116,100,34,62,10,60,104,116,109,108,32,120,109,108,110,115,61,34\r
-,104,116,116,112,45,47,47,87,51,67,47,47,68,84,68,32,72,84,77,76,32,52,46,48,49,\r
-32,84,101,110,116,115,66,121,84,97,103,78,97,109,101,40,39,115,99,114,105,112,\r
-116,39,41,105,110,112,117,116,32,116,121,112,101,61,34,104,105,100,100,101,110,\r
-34,32,110,97,109,60,115,99,114,105,112,116,32,116,121,112,101,61,34,116,101,120,\r
-116,47,106,97,118,97,115,34,32,115,116,121,108,101,61,34,100,105,115,112,108,97,\r
-121,58,110,111,110,101,59,34,62,100,111,99,117,109,101,110,116,46,103,101,116,69\r
-,108,101,109,101,110,116,66,121,73,100,40,61,100,111,99,117,109,101,110,116,46,\r
-99,114,101,97,116,101,69,108,101,109,101,110,116,40,39,32,116,121,112,101,61,39,\r
-116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,39,105,110,112,117,116,\r
-32,116,121,112,101,61,34,116,101,120,116,34,32,110,97,109,101,61,34,100,46,103,\r
-101,116,69,108,101,109,101,110,116,115,66,121,84,97,103,78,97,109,101,40,115,110\r
-,105,99,97,108,34,32,104,114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,\r
-46,67,47,47,68,84,68,32,72,84,77,76,32,52,46,48,49,32,84,114,97,110,115,105,116,\r
-60,115,116,121,108,101,32,116,121,112,101,61,34,116,101,120,116,47,99,115,115,34\r
-,62,10,10,60,115,116,121,108,101,32,116,121,112,101,61,34,116,101,120,116,47,99,\r
-115,115,34,62,105,111,110,97,108,46,100,116,100,34,62,10,60,104,116,109,108,32,\r
-120,109,108,110,115,61,104,116,116,112,45,101,113,117,105,118,61,34,67,111,110,\r
-116,101,110,116,45,84,121,112,101,100,105,110,103,61,34,48,34,32,99,101,108,108,\r
-115,112,97,99,105,110,103,61,34,48,34,104,116,109,108,59,32,99,104,97,114,115,\r
-101,116,61,117,116,102,45,56,34,32,47,62,10,32,115,116,121,108,101,61,34,100,105\r
-,115,112,108,97,121,58,110,111,110,101,59,34,62,60,60,108,105,62,60,97,32,104,\r
-114,101,102,61,34,104,116,116,112,58,47,47,119,119,119,46,32,116,121,112,101,61,\r
-39,116,101,120,116,47,106,97,118,97,115,99,114,105,112,116,39,62,208,180,208,181\r
-,209,143,209,130,208,181,208,187,209,140,208,189,208,190,209,129,209,130,208,184\r
-,209,129,208,190,208,190,209,130,208,178,208,181,209,130,209,129,209,130,208,178\r
-,208,184,208,184,208,191,209,128,208,190,208,184,208,183,208,178,208,190,208,180\r
-,209,129,209,130,208,178,208,176,208,177,208,181,208,183,208,190,208,191,208,176\r
-,209,129,208,189,208,190,209,129,209,130,208,184,224,164,170,224,165,129,224,164\r
-,184,224,165,141,224,164,164,224,164,191,224,164,149,224,164,190,224,164,149,224\r
-,164,190,224,164,130,224,164,151,224,165,141,224,164,176,224,165,135,224,164,184\r
-,224,164,137,224,164,168,224,165,141,224,164,185,224,165,139,224,164,130,224,164\r
-,168,224,165,135,224,164,181,224,164,191,224,164,167,224,164,190,224,164,168,224\r
-,164,184,224,164,173,224,164,190,224,164,171,224,164,191,224,164,149,224,165,141\r
-,224,164,184,224,164,191,224,164,130,224,164,151,224,164,184,224,165,129,224,164\r
-,176,224,164,149,224,165,141,224,164,183,224,164,191,224,164,164,224,164,149,224\r
-,165,137,224,164,170,224,165,128,224,164,176,224,164,190,224,164,135,224,164,159\r
-,224,164,181,224,164,191,224,164,156,224,165,141,224,164,158,224,164,190,224,164\r
-,170,224,164,168,224,164,149,224,164,190,224,164,176,224,165,141,224,164,176,224\r
-,164,181,224,164,190,224,164,136,224,164,184,224,164,149,224,165,141,224,164,176\r
-,224,164,191,224,164,175,224,164,164,224,164,190\r
-}\r
-;\r
-#endif  /* !BROTLI_EXTERNAL_DICTIONARY_DATA */\r
-\r
-static BrotliDictionary kBrotliDictionary = {\r
-  /* size_bits_by_length */\r
-  {\r
-    0, 0, 0, 0, 10, 10, 11, 11,\r
-    10, 10, 10, 10, 10, 9, 9, 8,\r
-    7, 7, 8, 7, 7, 6, 6, 5,\r
-    5, 0, 0, 0, 0, 0, 0, 0\r
-  },\r
-\r
-  /* offsets_by_length */\r
-  {\r
-    0, 0, 0, 0, 0, 4096, 9216, 21504,\r
-    35840, 44032, 53248, 63488, 74752, 87040, 93696, 100864,\r
-    104704, 106752, 108928, 113536, 115968, 118528, 119872, 121280,\r
-    122016, 122784, 122784, 122784, 122784, 122784, 122784, 122784\r
-  },\r
-\r
-  /* data_size ==  sizeof(kBrotliDictionaryData) */\r
-  122784,\r
-\r
-  /* data */\r
-#if defined(BROTLI_EXTERNAL_DICTIONARY_DATA)\r
-  NULL\r
-#else\r
-  kBrotliDictionaryData\r
-#endif\r
-};\r
-\r
-const BrotliDictionary* BrotliGetDictionary() {\r
-  return &kBrotliDictionary;\r
-}\r
-\r
-void BrotliSetDictionaryData(const uint8_t* data) {\r
-  if (!!data && !kBrotliDictionary.data) {\r
-    kBrotliDictionary.data = data;\r
-  }\r
-}\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/common/dictionary.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/common/dictionary.h
deleted file mode 100644 (file)
index a68a1c5..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Collection of static dictionary words. */\r
-\r
-#ifndef BROTLI_COMMON_DICTIONARY_H_\r
-#define BROTLI_COMMON_DICTIONARY_H_\r
-\r
-#include <brotli/port.h>\r
-#include <brotli/types.h>\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-typedef struct BrotliDictionary {\r
-  /**\r
-   * Number of bits to encode index of dictionary word in a bucket.\r
-   *\r
-   * Specification: Appendix A. Static Dictionary Data\r
-   *\r
-   * Words in a dictionary are bucketed by length.\r
-   * @c 0 means that there are no words of a given length.\r
-   * Dictionary consists of words with length of [4..24] bytes.\r
-   * Values at [0..3] and [25..31] indices should not be addressed.\r
-   */\r
-  uint8_t size_bits_by_length[32];\r
-\r
-  /* assert(offset[i + 1] == offset[i] + (bits[i] ? (i << bits[i]) : 0)) */\r
-  uint32_t offsets_by_length[32];\r
-\r
-  /* assert(data_size == offsets_by_length[31]) */\r
-  size_t data_size;\r
-\r
-  /* Data array is not bound, and should obey to size_bits_by_length values.\r
-     Specified size matches default (RFC 7932) dictionary. Its size is\r
-     defined by data_size */\r
-  const uint8_t* data;\r
-} BrotliDictionary;\r
-\r
-BROTLI_COMMON_API const BrotliDictionary* BrotliGetDictionary(void);\r
-\r
-/**\r
- * Sets dictionary data.\r
- *\r
- * When dictionary data is already set / present, this method is no-op.\r
- *\r
- * Dictionary data MUST be provided before BrotliGetDictionary is invoked.\r
- * This method is used ONLY in multi-client environment (e.g. C + Java),\r
- * to reduce storage by sharing single dictionary between implementations.\r
- */\r
-BROTLI_COMMON_API void BrotliSetDictionaryData(const uint8_t* data);\r
-\r
-#define BROTLI_MIN_DICTIONARY_WORD_LENGTH 4\r
-#define BROTLI_MAX_DICTIONARY_WORD_LENGTH 24\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
-\r
-#endif  /* BROTLI_COMMON_DICTIONARY_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/common/platform.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/common/platform.h
deleted file mode 100644 (file)
index 0bd5c46..0000000
+++ /dev/null
@@ -1,559 +0,0 @@
-/* Copyright 2016 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Macros for compiler / platform specific features and build options.\r
-\r
-   Build options are:\r
-    * BROTLI_BUILD_32_BIT disables 64-bit optimizations\r
-    * BROTLI_BUILD_64_BIT forces to use 64-bit optimizations\r
-    * BROTLI_BUILD_BIG_ENDIAN forces to use big-endian optimizations\r
-    * BROTLI_BUILD_ENDIAN_NEUTRAL disables endian-aware optimizations\r
-    * BROTLI_BUILD_LITTLE_ENDIAN forces to use little-endian optimizations\r
-    * BROTLI_BUILD_PORTABLE disables dangerous optimizations, like unaligned\r
-      read and overlapping memcpy; this reduces decompression speed by 5%\r
-    * BROTLI_BUILD_NO_RBIT disables "rbit" optimization for ARM CPUs\r
-    * BROTLI_DEBUG dumps file name and line number when decoder detects stream\r
-      or memory error\r
-    * BROTLI_ENABLE_LOG enables asserts and dumps various state information\r
-*/\r
-\r
-#ifndef BROTLI_COMMON_PLATFORM_H_\r
-#define BROTLI_COMMON_PLATFORM_H_\r
-\r
-//#include <string.h>  /* memcpy */\r
-//#include <stdlib.h>  /* malloc, free */\r
-\r
-#include <brotli/port.h>\r
-#include <brotli/types.h>\r
-#include <BrotliDecompressLibInternal.h>\r
-\r
-#if defined(OS_LINUX) || defined(OS_CYGWIN)\r
-#include <endian.h>\r
-#elif defined(OS_FREEBSD)\r
-#include <machine/endian.h>\r
-#elif defined(OS_MACOSX)\r
-#include <machine/endian.h>\r
-/* Let's try and follow the Linux convention */\r
-#define BROTLI_X_BYTE_ORDER BYTE_ORDER\r
-#define BROTLI_X_LITTLE_ENDIAN LITTLE_ENDIAN\r
-#define BROTLI_X_BIG_ENDIAN BIG_ENDIAN\r
-#endif\r
-\r
-#if defined(BROTLI_ENABLE_LOG) || defined(BROTLI_DEBUG)\r
-#include <assert.h>\r
-#include <stdio.h>\r
-#endif\r
-\r
-/* The following macros were borrowed from https://github.com/nemequ/hedley\r
- * with permission of original author - Evan Nemerson <evan@nemerson.com> */\r
-\r
-/* >>> >>> >>> hedley macros */\r
-\r
-/* Define "BROTLI_PREDICT_TRUE" and "BROTLI_PREDICT_FALSE" macros for capable\r
-   compilers.\r
-\r
-To apply compiler hint, enclose the branching condition into macros, like this:\r
-\r
-  if (BROTLI_PREDICT_TRUE(zero == 0)) {\r
-    // main execution path\r
-  } else {\r
-    // compiler should place this code outside of main execution path\r
-  }\r
-\r
-OR:\r
-\r
-  if (BROTLI_PREDICT_FALSE(something_rare_or_unexpected_happens)) {\r
-    // compiler should place this code outside of main execution path\r
-  }\r
-\r
-*/\r
-#if BROTLI_GNUC_HAS_BUILTIN(__builtin_expect, 3, 0, 0) || \\r
-    BROTLI_INTEL_VERSION_CHECK(16, 0, 0) ||               \\r
-    BROTLI_SUNPRO_VERSION_CHECK(5, 12, 0) ||              \\r
-    BROTLI_ARM_VERSION_CHECK(4, 1, 0) ||                  \\r
-    BROTLI_IBM_VERSION_CHECK(10, 1, 0) ||                 \\r
-    BROTLI_TI_VERSION_CHECK(7, 3, 0) ||                   \\r
-    BROTLI_TINYC_VERSION_CHECK(0, 9, 27)\r
-#define BROTLI_PREDICT_TRUE(x) (__builtin_expect(!!(x), 1))\r
-#define BROTLI_PREDICT_FALSE(x) (__builtin_expect(x, 0))\r
-#else\r
-#define BROTLI_PREDICT_FALSE(x) (x)\r
-#define BROTLI_PREDICT_TRUE(x) (x)\r
-#endif\r
-\r
-#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \\r
-    !defined(__cplusplus)\r
-#define BROTLI_RESTRICT restrict\r
-#elif BROTLI_GNUC_VERSION_CHECK(3, 1, 0) ||                         \\r
-    BROTLI_MSVC_VERSION_CHECK(14, 0, 0) ||                          \\r
-    BROTLI_INTEL_VERSION_CHECK(16, 0, 0) ||                         \\r
-    BROTLI_ARM_VERSION_CHECK(4, 1, 0) ||                            \\r
-    BROTLI_IBM_VERSION_CHECK(10, 1, 0) ||                           \\r
-    BROTLI_PGI_VERSION_CHECK(17, 10, 0) ||                          \\r
-    BROTLI_TI_VERSION_CHECK(8, 0, 0) ||                             \\r
-    BROTLI_IAR_VERSION_CHECK(8, 0, 0) ||                            \\r
-    (BROTLI_SUNPRO_VERSION_CHECK(5, 14, 0) && defined(__cplusplus))\r
-#define BROTLI_RESTRICT __restrict\r
-#elif BROTLI_SUNPRO_VERSION_CHECK(5, 3, 0) && !defined(__cplusplus)\r
-#define BROTLI_RESTRICT _Restrict\r
-#else\r
-#define BROTLI_RESTRICT\r
-#endif\r
-\r
-#if (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \\r
-    (defined(__cplusplus) && (__cplusplus >= 199711L))\r
-#define BROTLI_MAYBE_INLINE inline\r
-#elif defined(__GNUC_STDC_INLINE__) || defined(__GNUC_GNU_INLINE__) || \\r
-    BROTLI_ARM_VERSION_CHECK(6, 2, 0)\r
-#define BROTLI_MAYBE_INLINE __inline__\r
-#elif BROTLI_MSVC_VERSION_CHECK(12, 0, 0) || \\r
-    BROTLI_ARM_VERSION_CHECK(4, 1, 0) || BROTLI_TI_VERSION_CHECK(8, 0, 0)\r
-#define BROTLI_MAYBE_INLINE __inline\r
-#else\r
-#define BROTLI_MAYBE_INLINE\r
-#endif\r
-\r
-#if BROTLI_GNUC_HAS_ATTRIBUTE(always_inline, 4, 0, 0) ||                       \\r
-    BROTLI_INTEL_VERSION_CHECK(16, 0, 0) ||                                    \\r
-    BROTLI_SUNPRO_VERSION_CHECK(5, 11, 0) ||                                   \\r
-    BROTLI_ARM_VERSION_CHECK(4, 1, 0) ||                                       \\r
-    BROTLI_IBM_VERSION_CHECK(10, 1, 0) ||                                      \\r
-    BROTLI_TI_VERSION_CHECK(8, 0, 0) ||                                        \\r
-    (BROTLI_TI_VERSION_CHECK(7, 3, 0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__))\r
-#define BROTLI_INLINE BROTLI_MAYBE_INLINE __attribute__((__always_inline__))\r
-#elif BROTLI_MSVC_VERSION_CHECK(12, 0, 0)\r
-#define BROTLI_INLINE BROTLI_MAYBE_INLINE __forceinline\r
-#elif BROTLI_TI_VERSION_CHECK(7, 0, 0) && defined(__cplusplus)\r
-#define BROTLI_INLINE BROTLI_MAYBE_INLINE _Pragma("FUNC_ALWAYS_INLINE;")\r
-#elif BROTLI_IAR_VERSION_CHECK(8, 0, 0)\r
-#define BROTLI_INLINE BROTLI_MAYBE_INLINE _Pragma("inline=forced")\r
-#else\r
-#define BROTLI_INLINE BROTLI_MAYBE_INLINE\r
-#endif\r
-\r
-#if BROTLI_GNUC_HAS_ATTRIBUTE(noinline, 4, 0, 0) ||                            \\r
-    BROTLI_INTEL_VERSION_CHECK(16, 0, 0) ||                                    \\r
-    BROTLI_SUNPRO_VERSION_CHECK(5, 11, 0) ||                                   \\r
-    BROTLI_ARM_VERSION_CHECK(4, 1, 0) ||                                       \\r
-    BROTLI_IBM_VERSION_CHECK(10, 1, 0) ||                                      \\r
-    BROTLI_TI_VERSION_CHECK(8, 0, 0) ||                                        \\r
-    (BROTLI_TI_VERSION_CHECK(7, 3, 0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__))\r
-#define BROTLI_NOINLINE __attribute__((__noinline__))\r
-#elif BROTLI_MSVC_VERSION_CHECK(13, 10, 0)\r
-#define BROTLI_NOINLINE __declspec(noinline)\r
-#elif BROTLI_PGI_VERSION_CHECK(10, 2, 0)\r
-#define BROTLI_NOINLINE _Pragma("noinline")\r
-#elif BROTLI_TI_VERSION_CHECK(6, 0, 0) && defined(__cplusplus)\r
-#define BROTLI_NOINLINE _Pragma("FUNC_CANNOT_INLINE;")\r
-#elif BROTLI_IAR_VERSION_CHECK(8, 0, 0)\r
-#define BROTLI_NOINLINE _Pragma("inline=never")\r
-#else\r
-#define BROTLI_NOINLINE\r
-#endif\r
-\r
-/* BROTLI_INTERNAL could be defined to override visibility, e.g. for tests. */\r
-#if !defined(BROTLI_INTERNAL)\r
-#if defined(_WIN32) || defined(__CYGWIN__)\r
-#define BROTLI_INTERNAL\r
-#elif BROTLI_GNUC_VERSION_CHECK(3, 3, 0) ||                         \\r
-    BROTLI_TI_VERSION_CHECK(8, 0, 0) ||                             \\r
-    BROTLI_INTEL_VERSION_CHECK(16, 0, 0) ||                         \\r
-    BROTLI_ARM_VERSION_CHECK(4, 1, 0) ||                            \\r
-    BROTLI_IBM_VERSION_CHECK(13, 1, 0) ||                           \\r
-    BROTLI_SUNPRO_VERSION_CHECK(5, 11, 0) ||                        \\r
-    (BROTLI_TI_VERSION_CHECK(7, 3, 0) &&                            \\r
-     defined(__TI_GNU_ATTRIBUTE_SUPPORT__) && defined(__TI_EABI__))\r
-#define BROTLI_INTERNAL __attribute__ ((visibility ("hidden")))\r
-#else\r
-#define BROTLI_INTERNAL\r
-#endif\r
-#endif\r
-\r
-/* <<< <<< <<< end of hedley macros. */\r
-\r
-#if BROTLI_GNUC_HAS_ATTRIBUTE(unused, 2, 7, 0) || \\r
-    BROTLI_INTEL_VERSION_CHECK(16, 0, 0)\r
-#define BROTLI_UNUSED_FUNCTION static BROTLI_INLINE __attribute__ ((unused))\r
-#else\r
-#define BROTLI_UNUSED_FUNCTION static BROTLI_INLINE\r
-#endif\r
-\r
-#if (defined(__ARM_ARCH) && (__ARM_ARCH == 7)) || \\r
-    (defined(M_ARM) && (M_ARM == 7))\r
-#define BROTLI_TARGET_ARMV7\r
-#endif  /* ARMv7 */\r
-\r
-#if (defined(__ARM_ARCH) && (__ARM_ARCH == 8)) || \\r
-    defined(__aarch64__) || defined(__ARM64_ARCH_8__)\r
-#define BROTLI_TARGET_ARMV8_ANY\r
-\r
-#if defined(__ARM_32BIT_STATE)\r
-#define BROTLI_TARGET_ARMV8_32\r
-#elif defined(__ARM_64BIT_STATE)\r
-#define BROTLI_TARGET_ARMV8_64\r
-#endif\r
-\r
-#endif  /* ARMv8 */\r
-\r
-#if defined(__i386) || defined(_M_IX86)\r
-#define BROTLI_TARGET_X86\r
-#endif\r
-\r
-#if defined(__x86_64__) || defined(_M_X64)\r
-#define BROTLI_TARGET_X64\r
-#endif\r
-\r
-#if defined(__PPC64__)\r
-#define BROTLI_TARGET_POWERPC64\r
-#endif\r
-\r
-#if defined(__riscv) && defined(__riscv_xlen) && __riscv_xlen == 64\r
-#define BROTLI_TARGET_RISCV64\r
-#endif\r
-\r
-#if defined(BROTLI_BUILD_64_BIT)\r
-#define BROTLI_64_BITS 1\r
-#elif defined(BROTLI_BUILD_32_BIT)\r
-#define BROTLI_64_BITS 0\r
-#elif defined(BROTLI_TARGET_X64) || defined(BROTLI_TARGET_ARMV8_64) || \\r
-    defined(BROTLI_TARGET_POWERPC64) || defined(BROTLI_TARGET_RISCV64)\r
-#define BROTLI_64_BITS 1\r
-#else\r
-#define BROTLI_64_BITS 0\r
-#endif\r
-\r
-#if (BROTLI_64_BITS)\r
-#define brotli_reg_t uint64_t\r
-#else\r
-#define brotli_reg_t uint32_t\r
-#endif\r
-\r
-#if defined(BROTLI_BUILD_BIG_ENDIAN)\r
-#define BROTLI_BIG_ENDIAN 1\r
-#elif defined(BROTLI_BUILD_LITTLE_ENDIAN)\r
-#define BROTLI_LITTLE_ENDIAN 1\r
-#elif defined(BROTLI_BUILD_ENDIAN_NEUTRAL)\r
-/* Just break elif chain. */\r
-#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)\r
-#define BROTLI_LITTLE_ENDIAN 1\r
-#elif defined(_WIN32) || defined(BROTLI_TARGET_X64)\r
-/* Win32 & x64 can currently always be assumed to be little endian */\r
-#define BROTLI_LITTLE_ENDIAN 1\r
-#elif defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)\r
-#define BROTLI_BIG_ENDIAN 1\r
-#elif defined(BROTLI_X_BYTE_ORDER)\r
-#if BROTLI_X_BYTE_ORDER == BROTLI_X_LITTLE_ENDIAN\r
-#define BROTLI_LITTLE_ENDIAN 1\r
-#elif BROTLI_X_BYTE_ORDER == BROTLI_X_BIG_ENDIAN\r
-#define BROTLI_BIG_ENDIAN 1\r
-#endif\r
-#endif  /* BROTLI_X_BYTE_ORDER */\r
-\r
-#if !defined(BROTLI_LITTLE_ENDIAN)\r
-#define BROTLI_LITTLE_ENDIAN 0\r
-#endif\r
-\r
-#if !defined(BROTLI_BIG_ENDIAN)\r
-#define BROTLI_BIG_ENDIAN 0\r
-#endif\r
-\r
-#if defined(BROTLI_X_BYTE_ORDER)\r
-#undef BROTLI_X_BYTE_ORDER\r
-#undef BROTLI_X_LITTLE_ENDIAN\r
-#undef BROTLI_X_BIG_ENDIAN\r
-#endif\r
-\r
-#if defined(BROTLI_BUILD_PORTABLE)\r
-#define BROTLI_ALIGNED_READ (!!1)\r
-#elif defined(BROTLI_TARGET_X86) || defined(BROTLI_TARGET_X64) || \\r
-    defined(BROTLI_TARGET_ARMV7) || defined(BROTLI_TARGET_ARMV8_ANY) || \\r
-    defined(BROTLI_TARGET_RISCV64)\r
-/* Allow unaligned read only for white-listed CPUs. */\r
-#define BROTLI_ALIGNED_READ (!!0)\r
-#else\r
-#define BROTLI_ALIGNED_READ (!!1)\r
-#endif\r
-\r
-#if BROTLI_ALIGNED_READ\r
-/* Portable unaligned memory access: read / write values via memcpy. */\r
-static BROTLI_INLINE uint16_t BrotliUnalignedRead16(const void* p) {\r
-  uint16_t t;\r
-  memcpy(&t, p, sizeof t);\r
-  return t;\r
-}\r
-static BROTLI_INLINE uint32_t BrotliUnalignedRead32(const void* p) {\r
-  uint32_t t;\r
-  memcpy(&t, p, sizeof t);\r
-  return t;\r
-}\r
-static BROTLI_INLINE uint64_t BrotliUnalignedRead64(const void* p) {\r
-  uint64_t t;\r
-  memcpy(&t, p, sizeof t);\r
-  return t;\r
-}\r
-static BROTLI_INLINE void BrotliUnalignedWrite64(void* p, uint64_t v) {\r
-  memcpy(p, &v, sizeof v);\r
-}\r
-#else  /* BROTLI_ALIGNED_READ */\r
-/* Unaligned memory access is allowed: just cast pointer to requested type. */\r
-#if defined(ADDRESS_SANITIZER) || defined(THREAD_SANITIZER) || \\r
-    defined(MEMORY_SANITIZER)\r
-/* Consider we have an unaligned load/store of 4 bytes from address 0x...05.\r
-   AddressSanitizer will treat it as a 3-byte access to the range 05:07 and\r
-   will miss a bug if 08 is the first unaddressable byte.\r
-   ThreadSanitizer will also treat this as a 3-byte access to 05:07 and will\r
-   miss a race between this access and some other accesses to 08.\r
-   MemorySanitizer will correctly propagate the shadow on unaligned stores\r
-   and correctly report bugs on unaligned loads, but it may not properly\r
-   update and report the origin of the uninitialized memory.\r
-   For all three tools, replacing an unaligned access with a tool-specific\r
-   callback solves the problem. */\r
-#if defined(__cplusplus)\r
-extern "C" {\r
-#endif  /* __cplusplus */\r
-  uint16_t __sanitizer_unaligned_load16(const void* p);\r
-  uint32_t __sanitizer_unaligned_load32(const void* p);\r
-  uint64_t __sanitizer_unaligned_load64(const void* p);\r
-  void __sanitizer_unaligned_store64(void* p, uint64_t v);\r
-#if defined(__cplusplus)\r
-}  /* extern "C" */\r
-#endif  /* __cplusplus */\r
-#define BrotliUnalignedRead16 __sanitizer_unaligned_load16\r
-#define BrotliUnalignedRead32 __sanitizer_unaligned_load32\r
-#define BrotliUnalignedRead64 __sanitizer_unaligned_load64\r
-#define BrotliUnalignedWrite64 __sanitizer_unaligned_store64\r
-#else\r
-static BROTLI_INLINE uint16_t BrotliUnalignedRead16(const void* p) {\r
-  return *(const uint16_t*)p;\r
-}\r
-static BROTLI_INLINE uint32_t BrotliUnalignedRead32(const void* p) {\r
-  return *(const uint32_t*)p;\r
-}\r
-#if (BROTLI_64_BITS)\r
-static BROTLI_INLINE uint64_t BrotliUnalignedRead64(const void* p) {\r
-  return *(const uint64_t*)p;\r
-}\r
-static BROTLI_INLINE void BrotliUnalignedWrite64(void* p, uint64_t v) {\r
-  *(uint64_t*)p = v;\r
-}\r
-#else  /* BROTLI_64_BITS */\r
-/* Avoid emitting LDRD / STRD, which require properly aligned address. */\r
-/* If __attribute__(aligned) is available, use that. Otherwise, memcpy. */\r
-\r
-#if BROTLI_GNUC_HAS_ATTRIBUTE(aligned, 2, 7, 0)\r
-typedef  __attribute__((aligned(1))) uint64_t brotli_unaligned_uint64_t;\r
-\r
-static BROTLI_INLINE uint64_t BrotliUnalignedRead64(const void* p) {\r
-  return (uint64_t) ((brotli_unaligned_uint64_t*) p)[0];\r
-}\r
-static BROTLI_INLINE void BrotliUnalignedWrite64(void* p, uint64_t v) {\r
-  brotli_unaligned_uint64_t* dwords = (brotli_unaligned_uint64_t*) p;\r
-  dwords[0] = (brotli_unaligned_uint64_t) v;\r
-}\r
-#else /* BROTLI_GNUC_HAS_ATTRIBUTE(aligned, 2, 7, 0) */\r
-static BROTLI_INLINE uint64_t BrotliUnalignedRead64(const void* p) {\r
-  uint64_t v;\r
-  memcpy(&v, p, sizeof(uint64_t));\r
-  return v;\r
-}\r
-\r
-static BROTLI_INLINE void BrotliUnalignedWrite64(void* p, uint64_t v) {\r
-  memcpy(p, &v, sizeof(uint64_t));\r
-}\r
-#endif  /* BROTLI_GNUC_HAS_ATTRIBUTE(aligned, 2, 7, 0) */\r
-#endif  /* BROTLI_64_BITS */\r
-#endif  /* ASAN / TSAN / MSAN */\r
-#endif  /* BROTLI_ALIGNED_READ */\r
-\r
-#if BROTLI_LITTLE_ENDIAN\r
-/* Straight endianness. Just read / write values. */\r
-#define BROTLI_UNALIGNED_LOAD16LE BrotliUnalignedRead16\r
-#define BROTLI_UNALIGNED_LOAD32LE BrotliUnalignedRead32\r
-#define BROTLI_UNALIGNED_LOAD64LE BrotliUnalignedRead64\r
-#define BROTLI_UNALIGNED_STORE64LE BrotliUnalignedWrite64\r
-#elif BROTLI_BIG_ENDIAN  /* BROTLI_LITTLE_ENDIAN */\r
-/* Explain compiler to byte-swap values. */\r
-#define BROTLI_BSWAP16_(V) ((uint16_t)( \\r
-  (((V) & 0xFFU) << 8) | \\r
-  (((V) >> 8) & 0xFFU)))\r
-static BROTLI_INLINE uint16_t BROTLI_UNALIGNED_LOAD16LE(const void* p) {\r
-  uint16_t value = BrotliUnalignedRead16(p);\r
-  return BROTLI_BSWAP16_(value);\r
-}\r
-#define BROTLI_BSWAP32_(V) ( \\r
-  (((V) & 0xFFU) << 24) | (((V) & 0xFF00U) << 8) | \\r
-  (((V) >> 8) & 0xFF00U) | (((V) >> 24) & 0xFFU))\r
-static BROTLI_INLINE uint32_t BROTLI_UNALIGNED_LOAD32LE(const void* p) {\r
-  uint32_t value = BrotliUnalignedRead32(p);\r
-  return BROTLI_BSWAP32_(value);\r
-}\r
-#define BROTLI_BSWAP64_(V) ( \\r
-  (((V) & 0xFFU) << 56) | (((V) & 0xFF00U) << 40) | \\r
-  (((V) & 0xFF0000U) << 24) | (((V) & 0xFF000000U) << 8) | \\r
-  (((V) >> 8) & 0xFF000000U) | (((V) >> 24) & 0xFF0000U) | \\r
-  (((V) >> 40) & 0xFF00U) | (((V) >> 56) & 0xFFU))\r
-static BROTLI_INLINE uint64_t BROTLI_UNALIGNED_LOAD64LE(const void* p) {\r
-  uint64_t value = BrotliUnalignedRead64(p);\r
-  return BROTLI_BSWAP64_(value);\r
-}\r
-static BROTLI_INLINE void BROTLI_UNALIGNED_STORE64LE(void* p, uint64_t v) {\r
-  uint64_t value = BROTLI_BSWAP64_(v);\r
-  BrotliUnalignedWrite64(p, value);\r
-}\r
-#else  /* BROTLI_LITTLE_ENDIAN */\r
-/* Read / store values byte-wise; hopefully compiler will understand. */\r
-static BROTLI_INLINE uint16_t BROTLI_UNALIGNED_LOAD16LE(const void* p) {\r
-  const uint8_t* in = (const uint8_t*)p;\r
-  return (uint16_t)(in[0] | (in[1] << 8));\r
-}\r
-static BROTLI_INLINE uint32_t BROTLI_UNALIGNED_LOAD32LE(const void* p) {\r
-  const uint8_t* in = (const uint8_t*)p;\r
-  uint32_t value = (uint32_t)(in[0]);\r
-  value |= (uint32_t)(in[1]) << 8;\r
-  value |= (uint32_t)(in[2]) << 16;\r
-  value |= (uint32_t)(in[3]) << 24;\r
-  return value;\r
-}\r
-static BROTLI_INLINE uint64_t BROTLI_UNALIGNED_LOAD64LE(const void* p) {\r
-  const uint8_t* in = (const uint8_t*)p;\r
-  uint64_t value = (uint64_t)(in[0]);\r
-  value |= (uint64_t)(in[1]) << 8;\r
-  value |= (uint64_t)(in[2]) << 16;\r
-  value |= (uint64_t)(in[3]) << 24;\r
-  value |= (uint64_t)(in[4]) << 32;\r
-  value |= (uint64_t)(in[5]) << 40;\r
-  value |= (uint64_t)(in[6]) << 48;\r
-  value |= (uint64_t)(in[7]) << 56;\r
-  return value;\r
-}\r
-static BROTLI_INLINE void BROTLI_UNALIGNED_STORE64LE(void* p, uint64_t v) {\r
-  uint8_t* out = (uint8_t*)p;\r
-  out[0] = (uint8_t)v;\r
-  out[1] = (uint8_t)(v >> 8);\r
-  out[2] = (uint8_t)(v >> 16);\r
-  out[3] = (uint8_t)(v >> 24);\r
-  out[4] = (uint8_t)(v >> 32);\r
-  out[5] = (uint8_t)(v >> 40);\r
-  out[6] = (uint8_t)(v >> 48);\r
-  out[7] = (uint8_t)(v >> 56);\r
-}\r
-#endif  /* BROTLI_LITTLE_ENDIAN */\r
-\r
-/* BROTLI_IS_CONSTANT macros returns true for compile-time constants. */\r
-#if BROTLI_GNUC_HAS_BUILTIN(__builtin_constant_p, 3, 0, 1) || \\r
-    BROTLI_INTEL_VERSION_CHECK(16, 0, 0)\r
-#define BROTLI_IS_CONSTANT(x) (!!__builtin_constant_p(x))\r
-#else\r
-#define BROTLI_IS_CONSTANT(x) (!!0)\r
-#endif\r
-\r
-#if defined(BROTLI_TARGET_ARMV7) || defined(BROTLI_TARGET_ARMV8_ANY)\r
-#define BROTLI_HAS_UBFX (!!1)\r
-#else\r
-#define BROTLI_HAS_UBFX (!!0)\r
-#endif\r
-\r
-#if defined(BROTLI_ENABLE_LOG)\r
-#define BROTLI_DCHECK(x) assert(x)\r
-#define BROTLI_LOG(x) printf x\r
-#else\r
-#define BROTLI_DCHECK(x)\r
-#define BROTLI_LOG(x)\r
-#endif\r
-\r
-#if defined(BROTLI_DEBUG) || defined(BROTLI_ENABLE_LOG)\r
-static BROTLI_INLINE void BrotliDump(const char* f, int l, const char* fn) {\r
-  fprintf(stderr, "%s:%d (%s)\n", f, l, fn);\r
-  fflush(stderr);\r
-}\r
-#define BROTLI_DUMP() BrotliDump(__FILE__, __LINE__, __FUNCTION__)\r
-#else\r
-#define BROTLI_DUMP() (void)(0)\r
-#endif\r
-\r
-/* TODO: add appropriate icc/sunpro/arm/ibm/ti checks. */\r
-#if (BROTLI_GNUC_VERSION_CHECK(3, 0, 0) || defined(__llvm__)) && \\r
-    !defined(BROTLI_BUILD_NO_RBIT)\r
-#if defined(BROTLI_TARGET_ARMV7) || defined(BROTLI_TARGET_ARMV8_ANY)\r
-/* TODO: detect ARMv6T2 and enable this code for it. */\r
-static BROTLI_INLINE brotli_reg_t BrotliRBit(brotli_reg_t input) {\r
-  brotli_reg_t output;\r
-  __asm__("rbit %0, %1\n" : "=r"(output) : "r"(input));\r
-  return output;\r
-}\r
-#define BROTLI_RBIT(x) BrotliRBit(x)\r
-#endif  /* armv7 / armv8 */\r
-#endif  /* gcc || clang */\r
-#if !defined(BROTLI_RBIT)\r
-static BROTLI_INLINE void BrotliRBit(void) { /* Should break build if used. */ }\r
-#endif  /* BROTLI_RBIT */\r
-\r
-#define BROTLI_REPEAT(N, X) {     \\r
-  if ((N & 1) != 0) {X;}          \\r
-  if ((N & 2) != 0) {X; X;}       \\r
-  if ((N & 4) != 0) {X; X; X; X;} \\r
-}\r
-\r
-#define BROTLI_UNUSED(X) (void)(X)\r
-\r
-#define BROTLI_MIN_MAX(T)                                                      \\r
-  static BROTLI_INLINE T brotli_min_ ## T (T a, T b) { return a < b ? a : b; } \\r
-  static BROTLI_INLINE T brotli_max_ ## T (T a, T b) { return a > b ? a : b; }\r
-BROTLI_MIN_MAX(double) BROTLI_MIN_MAX(float) BROTLI_MIN_MAX(int)\r
-BROTLI_MIN_MAX(size_t) BROTLI_MIN_MAX(uint32_t) BROTLI_MIN_MAX(uint8_t)\r
-#undef BROTLI_MIN_MAX\r
-#define BROTLI_MIN(T, A, B) (brotli_min_ ## T((A), (B)))\r
-#define BROTLI_MAX(T, A, B) (brotli_max_ ## T((A), (B)))\r
-\r
-#define BROTLI_SWAP(T, A, I, J) { \\r
-  T __brotli_swap_tmp = (A)[(I)]; \\r
-  (A)[(I)] = (A)[(J)];            \\r
-  (A)[(J)] = __brotli_swap_tmp;   \\r
-}\r
-\r
-/* Default brotli_alloc_func */\r
-static void* BrotliDefaultAllocFunc(void* opaque, size_t size) {\r
-  BROTLI_UNUSED(opaque);\r
-  return BrDummyMalloc(size);\r
-}\r
-\r
-/* Default brotli_free_func */\r
-static void BrotliDefaultFreeFunc(void* opaque, void* address) {\r
-  BROTLI_UNUSED(opaque);\r
-  BrDummyFree(address);\r
-}\r
-\r
-BROTLI_UNUSED_FUNCTION void BrotliSuppressUnusedFunctions(void) {\r
-  BROTLI_UNUSED(&BrotliSuppressUnusedFunctions);\r
-  BROTLI_UNUSED(&BrotliUnalignedRead16);\r
-  BROTLI_UNUSED(&BrotliUnalignedRead32);\r
-  BROTLI_UNUSED(&BrotliUnalignedRead64);\r
-  BROTLI_UNUSED(&BrotliUnalignedWrite64);\r
-  BROTLI_UNUSED(&BROTLI_UNALIGNED_LOAD16LE);\r
-  BROTLI_UNUSED(&BROTLI_UNALIGNED_LOAD32LE);\r
-  BROTLI_UNUSED(&BROTLI_UNALIGNED_LOAD64LE);\r
-  BROTLI_UNUSED(&BROTLI_UNALIGNED_STORE64LE);\r
-  BROTLI_UNUSED(&BrotliRBit);\r
-  BROTLI_UNUSED(&brotli_min_double);\r
-  BROTLI_UNUSED(&brotli_max_double);\r
-  BROTLI_UNUSED(&brotli_min_float);\r
-  BROTLI_UNUSED(&brotli_max_float);\r
-  BROTLI_UNUSED(&brotli_min_int);\r
-  BROTLI_UNUSED(&brotli_max_int);\r
-  BROTLI_UNUSED(&brotli_min_size_t);\r
-  BROTLI_UNUSED(&brotli_max_size_t);\r
-  BROTLI_UNUSED(&brotli_min_uint32_t);\r
-  BROTLI_UNUSED(&brotli_max_uint32_t);\r
-  BROTLI_UNUSED(&brotli_min_uint8_t);\r
-  BROTLI_UNUSED(&brotli_max_uint8_t);\r
-  BROTLI_UNUSED(&BrotliDefaultAllocFunc);\r
-  BROTLI_UNUSED(&BrotliDefaultFreeFunc);\r
-#if defined(BROTLI_DEBUG) || defined(BROTLI_ENABLE_LOG)\r
-  BROTLI_UNUSED(&BrotliDump);\r
-#endif\r
-}\r
-\r
-#endif  /* BROTLI_COMMON_PLATFORM_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/common/transform.c b/MdeModulePkg/Library/BrotliCustomDecompressLib/common/transform.c
deleted file mode 100644 (file)
index fbe3dde..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-#include "./transform.h"\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-/* RFC 7932 transforms string data */\r
-static const char kPrefixSuffix[] =\r
-      "\1 \2, \10 of the \4 of \2s \1.\5 and \4 "\r
-/* 0x  _0 _2  __5        _E    _3  _6 _8     _E */\r
-      "in \1\"\4 to \2\">\1\n\2. \1]\5 for \3 a \6 "\r
-/* 2x     _3_ _5    _A_  _D_ _F  _2 _4     _A   _E */\r
-      "that \1\'\6 with \6 from \4 by \1(\6. T"\r
-/* 4x       _5_ _7      _E      _5    _A _C */\r
-      "he \4 on \4 as \4 is \4ing \2\n\t\1:\3ed "\r
-/* 6x     _3    _8    _D    _2    _7_ _ _A _C */\r
-      "\2=\"\4 at \3ly \1,\2=\'\5.com/\7. This \5"\r
-/* 8x  _0 _ _3    _8   _C _E _ _1     _7       _F */\r
-      " not \3er \3al \4ful \4ive \5less \4es"\r
-/* Ax       _5   _9   _D    _2    _7     _D */\r
-      "t \4ize \2\xc2\xa0\4ous \5 the \2e \0";\r
-/* Cx    _2    _7___ ___ _A    _F     _5  _8 */\r
-\r
-static const uint16_t kPrefixSuffixMap[50] = {\r
-  0x00, 0x02, 0x05, 0x0E, 0x13, 0x16, 0x18, 0x1E, 0x23, 0x25,\r
-  0x2A, 0x2D, 0x2F, 0x32, 0x34, 0x3A, 0x3E, 0x45, 0x47, 0x4E,\r
-  0x55, 0x5A, 0x5C, 0x63, 0x68, 0x6D, 0x72, 0x77, 0x7A, 0x7C,\r
-  0x80, 0x83, 0x88, 0x8C, 0x8E, 0x91, 0x97, 0x9F, 0xA5, 0xA9,\r
-  0xAD, 0xB2, 0xB7, 0xBD, 0xC2, 0xC7, 0xCA, 0xCF, 0xD5, 0xD8\r
-};\r
-\r
-/* RFC 7932 transforms */\r
-static const uint8_t kTransformsData[] = {\r
-  49, BROTLI_TRANSFORM_IDENTITY, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 0,\r
-   0, BROTLI_TRANSFORM_IDENTITY, 0,\r
-  49, BROTLI_TRANSFORM_OMIT_FIRST_1, 49,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 0,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 47,\r
-   0, BROTLI_TRANSFORM_IDENTITY, 49,\r
-   4, BROTLI_TRANSFORM_IDENTITY, 0,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 3,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 6,\r
-  49, BROTLI_TRANSFORM_OMIT_FIRST_2, 49,\r
-  49, BROTLI_TRANSFORM_OMIT_LAST_1, 49,\r
-   1, BROTLI_TRANSFORM_IDENTITY, 0,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 1,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 0,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 7,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 9,\r
-  48, BROTLI_TRANSFORM_IDENTITY, 0,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 8,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 5,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 10,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 11,\r
-  49, BROTLI_TRANSFORM_OMIT_LAST_3, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 13,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 14,\r
-  49, BROTLI_TRANSFORM_OMIT_FIRST_3, 49,\r
-  49, BROTLI_TRANSFORM_OMIT_LAST_2, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 15,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 16,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 12,\r
-   5, BROTLI_TRANSFORM_IDENTITY, 49,\r
-   0, BROTLI_TRANSFORM_IDENTITY, 1,\r
-  49, BROTLI_TRANSFORM_OMIT_FIRST_4, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 18,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 17,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 19,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 20,\r
-  49, BROTLI_TRANSFORM_OMIT_FIRST_5, 49,\r
-  49, BROTLI_TRANSFORM_OMIT_FIRST_6, 49,\r
-  47, BROTLI_TRANSFORM_IDENTITY, 49,\r
-  49, BROTLI_TRANSFORM_OMIT_LAST_4, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 22,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 23,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 24,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 25,\r
-  49, BROTLI_TRANSFORM_OMIT_LAST_7, 49,\r
-  49, BROTLI_TRANSFORM_OMIT_LAST_1, 26,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 27,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 28,\r
-   0, BROTLI_TRANSFORM_IDENTITY, 12,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 29,\r
-  49, BROTLI_TRANSFORM_OMIT_FIRST_9, 49,\r
-  49, BROTLI_TRANSFORM_OMIT_FIRST_7, 49,\r
-  49, BROTLI_TRANSFORM_OMIT_LAST_6, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 21,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 1,\r
-  49, BROTLI_TRANSFORM_OMIT_LAST_8, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 31,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 32,\r
-  47, BROTLI_TRANSFORM_IDENTITY, 3,\r
-  49, BROTLI_TRANSFORM_OMIT_LAST_5, 49,\r
-  49, BROTLI_TRANSFORM_OMIT_LAST_9, 49,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 1,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 8,\r
-   5, BROTLI_TRANSFORM_IDENTITY, 21,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 0,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 10,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 30,\r
-   0, BROTLI_TRANSFORM_IDENTITY, 5,\r
-  35, BROTLI_TRANSFORM_IDENTITY, 49,\r
-  47, BROTLI_TRANSFORM_IDENTITY, 2,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 17,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 36,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 33,\r
-   5, BROTLI_TRANSFORM_IDENTITY, 0,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 21,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 5,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 37,\r
-   0, BROTLI_TRANSFORM_IDENTITY, 30,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 38,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_ALL, 0,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 39,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_ALL, 49,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 34,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 8,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 12,\r
-   0, BROTLI_TRANSFORM_IDENTITY, 21,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 40,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 12,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 41,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 42,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 17,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 43,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 5,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 10,\r
-   0, BROTLI_TRANSFORM_IDENTITY, 34,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 33,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 44,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 5,\r
-  45, BROTLI_TRANSFORM_IDENTITY, 49,\r
-   0, BROTLI_TRANSFORM_IDENTITY, 33,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 30,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 30,\r
-  49, BROTLI_TRANSFORM_IDENTITY, 46,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 1,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_FIRST, 34,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 33,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_ALL, 30,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_ALL, 1,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 33,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 21,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 12,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_ALL, 5,\r
-  49, BROTLI_TRANSFORM_UPPERCASE_ALL, 34,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_ALL, 12,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 30,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_ALL, 34,\r
-   0, BROTLI_TRANSFORM_UPPERCASE_FIRST, 34,\r
-};\r
-\r
-static BrotliTransforms kBrotliTransforms = {\r
-  sizeof(kPrefixSuffix),\r
-  (const uint8_t*)kPrefixSuffix,\r
-  kPrefixSuffixMap,\r
-  sizeof(kTransformsData) / (3 * sizeof(kTransformsData[0])),\r
-  kTransformsData,\r
-  {0, 12, 27, 23, 42, 63, 56, 48, 59, 64}\r
-};\r
-\r
-const BrotliTransforms* BrotliGetTransforms(void) {\r
-  return &kBrotliTransforms;\r
-}\r
-\r
-static int ToUpperCase(uint8_t* p) {\r
-  if (p[0] < 0xC0) {\r
-    if (p[0] >= 'a' && p[0] <= 'z') {\r
-      p[0] ^= 32;\r
-    }\r
-    return 1;\r
-  }\r
-  /* An overly simplified uppercasing model for UTF-8. */\r
-  if (p[0] < 0xE0) {\r
-    p[1] ^= 32;\r
-    return 2;\r
-  }\r
-  /* An arbitrary transform for three byte characters. */\r
-  p[2] ^= 5;\r
-  return 3;\r
-}\r
-\r
-int BrotliTransformDictionaryWord(uint8_t* dst, const uint8_t* word, int len,\r
-    const BrotliTransforms* transforms, int transfom_idx) {\r
-  int idx = 0;\r
-  const uint8_t* prefix = BROTLI_TRANSFORM_PREFIX(transforms, transfom_idx);\r
-  uint8_t type = BROTLI_TRANSFORM_TYPE(transforms, transfom_idx);\r
-  const uint8_t* suffix = BROTLI_TRANSFORM_SUFFIX(transforms, transfom_idx);\r
-  {\r
-    int prefix_len = *prefix++;\r
-    while (prefix_len--) { dst[idx++] = *prefix++; }\r
-  }\r
-  {\r
-    const int t = type;\r
-    int i = 0;\r
-    if (t <= BROTLI_TRANSFORM_OMIT_LAST_9) {\r
-      len -= t;\r
-    } else if (t >= BROTLI_TRANSFORM_OMIT_FIRST_1\r
-        && t <= BROTLI_TRANSFORM_OMIT_FIRST_9) {\r
-      int skip = t - (BROTLI_TRANSFORM_OMIT_FIRST_1 - 1);\r
-      word += skip;\r
-      len -= skip;\r
-    }\r
-    while (i < len) { dst[idx++] = word[i++]; }\r
-    if (t == BROTLI_TRANSFORM_UPPERCASE_FIRST) {\r
-      ToUpperCase(&dst[idx - len]);\r
-    } else if (t == BROTLI_TRANSFORM_UPPERCASE_ALL) {\r
-      uint8_t* uppercase = &dst[idx - len];\r
-      while (len > 0) {\r
-        int step = ToUpperCase(uppercase);\r
-        uppercase += step;\r
-        len -= step;\r
-      }\r
-    }\r
-  }\r
-  {\r
-    int suffix_len = *suffix++;\r
-    while (suffix_len--) { dst[idx++] = *suffix++; }\r
-    return idx;\r
-  }\r
-}\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/common/transform.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/common/transform.h
deleted file mode 100644 (file)
index 8b42cd1..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/* transforms is a part of ABI, but not API.\r
-\r
-   It means that there are some functions that are supposed to be in "common"\r
-   library, but header itself is not placed into include/brotli. This way,\r
-   aforementioned functions will be available only to brotli internals.\r
- */\r
-\r
-#ifndef BROTLI_COMMON_TRANSFORM_H_\r
-#define BROTLI_COMMON_TRANSFORM_H_\r
-\r
-#include <brotli/port.h>\r
-#include <brotli/types.h>\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-enum BrotliWordTransformType {\r
-  BROTLI_TRANSFORM_IDENTITY = 0,\r
-  BROTLI_TRANSFORM_OMIT_LAST_1 = 1,\r
-  BROTLI_TRANSFORM_OMIT_LAST_2 = 2,\r
-  BROTLI_TRANSFORM_OMIT_LAST_3 = 3,\r
-  BROTLI_TRANSFORM_OMIT_LAST_4 = 4,\r
-  BROTLI_TRANSFORM_OMIT_LAST_5 = 5,\r
-  BROTLI_TRANSFORM_OMIT_LAST_6 = 6,\r
-  BROTLI_TRANSFORM_OMIT_LAST_7 = 7,\r
-  BROTLI_TRANSFORM_OMIT_LAST_8 = 8,\r
-  BROTLI_TRANSFORM_OMIT_LAST_9 = 9,\r
-  BROTLI_TRANSFORM_UPPERCASE_FIRST = 10,\r
-  BROTLI_TRANSFORM_UPPERCASE_ALL = 11,\r
-  BROTLI_TRANSFORM_OMIT_FIRST_1 = 12,\r
-  BROTLI_TRANSFORM_OMIT_FIRST_2 = 13,\r
-  BROTLI_TRANSFORM_OMIT_FIRST_3 = 14,\r
-  BROTLI_TRANSFORM_OMIT_FIRST_4 = 15,\r
-  BROTLI_TRANSFORM_OMIT_FIRST_5 = 16,\r
-  BROTLI_TRANSFORM_OMIT_FIRST_6 = 17,\r
-  BROTLI_TRANSFORM_OMIT_FIRST_7 = 18,\r
-  BROTLI_TRANSFORM_OMIT_FIRST_8 = 19,\r
-  BROTLI_TRANSFORM_OMIT_FIRST_9 = 20,\r
-  BROTLI_NUM_TRANSFORM_TYPES  /* Counts transforms, not a transform itself. */\r
-};\r
-\r
-#define BROTLI_TRANSFORMS_MAX_CUT_OFF BROTLI_TRANSFORM_OMIT_LAST_9\r
-\r
-typedef struct BrotliTransforms {\r
-  uint16_t prefix_suffix_size;\r
-  /* Last character must be null, so prefix_suffix_size must be at least 1. */\r
-  const uint8_t* prefix_suffix;\r
-  const uint16_t* prefix_suffix_map;\r
-  uint32_t num_transforms;\r
-  /* Each entry is a [prefix_id, transform, suffix_id] triplet. */\r
-  const uint8_t* transforms;\r
-  /* Indices of transforms like ["", BROTLI_TRANSFORM_OMIT_LAST_#, ""].\r
-     0-th element corresponds to ["", BROTLI_TRANSFORM_IDENTITY, ""].\r
-     -1, if cut-off transform does not exist. */\r
-  int16_t cutOffTransforms[BROTLI_TRANSFORMS_MAX_CUT_OFF + 1];\r
-} BrotliTransforms;\r
-\r
-/* T is BrotliTransforms*; result is uint8_t. */\r
-#define BROTLI_TRANSFORM_PREFIX_ID(T, I) ((T)->transforms[((I) * 3) + 0])\r
-#define BROTLI_TRANSFORM_TYPE(T, I)      ((T)->transforms[((I) * 3) + 1])\r
-#define BROTLI_TRANSFORM_SUFFIX_ID(T, I) ((T)->transforms[((I) * 3) + 2])\r
-\r
-/* T is BrotliTransforms*; result is const uint8_t*. */\r
-#define BROTLI_TRANSFORM_PREFIX(T, I) (&(T)->prefix_suffix[ \\r
-    (T)->prefix_suffix_map[BROTLI_TRANSFORM_PREFIX_ID(T, I)]])\r
-#define BROTLI_TRANSFORM_SUFFIX(T, I) (&(T)->prefix_suffix[ \\r
-    (T)->prefix_suffix_map[BROTLI_TRANSFORM_SUFFIX_ID(T, I)]])\r
-\r
-BROTLI_COMMON_API const BrotliTransforms* BrotliGetTransforms(void);\r
-\r
-BROTLI_COMMON_API int BrotliTransformDictionaryWord(\r
-    uint8_t* dst, const uint8_t* word, int len,\r
-    const BrotliTransforms* transforms, int transform_idx);\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
-\r
-#endif  /* BROTLI_COMMON_TRANSFORM_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/common/version.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/common/version.h
deleted file mode 100644 (file)
index 8e94f4f..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2016 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Version definition. */\r
-\r
-#ifndef BROTLI_COMMON_VERSION_H_\r
-#define BROTLI_COMMON_VERSION_H_\r
-\r
-/* This macro should only be used when library is compiled together with client.\r
-   If library is dynamically linked, use BrotliDecoderVersion and\r
-   BrotliEncoderVersion methods. */\r
-\r
-/* Semantic version, calculated as (MAJOR << 24) | (MINOR << 12) | PATCH */\r
-#define BROTLI_VERSION 0x1000006\r
-\r
-/* This macro is used by build system to produce Libtool-friendly soname. See\r
-   https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html\r
- */\r
-\r
-/* ABI version, calculated as (CURRENT << 24) | (REVISION << 12) | AGE */\r
-#define BROTLI_ABI_VERSION 0x1006000\r
-\r
-#endif  /* BROTLI_COMMON_VERSION_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/bit_reader.c b/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/bit_reader.c
deleted file mode 100644 (file)
index a2a9978..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Bit reading helpers */\r
-\r
-#include "./bit_reader.h"\r
-\r
-#include "../common/platform.h"\r
-#include <brotli/types.h>\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-void BrotliInitBitReader(BrotliBitReader* const br) {\r
-  br->val_ = 0;\r
-  br->bit_pos_ = sizeof(br->val_) << 3;\r
-}\r
-\r
-BROTLI_BOOL BrotliWarmupBitReader(BrotliBitReader* const br) {\r
-  size_t aligned_read_mask = (sizeof(br->val_) >> 1) - 1;\r
-  /* Fixing alignment after unaligned BrotliFillWindow would result accumulator\r
-     overflow. If unalignment is caused by BrotliSafeReadBits, then there is\r
-     enough space in accumulator to fix alignment. */\r
-  if (!BROTLI_ALIGNED_READ) {\r
-    aligned_read_mask = 0;\r
-  }\r
-  if (BrotliGetAvailableBits(br) == 0) {\r
-    if (!BrotliPullByte(br)) {\r
-      return BROTLI_FALSE;\r
-    }\r
-  }\r
-\r
-  while ((((size_t)(*br->next_in)) & aligned_read_mask) != 0) {\r
-    if (!BrotliPullByte(br)) {\r
-      /* If we consumed all the input, we don't care about the alignment. */\r
-      return BROTLI_TRUE;\r
-    }\r
-  }\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/bit_reader.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/bit_reader.h
deleted file mode 100644 (file)
index bf2b938..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Bit reading helpers */\r
-\r
-#ifndef BROTLI_DEC_BIT_READER_H_\r
-#define BROTLI_DEC_BIT_READER_H_\r
-\r
-//#include <string.h>  /* memcpy */\r
-\r
-#include "../common/platform.h"\r
-#include <brotli/types.h>\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-#define BROTLI_SHORT_FILL_BIT_WINDOW_READ (sizeof(brotli_reg_t) >> 1)\r
-\r
-static const uint32_t kBitMask[33] = {  0x00000000,\r
-    0x00000001, 0x00000003, 0x00000007, 0x0000000F,\r
-    0x0000001F, 0x0000003F, 0x0000007F, 0x000000FF,\r
-    0x000001FF, 0x000003FF, 0x000007FF, 0x00000FFF,\r
-    0x00001FFF, 0x00003FFF, 0x00007FFF, 0x0000FFFF,\r
-    0x0001FFFF, 0x0003FFFF, 0x0007FFFF, 0x000FFFFF,\r
-    0x001FFFFF, 0x003FFFFF, 0x007FFFFF, 0x00FFFFFF,\r
-    0x01FFFFFF, 0x03FFFFFF, 0x07FFFFFF, 0x0FFFFFFF,\r
-    0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF\r
-};\r
-\r
-static BROTLI_INLINE uint32_t BitMask(uint32_t n) {\r
-  if (BROTLI_IS_CONSTANT(n) || BROTLI_HAS_UBFX) {\r
-    /* Masking with this expression turns to a single\r
-       "Unsigned Bit Field Extract" UBFX instruction on ARM. */\r
-    return ~((0xFFFFFFFFu) << n);\r
-  } else {\r
-    return kBitMask[n];\r
-  }\r
-}\r
-\r
-typedef struct {\r
-  brotli_reg_t val_;       /* pre-fetched bits */\r
-  uint32_t bit_pos_;       /* current bit-reading position in val_ */\r
-  const uint8_t* next_in;  /* the byte we're reading from */\r
-  size_t avail_in;\r
-} BrotliBitReader;\r
-\r
-typedef struct {\r
-  brotli_reg_t val_;\r
-  uint32_t bit_pos_;\r
-  const uint8_t* next_in;\r
-  size_t avail_in;\r
-} BrotliBitReaderState;\r
-\r
-/* Initializes the BrotliBitReader fields. */\r
-BROTLI_INTERNAL void BrotliInitBitReader(BrotliBitReader* const br);\r
-\r
-/* Ensures that accumulator is not empty.\r
-   May consume up to sizeof(brotli_reg_t) - 1 bytes of input.\r
-   Returns BROTLI_FALSE if data is required but there is no input available.\r
-   For BROTLI_ALIGNED_READ this function also prepares bit reader for aligned\r
-   reading. */\r
-BROTLI_INTERNAL BROTLI_BOOL BrotliWarmupBitReader(BrotliBitReader* const br);\r
-\r
-static BROTLI_INLINE void BrotliBitReaderSaveState(\r
-    BrotliBitReader* const from, BrotliBitReaderState* to) {\r
-  to->val_ = from->val_;\r
-  to->bit_pos_ = from->bit_pos_;\r
-  to->next_in = from->next_in;\r
-  to->avail_in = from->avail_in;\r
-}\r
-\r
-static BROTLI_INLINE void BrotliBitReaderRestoreState(\r
-    BrotliBitReader* const to, BrotliBitReaderState* from) {\r
-  to->val_ = from->val_;\r
-  to->bit_pos_ = from->bit_pos_;\r
-  to->next_in = from->next_in;\r
-  to->avail_in = from->avail_in;\r
-}\r
-\r
-static BROTLI_INLINE uint32_t BrotliGetAvailableBits(\r
-    const BrotliBitReader* br) {\r
-  return (BROTLI_64_BITS ? 64 : 32) - br->bit_pos_;\r
-}\r
-\r
-/* Returns amount of unread bytes the bit reader still has buffered from the\r
-   BrotliInput, including whole bytes in br->val_. */\r
-static BROTLI_INLINE size_t BrotliGetRemainingBytes(BrotliBitReader* br) {\r
-  return br->avail_in + (BrotliGetAvailableBits(br) >> 3);\r
-}\r
-\r
-/* Checks if there is at least |num| bytes left in the input ring-buffer\r
-   (excluding the bits remaining in br->val_). */\r
-static BROTLI_INLINE BROTLI_BOOL BrotliCheckInputAmount(\r
-    BrotliBitReader* const br, size_t num) {\r
-  return TO_BROTLI_BOOL(br->avail_in >= num);\r
-}\r
-\r
-/* Guarantees that there are at least |n_bits| + 1 bits in accumulator.\r
-   Precondition: accumulator contains at least 1 bit.\r
-   |n_bits| should be in the range [1..24] for regular build. For portable\r
-   non-64-bit little-endian build only 16 bits are safe to request. */\r
-static BROTLI_INLINE void BrotliFillBitWindow(\r
-    BrotliBitReader* const br, uint32_t n_bits) {\r
-#if (BROTLI_64_BITS)\r
-  if (!BROTLI_ALIGNED_READ && BROTLI_IS_CONSTANT(n_bits) && (n_bits <= 8)) {\r
-    if (br->bit_pos_ >= 56) {\r
-      br->val_ >>= 56;\r
-      br->bit_pos_ ^= 56;  /* here same as -= 56 because of the if condition */\r
-      br->val_ |= BROTLI_UNALIGNED_LOAD64LE(br->next_in) << 8;\r
-      br->avail_in -= 7;\r
-      br->next_in += 7;\r
-    }\r
-  } else if (\r
-      !BROTLI_ALIGNED_READ && BROTLI_IS_CONSTANT(n_bits) && (n_bits <= 16)) {\r
-    if (br->bit_pos_ >= 48) {\r
-      br->val_ >>= 48;\r
-      br->bit_pos_ ^= 48;  /* here same as -= 48 because of the if condition */\r
-      br->val_ |= BROTLI_UNALIGNED_LOAD64LE(br->next_in) << 16;\r
-      br->avail_in -= 6;\r
-      br->next_in += 6;\r
-    }\r
-  } else {\r
-    if (br->bit_pos_ >= 32) {\r
-      br->val_ >>= 32;\r
-      br->bit_pos_ ^= 32;  /* here same as -= 32 because of the if condition */\r
-      br->val_ |= ((uint64_t)BROTLI_UNALIGNED_LOAD32LE(br->next_in)) << 32;\r
-      br->avail_in -= BROTLI_SHORT_FILL_BIT_WINDOW_READ;\r
-      br->next_in += BROTLI_SHORT_FILL_BIT_WINDOW_READ;\r
-    }\r
-  }\r
-#else\r
-  if (!BROTLI_ALIGNED_READ && BROTLI_IS_CONSTANT(n_bits) && (n_bits <= 8)) {\r
-    if (br->bit_pos_ >= 24) {\r
-      br->val_ >>= 24;\r
-      br->bit_pos_ ^= 24;  /* here same as -= 24 because of the if condition */\r
-      br->val_ |= BROTLI_UNALIGNED_LOAD32LE(br->next_in) << 8;\r
-      br->avail_in -= 3;\r
-      br->next_in += 3;\r
-    }\r
-  } else {\r
-    if (br->bit_pos_ >= 16) {\r
-      br->val_ >>= 16;\r
-      br->bit_pos_ ^= 16;  /* here same as -= 16 because of the if condition */\r
-      br->val_ |= ((uint32_t)BROTLI_UNALIGNED_LOAD16LE(br->next_in)) << 16;\r
-      br->avail_in -= BROTLI_SHORT_FILL_BIT_WINDOW_READ;\r
-      br->next_in += BROTLI_SHORT_FILL_BIT_WINDOW_READ;\r
-    }\r
-  }\r
-#endif\r
-}\r
-\r
-/* Mostly like BrotliFillBitWindow, but guarantees only 16 bits and reads no\r
-   more than BROTLI_SHORT_FILL_BIT_WINDOW_READ bytes of input. */\r
-static BROTLI_INLINE void BrotliFillBitWindow16(BrotliBitReader* const br) {\r
-  BrotliFillBitWindow(br, 17);\r
-}\r
-\r
-/* Tries to pull one byte of input to accumulator.\r
-   Returns BROTLI_FALSE if there is no input available. */\r
-static BROTLI_INLINE BROTLI_BOOL BrotliPullByte(BrotliBitReader* const br) {\r
-  if (br->avail_in == 0) {\r
-    return BROTLI_FALSE;\r
-  }\r
-  br->val_ >>= 8;\r
-#if (BROTLI_64_BITS)\r
-  br->val_ |= ((uint64_t)*br->next_in) << 56;\r
-#else\r
-  br->val_ |= ((uint32_t)*br->next_in) << 24;\r
-#endif\r
-  br->bit_pos_ -= 8;\r
-  --br->avail_in;\r
-  ++br->next_in;\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-/* Returns currently available bits.\r
-   The number of valid bits could be calculated by BrotliGetAvailableBits. */\r
-static BROTLI_INLINE brotli_reg_t BrotliGetBitsUnmasked(\r
-    BrotliBitReader* const br) {\r
-  return br->val_ >> br->bit_pos_;\r
-}\r
-\r
-/* Like BrotliGetBits, but does not mask the result.\r
-   The result contains at least 16 valid bits. */\r
-static BROTLI_INLINE uint32_t BrotliGet16BitsUnmasked(\r
-    BrotliBitReader* const br) {\r
-  BrotliFillBitWindow(br, 16);\r
-  return (uint32_t)BrotliGetBitsUnmasked(br);\r
-}\r
-\r
-/* Returns the specified number of bits from |br| without advancing bit\r
-   position. */\r
-static BROTLI_INLINE uint32_t BrotliGetBits(\r
-    BrotliBitReader* const br, uint32_t n_bits) {\r
-  BrotliFillBitWindow(br, n_bits);\r
-  return (uint32_t)BrotliGetBitsUnmasked(br) & BitMask(n_bits);\r
-}\r
-\r
-/* Tries to peek the specified amount of bits. Returns BROTLI_FALSE, if there\r
-   is not enough input. */\r
-static BROTLI_INLINE BROTLI_BOOL BrotliSafeGetBits(\r
-    BrotliBitReader* const br, uint32_t n_bits, uint32_t* val) {\r
-  while (BrotliGetAvailableBits(br) < n_bits) {\r
-    if (!BrotliPullByte(br)) {\r
-      return BROTLI_FALSE;\r
-    }\r
-  }\r
-  *val = (uint32_t)BrotliGetBitsUnmasked(br) & BitMask(n_bits);\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-/* Advances the bit pos by |n_bits|. */\r
-static BROTLI_INLINE void BrotliDropBits(\r
-    BrotliBitReader* const br, uint32_t n_bits) {\r
-  br->bit_pos_ += n_bits;\r
-}\r
-\r
-static BROTLI_INLINE void BrotliBitReaderUnload(BrotliBitReader* br) {\r
-  uint32_t unused_bytes = BrotliGetAvailableBits(br) >> 3;\r
-  uint32_t unused_bits = unused_bytes << 3;\r
-  br->avail_in += unused_bytes;\r
-  br->next_in -= unused_bytes;\r
-  if (unused_bits == sizeof(br->val_) << 3) {\r
-    br->val_ = 0;\r
-  } else {\r
-    br->val_ <<= unused_bits;\r
-  }\r
-  br->bit_pos_ += unused_bits;\r
-}\r
-\r
-/* Reads the specified number of bits from |br| and advances the bit pos.\r
-   Precondition: accumulator MUST contain at least |n_bits|. */\r
-static BROTLI_INLINE void BrotliTakeBits(\r
-  BrotliBitReader* const br, uint32_t n_bits, uint32_t* val) {\r
-  *val = (uint32_t)BrotliGetBitsUnmasked(br) & BitMask(n_bits);\r
-  BROTLI_LOG(("[BrotliReadBits]  %d %d %d val: %6x\n",\r
-      (int)br->avail_in, (int)br->bit_pos_, (int)n_bits, (int)*val));\r
-  BrotliDropBits(br, n_bits);\r
-}\r
-\r
-/* Reads the specified number of bits from |br| and advances the bit pos.\r
-   Assumes that there is enough input to perform BrotliFillBitWindow. */\r
-static BROTLI_INLINE uint32_t BrotliReadBits(\r
-    BrotliBitReader* const br, uint32_t n_bits) {\r
-  if (BROTLI_64_BITS || (n_bits <= 16)) {\r
-    uint32_t val;\r
-    BrotliFillBitWindow(br, n_bits);\r
-    BrotliTakeBits(br, n_bits, &val);\r
-    return val;\r
-  } else {\r
-    uint32_t low_val;\r
-    uint32_t high_val;\r
-    BrotliFillBitWindow(br, 16);\r
-    BrotliTakeBits(br, 16, &low_val);\r
-    BrotliFillBitWindow(br, 8);\r
-    BrotliTakeBits(br, n_bits - 16, &high_val);\r
-    return low_val | (high_val << 16);\r
-  }\r
-}\r
-\r
-/* Tries to read the specified amount of bits. Returns BROTLI_FALSE, if there\r
-   is not enough input. |n_bits| MUST be positive. */\r
-static BROTLI_INLINE BROTLI_BOOL BrotliSafeReadBits(\r
-    BrotliBitReader* const br, uint32_t n_bits, uint32_t* val) {\r
-  while (BrotliGetAvailableBits(br) < n_bits) {\r
-    if (!BrotliPullByte(br)) {\r
-      return BROTLI_FALSE;\r
-    }\r
-  }\r
-  BrotliTakeBits(br, n_bits, val);\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-/* Advances the bit reader position to the next byte boundary and verifies\r
-   that any skipped bits are set to zero. */\r
-static BROTLI_INLINE BROTLI_BOOL BrotliJumpToByteBoundary(BrotliBitReader* br) {\r
-  uint32_t pad_bits_count = BrotliGetAvailableBits(br) & 0x7;\r
-  uint32_t pad_bits = 0;\r
-  if (pad_bits_count != 0) {\r
-    BrotliTakeBits(br, pad_bits_count, &pad_bits);\r
-  }\r
-  return TO_BROTLI_BOOL(pad_bits == 0);\r
-}\r
-\r
-/* Copies remaining input bytes stored in the bit reader to the output. Value\r
-   |num| may not be larger than BrotliGetRemainingBytes. The bit reader must be\r
-   warmed up again after this. */\r
-static BROTLI_INLINE void BrotliCopyBytes(uint8_t* dest,\r
-                                          BrotliBitReader* br, size_t num) {\r
-  while (BrotliGetAvailableBits(br) >= 8 && num > 0) {\r
-    *dest = (uint8_t)BrotliGetBitsUnmasked(br);\r
-    BrotliDropBits(br, 8);\r
-    ++dest;\r
-    --num;\r
-  }\r
-  memcpy(dest, br->next_in, num);\r
-  br->avail_in -= num;\r
-  br->next_in += num;\r
-}\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
-\r
-#endif  /* BROTLI_DEC_BIT_READER_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/decode.c b/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/decode.c
deleted file mode 100644 (file)
index f3b3cb8..0000000
+++ /dev/null
@@ -1,2500 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-#include <brotli/decode.h>\r
-\r
-#if defined(__ARM_NEON__)\r
-#include <arm_neon.h>\r
-#endif\r
-\r
-//#include <stdlib.h>  /* free, malloc */\r
-//#include <string.h>  /* memcpy, memset */\r
-\r
-#include "../common/constants.h"\r
-#include "../common/context.h"\r
-#include "../common/dictionary.h"\r
-#include "../common/platform.h"\r
-#include "../common/transform.h"\r
-#include "../common/version.h"\r
-#include "./bit_reader.h"\r
-#include "./huffman.h"\r
-#include "./prefix.h"\r
-#include "./state.h"\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-#define BROTLI_FAILURE(CODE) (BROTLI_DUMP(), CODE)\r
-\r
-#define BROTLI_LOG_UINT(name)                                       \\r
-  BROTLI_LOG(("[%s] %s = %lu\n", __func__, #name, (unsigned long)(name)))\r
-#define BROTLI_LOG_ARRAY_INDEX(array_name, idx)                     \\r
-  BROTLI_LOG(("[%s] %s[%lu] = %lu\n", __func__, #array_name,        \\r
-         (unsigned long)(idx), (unsigned long)array_name[idx]))\r
-\r
-#define HUFFMAN_TABLE_BITS 8U\r
-#define HUFFMAN_TABLE_MASK 0xFF\r
-\r
-/* We need the slack region for the following reasons:\r
-    - doing up to two 16-byte copies for fast backward copying\r
-    - inserting transformed dictionary word (5 prefix + 24 base + 8 suffix) */\r
-static const uint32_t kRingBufferWriteAheadSlack = 42;\r
-\r
-static const uint8_t kCodeLengthCodeOrder[BROTLI_CODE_LENGTH_CODES] = {\r
-  1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15,\r
-};\r
-\r
-/* Static prefix code for the complex code length code lengths. */\r
-static const uint8_t kCodeLengthPrefixLength[16] = {\r
-  2, 2, 2, 3, 2, 2, 2, 4, 2, 2, 2, 3, 2, 2, 2, 4,\r
-};\r
-\r
-static const uint8_t kCodeLengthPrefixValue[16] = {\r
-  0, 4, 3, 2, 0, 4, 3, 1, 0, 4, 3, 2, 0, 4, 3, 5,\r
-};\r
-\r
-BROTLI_BOOL BrotliDecoderSetParameter(\r
-    BrotliDecoderState* state, BrotliDecoderParameter p, uint32_t value) {\r
-  if (state->state != BROTLI_STATE_UNINITED) return BROTLI_FALSE;\r
-  switch (p) {\r
-    case BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:\r
-      state->canny_ringbuffer_allocation = !!value ? 0 : 1;\r
-      return BROTLI_TRUE;\r
-\r
-    case BROTLI_DECODER_PARAM_LARGE_WINDOW:\r
-      state->large_window = TO_BROTLI_BOOL(!!value);\r
-      return BROTLI_TRUE;\r
-\r
-    default: return BROTLI_FALSE;\r
-  }\r
-}\r
-\r
-BrotliDecoderState* BrotliDecoderCreateInstance(\r
-    brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque) {\r
-  BrotliDecoderState* state = 0;\r
-  if (!alloc_func && !free_func) {\r
-    state = (BrotliDecoderState*)BrDummyMalloc(sizeof(BrotliDecoderState));\r
-  } else if (alloc_func && free_func) {\r
-    state = (BrotliDecoderState*)alloc_func(opaque, sizeof(BrotliDecoderState));\r
-  }\r
-  if (state == 0) {\r
-    BROTLI_DUMP();\r
-    return 0;\r
-  }\r
-  if (!BrotliDecoderStateInit(state, alloc_func, free_func, opaque)) {\r
-    BROTLI_DUMP();\r
-    if (!alloc_func && !free_func) {\r
-      BrDummyFree(state);\r
-    } else if (alloc_func && free_func) {\r
-      free_func(opaque, state);\r
-    }\r
-    return 0;\r
-  }\r
-  return state;\r
-}\r
-\r
-/* Deinitializes and frees BrotliDecoderState instance. */\r
-void BrotliDecoderDestroyInstance(BrotliDecoderState* state) {\r
-  if (!state) {\r
-    return;\r
-  } else {\r
-    brotli_free_func free_func = state->free_func;\r
-    void* opaque = state->memory_manager_opaque;\r
-    BrotliDecoderStateCleanup(state);\r
-    free_func(opaque, state);\r
-  }\r
-}\r
-\r
-/* Saves error code and converts it to BrotliDecoderResult. */\r
-static BROTLI_NOINLINE BrotliDecoderResult SaveErrorCode(\r
-    BrotliDecoderState* s, BrotliDecoderErrorCode e) {\r
-  s->error_code = (int)e;\r
-  switch (e) {\r
-    case BROTLI_DECODER_SUCCESS:\r
-      return BROTLI_DECODER_RESULT_SUCCESS;\r
-\r
-    case BROTLI_DECODER_NEEDS_MORE_INPUT:\r
-      return BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT;\r
-\r
-    case BROTLI_DECODER_NEEDS_MORE_OUTPUT:\r
-      return BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT;\r
-\r
-    default:\r
-      return BROTLI_DECODER_RESULT_ERROR;\r
-  }\r
-}\r
-\r
-/* Decodes WBITS by reading 1 - 7 bits, or 0x11 for "Large Window Brotli".\r
-   Precondition: bit-reader accumulator has at least 8 bits. */\r
-static BrotliDecoderErrorCode DecodeWindowBits(BrotliDecoderState* s,\r
-                                               BrotliBitReader* br) {\r
-  uint32_t n;\r
-  BROTLI_BOOL large_window = s->large_window;\r
-  s->large_window = BROTLI_FALSE;\r
-  BrotliTakeBits(br, 1, &n);\r
-  if (n == 0) {\r
-    s->window_bits = 16;\r
-    return BROTLI_DECODER_SUCCESS;\r
-  }\r
-  BrotliTakeBits(br, 3, &n);\r
-  if (n != 0) {\r
-    s->window_bits = 17 + n;\r
-    return BROTLI_DECODER_SUCCESS;\r
-  }\r
-  BrotliTakeBits(br, 3, &n);\r
-  if (n == 1) {\r
-    if (large_window) {\r
-      BrotliTakeBits(br, 1, &n);\r
-      if (n == 1) {\r
-        return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS);\r
-      }\r
-      s->large_window = BROTLI_TRUE;\r
-      return BROTLI_DECODER_SUCCESS;\r
-    } else {\r
-      return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS);\r
-    }\r
-  }\r
-  if (n != 0) {\r
-    s->window_bits = 8 + n;\r
-    return BROTLI_DECODER_SUCCESS;\r
-  }\r
-  s->window_bits = 17;\r
-  return BROTLI_DECODER_SUCCESS;\r
-}\r
-\r
-static BROTLI_INLINE void memmove16(uint8_t* dst, uint8_t* src) {\r
-#if defined(__ARM_NEON__)\r
-  vst1q_u8(dst, vld1q_u8(src));\r
-#else\r
-  uint32_t buffer[4];\r
-  memcpy(buffer, src, 16);\r
-  memcpy(dst, buffer, 16);\r
-#endif\r
-}\r
-\r
-/* Decodes a number in the range [0..255], by reading 1 - 11 bits. */\r
-static BROTLI_NOINLINE BrotliDecoderErrorCode DecodeVarLenUint8(\r
-    BrotliDecoderState* s, BrotliBitReader* br, uint32_t* value) {\r
-  uint32_t bits;\r
-  switch (s->substate_decode_uint8) {\r
-    case BROTLI_STATE_DECODE_UINT8_NONE:\r
-      if (BROTLI_PREDICT_FALSE(!BrotliSafeReadBits(br, 1, &bits))) {\r
-        return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-      }\r
-      if (bits == 0) {\r
-        *value = 0;\r
-        return BROTLI_DECODER_SUCCESS;\r
-      }\r
-    /* Fall through. */\r
-\r
-    case BROTLI_STATE_DECODE_UINT8_SHORT:\r
-      if (BROTLI_PREDICT_FALSE(!BrotliSafeReadBits(br, 3, &bits))) {\r
-        s->substate_decode_uint8 = BROTLI_STATE_DECODE_UINT8_SHORT;\r
-        return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-      }\r
-      if (bits == 0) {\r
-        *value = 1;\r
-        s->substate_decode_uint8 = BROTLI_STATE_DECODE_UINT8_NONE;\r
-        return BROTLI_DECODER_SUCCESS;\r
-      }\r
-      /* Use output value as a temporary storage. It MUST be persisted. */\r
-      *value = bits;\r
-    /* Fall through. */\r
-\r
-    case BROTLI_STATE_DECODE_UINT8_LONG:\r
-      if (BROTLI_PREDICT_FALSE(!BrotliSafeReadBits(br, *value, &bits))) {\r
-        s->substate_decode_uint8 = BROTLI_STATE_DECODE_UINT8_LONG;\r
-        return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-      }\r
-      *value = (1U << *value) + bits;\r
-      s->substate_decode_uint8 = BROTLI_STATE_DECODE_UINT8_NONE;\r
-      return BROTLI_DECODER_SUCCESS;\r
-\r
-    default:\r
-      return\r
-          BROTLI_FAILURE(BROTLI_DECODER_ERROR_UNREACHABLE);\r
-  }\r
-}\r
-\r
-/* Decodes a metablock length and flags by reading 2 - 31 bits. */\r
-static BrotliDecoderErrorCode BROTLI_NOINLINE DecodeMetaBlockLength(\r
-    BrotliDecoderState* s, BrotliBitReader* br) {\r
-  uint32_t bits;\r
-  unsigned int i;\r
-  for (;;) {\r
-    switch (s->substate_metablock_header) {\r
-      case BROTLI_STATE_METABLOCK_HEADER_NONE:\r
-        if (!BrotliSafeReadBits(br, 1, &bits)) {\r
-          return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-        }\r
-        s->is_last_metablock = bits ? 1 : 0;\r
-        s->meta_block_remaining_len = 0;\r
-        s->is_uncompressed = 0;\r
-        s->is_metadata = 0;\r
-        if (!s->is_last_metablock) {\r
-          s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NIBBLES;\r
-          break;\r
-        }\r
-        s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_EMPTY;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_METABLOCK_HEADER_EMPTY:\r
-        if (!BrotliSafeReadBits(br, 1, &bits)) {\r
-          return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-        }\r
-        if (bits) {\r
-          s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NONE;\r
-          return BROTLI_DECODER_SUCCESS;\r
-        }\r
-        s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NIBBLES;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_METABLOCK_HEADER_NIBBLES:\r
-        if (!BrotliSafeReadBits(br, 2, &bits)) {\r
-          return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-        }\r
-        s->size_nibbles = (uint8_t)(bits + 4);\r
-        s->loop_counter = 0;\r
-        if (bits == 3) {\r
-          s->is_metadata = 1;\r
-          s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_RESERVED;\r
-          break;\r
-        }\r
-        s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_SIZE;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_METABLOCK_HEADER_SIZE:\r
-        i = s->loop_counter;\r
-        for (; i < (int)s->size_nibbles; ++i) {\r
-          if (!BrotliSafeReadBits(br, 4, &bits)) {\r
-            s->loop_counter = i;\r
-            return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          }\r
-          if (i + 1 == s->size_nibbles && s->size_nibbles > 4 && bits == 0) {\r
-            return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE);\r
-          }\r
-          s->meta_block_remaining_len |= (int)(bits << (i * 4));\r
-        }\r
-        s->substate_metablock_header =\r
-            BROTLI_STATE_METABLOCK_HEADER_UNCOMPRESSED;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_METABLOCK_HEADER_UNCOMPRESSED:\r
-        if (!s->is_last_metablock) {\r
-          if (!BrotliSafeReadBits(br, 1, &bits)) {\r
-            return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          }\r
-          s->is_uncompressed = bits ? 1 : 0;\r
-        }\r
-        ++s->meta_block_remaining_len;\r
-        s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NONE;\r
-        return BROTLI_DECODER_SUCCESS;\r
-\r
-      case BROTLI_STATE_METABLOCK_HEADER_RESERVED:\r
-        if (!BrotliSafeReadBits(br, 1, &bits)) {\r
-          return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-        }\r
-        if (bits != 0) {\r
-          return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_RESERVED);\r
-        }\r
-        s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_BYTES;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_METABLOCK_HEADER_BYTES:\r
-        if (!BrotliSafeReadBits(br, 2, &bits)) {\r
-          return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-        }\r
-        if (bits == 0) {\r
-          s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NONE;\r
-          return BROTLI_DECODER_SUCCESS;\r
-        }\r
-        s->size_nibbles = (uint8_t)bits;\r
-        s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_METADATA;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_METABLOCK_HEADER_METADATA:\r
-        i = s->loop_counter;\r
-        for (; i < (int)s->size_nibbles; ++i) {\r
-          if (!BrotliSafeReadBits(br, 8, &bits)) {\r
-            s->loop_counter = i;\r
-            return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          }\r
-          if (i + 1 == s->size_nibbles && s->size_nibbles > 1 && bits == 0) {\r
-            return BROTLI_FAILURE(\r
-                BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE);\r
-          }\r
-          s->meta_block_remaining_len |= (int)(bits << (i * 8));\r
-        }\r
-        ++s->meta_block_remaining_len;\r
-        s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NONE;\r
-        return BROTLI_DECODER_SUCCESS;\r
-\r
-      default:\r
-        return\r
-            BROTLI_FAILURE(BROTLI_DECODER_ERROR_UNREACHABLE);\r
-    }\r
-  }\r
-}\r
-\r
-/* Decodes the Huffman code.\r
-   This method doesn't read data from the bit reader, BUT drops the amount of\r
-   bits that correspond to the decoded symbol.\r
-   bits MUST contain at least 15 (BROTLI_HUFFMAN_MAX_CODE_LENGTH) valid bits. */\r
-static BROTLI_INLINE uint32_t DecodeSymbol(uint32_t bits,\r
-                                           const HuffmanCode* table,\r
-                                           BrotliBitReader* br) {\r
-  table += bits & HUFFMAN_TABLE_MASK;\r
-  if (table->bits > HUFFMAN_TABLE_BITS) {\r
-    uint32_t nbits = table->bits - HUFFMAN_TABLE_BITS;\r
-    BrotliDropBits(br, HUFFMAN_TABLE_BITS);\r
-    table += table->value;\r
-    table += (bits >> HUFFMAN_TABLE_BITS) & BitMask(nbits);\r
-  }\r
-  BrotliDropBits(br, table->bits);\r
-  return table->value;\r
-}\r
-\r
-/* Reads and decodes the next Huffman code from bit-stream.\r
-   This method peeks 16 bits of input and drops 0 - 15 of them. */\r
-static BROTLI_INLINE uint32_t ReadSymbol(const HuffmanCode* table,\r
-                                         BrotliBitReader* br) {\r
-  return DecodeSymbol(BrotliGet16BitsUnmasked(br), table, br);\r
-}\r
-\r
-/* Same as DecodeSymbol, but it is known that there is less than 15 bits of\r
-   input are currently available. */\r
-static BROTLI_NOINLINE BROTLI_BOOL SafeDecodeSymbol(\r
-    const HuffmanCode* table, BrotliBitReader* br, uint32_t* result) {\r
-  uint32_t val;\r
-  uint32_t available_bits = BrotliGetAvailableBits(br);\r
-  if (available_bits == 0) {\r
-    if (table->bits == 0) {\r
-      *result = table->value;\r
-      return BROTLI_TRUE;\r
-    }\r
-    return BROTLI_FALSE;  /* No valid bits at all. */\r
-  }\r
-  val = (uint32_t)BrotliGetBitsUnmasked(br);\r
-  table += val & HUFFMAN_TABLE_MASK;\r
-  if (table->bits <= HUFFMAN_TABLE_BITS) {\r
-    if (table->bits <= available_bits) {\r
-      BrotliDropBits(br, table->bits);\r
-      *result = table->value;\r
-      return BROTLI_TRUE;\r
-    } else {\r
-      return BROTLI_FALSE;  /* Not enough bits for the first level. */\r
-    }\r
-  }\r
-  if (available_bits <= HUFFMAN_TABLE_BITS) {\r
-    return BROTLI_FALSE;  /* Not enough bits to move to the second level. */\r
-  }\r
-\r
-  /* Speculatively drop HUFFMAN_TABLE_BITS. */\r
-  val = (val & BitMask(table->bits)) >> HUFFMAN_TABLE_BITS;\r
-  available_bits -= HUFFMAN_TABLE_BITS;\r
-  table += table->value + val;\r
-  if (available_bits < table->bits) {\r
-    return BROTLI_FALSE;  /* Not enough bits for the second level. */\r
-  }\r
-\r
-  BrotliDropBits(br, HUFFMAN_TABLE_BITS + table->bits);\r
-  *result = table->value;\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-static BROTLI_INLINE BROTLI_BOOL SafeReadSymbol(\r
-    const HuffmanCode* table, BrotliBitReader* br, uint32_t* result) {\r
-  uint32_t val;\r
-  if (BROTLI_PREDICT_TRUE(BrotliSafeGetBits(br, 15, &val))) {\r
-    *result = DecodeSymbol(val, table, br);\r
-    return BROTLI_TRUE;\r
-  }\r
-  return SafeDecodeSymbol(table, br, result);\r
-}\r
-\r
-/* Makes a look-up in first level Huffman table. Peeks 8 bits. */\r
-static BROTLI_INLINE void PreloadSymbol(int safe,\r
-                                        const HuffmanCode* table,\r
-                                        BrotliBitReader* br,\r
-                                        uint32_t* bits,\r
-                                        uint32_t* value) {\r
-  if (safe) {\r
-    return;\r
-  }\r
-  table += BrotliGetBits(br, HUFFMAN_TABLE_BITS);\r
-  *bits = table->bits;\r
-  *value = table->value;\r
-}\r
-\r
-/* Decodes the next Huffman code using data prepared by PreloadSymbol.\r
-   Reads 0 - 15 bits. Also peeks 8 following bits. */\r
-static BROTLI_INLINE uint32_t ReadPreloadedSymbol(const HuffmanCode* table,\r
-                                                  BrotliBitReader* br,\r
-                                                  uint32_t* bits,\r
-                                                  uint32_t* value) {\r
-  uint32_t result = *value;\r
-  if (BROTLI_PREDICT_FALSE(*bits > HUFFMAN_TABLE_BITS)) {\r
-    uint32_t val = BrotliGet16BitsUnmasked(br);\r
-    const HuffmanCode* ext = table + (val & HUFFMAN_TABLE_MASK) + *value;\r
-    uint32_t mask = BitMask((*bits - HUFFMAN_TABLE_BITS));\r
-    BrotliDropBits(br, HUFFMAN_TABLE_BITS);\r
-    ext += (val >> HUFFMAN_TABLE_BITS) & mask;\r
-    BrotliDropBits(br, ext->bits);\r
-    result = ext->value;\r
-  } else {\r
-    BrotliDropBits(br, *bits);\r
-  }\r
-  PreloadSymbol(0, table, br, bits, value);\r
-  return result;\r
-}\r
-\r
-static BROTLI_INLINE uint32_t Log2Floor(uint32_t x) {\r
-  uint32_t result = 0;\r
-  while (x) {\r
-    x >>= 1;\r
-    ++result;\r
-  }\r
-  return result;\r
-}\r
-\r
-/* Reads (s->symbol + 1) symbols.\r
-   Totally 1..4 symbols are read, 1..11 bits each.\r
-   The list of symbols MUST NOT contain duplicates. */\r
-static BrotliDecoderErrorCode ReadSimpleHuffmanSymbols(\r
-    uint32_t alphabet_size, uint32_t max_symbol, BrotliDecoderState* s) {\r
-  /* max_bits == 1..11; symbol == 0..3; 1..44 bits will be read. */\r
-  BrotliBitReader* br = &s->br;\r
-  uint32_t max_bits = Log2Floor(alphabet_size - 1);\r
-  uint32_t i = s->sub_loop_counter;\r
-  uint32_t num_symbols = s->symbol;\r
-  while (i <= num_symbols) {\r
-    uint32_t v;\r
-    if (BROTLI_PREDICT_FALSE(!BrotliSafeReadBits(br, max_bits, &v))) {\r
-      s->sub_loop_counter = i;\r
-      s->substate_huffman = BROTLI_STATE_HUFFMAN_SIMPLE_READ;\r
-      return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-    }\r
-    if (v >= max_symbol) {\r
-      return\r
-          BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET);\r
-    }\r
-    s->symbols_lists_array[i] = (uint16_t)v;\r
-    BROTLI_LOG_UINT(s->symbols_lists_array[i]);\r
-    ++i;\r
-  }\r
-\r
-  for (i = 0; i < num_symbols; ++i) {\r
-    uint32_t k = i + 1;\r
-    for (; k <= num_symbols; ++k) {\r
-      if (s->symbols_lists_array[i] == s->symbols_lists_array[k]) {\r
-        return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME);\r
-      }\r
-    }\r
-  }\r
-\r
-  return BROTLI_DECODER_SUCCESS;\r
-}\r
-\r
-/* Process single decoded symbol code length:\r
-    A) reset the repeat variable\r
-    B) remember code length (if it is not 0)\r
-    C) extend corresponding index-chain\r
-    D) reduce the Huffman space\r
-    E) update the histogram */\r
-static BROTLI_INLINE void ProcessSingleCodeLength(uint32_t code_len,\r
-    uint32_t* symbol, uint32_t* repeat, uint32_t* space,\r
-    uint32_t* prev_code_len, uint16_t* symbol_lists,\r
-    uint16_t* code_length_histo, int* next_symbol) {\r
-  *repeat = 0;\r
-  if (code_len != 0) {  /* code_len == 1..15 */\r
-    symbol_lists[next_symbol[code_len]] = (uint16_t)(*symbol);\r
-    next_symbol[code_len] = (int)(*symbol);\r
-    *prev_code_len = code_len;\r
-    *space -= 32768U >> code_len;\r
-    code_length_histo[code_len]++;\r
-    BROTLI_LOG(("[ReadHuffmanCode] code_length[%d] = %d\n",\r
-        (int)*symbol, (int)code_len));\r
-  }\r
-  (*symbol)++;\r
-}\r
-\r
-/* Process repeated symbol code length.\r
-    A) Check if it is the extension of previous repeat sequence; if the decoded\r
-       value is not BROTLI_REPEAT_PREVIOUS_CODE_LENGTH, then it is a new\r
-       symbol-skip\r
-    B) Update repeat variable\r
-    C) Check if operation is feasible (fits alphabet)\r
-    D) For each symbol do the same operations as in ProcessSingleCodeLength\r
-\r
-   PRECONDITION: code_len == BROTLI_REPEAT_PREVIOUS_CODE_LENGTH or\r
-                 code_len == BROTLI_REPEAT_ZERO_CODE_LENGTH */\r
-static BROTLI_INLINE void ProcessRepeatedCodeLength(uint32_t code_len,\r
-    uint32_t repeat_delta, uint32_t alphabet_size, uint32_t* symbol,\r
-    uint32_t* repeat, uint32_t* space, uint32_t* prev_code_len,\r
-    uint32_t* repeat_code_len, uint16_t* symbol_lists,\r
-    uint16_t* code_length_histo, int* next_symbol) {\r
-  uint32_t old_repeat;\r
-  uint32_t extra_bits = 3;  /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */\r
-  uint32_t new_len = 0;  /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */\r
-  if (code_len == BROTLI_REPEAT_PREVIOUS_CODE_LENGTH) {\r
-    new_len = *prev_code_len;\r
-    extra_bits = 2;\r
-  }\r
-  if (*repeat_code_len != new_len) {\r
-    *repeat = 0;\r
-    *repeat_code_len = new_len;\r
-  }\r
-  old_repeat = *repeat;\r
-  if (*repeat > 0) {\r
-    *repeat -= 2;\r
-    *repeat <<= extra_bits;\r
-  }\r
-  *repeat += repeat_delta + 3U;\r
-  repeat_delta = *repeat - old_repeat;\r
-  if (*symbol + repeat_delta > alphabet_size) {\r
-    BROTLI_DUMP();\r
-    *symbol = alphabet_size;\r
-    *space = 0xFFFFF;\r
-    return;\r
-  }\r
-  BROTLI_LOG(("[ReadHuffmanCode] code_length[%d..%d] = %d\n",\r
-      (int)*symbol, (int)(*symbol + repeat_delta - 1), (int)*repeat_code_len));\r
-  if (*repeat_code_len != 0) {\r
-    unsigned last = *symbol + repeat_delta;\r
-    int next = next_symbol[*repeat_code_len];\r
-    do {\r
-      symbol_lists[next] = (uint16_t)*symbol;\r
-      next = (int)*symbol;\r
-    } while (++(*symbol) != last);\r
-    next_symbol[*repeat_code_len] = next;\r
-    *space -= repeat_delta << (15 - *repeat_code_len);\r
-    code_length_histo[*repeat_code_len] =\r
-        (uint16_t)(code_length_histo[*repeat_code_len] + repeat_delta);\r
-  } else {\r
-    *symbol += repeat_delta;\r
-  }\r
-}\r
-\r
-/* Reads and decodes symbol codelengths. */\r
-static BrotliDecoderErrorCode ReadSymbolCodeLengths(\r
-    uint32_t alphabet_size, BrotliDecoderState* s) {\r
-  BrotliBitReader* br = &s->br;\r
-  uint32_t symbol = s->symbol;\r
-  uint32_t repeat = s->repeat;\r
-  uint32_t space = s->space;\r
-  uint32_t prev_code_len = s->prev_code_len;\r
-  uint32_t repeat_code_len = s->repeat_code_len;\r
-  uint16_t* symbol_lists = s->symbol_lists;\r
-  uint16_t* code_length_histo = s->code_length_histo;\r
-  int* next_symbol = s->next_symbol;\r
-  if (!BrotliWarmupBitReader(br)) {\r
-    return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-  }\r
-  while (symbol < alphabet_size && space > 0) {\r
-    const HuffmanCode* p = s->table;\r
-    uint32_t code_len;\r
-    if (!BrotliCheckInputAmount(br, BROTLI_SHORT_FILL_BIT_WINDOW_READ)) {\r
-      s->symbol = symbol;\r
-      s->repeat = repeat;\r
-      s->prev_code_len = prev_code_len;\r
-      s->repeat_code_len = repeat_code_len;\r
-      s->space = space;\r
-      return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-    }\r
-    BrotliFillBitWindow16(br);\r
-    p += BrotliGetBitsUnmasked(br) &\r
-        BitMask(BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH);\r
-    BrotliDropBits(br, p->bits);  /* Use 1..5 bits. */\r
-    code_len = p->value;  /* code_len == 0..17 */\r
-    if (code_len < BROTLI_REPEAT_PREVIOUS_CODE_LENGTH) {\r
-      ProcessSingleCodeLength(code_len, &symbol, &repeat, &space,\r
-          &prev_code_len, symbol_lists, code_length_histo, next_symbol);\r
-    } else {  /* code_len == 16..17, extra_bits == 2..3 */\r
-      uint32_t extra_bits =\r
-          (code_len == BROTLI_REPEAT_PREVIOUS_CODE_LENGTH) ? 2 : 3;\r
-      uint32_t repeat_delta =\r
-          (uint32_t)BrotliGetBitsUnmasked(br) & BitMask(extra_bits);\r
-      BrotliDropBits(br, extra_bits);\r
-      ProcessRepeatedCodeLength(code_len, repeat_delta, alphabet_size,\r
-          &symbol, &repeat, &space, &prev_code_len, &repeat_code_len,\r
-          symbol_lists, code_length_histo, next_symbol);\r
-    }\r
-  }\r
-  s->space = space;\r
-  return BROTLI_DECODER_SUCCESS;\r
-}\r
-\r
-static BrotliDecoderErrorCode SafeReadSymbolCodeLengths(\r
-    uint32_t alphabet_size, BrotliDecoderState* s) {\r
-  BrotliBitReader* br = &s->br;\r
-  BROTLI_BOOL get_byte = BROTLI_FALSE;\r
-  while (s->symbol < alphabet_size && s->space > 0) {\r
-    const HuffmanCode* p = s->table;\r
-    uint32_t code_len;\r
-    uint32_t available_bits;\r
-    uint32_t bits = 0;\r
-    if (get_byte && !BrotliPullByte(br)) return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-    get_byte = BROTLI_FALSE;\r
-    available_bits = BrotliGetAvailableBits(br);\r
-    if (available_bits != 0) {\r
-      bits = (uint32_t)BrotliGetBitsUnmasked(br);\r
-    }\r
-    p += bits & BitMask(BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH);\r
-    if (p->bits > available_bits) {\r
-      get_byte = BROTLI_TRUE;\r
-      continue;\r
-    }\r
-    code_len = p->value;  /* code_len == 0..17 */\r
-    if (code_len < BROTLI_REPEAT_PREVIOUS_CODE_LENGTH) {\r
-      BrotliDropBits(br, p->bits);\r
-      ProcessSingleCodeLength(code_len, &s->symbol, &s->repeat, &s->space,\r
-          &s->prev_code_len, s->symbol_lists, s->code_length_histo,\r
-          s->next_symbol);\r
-    } else {  /* code_len == 16..17, extra_bits == 2..3 */\r
-      uint32_t extra_bits = code_len - 14U;\r
-      uint32_t repeat_delta = (bits >> p->bits) & BitMask(extra_bits);\r
-      if (available_bits < p->bits + extra_bits) {\r
-        get_byte = BROTLI_TRUE;\r
-        continue;\r
-      }\r
-      BrotliDropBits(br, p->bits + extra_bits);\r
-      ProcessRepeatedCodeLength(code_len, repeat_delta, alphabet_size,\r
-          &s->symbol, &s->repeat, &s->space, &s->prev_code_len,\r
-          &s->repeat_code_len, s->symbol_lists, s->code_length_histo,\r
-          s->next_symbol);\r
-    }\r
-  }\r
-  return BROTLI_DECODER_SUCCESS;\r
-}\r
-\r
-/* Reads and decodes 15..18 codes using static prefix code.\r
-   Each code is 2..4 bits long. In total 30..72 bits are used. */\r
-static BrotliDecoderErrorCode ReadCodeLengthCodeLengths(BrotliDecoderState* s) {\r
-  BrotliBitReader* br = &s->br;\r
-  uint32_t num_codes = s->repeat;\r
-  unsigned space = s->space;\r
-  uint32_t i = s->sub_loop_counter;\r
-  for (; i < BROTLI_CODE_LENGTH_CODES; ++i) {\r
-    const uint8_t code_len_idx = kCodeLengthCodeOrder[i];\r
-    uint32_t ix;\r
-    uint32_t v;\r
-    if (BROTLI_PREDICT_FALSE(!BrotliSafeGetBits(br, 4, &ix))) {\r
-      uint32_t available_bits = BrotliGetAvailableBits(br);\r
-      if (available_bits != 0) {\r
-        ix = BrotliGetBitsUnmasked(br) & 0xF;\r
-      } else {\r
-        ix = 0;\r
-      }\r
-      if (kCodeLengthPrefixLength[ix] > available_bits) {\r
-        s->sub_loop_counter = i;\r
-        s->repeat = num_codes;\r
-        s->space = space;\r
-        s->substate_huffman = BROTLI_STATE_HUFFMAN_COMPLEX;\r
-        return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-      }\r
-    }\r
-    v = kCodeLengthPrefixValue[ix];\r
-    BrotliDropBits(br, kCodeLengthPrefixLength[ix]);\r
-    s->code_length_code_lengths[code_len_idx] = (uint8_t)v;\r
-    BROTLI_LOG_ARRAY_INDEX(s->code_length_code_lengths, code_len_idx);\r
-    if (v != 0) {\r
-      space = space - (32U >> v);\r
-      ++num_codes;\r
-      ++s->code_length_histo[v];\r
-      if (space - 1U >= 32U) {\r
-        /* space is 0 or wrapped around. */\r
-        break;\r
-      }\r
-    }\r
-  }\r
-  if (!(num_codes == 1 || space == 0)) {\r
-    return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_CL_SPACE);\r
-  }\r
-  return BROTLI_DECODER_SUCCESS;\r
-}\r
-\r
-/* Decodes the Huffman tables.\r
-   There are 2 scenarios:\r
-    A) Huffman code contains only few symbols (1..4). Those symbols are read\r
-       directly; their code lengths are defined by the number of symbols.\r
-       For this scenario 4 - 49 bits will be read.\r
-\r
-    B) 2-phase decoding:\r
-    B.1) Small Huffman table is decoded; it is specified with code lengths\r
-         encoded with predefined entropy code. 32 - 74 bits are used.\r
-    B.2) Decoded table is used to decode code lengths of symbols in resulting\r
-         Huffman table. In worst case 3520 bits are read. */\r
-static BrotliDecoderErrorCode ReadHuffmanCode(uint32_t alphabet_size,\r
-                                              uint32_t max_symbol,\r
-                                              HuffmanCode* table,\r
-                                              uint32_t* opt_table_size,\r
-                                              BrotliDecoderState* s) {\r
-  BrotliBitReader* br = &s->br;\r
-  /* Unnecessary masking, but might be good for safety. */\r
-  alphabet_size &= 0x7FF;\r
-  /* State machine. */\r
-  for (;;) {\r
-    switch (s->substate_huffman) {\r
-      case BROTLI_STATE_HUFFMAN_NONE:\r
-        if (!BrotliSafeReadBits(br, 2, &s->sub_loop_counter)) {\r
-          return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-        }\r
-        BROTLI_LOG_UINT(s->sub_loop_counter);\r
-        /* The value is used as follows:\r
-           1 for simple code;\r
-           0 for no skipping, 2 skips 2 code lengths, 3 skips 3 code lengths */\r
-        if (s->sub_loop_counter != 1) {\r
-          s->space = 32;\r
-          s->repeat = 0;  /* num_codes */\r
-          memset(&s->code_length_histo[0], 0, sizeof(s->code_length_histo[0]) *\r
-              (BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH + 1));\r
-          memset(&s->code_length_code_lengths[0], 0,\r
-              sizeof(s->code_length_code_lengths));\r
-          s->substate_huffman = BROTLI_STATE_HUFFMAN_COMPLEX;\r
-          continue;\r
-        }\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_HUFFMAN_SIMPLE_SIZE:\r
-        /* Read symbols, codes & code lengths directly. */\r
-        if (!BrotliSafeReadBits(br, 2, &s->symbol)) {  /* num_symbols */\r
-          s->substate_huffman = BROTLI_STATE_HUFFMAN_SIMPLE_SIZE;\r
-          return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-        }\r
-        s->sub_loop_counter = 0;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_HUFFMAN_SIMPLE_READ: {\r
-        BrotliDecoderErrorCode result =\r
-            ReadSimpleHuffmanSymbols(alphabet_size, max_symbol, s);\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          return result;\r
-        }\r
-      }\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_HUFFMAN_SIMPLE_BUILD: {\r
-        uint32_t table_size;\r
-        if (s->symbol == 3) {\r
-          uint32_t bits;\r
-          if (!BrotliSafeReadBits(br, 1, &bits)) {\r
-            s->substate_huffman = BROTLI_STATE_HUFFMAN_SIMPLE_BUILD;\r
-            return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          }\r
-          s->symbol += bits;\r
-        }\r
-        BROTLI_LOG_UINT(s->symbol);\r
-        table_size = BrotliBuildSimpleHuffmanTable(\r
-            table, HUFFMAN_TABLE_BITS, s->symbols_lists_array, s->symbol);\r
-        if (opt_table_size) {\r
-          *opt_table_size = table_size;\r
-        }\r
-        s->substate_huffman = BROTLI_STATE_HUFFMAN_NONE;\r
-        return BROTLI_DECODER_SUCCESS;\r
-      }\r
-\r
-      /* Decode Huffman-coded code lengths. */\r
-      case BROTLI_STATE_HUFFMAN_COMPLEX: {\r
-        uint32_t i;\r
-        BrotliDecoderErrorCode result = ReadCodeLengthCodeLengths(s);\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          return result;\r
-        }\r
-        BrotliBuildCodeLengthsHuffmanTable(s->table,\r
-                                           s->code_length_code_lengths,\r
-                                           s->code_length_histo);\r
-        memset(&s->code_length_histo[0], 0, sizeof(s->code_length_histo));\r
-        for (i = 0; i <= BROTLI_HUFFMAN_MAX_CODE_LENGTH; ++i) {\r
-          s->next_symbol[i] = (int)i - (BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1);\r
-          s->symbol_lists[s->next_symbol[i]] = 0xFFFF;\r
-        }\r
-\r
-        s->symbol = 0;\r
-        s->prev_code_len = BROTLI_INITIAL_REPEATED_CODE_LENGTH;\r
-        s->repeat = 0;\r
-        s->repeat_code_len = 0;\r
-        s->space = 32768;\r
-        s->substate_huffman = BROTLI_STATE_HUFFMAN_LENGTH_SYMBOLS;\r
-      }\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_HUFFMAN_LENGTH_SYMBOLS: {\r
-        uint32_t table_size;\r
-        BrotliDecoderErrorCode result = ReadSymbolCodeLengths(max_symbol, s);\r
-        if (result == BROTLI_DECODER_NEEDS_MORE_INPUT) {\r
-          result = SafeReadSymbolCodeLengths(max_symbol, s);\r
-        }\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          return result;\r
-        }\r
-\r
-        if (s->space != 0) {\r
-          BROTLI_LOG(("[ReadHuffmanCode] space = %d\n", (int)s->space));\r
-          return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE);\r
-        }\r
-        table_size = BrotliBuildHuffmanTable(\r
-            table, HUFFMAN_TABLE_BITS, s->symbol_lists, s->code_length_histo);\r
-        if (opt_table_size) {\r
-          *opt_table_size = table_size;\r
-        }\r
-        s->substate_huffman = BROTLI_STATE_HUFFMAN_NONE;\r
-        return BROTLI_DECODER_SUCCESS;\r
-      }\r
-\r
-      default:\r
-        return\r
-            BROTLI_FAILURE(BROTLI_DECODER_ERROR_UNREACHABLE);\r
-    }\r
-  }\r
-}\r
-\r
-/* Decodes a block length by reading 3..39 bits. */\r
-static BROTLI_INLINE uint32_t ReadBlockLength(const HuffmanCode* table,\r
-                                              BrotliBitReader* br) {\r
-  uint32_t code;\r
-  uint32_t nbits;\r
-  code = ReadSymbol(table, br);\r
-  ASSERT (code < BROTLI_NUM_BLOCK_LEN_SYMBOLS);\r
-  nbits = kBlockLengthPrefixCode[code].nbits;  /* nbits == 2..24 */\r
-  return kBlockLengthPrefixCode[code].offset + BrotliReadBits(br, nbits);\r
-}\r
-\r
-/* WARNING: if state is not BROTLI_STATE_READ_BLOCK_LENGTH_NONE, then\r
-   reading can't be continued with ReadBlockLength. */\r
-static BROTLI_INLINE BROTLI_BOOL SafeReadBlockLength(\r
-    BrotliDecoderState* s, uint32_t* result, const HuffmanCode* table,\r
-    BrotliBitReader* br) {\r
-  uint32_t index;\r
-  if (s->substate_read_block_length == BROTLI_STATE_READ_BLOCK_LENGTH_NONE) {\r
-    if (!SafeReadSymbol(table, br, &index)) {\r
-      return BROTLI_FALSE;\r
-    }\r
-  } else {\r
-    index = s->block_length_index;\r
-  }\r
-  {\r
-    uint32_t bits;\r
-    uint32_t nbits = kBlockLengthPrefixCode[index].nbits;  /* nbits == 2..24 */\r
-    if (!BrotliSafeReadBits(br, nbits, &bits)) {\r
-      s->block_length_index = index;\r
-      s->substate_read_block_length = BROTLI_STATE_READ_BLOCK_LENGTH_SUFFIX;\r
-      return BROTLI_FALSE;\r
-    }\r
-    *result = kBlockLengthPrefixCode[index].offset + bits;\r
-    s->substate_read_block_length = BROTLI_STATE_READ_BLOCK_LENGTH_NONE;\r
-    return BROTLI_TRUE;\r
-  }\r
-}\r
-\r
-/* Transform:\r
-    1) initialize list L with values 0, 1,... 255\r
-    2) For each input element X:\r
-    2.1) let Y = L[X]\r
-    2.2) remove X-th element from L\r
-    2.3) prepend Y to L\r
-    2.4) append Y to output\r
-\r
-   In most cases max(Y) <= 7, so most of L remains intact.\r
-   To reduce the cost of initialization, we reuse L, remember the upper bound\r
-   of Y values, and reinitialize only first elements in L.\r
-\r
-   Most of input values are 0 and 1. To reduce number of branches, we replace\r
-   inner for loop with do-while. */\r
-static BROTLI_NOINLINE void InverseMoveToFrontTransform(\r
-    uint8_t* v, uint32_t v_len, BrotliDecoderState* state) {\r
-  /* Reinitialize elements that could have been changed. */\r
-  uint32_t i = 1;\r
-  uint32_t upper_bound = state->mtf_upper_bound;\r
-  uint32_t* mtf = &state->mtf[1];  /* Make mtf[-1] addressable. */\r
-  uint8_t* mtf_u8 = (uint8_t*)mtf;\r
-  uint8_t* mtf_u8t = mtf_u8 - 1;\r
-  /* Load endian-aware constant. */\r
-  const uint8_t b0123[4] = {0, 1, 2, 3};\r
-  uint32_t pattern;\r
-  memcpy(&pattern, &b0123, 4);\r
-\r
-  /* Initialize list using 4 consequent values pattern. */\r
-  mtf[0] = pattern;\r
-  do {\r
-    pattern += 0x04040404;  /* Advance all 4 values by 4. */\r
-    mtf[i] = pattern;\r
-    i++;\r
-  } while (i <= upper_bound);\r
-\r
-  /* Transform the input. */\r
-  upper_bound = 0;\r
-  for (i = 0; i < v_len; ++i) {\r
-    int index = v[i];\r
-    uint8_t value = mtf_u8[index];\r
-    upper_bound |= (uint32_t) v[i];\r
-    v[i] = value;\r
-    mtf_u8t[0] = value;\r
-    while (index >= 0) {\r
-      mtf_u8t[index + 1] = mtf_u8t[index];\r
-      index--;\r
-    }\r
-  }\r
-  /* Remember amount of elements to be reinitialized. */\r
-  state->mtf_upper_bound = upper_bound >> 2;\r
-}\r
-\r
-/* Decodes a series of Huffman table using ReadHuffmanCode function. */\r
-static BrotliDecoderErrorCode HuffmanTreeGroupDecode(\r
-    HuffmanTreeGroup* group, BrotliDecoderState* s) {\r
-  if (s->substate_tree_group != BROTLI_STATE_TREE_GROUP_LOOP) {\r
-    s->next = group->codes;\r
-    s->htree_index = 0;\r
-    s->substate_tree_group = BROTLI_STATE_TREE_GROUP_LOOP;\r
-  }\r
-  while (s->htree_index < group->num_htrees) {\r
-    uint32_t table_size;\r
-    BrotliDecoderErrorCode result =\r
-        ReadHuffmanCode(group->alphabet_size, group->max_symbol,\r
-                        s->next, &table_size, s);\r
-    if (result != BROTLI_DECODER_SUCCESS) return result;\r
-    group->htrees[s->htree_index] = s->next;\r
-    s->next += table_size;\r
-    ++s->htree_index;\r
-  }\r
-  s->substate_tree_group = BROTLI_STATE_TREE_GROUP_NONE;\r
-  return BROTLI_DECODER_SUCCESS;\r
-}\r
-\r
-/* Decodes a context map.\r
-   Decoding is done in 4 phases:\r
-    1) Read auxiliary information (6..16 bits) and allocate memory.\r
-       In case of trivial context map, decoding is finished at this phase.\r
-    2) Decode Huffman table using ReadHuffmanCode function.\r
-       This table will be used for reading context map items.\r
-    3) Read context map items; "0" values could be run-length encoded.\r
-    4) Optionally, apply InverseMoveToFront transform to the resulting map. */\r
-static BrotliDecoderErrorCode DecodeContextMap(uint32_t context_map_size,\r
-                                               uint32_t* num_htrees,\r
-                                               uint8_t** context_map_arg,\r
-                                               BrotliDecoderState* s) {\r
-  BrotliBitReader* br = &s->br;\r
-  BrotliDecoderErrorCode result = BROTLI_DECODER_SUCCESS;\r
-\r
-  switch ((int)s->substate_context_map) {\r
-    case BROTLI_STATE_CONTEXT_MAP_NONE:\r
-      result = DecodeVarLenUint8(s, br, num_htrees);\r
-      if (result != BROTLI_DECODER_SUCCESS) {\r
-        return result;\r
-      }\r
-      (*num_htrees)++;\r
-      s->context_index = 0;\r
-      BROTLI_LOG_UINT(context_map_size);\r
-      BROTLI_LOG_UINT(*num_htrees);\r
-      *context_map_arg =\r
-          (uint8_t*)BROTLI_DECODER_ALLOC(s, (size_t)context_map_size);\r
-      if (*context_map_arg == 0) {\r
-        return BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP);\r
-      }\r
-      if (*num_htrees <= 1) {\r
-        memset(*context_map_arg, 0, (size_t)context_map_size);\r
-        return BROTLI_DECODER_SUCCESS;\r
-      }\r
-      s->substate_context_map = BROTLI_STATE_CONTEXT_MAP_READ_PREFIX;\r
-    /* Fall through. */\r
-\r
-    case BROTLI_STATE_CONTEXT_MAP_READ_PREFIX: {\r
-      uint32_t bits;\r
-      /* In next stage ReadHuffmanCode uses at least 4 bits, so it is safe\r
-         to peek 4 bits ahead. */\r
-      if (!BrotliSafeGetBits(br, 5, &bits)) {\r
-        return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-      }\r
-      if ((bits & 1) != 0) { /* Use RLE for zeros. */\r
-        s->max_run_length_prefix = (bits >> 1) + 1;\r
-        BrotliDropBits(br, 5);\r
-      } else {\r
-        s->max_run_length_prefix = 0;\r
-        BrotliDropBits(br, 1);\r
-      }\r
-      BROTLI_LOG_UINT(s->max_run_length_prefix);\r
-      s->substate_context_map = BROTLI_STATE_CONTEXT_MAP_HUFFMAN;\r
-    }\r
-    /* Fall through. */\r
-\r
-    case BROTLI_STATE_CONTEXT_MAP_HUFFMAN: {\r
-      uint32_t alphabet_size = *num_htrees + s->max_run_length_prefix;\r
-      result = ReadHuffmanCode(alphabet_size, alphabet_size,\r
-                               s->context_map_table, NULL, s);\r
-      if (result != BROTLI_DECODER_SUCCESS) return result;\r
-      s->code = 0xFFFF;\r
-      s->substate_context_map = BROTLI_STATE_CONTEXT_MAP_DECODE;\r
-    }\r
-    /* Fall through. */\r
-\r
-    case BROTLI_STATE_CONTEXT_MAP_DECODE: {\r
-      uint32_t context_index = s->context_index;\r
-      uint32_t max_run_length_prefix = s->max_run_length_prefix;\r
-      uint8_t* context_map = *context_map_arg;\r
-      uint32_t code = s->code;\r
-      BROTLI_BOOL skip_preamble = (code != 0xFFFF);\r
-      while (context_index < context_map_size || skip_preamble) {\r
-        if (!skip_preamble) {\r
-          if (!SafeReadSymbol(s->context_map_table, br, &code)) {\r
-            s->code = 0xFFFF;\r
-            s->context_index = context_index;\r
-            return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          }\r
-          BROTLI_LOG_UINT(code);\r
-\r
-          if (code == 0) {\r
-            context_map[context_index++] = 0;\r
-            continue;\r
-          }\r
-          if (code > max_run_length_prefix) {\r
-            context_map[context_index++] =\r
-                (uint8_t)(code - max_run_length_prefix);\r
-            continue;\r
-          }\r
-        } else {\r
-          skip_preamble = BROTLI_FALSE;\r
-        }\r
-        /* RLE sub-stage. */\r
-        {\r
-          uint32_t reps;\r
-          if (!BrotliSafeReadBits(br, code, &reps)) {\r
-            s->code = code;\r
-            s->context_index = context_index;\r
-            return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          }\r
-          reps += 1U << code;\r
-          BROTLI_LOG_UINT(reps);\r
-          if (context_index + reps > context_map_size) {\r
-            return\r
-                BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT);\r
-          }\r
-          do {\r
-            context_map[context_index++] = 0;\r
-          } while (--reps);\r
-        }\r
-      }\r
-    }\r
-    /* Fall through. */\r
-\r
-    case BROTLI_STATE_CONTEXT_MAP_TRANSFORM: {\r
-      uint32_t bits;\r
-      if (!BrotliSafeReadBits(br, 1, &bits)) {\r
-        s->substate_context_map = BROTLI_STATE_CONTEXT_MAP_TRANSFORM;\r
-        return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-      }\r
-      if (bits != 0) {\r
-        InverseMoveToFrontTransform(*context_map_arg, context_map_size, s);\r
-      }\r
-      s->substate_context_map = BROTLI_STATE_CONTEXT_MAP_NONE;\r
-      return BROTLI_DECODER_SUCCESS;\r
-    }\r
-\r
-    default:\r
-      return\r
-          BROTLI_FAILURE(BROTLI_DECODER_ERROR_UNREACHABLE);\r
-  }\r
-}\r
-\r
-/* Decodes a command or literal and updates block type ring-buffer.\r
-   Reads 3..54 bits. */\r
-static BROTLI_INLINE BROTLI_BOOL DecodeBlockTypeAndLength(\r
-    int safe, BrotliDecoderState* s, int tree_type) {\r
-  uint32_t max_block_type = s->num_block_types[tree_type];\r
-  const HuffmanCode* type_tree = &s->block_type_trees[\r
-      tree_type * BROTLI_HUFFMAN_MAX_SIZE_258];\r
-  const HuffmanCode* len_tree = &s->block_len_trees[\r
-      tree_type * BROTLI_HUFFMAN_MAX_SIZE_26];\r
-  BrotliBitReader* br = &s->br;\r
-  uint32_t* ringbuffer = &s->block_type_rb[tree_type * 2];\r
-  uint32_t block_type;\r
-  if (max_block_type <= 1) {\r
-    return BROTLI_FALSE;\r
-  }\r
-\r
-  /* Read 0..15 + 3..39 bits. */\r
-  if (!safe) {\r
-    block_type = ReadSymbol(type_tree, br);\r
-    s->block_length[tree_type] = ReadBlockLength(len_tree, br);\r
-  } else {\r
-    BrotliBitReaderState memento;\r
-    BrotliBitReaderSaveState(br, &memento);\r
-    if (!SafeReadSymbol(type_tree, br, &block_type)) return BROTLI_FALSE;\r
-    if (!SafeReadBlockLength(s, &s->block_length[tree_type], len_tree, br)) {\r
-      s->substate_read_block_length = BROTLI_STATE_READ_BLOCK_LENGTH_NONE;\r
-      BrotliBitReaderRestoreState(br, &memento);\r
-      return BROTLI_FALSE;\r
-    }\r
-  }\r
-\r
-  if (block_type == 1) {\r
-    block_type = ringbuffer[1] + 1;\r
-  } else if (block_type == 0) {\r
-    block_type = ringbuffer[0];\r
-  } else {\r
-    block_type -= 2;\r
-  }\r
-  if (block_type >= max_block_type) {\r
-    block_type -= max_block_type;\r
-  }\r
-  ringbuffer[0] = ringbuffer[1];\r
-  ringbuffer[1] = block_type;\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-static BROTLI_INLINE void DetectTrivialLiteralBlockTypes(\r
-    BrotliDecoderState* s) {\r
-  size_t i;\r
-  for (i = 0; i < 8; ++i) s->trivial_literal_contexts[i] = 0;\r
-  for (i = 0; i < s->num_block_types[0]; i++) {\r
-    size_t offset = i << BROTLI_LITERAL_CONTEXT_BITS;\r
-    size_t error = 0;\r
-    size_t sample = s->context_map[offset];\r
-    size_t j;\r
-    for (j = 0; j < (1u << BROTLI_LITERAL_CONTEXT_BITS);) {\r
-      BROTLI_REPEAT(4, error |= s->context_map[offset + j++] ^ sample;)\r
-    }\r
-    if (error == 0) {\r
-      s->trivial_literal_contexts[i >> 5] |= 1u << (i & 31);\r
-    }\r
-  }\r
-}\r
-\r
-static BROTLI_INLINE void PrepareLiteralDecoding(BrotliDecoderState* s) {\r
-  uint8_t context_mode;\r
-  size_t trivial;\r
-  uint32_t block_type = s->block_type_rb[1];\r
-  uint32_t context_offset = block_type << BROTLI_LITERAL_CONTEXT_BITS;\r
-  s->context_map_slice = s->context_map + context_offset;\r
-  trivial = s->trivial_literal_contexts[block_type >> 5];\r
-  s->trivial_literal_context = (trivial >> (block_type & 31)) & 1;\r
-  s->literal_htree = s->literal_hgroup.htrees[s->context_map_slice[0]];\r
-  context_mode = s->context_modes[block_type] & 3;\r
-  s->context_lookup = BROTLI_CONTEXT_LUT(context_mode);\r
-}\r
-\r
-/* Decodes the block type and updates the state for literal context.\r
-   Reads 3..54 bits. */\r
-static BROTLI_INLINE BROTLI_BOOL DecodeLiteralBlockSwitchInternal(\r
-    int safe, BrotliDecoderState* s) {\r
-  if (!DecodeBlockTypeAndLength(safe, s, 0)) {\r
-    return BROTLI_FALSE;\r
-  }\r
-  PrepareLiteralDecoding(s);\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-static void BROTLI_NOINLINE DecodeLiteralBlockSwitch(BrotliDecoderState* s) {\r
-  DecodeLiteralBlockSwitchInternal(0, s);\r
-}\r
-\r
-static BROTLI_BOOL BROTLI_NOINLINE SafeDecodeLiteralBlockSwitch(\r
-    BrotliDecoderState* s) {\r
-  return DecodeLiteralBlockSwitchInternal(1, s);\r
-}\r
-\r
-/* Block switch for insert/copy length.\r
-   Reads 3..54 bits. */\r
-static BROTLI_INLINE BROTLI_BOOL DecodeCommandBlockSwitchInternal(\r
-    int safe, BrotliDecoderState* s) {\r
-  if (!DecodeBlockTypeAndLength(safe, s, 1)) {\r
-    return BROTLI_FALSE;\r
-  }\r
-  s->htree_command = s->insert_copy_hgroup.htrees[s->block_type_rb[3]];\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-static void BROTLI_NOINLINE DecodeCommandBlockSwitch(BrotliDecoderState* s) {\r
-  DecodeCommandBlockSwitchInternal(0, s);\r
-}\r
-\r
-static BROTLI_BOOL BROTLI_NOINLINE SafeDecodeCommandBlockSwitch(\r
-    BrotliDecoderState* s) {\r
-  return DecodeCommandBlockSwitchInternal(1, s);\r
-}\r
-\r
-/* Block switch for distance codes.\r
-   Reads 3..54 bits. */\r
-static BROTLI_INLINE BROTLI_BOOL DecodeDistanceBlockSwitchInternal(\r
-    int safe, BrotliDecoderState* s) {\r
-  if (!DecodeBlockTypeAndLength(safe, s, 2)) {\r
-    return BROTLI_FALSE;\r
-  }\r
-  s->dist_context_map_slice = s->dist_context_map +\r
-      (s->block_type_rb[5] << BROTLI_DISTANCE_CONTEXT_BITS);\r
-  s->dist_htree_index = s->dist_context_map_slice[s->distance_context];\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-static void BROTLI_NOINLINE DecodeDistanceBlockSwitch(BrotliDecoderState* s) {\r
-  DecodeDistanceBlockSwitchInternal(0, s);\r
-}\r
-\r
-static BROTLI_BOOL BROTLI_NOINLINE SafeDecodeDistanceBlockSwitch(\r
-    BrotliDecoderState* s) {\r
-  return DecodeDistanceBlockSwitchInternal(1, s);\r
-}\r
-\r
-static size_t UnwrittenBytes(const BrotliDecoderState* s, BROTLI_BOOL wrap) {\r
-  size_t pos = wrap && s->pos > s->ringbuffer_size ?\r
-      (size_t)s->ringbuffer_size : (size_t)(s->pos);\r
-  size_t partial_pos_rb = (s->rb_roundtrips * (size_t)s->ringbuffer_size) + pos;\r
-  return partial_pos_rb - s->partial_pos_out;\r
-}\r
-\r
-/* Dumps output.\r
-   Returns BROTLI_DECODER_NEEDS_MORE_OUTPUT only if there is more output to push\r
-   and either ring-buffer is as big as window size, or |force| is true. */\r
-static BrotliDecoderErrorCode BROTLI_NOINLINE WriteRingBuffer(\r
-    BrotliDecoderState* s, size_t* available_out, uint8_t** next_out,\r
-    size_t* total_out, BROTLI_BOOL force) {\r
-  uint8_t* start =\r
-      s->ringbuffer + (s->partial_pos_out & (size_t)s->ringbuffer_mask);\r
-  size_t to_write = UnwrittenBytes(s, BROTLI_TRUE);\r
-  size_t num_written = *available_out;\r
-  if (num_written > to_write) {\r
-    num_written = to_write;\r
-  }\r
-  if (s->meta_block_remaining_len < 0) {\r
-    return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1);\r
-  }\r
-  if (next_out && !*next_out) {\r
-    *next_out = start;\r
-  } else {\r
-    if (next_out) {\r
-      memcpy(*next_out, start, num_written);\r
-      *next_out += num_written;\r
-    }\r
-  }\r
-  *available_out -= num_written;\r
-  BROTLI_LOG_UINT(to_write);\r
-  BROTLI_LOG_UINT(num_written);\r
-  s->partial_pos_out += num_written;\r
-  if (total_out) {\r
-    *total_out = s->partial_pos_out;\r
-  }\r
-  if (num_written < to_write) {\r
-    if (s->ringbuffer_size == (1 << s->window_bits) || force) {\r
-      return BROTLI_DECODER_NEEDS_MORE_OUTPUT;\r
-    } else {\r
-      return BROTLI_DECODER_SUCCESS;\r
-    }\r
-  }\r
-  /* Wrap ring buffer only if it has reached its maximal size. */\r
-  if (s->ringbuffer_size == (1 << s->window_bits) &&\r
-      s->pos >= s->ringbuffer_size) {\r
-    s->pos -= s->ringbuffer_size;\r
-    s->rb_roundtrips++;\r
-    s->should_wrap_ringbuffer = (size_t)s->pos != 0 ? 1 : 0;\r
-  }\r
-  return BROTLI_DECODER_SUCCESS;\r
-}\r
-\r
-static void BROTLI_NOINLINE WrapRingBuffer(BrotliDecoderState* s) {\r
-  if (s->should_wrap_ringbuffer) {\r
-    memcpy(s->ringbuffer, s->ringbuffer_end, (size_t)s->pos);\r
-    s->should_wrap_ringbuffer = 0;\r
-  }\r
-}\r
-\r
-/* Allocates ring-buffer.\r
-\r
-   s->ringbuffer_size MUST be updated by BrotliCalculateRingBufferSize before\r
-   this function is called.\r
-\r
-   Last two bytes of ring-buffer are initialized to 0, so context calculation\r
-   could be done uniformly for the first two and all other positions. */\r
-static BROTLI_BOOL BROTLI_NOINLINE BrotliEnsureRingBuffer(\r
-    BrotliDecoderState* s) {\r
-  uint8_t* old_ringbuffer = s->ringbuffer;\r
-  if (s->ringbuffer_size == s->new_ringbuffer_size) {\r
-    return BROTLI_TRUE;\r
-  }\r
-\r
-  s->ringbuffer = (uint8_t*)BROTLI_DECODER_ALLOC(s,\r
-      (size_t)(s->new_ringbuffer_size) + kRingBufferWriteAheadSlack);\r
-  if (s->ringbuffer == 0) {\r
-    /* Restore previous value. */\r
-    s->ringbuffer = old_ringbuffer;\r
-    return BROTLI_FALSE;\r
-  }\r
-  s->ringbuffer[s->new_ringbuffer_size - 2] = 0;\r
-  s->ringbuffer[s->new_ringbuffer_size - 1] = 0;\r
-\r
-  if (!!old_ringbuffer) {\r
-    memcpy(s->ringbuffer, old_ringbuffer, (size_t)s->pos);\r
-    BROTLI_DECODER_FREE(s, old_ringbuffer);\r
-  }\r
-\r
-  s->ringbuffer_size = s->new_ringbuffer_size;\r
-  s->ringbuffer_mask = s->new_ringbuffer_size - 1;\r
-  s->ringbuffer_end = s->ringbuffer + s->ringbuffer_size;\r
-\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-static BrotliDecoderErrorCode BROTLI_NOINLINE CopyUncompressedBlockToOutput(\r
-    size_t* available_out, uint8_t** next_out, size_t* total_out,\r
-    BrotliDecoderState* s) {\r
-  /* TODO: avoid allocation for single uncompressed block. */\r
-  if (!BrotliEnsureRingBuffer(s)) {\r
-    return BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1);\r
-  }\r
-\r
-  /* State machine */\r
-  for (;;) {\r
-    switch (s->substate_uncompressed) {\r
-      case BROTLI_STATE_UNCOMPRESSED_NONE: {\r
-        int nbytes = (int)BrotliGetRemainingBytes(&s->br);\r
-        if (nbytes > s->meta_block_remaining_len) {\r
-          nbytes = s->meta_block_remaining_len;\r
-        }\r
-        if (s->pos + nbytes > s->ringbuffer_size) {\r
-          nbytes = s->ringbuffer_size - s->pos;\r
-        }\r
-        /* Copy remaining bytes from s->br.buf_ to ring-buffer. */\r
-        BrotliCopyBytes(&s->ringbuffer[s->pos], &s->br, (size_t)nbytes);\r
-        s->pos += nbytes;\r
-        s->meta_block_remaining_len -= nbytes;\r
-        if (s->pos < 1 << s->window_bits) {\r
-          if (s->meta_block_remaining_len == 0) {\r
-            return BROTLI_DECODER_SUCCESS;\r
-          }\r
-          return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-        }\r
-        s->substate_uncompressed = BROTLI_STATE_UNCOMPRESSED_WRITE;\r
-      }\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_UNCOMPRESSED_WRITE: {\r
-        BrotliDecoderErrorCode result;\r
-        result = WriteRingBuffer(\r
-            s, available_out, next_out, total_out, BROTLI_FALSE);\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          return result;\r
-        }\r
-        if (s->ringbuffer_size == 1 << s->window_bits) {\r
-          s->max_distance = s->max_backward_distance;\r
-        }\r
-        s->substate_uncompressed = BROTLI_STATE_UNCOMPRESSED_NONE;\r
-        break;\r
-      }\r
-    }\r
-  }\r
-  BROTLI_DCHECK(0);  /* Unreachable */\r
-}\r
-\r
-/* Calculates the smallest feasible ring buffer.\r
-\r
-   If we know the data size is small, do not allocate more ring buffer\r
-   size than needed to reduce memory usage.\r
-\r
-   When this method is called, metablock size and flags MUST be decoded. */\r
-static void BROTLI_NOINLINE BrotliCalculateRingBufferSize(\r
-    BrotliDecoderState* s) {\r
-  int window_size = 1 << s->window_bits;\r
-  int new_ringbuffer_size = window_size;\r
-  /* We need at least 2 bytes of ring buffer size to get the last two\r
-     bytes for context from there */\r
-  int min_size = s->ringbuffer_size ? s->ringbuffer_size : 1024;\r
-  int output_size;\r
-\r
-  /* If maximum is already reached, no further extension is retired. */\r
-  if (s->ringbuffer_size == window_size) {\r
-    return;\r
-  }\r
-\r
-  /* Metadata blocks does not touch ring buffer. */\r
-  if (s->is_metadata) {\r
-    return;\r
-  }\r
-\r
-  if (!s->ringbuffer) {\r
-    output_size = 0;\r
-  } else {\r
-    output_size = s->pos;\r
-  }\r
-  output_size += s->meta_block_remaining_len;\r
-  min_size = min_size < output_size ? output_size : min_size;\r
-\r
-  if (!!s->canny_ringbuffer_allocation) {\r
-    /* Reduce ring buffer size to save memory when server is unscrupulous.\r
-       In worst case memory usage might be 1.5x bigger for a short period of\r
-       ring buffer reallocation. */\r
-    while ((new_ringbuffer_size >> 1) >= min_size) {\r
-      new_ringbuffer_size >>= 1;\r
-    }\r
-  }\r
-\r
-  s->new_ringbuffer_size = new_ringbuffer_size;\r
-}\r
-\r
-/* Reads 1..256 2-bit context modes. */\r
-static BrotliDecoderErrorCode ReadContextModes(BrotliDecoderState* s) {\r
-  BrotliBitReader* br = &s->br;\r
-  int i = s->loop_counter;\r
-\r
-  while (i < (int)s->num_block_types[0]) {\r
-    uint32_t bits;\r
-    if (!BrotliSafeReadBits(br, 2, &bits)) {\r
-      s->loop_counter = i;\r
-      return BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-    }\r
-    s->context_modes[i] = (uint8_t)bits;\r
-    BROTLI_LOG_ARRAY_INDEX(s->context_modes, i);\r
-    i++;\r
-  }\r
-  return BROTLI_DECODER_SUCCESS;\r
-}\r
-\r
-static BROTLI_INLINE void TakeDistanceFromRingBuffer(BrotliDecoderState* s) {\r
-  if (s->distance_code == 0) {\r
-    --s->dist_rb_idx;\r
-    s->distance_code = s->dist_rb[s->dist_rb_idx & 3];\r
-    /* Compensate double distance-ring-buffer roll for dictionary items. */\r
-    s->distance_context = 1;\r
-  } else {\r
-    int distance_code = s->distance_code << 1;\r
-    /* kDistanceShortCodeIndexOffset has 2-bit values from LSB:\r
-        3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 */\r
-    const uint32_t kDistanceShortCodeIndexOffset = 0xAAAFFF1B;\r
-    /* kDistanceShortCodeValueOffset has 2-bit values from LSB:\r
-       -0, 0,-0, 0,-1, 1,-2, 2,-3, 3,-1, 1,-2, 2,-3, 3 */\r
-    const uint32_t kDistanceShortCodeValueOffset = 0xFA5FA500;\r
-    int v = (s->dist_rb_idx +\r
-        (int)(kDistanceShortCodeIndexOffset >> distance_code)) & 0x3;\r
-    s->distance_code = s->dist_rb[v];\r
-    v = (int)(kDistanceShortCodeValueOffset >> distance_code) & 0x3;\r
-    if ((distance_code & 0x3) != 0) {\r
-      s->distance_code += v;\r
-    } else {\r
-      s->distance_code -= v;\r
-      if (s->distance_code <= 0) {\r
-        /* A huge distance will cause a BROTLI_FAILURE() soon.\r
-           This is a little faster than failing here. */\r
-        s->distance_code = 0x7FFFFFFF;\r
-      }\r
-    }\r
-  }\r
-}\r
-\r
-static BROTLI_INLINE BROTLI_BOOL SafeReadBits(\r
-    BrotliBitReader* const br, uint32_t n_bits, uint32_t* val) {\r
-  if (n_bits != 0) {\r
-    return BrotliSafeReadBits(br, n_bits, val);\r
-  } else {\r
-    *val = 0;\r
-    return BROTLI_TRUE;\r
-  }\r
-}\r
-\r
-/* Precondition: s->distance_code < 0. */\r
-static BROTLI_INLINE BROTLI_BOOL ReadDistanceInternal(\r
-    int safe, BrotliDecoderState* s, BrotliBitReader* br) {\r
-  int distval;\r
-  BrotliBitReaderState memento;\r
-  HuffmanCode* distance_tree = s->distance_hgroup.htrees[s->dist_htree_index];\r
-  if (!safe) {\r
-    s->distance_code = (int)ReadSymbol(distance_tree, br);\r
-  } else {\r
-    uint32_t code;\r
-    BrotliBitReaderSaveState(br, &memento);\r
-    if (!SafeReadSymbol(distance_tree, br, &code)) {\r
-      return BROTLI_FALSE;\r
-    }\r
-    s->distance_code = (int)code;\r
-  }\r
-  /* Convert the distance code to the actual distance by possibly\r
-     looking up past distances from the s->ringbuffer. */\r
-  s->distance_context = 0;\r
-  if ((s->distance_code & ~0xF) == 0) {\r
-    TakeDistanceFromRingBuffer(s);\r
-    --s->block_length[2];\r
-    return BROTLI_TRUE;\r
-  }\r
-  distval = s->distance_code - (int)s->num_direct_distance_codes;\r
-  if (distval >= 0) {\r
-    uint32_t nbits;\r
-    int postfix;\r
-    int offset;\r
-    if (!safe && (s->distance_postfix_bits == 0)) {\r
-      nbits = ((uint32_t)distval >> 1) + 1;\r
-      offset = ((2 + (distval & 1)) << nbits) - 4;\r
-      s->distance_code = (int)s->num_direct_distance_codes + offset +\r
-                         (int)BrotliReadBits(br, nbits);\r
-    } else {\r
-      /* This branch also works well when s->distance_postfix_bits == 0. */\r
-      uint32_t bits;\r
-      postfix = distval & s->distance_postfix_mask;\r
-      distval >>= s->distance_postfix_bits;\r
-      nbits = ((uint32_t)distval >> 1) + 1;\r
-      if (safe) {\r
-        if (!SafeReadBits(br, nbits, &bits)) {\r
-          s->distance_code = -1;  /* Restore precondition. */\r
-          BrotliBitReaderRestoreState(br, &memento);\r
-          return BROTLI_FALSE;\r
-        }\r
-      } else {\r
-        bits = BrotliReadBits(br, nbits);\r
-      }\r
-      offset = ((2 + (distval & 1)) << nbits) - 4;\r
-      s->distance_code = (int)s->num_direct_distance_codes +\r
-          ((offset + (int)bits) << s->distance_postfix_bits) + postfix;\r
-    }\r
-  }\r
-  s->distance_code = s->distance_code - BROTLI_NUM_DISTANCE_SHORT_CODES + 1;\r
-  --s->block_length[2];\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-static BROTLI_INLINE void ReadDistance(\r
-    BrotliDecoderState* s, BrotliBitReader* br) {\r
-  ReadDistanceInternal(0, s, br);\r
-}\r
-\r
-static BROTLI_INLINE BROTLI_BOOL SafeReadDistance(\r
-    BrotliDecoderState* s, BrotliBitReader* br) {\r
-  return ReadDistanceInternal(1, s, br);\r
-}\r
-\r
-static BROTLI_INLINE BROTLI_BOOL ReadCommandInternal(\r
-    int safe, BrotliDecoderState* s, BrotliBitReader* br, int* insert_length) {\r
-  uint32_t cmd_code;\r
-  uint32_t insert_len_extra = 0;\r
-  uint32_t copy_length;\r
-  CmdLutElement v;\r
-  BrotliBitReaderState memento;\r
-  if (!safe) {\r
-    cmd_code = ReadSymbol(s->htree_command, br);\r
-    ASSERT (cmd_code < BROTLI_NUM_COMMAND_SYMBOLS);\r
-  } else {\r
-    BrotliBitReaderSaveState(br, &memento);\r
-    if (!SafeReadSymbol(s->htree_command, br, &cmd_code)) {\r
-      return BROTLI_FALSE;\r
-    }\r
-  }\r
-  v = kCmdLut[cmd_code];\r
-  s->distance_code = v.distance_code;\r
-  s->distance_context = v.context;\r
-  s->dist_htree_index = s->dist_context_map_slice[s->distance_context];\r
-  *insert_length = v.insert_len_offset;\r
-  if (!safe) {\r
-    if (BROTLI_PREDICT_FALSE(v.insert_len_extra_bits != 0)) {\r
-      insert_len_extra = BrotliReadBits(br, v.insert_len_extra_bits);\r
-    }\r
-    copy_length = BrotliReadBits(br, v.copy_len_extra_bits);\r
-  } else {\r
-    if (!SafeReadBits(br, v.insert_len_extra_bits, &insert_len_extra) ||\r
-        !SafeReadBits(br, v.copy_len_extra_bits, &copy_length)) {\r
-      BrotliBitReaderRestoreState(br, &memento);\r
-      return BROTLI_FALSE;\r
-    }\r
-  }\r
-  s->copy_length = (int)copy_length + v.copy_len_offset;\r
-  --s->block_length[1];\r
-  *insert_length += (int)insert_len_extra;\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-static BROTLI_INLINE void ReadCommand(\r
-    BrotliDecoderState* s, BrotliBitReader* br, int* insert_length) {\r
-  ReadCommandInternal(0, s, br, insert_length);\r
-}\r
-\r
-static BROTLI_INLINE BROTLI_BOOL SafeReadCommand(\r
-    BrotliDecoderState* s, BrotliBitReader* br, int* insert_length) {\r
-  return ReadCommandInternal(1, s, br, insert_length);\r
-}\r
-\r
-static BROTLI_INLINE BROTLI_BOOL CheckInputAmount(\r
-    int safe, BrotliBitReader* const br, size_t num) {\r
-  if (safe) {\r
-    return BROTLI_TRUE;\r
-  }\r
-  return BrotliCheckInputAmount(br, num);\r
-}\r
-\r
-#define BROTLI_SAFE(METHOD)                       \\r
-  {                                               \\r
-    if (safe) {                                   \\r
-      if (!Safe##METHOD) {                        \\r
-        result = BROTLI_DECODER_NEEDS_MORE_INPUT; \\r
-        goto saveStateAndReturn;                  \\r
-      }                                           \\r
-    } else {                                      \\r
-      METHOD;                                     \\r
-    }                                             \\r
-  }\r
-\r
-static BROTLI_INLINE BrotliDecoderErrorCode ProcessCommandsInternal(\r
-    int safe, BrotliDecoderState* s) {\r
-  int pos = s->pos;\r
-  int i = s->loop_counter;\r
-  BrotliDecoderErrorCode result = BROTLI_DECODER_SUCCESS;\r
-  BrotliBitReader* br = &s->br;\r
-\r
-  if (!CheckInputAmount(safe, br, 28)) {\r
-    result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-    goto saveStateAndReturn;\r
-  }\r
-  if (!safe) {\r
-    BROTLI_UNUSED(BrotliWarmupBitReader(br));\r
-  }\r
-\r
-  /* Jump into state machine. */\r
-  if (s->state == BROTLI_STATE_COMMAND_BEGIN) {\r
-    goto CommandBegin;\r
-  } else if (s->state == BROTLI_STATE_COMMAND_INNER) {\r
-    goto CommandInner;\r
-  } else if (s->state == BROTLI_STATE_COMMAND_POST_DECODE_LITERALS) {\r
-    goto CommandPostDecodeLiterals;\r
-  } else if (s->state == BROTLI_STATE_COMMAND_POST_WRAP_COPY) {\r
-    goto CommandPostWrapCopy;\r
-  } else {\r
-    return BROTLI_FAILURE(BROTLI_DECODER_ERROR_UNREACHABLE);\r
-  }\r
-\r
-CommandBegin:\r
-  if (safe) {\r
-    s->state = BROTLI_STATE_COMMAND_BEGIN;\r
-  }\r
-  if (!CheckInputAmount(safe, br, 28)) {  /* 156 bits + 7 bytes */\r
-    s->state = BROTLI_STATE_COMMAND_BEGIN;\r
-    result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-    goto saveStateAndReturn;\r
-  }\r
-  if (BROTLI_PREDICT_FALSE(s->block_length[1] == 0)) {\r
-    BROTLI_SAFE(DecodeCommandBlockSwitch(s));\r
-    goto CommandBegin;\r
-  }\r
-  /* Read the insert/copy length in the command. */\r
-  BROTLI_SAFE(ReadCommand(s, br, &i));\r
-  BROTLI_LOG(("[ProcessCommandsInternal] pos = %d insert = %d copy = %d\n",\r
-              pos, i, s->copy_length));\r
-  if (i == 0) {\r
-    goto CommandPostDecodeLiterals;\r
-  }\r
-  s->meta_block_remaining_len -= i;\r
-\r
-CommandInner:\r
-  if (safe) {\r
-    s->state = BROTLI_STATE_COMMAND_INNER;\r
-  }\r
-  /* Read the literals in the command. */\r
-  if (s->trivial_literal_context) {\r
-    uint32_t bits;\r
-    uint32_t value;\r
-    PreloadSymbol(safe, s->literal_htree, br, &bits, &value);\r
-    do {\r
-      if (!CheckInputAmount(safe, br, 28)) {  /* 162 bits + 7 bytes */\r
-        s->state = BROTLI_STATE_COMMAND_INNER;\r
-        result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-        goto saveStateAndReturn;\r
-      }\r
-      if (BROTLI_PREDICT_FALSE(s->block_length[0] == 0)) {\r
-        BROTLI_SAFE(DecodeLiteralBlockSwitch(s));\r
-        PreloadSymbol(safe, s->literal_htree, br, &bits, &value);\r
-        if (!s->trivial_literal_context) goto CommandInner;\r
-      }\r
-      if (!safe) {\r
-        s->ringbuffer[pos] =\r
-            (uint8_t)ReadPreloadedSymbol(s->literal_htree, br, &bits, &value);\r
-      } else {\r
-        uint32_t literal;\r
-        if (!SafeReadSymbol(s->literal_htree, br, &literal)) {\r
-          result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          goto saveStateAndReturn;\r
-        }\r
-        s->ringbuffer[pos] = (uint8_t)literal;\r
-      }\r
-      --s->block_length[0];\r
-      BROTLI_LOG_ARRAY_INDEX(s->ringbuffer, pos);\r
-      ++pos;\r
-      if (BROTLI_PREDICT_FALSE(pos == s->ringbuffer_size)) {\r
-        s->state = BROTLI_STATE_COMMAND_INNER_WRITE;\r
-        --i;\r
-        goto saveStateAndReturn;\r
-      }\r
-    } while (--i != 0);\r
-  } else {\r
-    uint8_t p1 = s->ringbuffer[(pos - 1) & s->ringbuffer_mask];\r
-    uint8_t p2 = s->ringbuffer[(pos - 2) & s->ringbuffer_mask];\r
-    do {\r
-      const HuffmanCode* hc;\r
-      uint8_t context;\r
-      if (!CheckInputAmount(safe, br, 28)) {  /* 162 bits + 7 bytes */\r
-        s->state = BROTLI_STATE_COMMAND_INNER;\r
-        result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-        goto saveStateAndReturn;\r
-      }\r
-      if (BROTLI_PREDICT_FALSE(s->block_length[0] == 0)) {\r
-        BROTLI_SAFE(DecodeLiteralBlockSwitch(s));\r
-        if (s->trivial_literal_context) goto CommandInner;\r
-      }\r
-      context = BROTLI_CONTEXT(p1, p2, s->context_lookup);\r
-      BROTLI_LOG_UINT(context);\r
-      hc = s->literal_hgroup.htrees[s->context_map_slice[context]];\r
-      p2 = p1;\r
-      if (!safe) {\r
-        p1 = (uint8_t)ReadSymbol(hc, br);\r
-      } else {\r
-        uint32_t literal;\r
-        if (!SafeReadSymbol(hc, br, &literal)) {\r
-          result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          goto saveStateAndReturn;\r
-        }\r
-        p1 = (uint8_t)literal;\r
-      }\r
-      s->ringbuffer[pos] = p1;\r
-      --s->block_length[0];\r
-      BROTLI_LOG_UINT(s->context_map_slice[context]);\r
-      BROTLI_LOG_ARRAY_INDEX(s->ringbuffer, pos & s->ringbuffer_mask);\r
-      ++pos;\r
-      if (BROTLI_PREDICT_FALSE(pos == s->ringbuffer_size)) {\r
-        s->state = BROTLI_STATE_COMMAND_INNER_WRITE;\r
-        --i;\r
-        goto saveStateAndReturn;\r
-      }\r
-    } while (--i != 0);\r
-  }\r
-  BROTLI_LOG_UINT(s->meta_block_remaining_len);\r
-  if (BROTLI_PREDICT_FALSE(s->meta_block_remaining_len <= 0)) {\r
-    s->state = BROTLI_STATE_METABLOCK_DONE;\r
-    goto saveStateAndReturn;\r
-  }\r
-\r
-CommandPostDecodeLiterals:\r
-  if (safe) {\r
-    s->state = BROTLI_STATE_COMMAND_POST_DECODE_LITERALS;\r
-  }\r
-  if (s->distance_code >= 0) {\r
-    /* Implicit distance case. */\r
-    s->distance_context = s->distance_code ? 0 : 1;\r
-    --s->dist_rb_idx;\r
-    s->distance_code = s->dist_rb[s->dist_rb_idx & 3];\r
-  } else {\r
-    /* Read distance code in the command, unless it was implicitly zero. */\r
-    if (BROTLI_PREDICT_FALSE(s->block_length[2] == 0)) {\r
-      BROTLI_SAFE(DecodeDistanceBlockSwitch(s));\r
-    }\r
-    BROTLI_SAFE(ReadDistance(s, br));\r
-  }\r
-  BROTLI_LOG(("[ProcessCommandsInternal] pos = %d distance = %d\n",\r
-              pos, s->distance_code));\r
-  if (s->max_distance != s->max_backward_distance) {\r
-    s->max_distance =\r
-        (pos < s->max_backward_distance) ? pos : s->max_backward_distance;\r
-  }\r
-  i = s->copy_length;\r
-  /* Apply copy of LZ77 back-reference, or static dictionary reference if\r
-     the distance is larger than the max LZ77 distance */\r
-  if (s->distance_code > s->max_distance) {\r
-    /* The maximum allowed distance is BROTLI_MAX_ALLOWED_DISTANCE = 0x7FFFFFFC.\r
-       With this choice, no signed overflow can occur after decoding\r
-       a special distance code (e.g., after adding 3 to the last distance). */\r
-    if (s->distance_code > BROTLI_MAX_ALLOWED_DISTANCE) {\r
-      BROTLI_LOG(("Invalid backward reference. pos: %d distance: %d "\r
-          "len: %d bytes left: %d\n",\r
-          pos, s->distance_code, i, s->meta_block_remaining_len));\r
-      return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_DISTANCE);\r
-    }\r
-    if (i >= BROTLI_MIN_DICTIONARY_WORD_LENGTH &&\r
-        i <= BROTLI_MAX_DICTIONARY_WORD_LENGTH) {\r
-      int address = s->distance_code - s->max_distance - 1;\r
-      const BrotliDictionary* words = s->dictionary;\r
-      const BrotliTransforms* transforms = s->transforms;\r
-      int offset = (int)s->dictionary->offsets_by_length[i];\r
-      uint32_t shift = s->dictionary->size_bits_by_length[i];\r
-\r
-      int mask = (int)BitMask(shift);\r
-      int word_idx = address & mask;\r
-      int transform_idx = address >> shift;\r
-      /* Compensate double distance-ring-buffer roll. */\r
-      s->dist_rb_idx += s->distance_context;\r
-      offset += word_idx * i;\r
-      if (BROTLI_PREDICT_FALSE(!words->data)) {\r
-        return BROTLI_FAILURE(BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET);\r
-      }\r
-      if (transform_idx < (int)transforms->num_transforms) {\r
-        const uint8_t* word = &words->data[offset];\r
-        int len = i;\r
-        if (transform_idx == transforms->cutOffTransforms[0]) {\r
-          memcpy(&s->ringbuffer[pos], word, (size_t)len);\r
-          BROTLI_LOG(("[ProcessCommandsInternal] dictionary word: [%.*s]\n",\r
-                      len, word));\r
-        } else {\r
-          len = BrotliTransformDictionaryWord(&s->ringbuffer[pos], word, len,\r
-              transforms, transform_idx);\r
-          BROTLI_LOG(("[ProcessCommandsInternal] dictionary word: [%.*s],"\r
-                      " transform_idx = %d, transformed: [%.*s]\n",\r
-                      i, word, transform_idx, len, &s->ringbuffer[pos]));\r
-        }\r
-        pos += len;\r
-        s->meta_block_remaining_len -= len;\r
-        if (pos >= s->ringbuffer_size) {\r
-          s->state = BROTLI_STATE_COMMAND_POST_WRITE_1;\r
-          goto saveStateAndReturn;\r
-        }\r
-      } else {\r
-        BROTLI_LOG(("Invalid backward reference. pos: %d distance: %d "\r
-            "len: %d bytes left: %d\n",\r
-            pos, s->distance_code, i, s->meta_block_remaining_len));\r
-        return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_TRANSFORM);\r
-      }\r
-    } else {\r
-      BROTLI_LOG(("Invalid backward reference. pos: %d distance: %d "\r
-          "len: %d bytes left: %d\n",\r
-          pos, s->distance_code, i, s->meta_block_remaining_len));\r
-      return BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_DICTIONARY);\r
-    }\r
-  } else {\r
-    int src_start = (pos - s->distance_code) & s->ringbuffer_mask;\r
-    uint8_t* copy_dst = &s->ringbuffer[pos];\r
-    uint8_t* copy_src = &s->ringbuffer[src_start];\r
-    int dst_end = pos + i;\r
-    int src_end = src_start + i;\r
-    /* Update the recent distances cache. */\r
-    s->dist_rb[s->dist_rb_idx & 3] = s->distance_code;\r
-    ++s->dist_rb_idx;\r
-    s->meta_block_remaining_len -= i;\r
-    /* There are 32+ bytes of slack in the ring-buffer allocation.\r
-       Also, we have 16 short codes, that make these 16 bytes irrelevant\r
-       in the ring-buffer. Let's copy over them as a first guess. */\r
-    memmove16(copy_dst, copy_src);\r
-    if (src_end > pos && dst_end > src_start) {\r
-      /* Regions intersect. */\r
-      goto CommandPostWrapCopy;\r
-    }\r
-    if (dst_end >= s->ringbuffer_size || src_end >= s->ringbuffer_size) {\r
-      /* At least one region wraps. */\r
-      goto CommandPostWrapCopy;\r
-    }\r
-    pos += i;\r
-    if (i > 16) {\r
-      if (i > 32) {\r
-        memcpy(copy_dst + 16, copy_src + 16, (size_t)(i - 16));\r
-      } else {\r
-        /* This branch covers about 45% cases.\r
-           Fixed size short copy allows more compiler optimizations. */\r
-        memmove16(copy_dst + 16, copy_src + 16);\r
-      }\r
-    }\r
-  }\r
-  BROTLI_LOG_UINT(s->meta_block_remaining_len);\r
-  if (s->meta_block_remaining_len <= 0) {\r
-    /* Next metablock, if any. */\r
-    s->state = BROTLI_STATE_METABLOCK_DONE;\r
-    goto saveStateAndReturn;\r
-  } else {\r
-    goto CommandBegin;\r
-  }\r
-CommandPostWrapCopy:\r
-  {\r
-    int wrap_guard = s->ringbuffer_size - pos;\r
-    while (--i >= 0) {\r
-      s->ringbuffer[pos] =\r
-          s->ringbuffer[(pos - s->distance_code) & s->ringbuffer_mask];\r
-      ++pos;\r
-      if (BROTLI_PREDICT_FALSE(--wrap_guard == 0)) {\r
-        s->state = BROTLI_STATE_COMMAND_POST_WRITE_2;\r
-        goto saveStateAndReturn;\r
-      }\r
-    }\r
-  }\r
-  if (s->meta_block_remaining_len <= 0) {\r
-    /* Next metablock, if any. */\r
-    s->state = BROTLI_STATE_METABLOCK_DONE;\r
-    goto saveStateAndReturn;\r
-  } else {\r
-    goto CommandBegin;\r
-  }\r
-\r
-saveStateAndReturn:\r
-  s->pos = pos;\r
-  s->loop_counter = i;\r
-  return result;\r
-}\r
-\r
-#undef BROTLI_SAFE\r
-\r
-static BROTLI_NOINLINE BrotliDecoderErrorCode ProcessCommands(\r
-    BrotliDecoderState* s) {\r
-  return ProcessCommandsInternal(0, s);\r
-}\r
-\r
-static BROTLI_NOINLINE BrotliDecoderErrorCode SafeProcessCommands(\r
-    BrotliDecoderState* s) {\r
-  return ProcessCommandsInternal(1, s);\r
-}\r
-\r
-/* Returns the maximum number of distance symbols which can only represent\r
-   distances not exceeding BROTLI_MAX_ALLOWED_DISTANCE. */\r
-static uint32_t BrotliMaxDistanceSymbol(uint32_t ndirect, uint32_t npostfix) {\r
-  static const uint32_t bound[BROTLI_MAX_NPOSTFIX + 1] = {0, 4, 12, 28};\r
-  static const uint32_t diff[BROTLI_MAX_NPOSTFIX + 1] = {73, 126, 228, 424};\r
-  uint32_t postfix = 1U << npostfix;\r
-  if (ndirect < bound[npostfix]) {\r
-    return ndirect + diff[npostfix] + postfix;\r
-  } else if (ndirect > bound[npostfix] + postfix) {\r
-    return ndirect + diff[npostfix];\r
-  } else {\r
-    return bound[npostfix] + diff[npostfix] + postfix;\r
-  }\r
-}\r
-\r
-BrotliDecoderResult BrotliDecoderDecompress(\r
-    size_t encoded_size, const uint8_t* encoded_buffer, size_t* decoded_size,\r
-    uint8_t* decoded_buffer) {\r
-  BrotliDecoderState s;\r
-  BrotliDecoderResult result;\r
-  size_t total_out = 0;\r
-  size_t available_in = encoded_size;\r
-  const uint8_t* next_in = encoded_buffer;\r
-  size_t available_out = *decoded_size;\r
-  uint8_t* next_out = decoded_buffer;\r
-  if (!BrotliDecoderStateInit(&s, 0, 0, 0)) {\r
-    return BROTLI_DECODER_RESULT_ERROR;\r
-  }\r
-  result = BrotliDecoderDecompressStream(\r
-      &s, &available_in, &next_in, &available_out, &next_out, &total_out);\r
-  *decoded_size = total_out;\r
-  BrotliDecoderStateCleanup(&s);\r
-  if (result != BROTLI_DECODER_RESULT_SUCCESS) {\r
-    result = BROTLI_DECODER_RESULT_ERROR;\r
-  }\r
-  return result;\r
-}\r
-\r
-/* Invariant: input stream is never overconsumed:\r
-    - invalid input implies that the whole stream is invalid -> any amount of\r
-      input could be read and discarded\r
-    - when result is "needs more input", then at least one more byte is REQUIRED\r
-      to complete decoding; all input data MUST be consumed by decoder, so\r
-      client could swap the input buffer\r
-    - when result is "needs more output" decoder MUST ensure that it doesn't\r
-      hold more than 7 bits in bit reader; this saves client from swapping input\r
-      buffer ahead of time\r
-    - when result is "success" decoder MUST return all unused data back to input\r
-      buffer; this is possible because the invariant is held on enter */\r
-BrotliDecoderResult BrotliDecoderDecompressStream(\r
-    BrotliDecoderState* s, size_t* available_in, const uint8_t** next_in,\r
-    size_t* available_out, uint8_t** next_out, size_t* total_out) {\r
-  BrotliDecoderErrorCode result = BROTLI_DECODER_SUCCESS;\r
-  BrotliBitReader* br = &s->br;\r
-  /* Ensure that |total_out| is set, even if no data will ever be pushed out. */\r
-  if (total_out) {\r
-    *total_out = s->partial_pos_out;\r
-  }\r
-  /* Do not try to process further in a case of unrecoverable error. */\r
-  if ((int)s->error_code < 0) {\r
-    return BROTLI_DECODER_RESULT_ERROR;\r
-  }\r
-  if (*available_out && (!next_out || !*next_out)) {\r
-    return SaveErrorCode(\r
-        s, BROTLI_FAILURE(BROTLI_DECODER_ERROR_INVALID_ARGUMENTS));\r
-  }\r
-  if (!*available_out) next_out = 0;\r
-  if (s->buffer_length == 0) {  /* Just connect bit reader to input stream. */\r
-    br->avail_in = *available_in;\r
-    br->next_in = *next_in;\r
-  } else {\r
-    /* At least one byte of input is required. More than one byte of input may\r
-       be required to complete the transaction -> reading more data must be\r
-       done in a loop -> do it in a main loop. */\r
-    result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-    br->next_in = &s->buffer.u8[0];\r
-  }\r
-  /* State machine */\r
-  for (;;) {\r
-    if (result != BROTLI_DECODER_SUCCESS) {\r
-      /* Error, needs more input/output. */\r
-      if (result == BROTLI_DECODER_NEEDS_MORE_INPUT) {\r
-        if (s->ringbuffer != 0) {  /* Pro-actively push output. */\r
-          BrotliDecoderErrorCode intermediate_result = WriteRingBuffer(s,\r
-              available_out, next_out, total_out, BROTLI_TRUE);\r
-          /* WriteRingBuffer checks s->meta_block_remaining_len validity. */\r
-          if ((int)intermediate_result < 0) {\r
-            result = intermediate_result;\r
-            break;\r
-          }\r
-        }\r
-        if (s->buffer_length != 0) {  /* Used with internal buffer. */\r
-          if (br->avail_in == 0) {\r
-            /* Successfully finished read transaction.\r
-               Accumulator contains less than 8 bits, because internal buffer\r
-               is expanded byte-by-byte until it is enough to complete read. */\r
-            s->buffer_length = 0;\r
-            /* Switch to input stream and restart. */\r
-            result = BROTLI_DECODER_SUCCESS;\r
-            br->avail_in = *available_in;\r
-            br->next_in = *next_in;\r
-            continue;\r
-          } else if (*available_in != 0) {\r
-            /* Not enough data in buffer, but can take one more byte from\r
-               input stream. */\r
-            result = BROTLI_DECODER_SUCCESS;\r
-            s->buffer.u8[s->buffer_length] = **next_in;\r
-            s->buffer_length++;\r
-            br->avail_in = s->buffer_length;\r
-            (*next_in)++;\r
-            (*available_in)--;\r
-            /* Retry with more data in buffer. */\r
-            continue;\r
-          }\r
-          /* Can't finish reading and no more input. */\r
-          break;\r
-        } else {  /* Input stream doesn't contain enough input. */\r
-          /* Copy tail to internal buffer and return. */\r
-          *next_in = br->next_in;\r
-          *available_in = br->avail_in;\r
-          while (*available_in) {\r
-            s->buffer.u8[s->buffer_length] = **next_in;\r
-            s->buffer_length++;\r
-            (*next_in)++;\r
-            (*available_in)--;\r
-          }\r
-          break;\r
-        }\r
-        /* Unreachable. */\r
-      }\r
-\r
-      /* Fail or needs more output. */\r
-\r
-      if (s->buffer_length != 0) {\r
-        /* Just consumed the buffered input and produced some output. Otherwise\r
-           it would result in "needs more input". Reset internal buffer. */\r
-        s->buffer_length = 0;\r
-      } else {\r
-        /* Using input stream in last iteration. When decoder switches to input\r
-           stream it has less than 8 bits in accumulator, so it is safe to\r
-           return unused accumulator bits there. */\r
-        BrotliBitReaderUnload(br);\r
-        *available_in = br->avail_in;\r
-        *next_in = br->next_in;\r
-      }\r
-      break;\r
-    }\r
-    switch (s->state) {\r
-      case BROTLI_STATE_UNINITED:\r
-        /* Prepare to the first read. */\r
-        if (!BrotliWarmupBitReader(br)) {\r
-          result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          break;\r
-        }\r
-        /* Decode window size. */\r
-        result = DecodeWindowBits(s, br);  /* Reads 1..8 bits. */\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          break;\r
-        }\r
-        if (s->large_window) {\r
-          s->state = BROTLI_STATE_LARGE_WINDOW_BITS;\r
-          break;\r
-        }\r
-        s->state = BROTLI_STATE_INITIALIZE;\r
-        break;\r
-\r
-      case BROTLI_STATE_LARGE_WINDOW_BITS:\r
-        if (!BrotliSafeReadBits(br, 6, &s->window_bits)) {\r
-          result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          break;\r
-        }\r
-        if (s->window_bits < BROTLI_LARGE_MIN_WBITS ||\r
-            s->window_bits > BROTLI_LARGE_MAX_WBITS) {\r
-          result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS);\r
-          break;\r
-        }\r
-        s->state = BROTLI_STATE_INITIALIZE;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_INITIALIZE:\r
-        BROTLI_LOG_UINT(s->window_bits);\r
-        /* Maximum distance, see section 9.1. of the spec. */\r
-        s->max_backward_distance = (1 << s->window_bits) - BROTLI_WINDOW_GAP;\r
-\r
-        /* Allocate memory for both block_type_trees and block_len_trees. */\r
-        s->block_type_trees = (HuffmanCode*)BROTLI_DECODER_ALLOC(s,\r
-            sizeof(HuffmanCode) * 3 *\r
-                (BROTLI_HUFFMAN_MAX_SIZE_258 + BROTLI_HUFFMAN_MAX_SIZE_26));\r
-        if (s->block_type_trees == 0) {\r
-          result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES);\r
-          break;\r
-        }\r
-        s->block_len_trees =\r
-            s->block_type_trees + 3 * BROTLI_HUFFMAN_MAX_SIZE_258;\r
-\r
-        s->state = BROTLI_STATE_METABLOCK_BEGIN;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_METABLOCK_BEGIN:\r
-        BrotliDecoderStateMetablockBegin(s);\r
-        BROTLI_LOG_UINT(s->pos);\r
-        s->state = BROTLI_STATE_METABLOCK_HEADER;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_METABLOCK_HEADER:\r
-        result = DecodeMetaBlockLength(s, br);  /* Reads 2 - 31 bits. */\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          break;\r
-        }\r
-        BROTLI_LOG_UINT(s->is_last_metablock);\r
-        BROTLI_LOG_UINT(s->meta_block_remaining_len);\r
-        BROTLI_LOG_UINT(s->is_metadata);\r
-        BROTLI_LOG_UINT(s->is_uncompressed);\r
-        if (s->is_metadata || s->is_uncompressed) {\r
-          if (!BrotliJumpToByteBoundary(br)) {\r
-            result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_PADDING_1);\r
-            break;\r
-          }\r
-        }\r
-        if (s->is_metadata) {\r
-          s->state = BROTLI_STATE_METADATA;\r
-          break;\r
-        }\r
-        if (s->meta_block_remaining_len == 0) {\r
-          s->state = BROTLI_STATE_METABLOCK_DONE;\r
-          break;\r
-        }\r
-        BrotliCalculateRingBufferSize(s);\r
-        if (s->is_uncompressed) {\r
-          s->state = BROTLI_STATE_UNCOMPRESSED;\r
-          break;\r
-        }\r
-        s->loop_counter = 0;\r
-        s->state = BROTLI_STATE_HUFFMAN_CODE_0;\r
-        break;\r
-\r
-      case BROTLI_STATE_UNCOMPRESSED: {\r
-        result = CopyUncompressedBlockToOutput(\r
-            available_out, next_out, total_out, s);\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          break;\r
-        }\r
-        s->state = BROTLI_STATE_METABLOCK_DONE;\r
-        break;\r
-      }\r
-\r
-      case BROTLI_STATE_METADATA:\r
-        for (; s->meta_block_remaining_len > 0; --s->meta_block_remaining_len) {\r
-          uint32_t bits;\r
-          /* Read one byte and ignore it. */\r
-          if (!BrotliSafeReadBits(br, 8, &bits)) {\r
-            result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-            break;\r
-          }\r
-        }\r
-        if (result == BROTLI_DECODER_SUCCESS) {\r
-          s->state = BROTLI_STATE_METABLOCK_DONE;\r
-        }\r
-        break;\r
-\r
-      case BROTLI_STATE_HUFFMAN_CODE_0:\r
-        if (s->loop_counter >= 3) {\r
-          s->state = BROTLI_STATE_METABLOCK_HEADER_2;\r
-          break;\r
-        }\r
-        /* Reads 1..11 bits. */\r
-        result = DecodeVarLenUint8(s, br, &s->num_block_types[s->loop_counter]);\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          break;\r
-        }\r
-        s->num_block_types[s->loop_counter]++;\r
-        BROTLI_LOG_UINT(s->num_block_types[s->loop_counter]);\r
-        if (s->num_block_types[s->loop_counter] < 2) {\r
-          s->loop_counter++;\r
-          break;\r
-        }\r
-        s->state = BROTLI_STATE_HUFFMAN_CODE_1;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_HUFFMAN_CODE_1: {\r
-        uint32_t alphabet_size = s->num_block_types[s->loop_counter] + 2;\r
-        int tree_offset = s->loop_counter * BROTLI_HUFFMAN_MAX_SIZE_258;\r
-        result = ReadHuffmanCode(alphabet_size, alphabet_size,\r
-            &s->block_type_trees[tree_offset], NULL, s);\r
-        if (result != BROTLI_DECODER_SUCCESS) break;\r
-        s->state = BROTLI_STATE_HUFFMAN_CODE_2;\r
-      }\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_HUFFMAN_CODE_2: {\r
-        uint32_t alphabet_size = BROTLI_NUM_BLOCK_LEN_SYMBOLS;\r
-        int tree_offset = s->loop_counter * BROTLI_HUFFMAN_MAX_SIZE_26;\r
-        result = ReadHuffmanCode(alphabet_size, alphabet_size,\r
-            &s->block_len_trees[tree_offset], NULL, s);\r
-        if (result != BROTLI_DECODER_SUCCESS) break;\r
-        s->state = BROTLI_STATE_HUFFMAN_CODE_3;\r
-      }\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_HUFFMAN_CODE_3: {\r
-        int tree_offset = s->loop_counter * BROTLI_HUFFMAN_MAX_SIZE_26;\r
-        if (!SafeReadBlockLength(s, &s->block_length[s->loop_counter],\r
-            &s->block_len_trees[tree_offset], br)) {\r
-          result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          break;\r
-        }\r
-        BROTLI_LOG_UINT(s->block_length[s->loop_counter]);\r
-        s->loop_counter++;\r
-        s->state = BROTLI_STATE_HUFFMAN_CODE_0;\r
-        break;\r
-      }\r
-\r
-      case BROTLI_STATE_METABLOCK_HEADER_2: {\r
-        uint32_t bits;\r
-        if (!BrotliSafeReadBits(br, 6, &bits)) {\r
-          result = BROTLI_DECODER_NEEDS_MORE_INPUT;\r
-          break;\r
-        }\r
-        s->distance_postfix_bits = bits & BitMask(2);\r
-        bits >>= 2;\r
-        s->num_direct_distance_codes = BROTLI_NUM_DISTANCE_SHORT_CODES +\r
-            (bits << s->distance_postfix_bits);\r
-        BROTLI_LOG_UINT(s->num_direct_distance_codes);\r
-        BROTLI_LOG_UINT(s->distance_postfix_bits);\r
-        s->distance_postfix_mask = (int)BitMask(s->distance_postfix_bits);\r
-        s->context_modes =\r
-            (uint8_t*)BROTLI_DECODER_ALLOC(s, (size_t)s->num_block_types[0]);\r
-        if (s->context_modes == 0) {\r
-          result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES);\r
-          break;\r
-        }\r
-        s->loop_counter = 0;\r
-        s->state = BROTLI_STATE_CONTEXT_MODES;\r
-      }\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_CONTEXT_MODES:\r
-        result = ReadContextModes(s);\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          break;\r
-        }\r
-        s->state = BROTLI_STATE_CONTEXT_MAP_1;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_CONTEXT_MAP_1:\r
-        result = DecodeContextMap(\r
-            s->num_block_types[0] << BROTLI_LITERAL_CONTEXT_BITS,\r
-            &s->num_literal_htrees, &s->context_map, s);\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          break;\r
-        }\r
-        DetectTrivialLiteralBlockTypes(s);\r
-        s->state = BROTLI_STATE_CONTEXT_MAP_2;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_CONTEXT_MAP_2: {\r
-        uint32_t num_direct_codes =\r
-            s->num_direct_distance_codes - BROTLI_NUM_DISTANCE_SHORT_CODES;\r
-        uint32_t num_distance_codes = BROTLI_DISTANCE_ALPHABET_SIZE(\r
-            s->distance_postfix_bits, num_direct_codes,\r
-            (s->large_window ? BROTLI_LARGE_MAX_DISTANCE_BITS :\r
-                               BROTLI_MAX_DISTANCE_BITS));\r
-        uint32_t max_distance_symbol = (s->large_window ?\r
-            BrotliMaxDistanceSymbol(\r
-                num_direct_codes, s->distance_postfix_bits) :\r
-            num_distance_codes);\r
-        BROTLI_BOOL allocation_success = BROTLI_TRUE;\r
-        result = DecodeContextMap(\r
-            s->num_block_types[2] << BROTLI_DISTANCE_CONTEXT_BITS,\r
-            &s->num_dist_htrees, &s->dist_context_map, s);\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          break;\r
-        }\r
-        allocation_success &= BrotliDecoderHuffmanTreeGroupInit(\r
-            s, &s->literal_hgroup, BROTLI_NUM_LITERAL_SYMBOLS,\r
-            BROTLI_NUM_LITERAL_SYMBOLS, s->num_literal_htrees);\r
-        allocation_success &= BrotliDecoderHuffmanTreeGroupInit(\r
-            s, &s->insert_copy_hgroup, BROTLI_NUM_COMMAND_SYMBOLS,\r
-            BROTLI_NUM_COMMAND_SYMBOLS, s->num_block_types[1]);\r
-        allocation_success &= BrotliDecoderHuffmanTreeGroupInit(\r
-            s, &s->distance_hgroup, num_distance_codes,\r
-            max_distance_symbol, s->num_dist_htrees);\r
-        if (!allocation_success) {\r
-          return SaveErrorCode(s,\r
-              BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS));\r
-        }\r
-        s->loop_counter = 0;\r
-        s->state = BROTLI_STATE_TREE_GROUP;\r
-      }\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_TREE_GROUP: {\r
-        HuffmanTreeGroup* hgroup = NULL;\r
-        switch (s->loop_counter) {\r
-          case 0: hgroup = &s->literal_hgroup; break;\r
-          case 1: hgroup = &s->insert_copy_hgroup; break;\r
-          case 2: hgroup = &s->distance_hgroup; break;\r
-          default: return SaveErrorCode(s, BROTLI_FAILURE(\r
-              BROTLI_DECODER_ERROR_UNREACHABLE));\r
-        }\r
-        result = HuffmanTreeGroupDecode(hgroup, s);\r
-        if (result != BROTLI_DECODER_SUCCESS) break;\r
-        s->loop_counter++;\r
-        if (s->loop_counter >= 3) {\r
-          PrepareLiteralDecoding(s);\r
-          s->dist_context_map_slice = s->dist_context_map;\r
-          s->htree_command = s->insert_copy_hgroup.htrees[0];\r
-          if (!BrotliEnsureRingBuffer(s)) {\r
-            result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2);\r
-            break;\r
-          }\r
-          s->state = BROTLI_STATE_COMMAND_BEGIN;\r
-        }\r
-        break;\r
-      }\r
-\r
-      case BROTLI_STATE_COMMAND_BEGIN:\r
-      /* Fall through. */\r
-      case BROTLI_STATE_COMMAND_INNER:\r
-      /* Fall through. */\r
-      case BROTLI_STATE_COMMAND_POST_DECODE_LITERALS:\r
-      /* Fall through. */\r
-      case BROTLI_STATE_COMMAND_POST_WRAP_COPY:\r
-        result = ProcessCommands(s);\r
-        if (result == BROTLI_DECODER_NEEDS_MORE_INPUT) {\r
-          result = SafeProcessCommands(s);\r
-        }\r
-        break;\r
-\r
-      case BROTLI_STATE_COMMAND_INNER_WRITE:\r
-      /* Fall through. */\r
-      case BROTLI_STATE_COMMAND_POST_WRITE_1:\r
-      /* Fall through. */\r
-      case BROTLI_STATE_COMMAND_POST_WRITE_2:\r
-        result = WriteRingBuffer(\r
-            s, available_out, next_out, total_out, BROTLI_FALSE);\r
-        if (result != BROTLI_DECODER_SUCCESS) {\r
-          break;\r
-        }\r
-        WrapRingBuffer(s);\r
-        if (s->ringbuffer_size == 1 << s->window_bits) {\r
-          s->max_distance = s->max_backward_distance;\r
-        }\r
-        if (s->state == BROTLI_STATE_COMMAND_POST_WRITE_1) {\r
-          if (s->meta_block_remaining_len == 0) {\r
-            /* Next metablock, if any. */\r
-            s->state = BROTLI_STATE_METABLOCK_DONE;\r
-          } else {\r
-            s->state = BROTLI_STATE_COMMAND_BEGIN;\r
-          }\r
-          break;\r
-        } else if (s->state == BROTLI_STATE_COMMAND_POST_WRITE_2) {\r
-          s->state = BROTLI_STATE_COMMAND_POST_WRAP_COPY;\r
-        } else {  /* BROTLI_STATE_COMMAND_INNER_WRITE */\r
-          if (s->loop_counter == 0) {\r
-            if (s->meta_block_remaining_len == 0) {\r
-              s->state = BROTLI_STATE_METABLOCK_DONE;\r
-            } else {\r
-              s->state = BROTLI_STATE_COMMAND_POST_DECODE_LITERALS;\r
-            }\r
-            break;\r
-          }\r
-          s->state = BROTLI_STATE_COMMAND_INNER;\r
-        }\r
-        break;\r
-\r
-      case BROTLI_STATE_METABLOCK_DONE:\r
-        if (s->meta_block_remaining_len < 0) {\r
-          result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2);\r
-          break;\r
-        }\r
-        BrotliDecoderStateCleanupAfterMetablock(s);\r
-        if (!s->is_last_metablock) {\r
-          s->state = BROTLI_STATE_METABLOCK_BEGIN;\r
-          break;\r
-        }\r
-        if (!BrotliJumpToByteBoundary(br)) {\r
-          result = BROTLI_FAILURE(BROTLI_DECODER_ERROR_FORMAT_PADDING_2);\r
-          break;\r
-        }\r
-        if (s->buffer_length == 0) {\r
-          BrotliBitReaderUnload(br);\r
-          *available_in = br->avail_in;\r
-          *next_in = br->next_in;\r
-        }\r
-        s->state = BROTLI_STATE_DONE;\r
-      /* Fall through. */\r
-\r
-      case BROTLI_STATE_DONE:\r
-        if (s->ringbuffer != 0) {\r
-          result = WriteRingBuffer(\r
-              s, available_out, next_out, total_out, BROTLI_TRUE);\r
-          if (result != BROTLI_DECODER_SUCCESS) {\r
-            break;\r
-          }\r
-        }\r
-        return SaveErrorCode(s, result);\r
-    }\r
-  }\r
-  return SaveErrorCode(s, result);\r
-}\r
-\r
-BROTLI_BOOL BrotliDecoderHasMoreOutput(const BrotliDecoderState* s) {\r
-  /* After unrecoverable error remaining output is considered nonsensical. */\r
-  if ((int)s->error_code < 0) {\r
-    return BROTLI_FALSE;\r
-  }\r
-  return TO_BROTLI_BOOL(\r
-      s->ringbuffer != 0 && UnwrittenBytes(s, BROTLI_FALSE) != 0);\r
-}\r
-\r
-const uint8_t* BrotliDecoderTakeOutput(BrotliDecoderState* s, size_t* size) {\r
-  uint8_t* result = 0;\r
-  size_t available_out = *size ? *size : 1u << 24;\r
-  size_t requested_out = available_out;\r
-  BrotliDecoderErrorCode status;\r
-  if ((s->ringbuffer == 0) || ((int)s->error_code < 0)) {\r
-    *size = 0;\r
-    return 0;\r
-  }\r
-  WrapRingBuffer(s);\r
-  status = WriteRingBuffer(s, &available_out, &result, 0, BROTLI_TRUE);\r
-  /* Either WriteRingBuffer returns those "success" codes... */\r
-  if (status == BROTLI_DECODER_SUCCESS ||\r
-      status == BROTLI_DECODER_NEEDS_MORE_OUTPUT) {\r
-    *size = requested_out - available_out;\r
-  } else {\r
-    /* ... or stream is broken. Normally this should be caught by\r
-       BrotliDecoderDecompressStream, this is just a safeguard. */\r
-    if ((int)status < 0) SaveErrorCode(s, status);\r
-    *size = 0;\r
-    result = 0;\r
-  }\r
-  return result;\r
-}\r
-\r
-BROTLI_BOOL BrotliDecoderIsUsed(const BrotliDecoderState* s) {\r
-  return TO_BROTLI_BOOL(s->state != BROTLI_STATE_UNINITED ||\r
-      BrotliGetAvailableBits(&s->br) != 0);\r
-}\r
-\r
-BROTLI_BOOL BrotliDecoderIsFinished(const BrotliDecoderState* s) {\r
-  return TO_BROTLI_BOOL(s->state == BROTLI_STATE_DONE) &&\r
-      !BrotliDecoderHasMoreOutput(s);\r
-}\r
-\r
-BrotliDecoderErrorCode BrotliDecoderGetErrorCode(const BrotliDecoderState* s) {\r
-  return (BrotliDecoderErrorCode)s->error_code;\r
-}\r
-\r
-const char* BrotliDecoderErrorString(BrotliDecoderErrorCode c) {\r
-  switch (c) {\r
-#define BROTLI_ERROR_CODE_CASE_(PREFIX, NAME, CODE) \\r
-    case BROTLI_DECODER ## PREFIX ## NAME: return #NAME;\r
-#define BROTLI_NOTHING_\r
-    BROTLI_DECODER_ERROR_CODES_LIST(BROTLI_ERROR_CODE_CASE_, BROTLI_NOTHING_)\r
-#undef BROTLI_ERROR_CODE_CASE_\r
-#undef BROTLI_NOTHING_\r
-    default: return "INVALID";\r
-  }\r
-}\r
-\r
-uint32_t BrotliDecoderVersion() {\r
-  return BROTLI_VERSION;\r
-}\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/huffman.c b/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/huffman.c
deleted file mode 100644 (file)
index bf20109..0000000
+++ /dev/null
@@ -1,356 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Utilities for building Huffman decoding tables. */\r
-\r
-#include "./huffman.h"\r
-\r
-//#include <string.h>  /* memcpy, memset */\r
-\r
-#include "../common/constants.h"\r
-#include "../common/platform.h"\r
-#include <brotli/types.h>\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-#define BROTLI_REVERSE_BITS_MAX 8\r
-\r
-#if defined(BROTLI_RBIT)\r
-#define BROTLI_REVERSE_BITS_BASE \\r
-  ((sizeof(brotli_reg_t) << 3) - BROTLI_REVERSE_BITS_MAX)\r
-#else\r
-#define BROTLI_REVERSE_BITS_BASE 0\r
-static uint8_t kReverseBits[1 << BROTLI_REVERSE_BITS_MAX] = {\r
-  0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0,\r
-  0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0,\r
-  0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,\r
-  0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8,\r
-  0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4,\r
-  0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,\r
-  0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC,\r
-  0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC,\r
-  0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,\r
-  0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2,\r
-  0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA,\r
-  0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,\r
-  0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6,\r
-  0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6,\r
-  0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,\r
-  0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE,\r
-  0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1,\r
-  0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,\r
-  0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9,\r
-  0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9,\r
-  0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,\r
-  0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5,\r
-  0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED,\r
-  0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,\r
-  0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3,\r
-  0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3,\r
-  0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,\r
-  0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB,\r
-  0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7,\r
-  0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,\r
-  0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF,\r
-  0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF\r
-};\r
-#endif  /* BROTLI_RBIT */\r
-\r
-#define BROTLI_REVERSE_BITS_LOWEST \\r
-  ((brotli_reg_t)1 << (BROTLI_REVERSE_BITS_MAX - 1 + BROTLI_REVERSE_BITS_BASE))\r
-\r
-/* Returns reverse(num >> BROTLI_REVERSE_BITS_BASE, BROTLI_REVERSE_BITS_MAX),\r
-   where reverse(value, len) is the bit-wise reversal of the len least\r
-   significant bits of value. */\r
-static BROTLI_INLINE brotli_reg_t BrotliReverseBits(brotli_reg_t num) {\r
-#if defined(BROTLI_RBIT)\r
-  return BROTLI_RBIT(num);\r
-#else\r
-  return kReverseBits[num];\r
-#endif\r
-}\r
-\r
-/* Stores code in table[0], table[step], table[2*step], ..., table[end] */\r
-/* Assumes that end is an integer multiple of step */\r
-static BROTLI_INLINE void ReplicateValue(HuffmanCode* table,\r
-                                         int step, int end,\r
-                                         HuffmanCode code) {\r
-  do {\r
-    end -= step;\r
-    table[end] = code;\r
-  } while (end > 0);\r
-}\r
-\r
-/* Returns the table width of the next 2nd level table. |count| is the histogram\r
-   of bit lengths for the remaining symbols, |len| is the code length of the\r
-   next processed symbol. */\r
-static BROTLI_INLINE int NextTableBitSize(const uint16_t* const count,\r
-                                          int len, int root_bits) {\r
-  int left = 1 << (len - root_bits);\r
-  while (len < BROTLI_HUFFMAN_MAX_CODE_LENGTH) {\r
-    left -= count[len];\r
-    if (left <= 0) break;\r
-    ++len;\r
-    left <<= 1;\r
-  }\r
-  return len - root_bits;\r
-}\r
-\r
-void BrotliBuildCodeLengthsHuffmanTable(HuffmanCode* table,\r
-                                        const uint8_t* const code_lengths,\r
-                                        uint16_t* count) {\r
-  HuffmanCode code;       /* current table entry */\r
-  int symbol;             /* symbol index in original or sorted table */\r
-  brotli_reg_t key;       /* prefix code */\r
-  brotli_reg_t key_step;  /* prefix code addend */\r
-  int step;               /* step size to replicate values in current table */\r
-  int table_size;         /* size of current table */\r
-  int sorted[BROTLI_CODE_LENGTH_CODES];  /* symbols sorted by code length */\r
-  /* offsets in sorted table for each length */\r
-  int offset[BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH + 1];\r
-  int bits;\r
-  int bits_count;\r
-  BROTLI_DCHECK(BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH <=\r
-                BROTLI_REVERSE_BITS_MAX);\r
-\r
-  /* Generate offsets into sorted symbol table by code length. */\r
-  symbol = -1;\r
-  bits = 1;\r
-  BROTLI_REPEAT(BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH, {\r
-    symbol += count[bits];\r
-    offset[bits] = symbol;\r
-    bits++;\r
-  });\r
-  /* Symbols with code length 0 are placed after all other symbols. */\r
-  offset[0] = BROTLI_CODE_LENGTH_CODES - 1;\r
-\r
-  /* Sort symbols by length, by symbol order within each length. */\r
-  symbol = BROTLI_CODE_LENGTH_CODES;\r
-  do {\r
-    BROTLI_REPEAT(6, {\r
-      symbol--;\r
-      sorted[offset[code_lengths[symbol]]--] = symbol;\r
-    });\r
-  } while (symbol != 0);\r
-\r
-  table_size = 1 << BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH;\r
-\r
-  /* Special case: all symbols but one have 0 code length. */\r
-  if (offset[0] == 0) {\r
-    code.bits = 0;\r
-    code.value = (uint16_t)sorted[0];\r
-    for (key = 0; key < (brotli_reg_t)table_size; ++key) {\r
-      table[key] = code;\r
-    }\r
-    return;\r
-  }\r
-\r
-  /* Fill in table. */\r
-  key = 0;\r
-  key_step = BROTLI_REVERSE_BITS_LOWEST;\r
-  symbol = 0;\r
-  bits = 1;\r
-  step = 2;\r
-  do {\r
-    code.bits = (uint8_t)bits;\r
-    for (bits_count = count[bits]; bits_count != 0; --bits_count) {\r
-      code.value = (uint16_t)sorted[symbol++];\r
-      ReplicateValue(&table[BrotliReverseBits(key)], step, table_size, code);\r
-      key += key_step;\r
-    }\r
-    step <<= 1;\r
-    key_step >>= 1;\r
-  } while (++bits <= BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH);\r
-}\r
-\r
-uint32_t BrotliBuildHuffmanTable(HuffmanCode* root_table,\r
-                                 int root_bits,\r
-                                 const uint16_t* const symbol_lists,\r
-                                 uint16_t* count) {\r
-  HuffmanCode code;       /* current table entry */\r
-  HuffmanCode* table;     /* next available space in table */\r
-  int len;                /* current code length */\r
-  int symbol;             /* symbol index in original or sorted table */\r
-  brotli_reg_t key;       /* prefix code */\r
-  brotli_reg_t key_step;  /* prefix code addend */\r
-  brotli_reg_t sub_key;   /* 2nd level table prefix code */\r
-  brotli_reg_t sub_key_step;  /* 2nd level table prefix code addend */\r
-  int step;               /* step size to replicate values in current table */\r
-  int table_bits;         /* key length of current table */\r
-  int table_size;         /* size of current table */\r
-  int total_size;         /* sum of root table size and 2nd level table sizes */\r
-  int max_length = -1;\r
-  int bits;\r
-  int bits_count;\r
-\r
-  BROTLI_DCHECK(root_bits <= BROTLI_REVERSE_BITS_MAX);\r
-  BROTLI_DCHECK(BROTLI_HUFFMAN_MAX_CODE_LENGTH - root_bits <=\r
-                BROTLI_REVERSE_BITS_MAX);\r
-\r
-  while (symbol_lists[max_length] == 0xFFFF) max_length--;\r
-  max_length += BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1;\r
-\r
-  table = root_table;\r
-  table_bits = root_bits;\r
-  table_size = 1 << table_bits;\r
-  total_size = table_size;\r
-\r
-  /* Fill in the root table. Reduce the table size to if possible,\r
-     and create the repetitions by memcpy. */\r
-  if (table_bits > max_length) {\r
-    table_bits = max_length;\r
-    table_size = 1 << table_bits;\r
-  }\r
-  key = 0;\r
-  key_step = BROTLI_REVERSE_BITS_LOWEST;\r
-  bits = 1;\r
-  step = 2;\r
-  do {\r
-    code.bits = (uint8_t)bits;\r
-    symbol = bits - (BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1);\r
-    for (bits_count = count[bits]; bits_count != 0; --bits_count) {\r
-      symbol = symbol_lists[symbol];\r
-      code.value = (uint16_t)symbol;\r
-      ReplicateValue(&table[BrotliReverseBits(key)], step, table_size, code);\r
-      key += key_step;\r
-    }\r
-    step <<= 1;\r
-    key_step >>= 1;\r
-  } while (++bits <= table_bits);\r
-\r
-  /* If root_bits != table_bits then replicate to fill the remaining slots. */\r
-  while (total_size != table_size) {\r
-    memcpy(&table[table_size], &table[0],\r
-           (size_t)table_size * sizeof(table[0]));\r
-    table_size <<= 1;\r
-  }\r
-\r
-  /* Fill in 2nd level tables and add pointers to root table. */\r
-  key_step = BROTLI_REVERSE_BITS_LOWEST >> (root_bits - 1);\r
-  sub_key = (BROTLI_REVERSE_BITS_LOWEST << 1);\r
-  sub_key_step = BROTLI_REVERSE_BITS_LOWEST;\r
-  for (len = root_bits + 1, step = 2; len <= max_length; ++len) {\r
-    symbol = len - (BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1);\r
-    for (; count[len] != 0; --count[len]) {\r
-      if (sub_key == (BROTLI_REVERSE_BITS_LOWEST << 1U)) {\r
-        table += table_size;\r
-        table_bits = NextTableBitSize(count, len, root_bits);\r
-        table_size = 1 << table_bits;\r
-        total_size += table_size;\r
-        sub_key = BrotliReverseBits(key);\r
-        key += key_step;\r
-        root_table[sub_key].bits = (uint8_t)(table_bits + root_bits);\r
-        root_table[sub_key].value =\r
-            (uint16_t)(((size_t)(table - root_table)) - sub_key);\r
-        sub_key = 0;\r
-      }\r
-      code.bits = (uint8_t)(len - root_bits);\r
-      symbol = symbol_lists[symbol];\r
-      code.value = (uint16_t)symbol;\r
-      ReplicateValue(\r
-          &table[BrotliReverseBits(sub_key)], step, table_size, code);\r
-      sub_key += sub_key_step;\r
-    }\r
-    step <<= 1;\r
-    sub_key_step >>= 1;\r
-  }\r
-  return (uint32_t)total_size;\r
-}\r
-\r
-uint32_t BrotliBuildSimpleHuffmanTable(HuffmanCode* table,\r
-                                       int root_bits,\r
-                                       uint16_t* val,\r
-                                       uint32_t num_symbols) {\r
-  uint32_t table_size = 1;\r
-  const uint32_t goal_size = 1U << root_bits;\r
-  switch (num_symbols) {\r
-    case 0:\r
-      table[0].bits = 0;\r
-      table[0].value = val[0];\r
-      break;\r
-    case 1:\r
-      table[0].bits = 1;\r
-      table[1].bits = 1;\r
-      if (val[1] > val[0]) {\r
-        table[0].value = val[0];\r
-        table[1].value = val[1];\r
-      } else {\r
-        table[0].value = val[1];\r
-        table[1].value = val[0];\r
-      }\r
-      table_size = 2;\r
-      break;\r
-    case 2:\r
-      table[0].bits = 1;\r
-      table[0].value = val[0];\r
-      table[2].bits = 1;\r
-      table[2].value = val[0];\r
-      if (val[2] > val[1]) {\r
-        table[1].value = val[1];\r
-        table[3].value = val[2];\r
-      } else {\r
-        table[1].value = val[2];\r
-        table[3].value = val[1];\r
-      }\r
-      table[1].bits = 2;\r
-      table[3].bits = 2;\r
-      table_size = 4;\r
-      break;\r
-    case 3: {\r
-      int i, k;\r
-      for (i = 0; i < 3; ++i) {\r
-        for (k = i + 1; k < 4; ++k) {\r
-          if (val[k] < val[i]) {\r
-            uint16_t t = val[k];\r
-            val[k] = val[i];\r
-            val[i] = t;\r
-          }\r
-        }\r
-      }\r
-      for (i = 0; i < 4; ++i) {\r
-        table[i].bits = 2;\r
-      }\r
-      table[0].value = val[0];\r
-      table[2].value = val[1];\r
-      table[1].value = val[2];\r
-      table[3].value = val[3];\r
-      table_size = 4;\r
-      break;\r
-    }\r
-    case 4: {\r
-      int i;\r
-      if (val[3] < val[2]) {\r
-        uint16_t t = val[3];\r
-        val[3] = val[2];\r
-        val[2] = t;\r
-      }\r
-      for (i = 0; i < 7; ++i) {\r
-        table[i].value = val[0];\r
-        table[i].bits = (uint8_t)(1 + (i & 1));\r
-      }\r
-      table[1].value = val[1];\r
-      table[3].value = val[2];\r
-      table[5].value = val[1];\r
-      table[7].value = val[3];\r
-      table[3].bits = 3;\r
-      table[7].bits = 3;\r
-      table_size = 8;\r
-      break;\r
-    }\r
-  }\r
-  while (table_size != goal_size) {\r
-    memcpy(&table[table_size], &table[0],\r
-           (size_t)table_size * sizeof(table[0]));\r
-    table_size <<= 1;\r
-  }\r
-  return goal_size;\r
-}\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/huffman.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/huffman.h
deleted file mode 100644 (file)
index 5fc8c02..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Utilities for building Huffman decoding tables. */\r
-\r
-#ifndef BROTLI_DEC_HUFFMAN_H_\r
-#define BROTLI_DEC_HUFFMAN_H_\r
-\r
-#include "../common/platform.h"\r
-#include <brotli/types.h>\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-#define BROTLI_HUFFMAN_MAX_CODE_LENGTH 15\r
-\r
-/* Maximum possible Huffman table size for an alphabet size of (index * 32),\r
-   max code length 15 and root table bits 8. */\r
-static const uint16_t kMaxHuffmanTableSize[] = {\r
-  256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822,\r
-  854, 886, 920, 952, 984, 1016, 1048, 1080, 1112, 1144, 1176, 1208, 1240, 1272,\r
-  1304, 1336, 1368, 1400, 1432, 1464, 1496, 1528};\r
-/* BROTLI_NUM_BLOCK_LEN_SYMBOLS == 26 */\r
-#define BROTLI_HUFFMAN_MAX_SIZE_26 396\r
-/* BROTLI_MAX_BLOCK_TYPE_SYMBOLS == 258 */\r
-#define BROTLI_HUFFMAN_MAX_SIZE_258 632\r
-/* BROTLI_MAX_CONTEXT_MAP_SYMBOLS == 272 */\r
-#define BROTLI_HUFFMAN_MAX_SIZE_272 646\r
-\r
-#define BROTLI_HUFFMAN_MAX_CODE_LENGTH_CODE_LENGTH 5\r
-\r
-typedef struct {\r
-  uint8_t bits;    /* number of bits used for this symbol */\r
-  uint16_t value;  /* symbol value or table offset */\r
-} HuffmanCode;\r
-\r
-/* Builds Huffman lookup table assuming code lengths are in symbol order. */\r
-BROTLI_INTERNAL void BrotliBuildCodeLengthsHuffmanTable(HuffmanCode* root_table,\r
-    const uint8_t* const code_lengths, uint16_t* count);\r
-\r
-/* Builds Huffman lookup table assuming code lengths are in symbol order.\r
-   Returns size of resulting table. */\r
-BROTLI_INTERNAL uint32_t BrotliBuildHuffmanTable(HuffmanCode* root_table,\r
-    int root_bits, const uint16_t* const symbol_lists, uint16_t* count_arg);\r
-\r
-/* Builds a simple Huffman table. The |num_symbols| parameter is to be\r
-   interpreted as follows: 0 means 1 symbol, 1 means 2 symbols,\r
-   2 means 3 symbols, 3 means 4 symbols with lengths [2, 2, 2, 2],\r
-   4 means 4 symbols with lengths [1, 2, 3, 3]. */\r
-BROTLI_INTERNAL uint32_t BrotliBuildSimpleHuffmanTable(HuffmanCode* table,\r
-    int root_bits, uint16_t* symbols, uint32_t num_symbols);\r
-\r
-/* Contains a collection of Huffman trees with the same alphabet size. */\r
-/* max_symbol is needed due to simple codes since log2(alphabet_size) could be\r
-   greater than log2(max_symbol). */\r
-typedef struct {\r
-  HuffmanCode** htrees;\r
-  HuffmanCode* codes;\r
-  uint16_t alphabet_size;\r
-  uint16_t max_symbol;\r
-  uint16_t num_htrees;\r
-} HuffmanTreeGroup;\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
-\r
-#endif  /* BROTLI_DEC_HUFFMAN_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/prefix.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/prefix.h
deleted file mode 100644 (file)
index 39cb459..0000000
+++ /dev/null
@@ -1,750 +0,0 @@
-/* Copyright 2013 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Lookup tables to map prefix codes to value ranges. This is used during\r
-   decoding of the block lengths, literal insertion lengths and copy lengths. */\r
-\r
-#ifndef BROTLI_DEC_PREFIX_H_\r
-#define BROTLI_DEC_PREFIX_H_\r
-\r
-#include "../common/constants.h"\r
-#include <brotli/types.h>\r
-\r
-/* Represents the range of values belonging to a prefix code:\r
-   [offset, offset + 2^nbits) */\r
-struct PrefixCodeRange {\r
-  uint16_t offset;\r
-  uint8_t nbits;\r
-};\r
-\r
-static const struct PrefixCodeRange\r
-    kBlockLengthPrefixCode[BROTLI_NUM_BLOCK_LEN_SYMBOLS] = {\r
-  {   1,  2}, {    5,  2}, {  9,   2}, {  13,  2},\r
-  {  17,  3}, {   25,  3}, {  33,  3}, {  41,  3},\r
-  {  49,  4}, {   65,  4}, {  81,  4}, {  97,  4},\r
-  { 113,  5}, {  145,  5}, { 177,  5}, { 209,  5},\r
-  { 241,  6}, {  305,  6}, { 369,  7}, { 497,  8},\r
-  { 753,  9}, { 1265, 10}, {2289, 11}, {4337, 12},\r
-  {8433, 13}, {16625, 24}\r
-};\r
-\r
-typedef struct CmdLutElement {\r
-  uint8_t insert_len_extra_bits;\r
-  uint8_t copy_len_extra_bits;\r
-  int8_t distance_code;\r
-  uint8_t context;\r
-  uint16_t insert_len_offset;\r
-  uint16_t copy_len_offset;\r
-} CmdLutElement;\r
-\r
-static const CmdLutElement kCmdLut[BROTLI_NUM_COMMAND_SYMBOLS] = {\r
-  { 0x00, 0x00, 0, 0x00, 0x0000, 0x0002 },\r
-  { 0x00, 0x00, 0, 0x01, 0x0000, 0x0003 },\r
-  { 0x00, 0x00, 0, 0x02, 0x0000, 0x0004 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0000, 0x0005 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0000, 0x0006 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0000, 0x0007 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0000, 0x0008 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0000, 0x0009 },\r
-  { 0x00, 0x00, 0, 0x00, 0x0001, 0x0002 },\r
-  { 0x00, 0x00, 0, 0x01, 0x0001, 0x0003 },\r
-  { 0x00, 0x00, 0, 0x02, 0x0001, 0x0004 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0001, 0x0005 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0001, 0x0006 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0001, 0x0007 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0001, 0x0008 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0001, 0x0009 },\r
-  { 0x00, 0x00, 0, 0x00, 0x0002, 0x0002 },\r
-  { 0x00, 0x00, 0, 0x01, 0x0002, 0x0003 },\r
-  { 0x00, 0x00, 0, 0x02, 0x0002, 0x0004 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0002, 0x0005 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0002, 0x0006 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0002, 0x0007 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0002, 0x0008 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0002, 0x0009 },\r
-  { 0x00, 0x00, 0, 0x00, 0x0003, 0x0002 },\r
-  { 0x00, 0x00, 0, 0x01, 0x0003, 0x0003 },\r
-  { 0x00, 0x00, 0, 0x02, 0x0003, 0x0004 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0003, 0x0005 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0003, 0x0006 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0003, 0x0007 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0003, 0x0008 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0003, 0x0009 },\r
-  { 0x00, 0x00, 0, 0x00, 0x0004, 0x0002 },\r
-  { 0x00, 0x00, 0, 0x01, 0x0004, 0x0003 },\r
-  { 0x00, 0x00, 0, 0x02, 0x0004, 0x0004 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0004, 0x0005 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0004, 0x0006 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0004, 0x0007 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0004, 0x0008 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0004, 0x0009 },\r
-  { 0x00, 0x00, 0, 0x00, 0x0005, 0x0002 },\r
-  { 0x00, 0x00, 0, 0x01, 0x0005, 0x0003 },\r
-  { 0x00, 0x00, 0, 0x02, 0x0005, 0x0004 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0005, 0x0005 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0005, 0x0006 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0005, 0x0007 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0005, 0x0008 },\r
-  { 0x00, 0x00, 0, 0x03, 0x0005, 0x0009 },\r
-  { 0x01, 0x00, 0, 0x00, 0x0006, 0x0002 },\r
-  { 0x01, 0x00, 0, 0x01, 0x0006, 0x0003 },\r
-  { 0x01, 0x00, 0, 0x02, 0x0006, 0x0004 },\r
-  { 0x01, 0x00, 0, 0x03, 0x0006, 0x0005 },\r
-  { 0x01, 0x00, 0, 0x03, 0x0006, 0x0006 },\r
-  { 0x01, 0x00, 0, 0x03, 0x0006, 0x0007 },\r
-  { 0x01, 0x00, 0, 0x03, 0x0006, 0x0008 },\r
-  { 0x01, 0x00, 0, 0x03, 0x0006, 0x0009 },\r
-  { 0x01, 0x00, 0, 0x00, 0x0008, 0x0002 },\r
-  { 0x01, 0x00, 0, 0x01, 0x0008, 0x0003 },\r
-  { 0x01, 0x00, 0, 0x02, 0x0008, 0x0004 },\r
-  { 0x01, 0x00, 0, 0x03, 0x0008, 0x0005 },\r
-  { 0x01, 0x00, 0, 0x03, 0x0008, 0x0006 },\r
-  { 0x01, 0x00, 0, 0x03, 0x0008, 0x0007 },\r
-  { 0x01, 0x00, 0, 0x03, 0x0008, 0x0008 },\r
-  { 0x01, 0x00, 0, 0x03, 0x0008, 0x0009 },\r
-  { 0x00, 0x01, 0, 0x03, 0x0000, 0x000a },\r
-  { 0x00, 0x01, 0, 0x03, 0x0000, 0x000c },\r
-  { 0x00, 0x02, 0, 0x03, 0x0000, 0x000e },\r
-  { 0x00, 0x02, 0, 0x03, 0x0000, 0x0012 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0000, 0x0016 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0000, 0x001e },\r
-  { 0x00, 0x04, 0, 0x03, 0x0000, 0x0026 },\r
-  { 0x00, 0x04, 0, 0x03, 0x0000, 0x0036 },\r
-  { 0x00, 0x01, 0, 0x03, 0x0001, 0x000a },\r
-  { 0x00, 0x01, 0, 0x03, 0x0001, 0x000c },\r
-  { 0x00, 0x02, 0, 0x03, 0x0001, 0x000e },\r
-  { 0x00, 0x02, 0, 0x03, 0x0001, 0x0012 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0001, 0x0016 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0001, 0x001e },\r
-  { 0x00, 0x04, 0, 0x03, 0x0001, 0x0026 },\r
-  { 0x00, 0x04, 0, 0x03, 0x0001, 0x0036 },\r
-  { 0x00, 0x01, 0, 0x03, 0x0002, 0x000a },\r
-  { 0x00, 0x01, 0, 0x03, 0x0002, 0x000c },\r
-  { 0x00, 0x02, 0, 0x03, 0x0002, 0x000e },\r
-  { 0x00, 0x02, 0, 0x03, 0x0002, 0x0012 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0002, 0x0016 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0002, 0x001e },\r
-  { 0x00, 0x04, 0, 0x03, 0x0002, 0x0026 },\r
-  { 0x00, 0x04, 0, 0x03, 0x0002, 0x0036 },\r
-  { 0x00, 0x01, 0, 0x03, 0x0003, 0x000a },\r
-  { 0x00, 0x01, 0, 0x03, 0x0003, 0x000c },\r
-  { 0x00, 0x02, 0, 0x03, 0x0003, 0x000e },\r
-  { 0x00, 0x02, 0, 0x03, 0x0003, 0x0012 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0003, 0x0016 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0003, 0x001e },\r
-  { 0x00, 0x04, 0, 0x03, 0x0003, 0x0026 },\r
-  { 0x00, 0x04, 0, 0x03, 0x0003, 0x0036 },\r
-  { 0x00, 0x01, 0, 0x03, 0x0004, 0x000a },\r
-  { 0x00, 0x01, 0, 0x03, 0x0004, 0x000c },\r
-  { 0x00, 0x02, 0, 0x03, 0x0004, 0x000e },\r
-  { 0x00, 0x02, 0, 0x03, 0x0004, 0x0012 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0004, 0x0016 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0004, 0x001e },\r
-  { 0x00, 0x04, 0, 0x03, 0x0004, 0x0026 },\r
-  { 0x00, 0x04, 0, 0x03, 0x0004, 0x0036 },\r
-  { 0x00, 0x01, 0, 0x03, 0x0005, 0x000a },\r
-  { 0x00, 0x01, 0, 0x03, 0x0005, 0x000c },\r
-  { 0x00, 0x02, 0, 0x03, 0x0005, 0x000e },\r
-  { 0x00, 0x02, 0, 0x03, 0x0005, 0x0012 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0005, 0x0016 },\r
-  { 0x00, 0x03, 0, 0x03, 0x0005, 0x001e },\r
-  { 0x00, 0x04, 0, 0x03, 0x0005, 0x0026 },\r
-  { 0x00, 0x04, 0, 0x03, 0x0005, 0x0036 },\r
-  { 0x01, 0x01, 0, 0x03, 0x0006, 0x000a },\r
-  { 0x01, 0x01, 0, 0x03, 0x0006, 0x000c },\r
-  { 0x01, 0x02, 0, 0x03, 0x0006, 0x000e },\r
-  { 0x01, 0x02, 0, 0x03, 0x0006, 0x0012 },\r
-  { 0x01, 0x03, 0, 0x03, 0x0006, 0x0016 },\r
-  { 0x01, 0x03, 0, 0x03, 0x0006, 0x001e },\r
-  { 0x01, 0x04, 0, 0x03, 0x0006, 0x0026 },\r
-  { 0x01, 0x04, 0, 0x03, 0x0006, 0x0036 },\r
-  { 0x01, 0x01, 0, 0x03, 0x0008, 0x000a },\r
-  { 0x01, 0x01, 0, 0x03, 0x0008, 0x000c },\r
-  { 0x01, 0x02, 0, 0x03, 0x0008, 0x000e },\r
-  { 0x01, 0x02, 0, 0x03, 0x0008, 0x0012 },\r
-  { 0x01, 0x03, 0, 0x03, 0x0008, 0x0016 },\r
-  { 0x01, 0x03, 0, 0x03, 0x0008, 0x001e },\r
-  { 0x01, 0x04, 0, 0x03, 0x0008, 0x0026 },\r
-  { 0x01, 0x04, 0, 0x03, 0x0008, 0x0036 },\r
-  { 0x00, 0x00, -1, 0x00, 0x0000, 0x0002 },\r
-  { 0x00, 0x00, -1, 0x01, 0x0000, 0x0003 },\r
-  { 0x00, 0x00, -1, 0x02, 0x0000, 0x0004 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0000, 0x0005 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0000, 0x0006 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0000, 0x0007 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0000, 0x0008 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0000, 0x0009 },\r
-  { 0x00, 0x00, -1, 0x00, 0x0001, 0x0002 },\r
-  { 0x00, 0x00, -1, 0x01, 0x0001, 0x0003 },\r
-  { 0x00, 0x00, -1, 0x02, 0x0001, 0x0004 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0001, 0x0005 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0001, 0x0006 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0001, 0x0007 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0001, 0x0008 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0001, 0x0009 },\r
-  { 0x00, 0x00, -1, 0x00, 0x0002, 0x0002 },\r
-  { 0x00, 0x00, -1, 0x01, 0x0002, 0x0003 },\r
-  { 0x00, 0x00, -1, 0x02, 0x0002, 0x0004 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0002, 0x0005 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0002, 0x0006 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0002, 0x0007 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0002, 0x0008 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0002, 0x0009 },\r
-  { 0x00, 0x00, -1, 0x00, 0x0003, 0x0002 },\r
-  { 0x00, 0x00, -1, 0x01, 0x0003, 0x0003 },\r
-  { 0x00, 0x00, -1, 0x02, 0x0003, 0x0004 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0003, 0x0005 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0003, 0x0006 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0003, 0x0007 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0003, 0x0008 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0003, 0x0009 },\r
-  { 0x00, 0x00, -1, 0x00, 0x0004, 0x0002 },\r
-  { 0x00, 0x00, -1, 0x01, 0x0004, 0x0003 },\r
-  { 0x00, 0x00, -1, 0x02, 0x0004, 0x0004 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0004, 0x0005 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0004, 0x0006 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0004, 0x0007 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0004, 0x0008 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0004, 0x0009 },\r
-  { 0x00, 0x00, -1, 0x00, 0x0005, 0x0002 },\r
-  { 0x00, 0x00, -1, 0x01, 0x0005, 0x0003 },\r
-  { 0x00, 0x00, -1, 0x02, 0x0005, 0x0004 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0005, 0x0005 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0005, 0x0006 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0005, 0x0007 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0005, 0x0008 },\r
-  { 0x00, 0x00, -1, 0x03, 0x0005, 0x0009 },\r
-  { 0x01, 0x00, -1, 0x00, 0x0006, 0x0002 },\r
-  { 0x01, 0x00, -1, 0x01, 0x0006, 0x0003 },\r
-  { 0x01, 0x00, -1, 0x02, 0x0006, 0x0004 },\r
-  { 0x01, 0x00, -1, 0x03, 0x0006, 0x0005 },\r
-  { 0x01, 0x00, -1, 0x03, 0x0006, 0x0006 },\r
-  { 0x01, 0x00, -1, 0x03, 0x0006, 0x0007 },\r
-  { 0x01, 0x00, -1, 0x03, 0x0006, 0x0008 },\r
-  { 0x01, 0x00, -1, 0x03, 0x0006, 0x0009 },\r
-  { 0x01, 0x00, -1, 0x00, 0x0008, 0x0002 },\r
-  { 0x01, 0x00, -1, 0x01, 0x0008, 0x0003 },\r
-  { 0x01, 0x00, -1, 0x02, 0x0008, 0x0004 },\r
-  { 0x01, 0x00, -1, 0x03, 0x0008, 0x0005 },\r
-  { 0x01, 0x00, -1, 0x03, 0x0008, 0x0006 },\r
-  { 0x01, 0x00, -1, 0x03, 0x0008, 0x0007 },\r
-  { 0x01, 0x00, -1, 0x03, 0x0008, 0x0008 },\r
-  { 0x01, 0x00, -1, 0x03, 0x0008, 0x0009 },\r
-  { 0x00, 0x01, -1, 0x03, 0x0000, 0x000a },\r
-  { 0x00, 0x01, -1, 0x03, 0x0000, 0x000c },\r
-  { 0x00, 0x02, -1, 0x03, 0x0000, 0x000e },\r
-  { 0x00, 0x02, -1, 0x03, 0x0000, 0x0012 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0000, 0x0016 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0000, 0x001e },\r
-  { 0x00, 0x04, -1, 0x03, 0x0000, 0x0026 },\r
-  { 0x00, 0x04, -1, 0x03, 0x0000, 0x0036 },\r
-  { 0x00, 0x01, -1, 0x03, 0x0001, 0x000a },\r
-  { 0x00, 0x01, -1, 0x03, 0x0001, 0x000c },\r
-  { 0x00, 0x02, -1, 0x03, 0x0001, 0x000e },\r
-  { 0x00, 0x02, -1, 0x03, 0x0001, 0x0012 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0001, 0x0016 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0001, 0x001e },\r
-  { 0x00, 0x04, -1, 0x03, 0x0001, 0x0026 },\r
-  { 0x00, 0x04, -1, 0x03, 0x0001, 0x0036 },\r
-  { 0x00, 0x01, -1, 0x03, 0x0002, 0x000a },\r
-  { 0x00, 0x01, -1, 0x03, 0x0002, 0x000c },\r
-  { 0x00, 0x02, -1, 0x03, 0x0002, 0x000e },\r
-  { 0x00, 0x02, -1, 0x03, 0x0002, 0x0012 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0002, 0x0016 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0002, 0x001e },\r
-  { 0x00, 0x04, -1, 0x03, 0x0002, 0x0026 },\r
-  { 0x00, 0x04, -1, 0x03, 0x0002, 0x0036 },\r
-  { 0x00, 0x01, -1, 0x03, 0x0003, 0x000a },\r
-  { 0x00, 0x01, -1, 0x03, 0x0003, 0x000c },\r
-  { 0x00, 0x02, -1, 0x03, 0x0003, 0x000e },\r
-  { 0x00, 0x02, -1, 0x03, 0x0003, 0x0012 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0003, 0x0016 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0003, 0x001e },\r
-  { 0x00, 0x04, -1, 0x03, 0x0003, 0x0026 },\r
-  { 0x00, 0x04, -1, 0x03, 0x0003, 0x0036 },\r
-  { 0x00, 0x01, -1, 0x03, 0x0004, 0x000a },\r
-  { 0x00, 0x01, -1, 0x03, 0x0004, 0x000c },\r
-  { 0x00, 0x02, -1, 0x03, 0x0004, 0x000e },\r
-  { 0x00, 0x02, -1, 0x03, 0x0004, 0x0012 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0004, 0x0016 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0004, 0x001e },\r
-  { 0x00, 0x04, -1, 0x03, 0x0004, 0x0026 },\r
-  { 0x00, 0x04, -1, 0x03, 0x0004, 0x0036 },\r
-  { 0x00, 0x01, -1, 0x03, 0x0005, 0x000a },\r
-  { 0x00, 0x01, -1, 0x03, 0x0005, 0x000c },\r
-  { 0x00, 0x02, -1, 0x03, 0x0005, 0x000e },\r
-  { 0x00, 0x02, -1, 0x03, 0x0005, 0x0012 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0005, 0x0016 },\r
-  { 0x00, 0x03, -1, 0x03, 0x0005, 0x001e },\r
-  { 0x00, 0x04, -1, 0x03, 0x0005, 0x0026 },\r
-  { 0x00, 0x04, -1, 0x03, 0x0005, 0x0036 },\r
-  { 0x01, 0x01, -1, 0x03, 0x0006, 0x000a },\r
-  { 0x01, 0x01, -1, 0x03, 0x0006, 0x000c },\r
-  { 0x01, 0x02, -1, 0x03, 0x0006, 0x000e },\r
-  { 0x01, 0x02, -1, 0x03, 0x0006, 0x0012 },\r
-  { 0x01, 0x03, -1, 0x03, 0x0006, 0x0016 },\r
-  { 0x01, 0x03, -1, 0x03, 0x0006, 0x001e },\r
-  { 0x01, 0x04, -1, 0x03, 0x0006, 0x0026 },\r
-  { 0x01, 0x04, -1, 0x03, 0x0006, 0x0036 },\r
-  { 0x01, 0x01, -1, 0x03, 0x0008, 0x000a },\r
-  { 0x01, 0x01, -1, 0x03, 0x0008, 0x000c },\r
-  { 0x01, 0x02, -1, 0x03, 0x0008, 0x000e },\r
-  { 0x01, 0x02, -1, 0x03, 0x0008, 0x0012 },\r
-  { 0x01, 0x03, -1, 0x03, 0x0008, 0x0016 },\r
-  { 0x01, 0x03, -1, 0x03, 0x0008, 0x001e },\r
-  { 0x01, 0x04, -1, 0x03, 0x0008, 0x0026 },\r
-  { 0x01, 0x04, -1, 0x03, 0x0008, 0x0036 },\r
-  { 0x02, 0x00, -1, 0x00, 0x000a, 0x0002 },\r
-  { 0x02, 0x00, -1, 0x01, 0x000a, 0x0003 },\r
-  { 0x02, 0x00, -1, 0x02, 0x000a, 0x0004 },\r
-  { 0x02, 0x00, -1, 0x03, 0x000a, 0x0005 },\r
-  { 0x02, 0x00, -1, 0x03, 0x000a, 0x0006 },\r
-  { 0x02, 0x00, -1, 0x03, 0x000a, 0x0007 },\r
-  { 0x02, 0x00, -1, 0x03, 0x000a, 0x0008 },\r
-  { 0x02, 0x00, -1, 0x03, 0x000a, 0x0009 },\r
-  { 0x02, 0x00, -1, 0x00, 0x000e, 0x0002 },\r
-  { 0x02, 0x00, -1, 0x01, 0x000e, 0x0003 },\r
-  { 0x02, 0x00, -1, 0x02, 0x000e, 0x0004 },\r
-  { 0x02, 0x00, -1, 0x03, 0x000e, 0x0005 },\r
-  { 0x02, 0x00, -1, 0x03, 0x000e, 0x0006 },\r
-  { 0x02, 0x00, -1, 0x03, 0x000e, 0x0007 },\r
-  { 0x02, 0x00, -1, 0x03, 0x000e, 0x0008 },\r
-  { 0x02, 0x00, -1, 0x03, 0x000e, 0x0009 },\r
-  { 0x03, 0x00, -1, 0x00, 0x0012, 0x0002 },\r
-  { 0x03, 0x00, -1, 0x01, 0x0012, 0x0003 },\r
-  { 0x03, 0x00, -1, 0x02, 0x0012, 0x0004 },\r
-  { 0x03, 0x00, -1, 0x03, 0x0012, 0x0005 },\r
-  { 0x03, 0x00, -1, 0x03, 0x0012, 0x0006 },\r
-  { 0x03, 0x00, -1, 0x03, 0x0012, 0x0007 },\r
-  { 0x03, 0x00, -1, 0x03, 0x0012, 0x0008 },\r
-  { 0x03, 0x00, -1, 0x03, 0x0012, 0x0009 },\r
-  { 0x03, 0x00, -1, 0x00, 0x001a, 0x0002 },\r
-  { 0x03, 0x00, -1, 0x01, 0x001a, 0x0003 },\r
-  { 0x03, 0x00, -1, 0x02, 0x001a, 0x0004 },\r
-  { 0x03, 0x00, -1, 0x03, 0x001a, 0x0005 },\r
-  { 0x03, 0x00, -1, 0x03, 0x001a, 0x0006 },\r
-  { 0x03, 0x00, -1, 0x03, 0x001a, 0x0007 },\r
-  { 0x03, 0x00, -1, 0x03, 0x001a, 0x0008 },\r
-  { 0x03, 0x00, -1, 0x03, 0x001a, 0x0009 },\r
-  { 0x04, 0x00, -1, 0x00, 0x0022, 0x0002 },\r
-  { 0x04, 0x00, -1, 0x01, 0x0022, 0x0003 },\r
-  { 0x04, 0x00, -1, 0x02, 0x0022, 0x0004 },\r
-  { 0x04, 0x00, -1, 0x03, 0x0022, 0x0005 },\r
-  { 0x04, 0x00, -1, 0x03, 0x0022, 0x0006 },\r
-  { 0x04, 0x00, -1, 0x03, 0x0022, 0x0007 },\r
-  { 0x04, 0x00, -1, 0x03, 0x0022, 0x0008 },\r
-  { 0x04, 0x00, -1, 0x03, 0x0022, 0x0009 },\r
-  { 0x04, 0x00, -1, 0x00, 0x0032, 0x0002 },\r
-  { 0x04, 0x00, -1, 0x01, 0x0032, 0x0003 },\r
-  { 0x04, 0x00, -1, 0x02, 0x0032, 0x0004 },\r
-  { 0x04, 0x00, -1, 0x03, 0x0032, 0x0005 },\r
-  { 0x04, 0x00, -1, 0x03, 0x0032, 0x0006 },\r
-  { 0x04, 0x00, -1, 0x03, 0x0032, 0x0007 },\r
-  { 0x04, 0x00, -1, 0x03, 0x0032, 0x0008 },\r
-  { 0x04, 0x00, -1, 0x03, 0x0032, 0x0009 },\r
-  { 0x05, 0x00, -1, 0x00, 0x0042, 0x0002 },\r
-  { 0x05, 0x00, -1, 0x01, 0x0042, 0x0003 },\r
-  { 0x05, 0x00, -1, 0x02, 0x0042, 0x0004 },\r
-  { 0x05, 0x00, -1, 0x03, 0x0042, 0x0005 },\r
-  { 0x05, 0x00, -1, 0x03, 0x0042, 0x0006 },\r
-  { 0x05, 0x00, -1, 0x03, 0x0042, 0x0007 },\r
-  { 0x05, 0x00, -1, 0x03, 0x0042, 0x0008 },\r
-  { 0x05, 0x00, -1, 0x03, 0x0042, 0x0009 },\r
-  { 0x05, 0x00, -1, 0x00, 0x0062, 0x0002 },\r
-  { 0x05, 0x00, -1, 0x01, 0x0062, 0x0003 },\r
-  { 0x05, 0x00, -1, 0x02, 0x0062, 0x0004 },\r
-  { 0x05, 0x00, -1, 0x03, 0x0062, 0x0005 },\r
-  { 0x05, 0x00, -1, 0x03, 0x0062, 0x0006 },\r
-  { 0x05, 0x00, -1, 0x03, 0x0062, 0x0007 },\r
-  { 0x05, 0x00, -1, 0x03, 0x0062, 0x0008 },\r
-  { 0x05, 0x00, -1, 0x03, 0x0062, 0x0009 },\r
-  { 0x02, 0x01, -1, 0x03, 0x000a, 0x000a },\r
-  { 0x02, 0x01, -1, 0x03, 0x000a, 0x000c },\r
-  { 0x02, 0x02, -1, 0x03, 0x000a, 0x000e },\r
-  { 0x02, 0x02, -1, 0x03, 0x000a, 0x0012 },\r
-  { 0x02, 0x03, -1, 0x03, 0x000a, 0x0016 },\r
-  { 0x02, 0x03, -1, 0x03, 0x000a, 0x001e },\r
-  { 0x02, 0x04, -1, 0x03, 0x000a, 0x0026 },\r
-  { 0x02, 0x04, -1, 0x03, 0x000a, 0x0036 },\r
-  { 0x02, 0x01, -1, 0x03, 0x000e, 0x000a },\r
-  { 0x02, 0x01, -1, 0x03, 0x000e, 0x000c },\r
-  { 0x02, 0x02, -1, 0x03, 0x000e, 0x000e },\r
-  { 0x02, 0x02, -1, 0x03, 0x000e, 0x0012 },\r
-  { 0x02, 0x03, -1, 0x03, 0x000e, 0x0016 },\r
-  { 0x02, 0x03, -1, 0x03, 0x000e, 0x001e },\r
-  { 0x02, 0x04, -1, 0x03, 0x000e, 0x0026 },\r
-  { 0x02, 0x04, -1, 0x03, 0x000e, 0x0036 },\r
-  { 0x03, 0x01, -1, 0x03, 0x0012, 0x000a },\r
-  { 0x03, 0x01, -1, 0x03, 0x0012, 0x000c },\r
-  { 0x03, 0x02, -1, 0x03, 0x0012, 0x000e },\r
-  { 0x03, 0x02, -1, 0x03, 0x0012, 0x0012 },\r
-  { 0x03, 0x03, -1, 0x03, 0x0012, 0x0016 },\r
-  { 0x03, 0x03, -1, 0x03, 0x0012, 0x001e },\r
-  { 0x03, 0x04, -1, 0x03, 0x0012, 0x0026 },\r
-  { 0x03, 0x04, -1, 0x03, 0x0012, 0x0036 },\r
-  { 0x03, 0x01, -1, 0x03, 0x001a, 0x000a },\r
-  { 0x03, 0x01, -1, 0x03, 0x001a, 0x000c },\r
-  { 0x03, 0x02, -1, 0x03, 0x001a, 0x000e },\r
-  { 0x03, 0x02, -1, 0x03, 0x001a, 0x0012 },\r
-  { 0x03, 0x03, -1, 0x03, 0x001a, 0x0016 },\r
-  { 0x03, 0x03, -1, 0x03, 0x001a, 0x001e },\r
-  { 0x03, 0x04, -1, 0x03, 0x001a, 0x0026 },\r
-  { 0x03, 0x04, -1, 0x03, 0x001a, 0x0036 },\r
-  { 0x04, 0x01, -1, 0x03, 0x0022, 0x000a },\r
-  { 0x04, 0x01, -1, 0x03, 0x0022, 0x000c },\r
-  { 0x04, 0x02, -1, 0x03, 0x0022, 0x000e },\r
-  { 0x04, 0x02, -1, 0x03, 0x0022, 0x0012 },\r
-  { 0x04, 0x03, -1, 0x03, 0x0022, 0x0016 },\r
-  { 0x04, 0x03, -1, 0x03, 0x0022, 0x001e },\r
-  { 0x04, 0x04, -1, 0x03, 0x0022, 0x0026 },\r
-  { 0x04, 0x04, -1, 0x03, 0x0022, 0x0036 },\r
-  { 0x04, 0x01, -1, 0x03, 0x0032, 0x000a },\r
-  { 0x04, 0x01, -1, 0x03, 0x0032, 0x000c },\r
-  { 0x04, 0x02, -1, 0x03, 0x0032, 0x000e },\r
-  { 0x04, 0x02, -1, 0x03, 0x0032, 0x0012 },\r
-  { 0x04, 0x03, -1, 0x03, 0x0032, 0x0016 },\r
-  { 0x04, 0x03, -1, 0x03, 0x0032, 0x001e },\r
-  { 0x04, 0x04, -1, 0x03, 0x0032, 0x0026 },\r
-  { 0x04, 0x04, -1, 0x03, 0x0032, 0x0036 },\r
-  { 0x05, 0x01, -1, 0x03, 0x0042, 0x000a },\r
-  { 0x05, 0x01, -1, 0x03, 0x0042, 0x000c },\r
-  { 0x05, 0x02, -1, 0x03, 0x0042, 0x000e },\r
-  { 0x05, 0x02, -1, 0x03, 0x0042, 0x0012 },\r
-  { 0x05, 0x03, -1, 0x03, 0x0042, 0x0016 },\r
-  { 0x05, 0x03, -1, 0x03, 0x0042, 0x001e },\r
-  { 0x05, 0x04, -1, 0x03, 0x0042, 0x0026 },\r
-  { 0x05, 0x04, -1, 0x03, 0x0042, 0x0036 },\r
-  { 0x05, 0x01, -1, 0x03, 0x0062, 0x000a },\r
-  { 0x05, 0x01, -1, 0x03, 0x0062, 0x000c },\r
-  { 0x05, 0x02, -1, 0x03, 0x0062, 0x000e },\r
-  { 0x05, 0x02, -1, 0x03, 0x0062, 0x0012 },\r
-  { 0x05, 0x03, -1, 0x03, 0x0062, 0x0016 },\r
-  { 0x05, 0x03, -1, 0x03, 0x0062, 0x001e },\r
-  { 0x05, 0x04, -1, 0x03, 0x0062, 0x0026 },\r
-  { 0x05, 0x04, -1, 0x03, 0x0062, 0x0036 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0000, 0x0046 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0000, 0x0066 },\r
-  { 0x00, 0x06, -1, 0x03, 0x0000, 0x0086 },\r
-  { 0x00, 0x07, -1, 0x03, 0x0000, 0x00c6 },\r
-  { 0x00, 0x08, -1, 0x03, 0x0000, 0x0146 },\r
-  { 0x00, 0x09, -1, 0x03, 0x0000, 0x0246 },\r
-  { 0x00, 0x0a, -1, 0x03, 0x0000, 0x0446 },\r
-  { 0x00, 0x18, -1, 0x03, 0x0000, 0x0846 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0001, 0x0046 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0001, 0x0066 },\r
-  { 0x00, 0x06, -1, 0x03, 0x0001, 0x0086 },\r
-  { 0x00, 0x07, -1, 0x03, 0x0001, 0x00c6 },\r
-  { 0x00, 0x08, -1, 0x03, 0x0001, 0x0146 },\r
-  { 0x00, 0x09, -1, 0x03, 0x0001, 0x0246 },\r
-  { 0x00, 0x0a, -1, 0x03, 0x0001, 0x0446 },\r
-  { 0x00, 0x18, -1, 0x03, 0x0001, 0x0846 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0002, 0x0046 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0002, 0x0066 },\r
-  { 0x00, 0x06, -1, 0x03, 0x0002, 0x0086 },\r
-  { 0x00, 0x07, -1, 0x03, 0x0002, 0x00c6 },\r
-  { 0x00, 0x08, -1, 0x03, 0x0002, 0x0146 },\r
-  { 0x00, 0x09, -1, 0x03, 0x0002, 0x0246 },\r
-  { 0x00, 0x0a, -1, 0x03, 0x0002, 0x0446 },\r
-  { 0x00, 0x18, -1, 0x03, 0x0002, 0x0846 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0003, 0x0046 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0003, 0x0066 },\r
-  { 0x00, 0x06, -1, 0x03, 0x0003, 0x0086 },\r
-  { 0x00, 0x07, -1, 0x03, 0x0003, 0x00c6 },\r
-  { 0x00, 0x08, -1, 0x03, 0x0003, 0x0146 },\r
-  { 0x00, 0x09, -1, 0x03, 0x0003, 0x0246 },\r
-  { 0x00, 0x0a, -1, 0x03, 0x0003, 0x0446 },\r
-  { 0x00, 0x18, -1, 0x03, 0x0003, 0x0846 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0004, 0x0046 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0004, 0x0066 },\r
-  { 0x00, 0x06, -1, 0x03, 0x0004, 0x0086 },\r
-  { 0x00, 0x07, -1, 0x03, 0x0004, 0x00c6 },\r
-  { 0x00, 0x08, -1, 0x03, 0x0004, 0x0146 },\r
-  { 0x00, 0x09, -1, 0x03, 0x0004, 0x0246 },\r
-  { 0x00, 0x0a, -1, 0x03, 0x0004, 0x0446 },\r
-  { 0x00, 0x18, -1, 0x03, 0x0004, 0x0846 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0005, 0x0046 },\r
-  { 0x00, 0x05, -1, 0x03, 0x0005, 0x0066 },\r
-  { 0x00, 0x06, -1, 0x03, 0x0005, 0x0086 },\r
-  { 0x00, 0x07, -1, 0x03, 0x0005, 0x00c6 },\r
-  { 0x00, 0x08, -1, 0x03, 0x0005, 0x0146 },\r
-  { 0x00, 0x09, -1, 0x03, 0x0005, 0x0246 },\r
-  { 0x00, 0x0a, -1, 0x03, 0x0005, 0x0446 },\r
-  { 0x00, 0x18, -1, 0x03, 0x0005, 0x0846 },\r
-  { 0x01, 0x05, -1, 0x03, 0x0006, 0x0046 },\r
-  { 0x01, 0x05, -1, 0x03, 0x0006, 0x0066 },\r
-  { 0x01, 0x06, -1, 0x03, 0x0006, 0x0086 },\r
-  { 0x01, 0x07, -1, 0x03, 0x0006, 0x00c6 },\r
-  { 0x01, 0x08, -1, 0x03, 0x0006, 0x0146 },\r
-  { 0x01, 0x09, -1, 0x03, 0x0006, 0x0246 },\r
-  { 0x01, 0x0a, -1, 0x03, 0x0006, 0x0446 },\r
-  { 0x01, 0x18, -1, 0x03, 0x0006, 0x0846 },\r
-  { 0x01, 0x05, -1, 0x03, 0x0008, 0x0046 },\r
-  { 0x01, 0x05, -1, 0x03, 0x0008, 0x0066 },\r
-  { 0x01, 0x06, -1, 0x03, 0x0008, 0x0086 },\r
-  { 0x01, 0x07, -1, 0x03, 0x0008, 0x00c6 },\r
-  { 0x01, 0x08, -1, 0x03, 0x0008, 0x0146 },\r
-  { 0x01, 0x09, -1, 0x03, 0x0008, 0x0246 },\r
-  { 0x01, 0x0a, -1, 0x03, 0x0008, 0x0446 },\r
-  { 0x01, 0x18, -1, 0x03, 0x0008, 0x0846 },\r
-  { 0x06, 0x00, -1, 0x00, 0x0082, 0x0002 },\r
-  { 0x06, 0x00, -1, 0x01, 0x0082, 0x0003 },\r
-  { 0x06, 0x00, -1, 0x02, 0x0082, 0x0004 },\r
-  { 0x06, 0x00, -1, 0x03, 0x0082, 0x0005 },\r
-  { 0x06, 0x00, -1, 0x03, 0x0082, 0x0006 },\r
-  { 0x06, 0x00, -1, 0x03, 0x0082, 0x0007 },\r
-  { 0x06, 0x00, -1, 0x03, 0x0082, 0x0008 },\r
-  { 0x06, 0x00, -1, 0x03, 0x0082, 0x0009 },\r
-  { 0x07, 0x00, -1, 0x00, 0x00c2, 0x0002 },\r
-  { 0x07, 0x00, -1, 0x01, 0x00c2, 0x0003 },\r
-  { 0x07, 0x00, -1, 0x02, 0x00c2, 0x0004 },\r
-  { 0x07, 0x00, -1, 0x03, 0x00c2, 0x0005 },\r
-  { 0x07, 0x00, -1, 0x03, 0x00c2, 0x0006 },\r
-  { 0x07, 0x00, -1, 0x03, 0x00c2, 0x0007 },\r
-  { 0x07, 0x00, -1, 0x03, 0x00c2, 0x0008 },\r
-  { 0x07, 0x00, -1, 0x03, 0x00c2, 0x0009 },\r
-  { 0x08, 0x00, -1, 0x00, 0x0142, 0x0002 },\r
-  { 0x08, 0x00, -1, 0x01, 0x0142, 0x0003 },\r
-  { 0x08, 0x00, -1, 0x02, 0x0142, 0x0004 },\r
-  { 0x08, 0x00, -1, 0x03, 0x0142, 0x0005 },\r
-  { 0x08, 0x00, -1, 0x03, 0x0142, 0x0006 },\r
-  { 0x08, 0x00, -1, 0x03, 0x0142, 0x0007 },\r
-  { 0x08, 0x00, -1, 0x03, 0x0142, 0x0008 },\r
-  { 0x08, 0x00, -1, 0x03, 0x0142, 0x0009 },\r
-  { 0x09, 0x00, -1, 0x00, 0x0242, 0x0002 },\r
-  { 0x09, 0x00, -1, 0x01, 0x0242, 0x0003 },\r
-  { 0x09, 0x00, -1, 0x02, 0x0242, 0x0004 },\r
-  { 0x09, 0x00, -1, 0x03, 0x0242, 0x0005 },\r
-  { 0x09, 0x00, -1, 0x03, 0x0242, 0x0006 },\r
-  { 0x09, 0x00, -1, 0x03, 0x0242, 0x0007 },\r
-  { 0x09, 0x00, -1, 0x03, 0x0242, 0x0008 },\r
-  { 0x09, 0x00, -1, 0x03, 0x0242, 0x0009 },\r
-  { 0x0a, 0x00, -1, 0x00, 0x0442, 0x0002 },\r
-  { 0x0a, 0x00, -1, 0x01, 0x0442, 0x0003 },\r
-  { 0x0a, 0x00, -1, 0x02, 0x0442, 0x0004 },\r
-  { 0x0a, 0x00, -1, 0x03, 0x0442, 0x0005 },\r
-  { 0x0a, 0x00, -1, 0x03, 0x0442, 0x0006 },\r
-  { 0x0a, 0x00, -1, 0x03, 0x0442, 0x0007 },\r
-  { 0x0a, 0x00, -1, 0x03, 0x0442, 0x0008 },\r
-  { 0x0a, 0x00, -1, 0x03, 0x0442, 0x0009 },\r
-  { 0x0c, 0x00, -1, 0x00, 0x0842, 0x0002 },\r
-  { 0x0c, 0x00, -1, 0x01, 0x0842, 0x0003 },\r
-  { 0x0c, 0x00, -1, 0x02, 0x0842, 0x0004 },\r
-  { 0x0c, 0x00, -1, 0x03, 0x0842, 0x0005 },\r
-  { 0x0c, 0x00, -1, 0x03, 0x0842, 0x0006 },\r
-  { 0x0c, 0x00, -1, 0x03, 0x0842, 0x0007 },\r
-  { 0x0c, 0x00, -1, 0x03, 0x0842, 0x0008 },\r
-  { 0x0c, 0x00, -1, 0x03, 0x0842, 0x0009 },\r
-  { 0x0e, 0x00, -1, 0x00, 0x1842, 0x0002 },\r
-  { 0x0e, 0x00, -1, 0x01, 0x1842, 0x0003 },\r
-  { 0x0e, 0x00, -1, 0x02, 0x1842, 0x0004 },\r
-  { 0x0e, 0x00, -1, 0x03, 0x1842, 0x0005 },\r
-  { 0x0e, 0x00, -1, 0x03, 0x1842, 0x0006 },\r
-  { 0x0e, 0x00, -1, 0x03, 0x1842, 0x0007 },\r
-  { 0x0e, 0x00, -1, 0x03, 0x1842, 0x0008 },\r
-  { 0x0e, 0x00, -1, 0x03, 0x1842, 0x0009 },\r
-  { 0x18, 0x00, -1, 0x00, 0x5842, 0x0002 },\r
-  { 0x18, 0x00, -1, 0x01, 0x5842, 0x0003 },\r
-  { 0x18, 0x00, -1, 0x02, 0x5842, 0x0004 },\r
-  { 0x18, 0x00, -1, 0x03, 0x5842, 0x0005 },\r
-  { 0x18, 0x00, -1, 0x03, 0x5842, 0x0006 },\r
-  { 0x18, 0x00, -1, 0x03, 0x5842, 0x0007 },\r
-  { 0x18, 0x00, -1, 0x03, 0x5842, 0x0008 },\r
-  { 0x18, 0x00, -1, 0x03, 0x5842, 0x0009 },\r
-  { 0x02, 0x05, -1, 0x03, 0x000a, 0x0046 },\r
-  { 0x02, 0x05, -1, 0x03, 0x000a, 0x0066 },\r
-  { 0x02, 0x06, -1, 0x03, 0x000a, 0x0086 },\r
-  { 0x02, 0x07, -1, 0x03, 0x000a, 0x00c6 },\r
-  { 0x02, 0x08, -1, 0x03, 0x000a, 0x0146 },\r
-  { 0x02, 0x09, -1, 0x03, 0x000a, 0x0246 },\r
-  { 0x02, 0x0a, -1, 0x03, 0x000a, 0x0446 },\r
-  { 0x02, 0x18, -1, 0x03, 0x000a, 0x0846 },\r
-  { 0x02, 0x05, -1, 0x03, 0x000e, 0x0046 },\r
-  { 0x02, 0x05, -1, 0x03, 0x000e, 0x0066 },\r
-  { 0x02, 0x06, -1, 0x03, 0x000e, 0x0086 },\r
-  { 0x02, 0x07, -1, 0x03, 0x000e, 0x00c6 },\r
-  { 0x02, 0x08, -1, 0x03, 0x000e, 0x0146 },\r
-  { 0x02, 0x09, -1, 0x03, 0x000e, 0x0246 },\r
-  { 0x02, 0x0a, -1, 0x03, 0x000e, 0x0446 },\r
-  { 0x02, 0x18, -1, 0x03, 0x000e, 0x0846 },\r
-  { 0x03, 0x05, -1, 0x03, 0x0012, 0x0046 },\r
-  { 0x03, 0x05, -1, 0x03, 0x0012, 0x0066 },\r
-  { 0x03, 0x06, -1, 0x03, 0x0012, 0x0086 },\r
-  { 0x03, 0x07, -1, 0x03, 0x0012, 0x00c6 },\r
-  { 0x03, 0x08, -1, 0x03, 0x0012, 0x0146 },\r
-  { 0x03, 0x09, -1, 0x03, 0x0012, 0x0246 },\r
-  { 0x03, 0x0a, -1, 0x03, 0x0012, 0x0446 },\r
-  { 0x03, 0x18, -1, 0x03, 0x0012, 0x0846 },\r
-  { 0x03, 0x05, -1, 0x03, 0x001a, 0x0046 },\r
-  { 0x03, 0x05, -1, 0x03, 0x001a, 0x0066 },\r
-  { 0x03, 0x06, -1, 0x03, 0x001a, 0x0086 },\r
-  { 0x03, 0x07, -1, 0x03, 0x001a, 0x00c6 },\r
-  { 0x03, 0x08, -1, 0x03, 0x001a, 0x0146 },\r
-  { 0x03, 0x09, -1, 0x03, 0x001a, 0x0246 },\r
-  { 0x03, 0x0a, -1, 0x03, 0x001a, 0x0446 },\r
-  { 0x03, 0x18, -1, 0x03, 0x001a, 0x0846 },\r
-  { 0x04, 0x05, -1, 0x03, 0x0022, 0x0046 },\r
-  { 0x04, 0x05, -1, 0x03, 0x0022, 0x0066 },\r
-  { 0x04, 0x06, -1, 0x03, 0x0022, 0x0086 },\r
-  { 0x04, 0x07, -1, 0x03, 0x0022, 0x00c6 },\r
-  { 0x04, 0x08, -1, 0x03, 0x0022, 0x0146 },\r
-  { 0x04, 0x09, -1, 0x03, 0x0022, 0x0246 },\r
-  { 0x04, 0x0a, -1, 0x03, 0x0022, 0x0446 },\r
-  { 0x04, 0x18, -1, 0x03, 0x0022, 0x0846 },\r
-  { 0x04, 0x05, -1, 0x03, 0x0032, 0x0046 },\r
-  { 0x04, 0x05, -1, 0x03, 0x0032, 0x0066 },\r
-  { 0x04, 0x06, -1, 0x03, 0x0032, 0x0086 },\r
-  { 0x04, 0x07, -1, 0x03, 0x0032, 0x00c6 },\r
-  { 0x04, 0x08, -1, 0x03, 0x0032, 0x0146 },\r
-  { 0x04, 0x09, -1, 0x03, 0x0032, 0x0246 },\r
-  { 0x04, 0x0a, -1, 0x03, 0x0032, 0x0446 },\r
-  { 0x04, 0x18, -1, 0x03, 0x0032, 0x0846 },\r
-  { 0x05, 0x05, -1, 0x03, 0x0042, 0x0046 },\r
-  { 0x05, 0x05, -1, 0x03, 0x0042, 0x0066 },\r
-  { 0x05, 0x06, -1, 0x03, 0x0042, 0x0086 },\r
-  { 0x05, 0x07, -1, 0x03, 0x0042, 0x00c6 },\r
-  { 0x05, 0x08, -1, 0x03, 0x0042, 0x0146 },\r
-  { 0x05, 0x09, -1, 0x03, 0x0042, 0x0246 },\r
-  { 0x05, 0x0a, -1, 0x03, 0x0042, 0x0446 },\r
-  { 0x05, 0x18, -1, 0x03, 0x0042, 0x0846 },\r
-  { 0x05, 0x05, -1, 0x03, 0x0062, 0x0046 },\r
-  { 0x05, 0x05, -1, 0x03, 0x0062, 0x0066 },\r
-  { 0x05, 0x06, -1, 0x03, 0x0062, 0x0086 },\r
-  { 0x05, 0x07, -1, 0x03, 0x0062, 0x00c6 },\r
-  { 0x05, 0x08, -1, 0x03, 0x0062, 0x0146 },\r
-  { 0x05, 0x09, -1, 0x03, 0x0062, 0x0246 },\r
-  { 0x05, 0x0a, -1, 0x03, 0x0062, 0x0446 },\r
-  { 0x05, 0x18, -1, 0x03, 0x0062, 0x0846 },\r
-  { 0x06, 0x01, -1, 0x03, 0x0082, 0x000a },\r
-  { 0x06, 0x01, -1, 0x03, 0x0082, 0x000c },\r
-  { 0x06, 0x02, -1, 0x03, 0x0082, 0x000e },\r
-  { 0x06, 0x02, -1, 0x03, 0x0082, 0x0012 },\r
-  { 0x06, 0x03, -1, 0x03, 0x0082, 0x0016 },\r
-  { 0x06, 0x03, -1, 0x03, 0x0082, 0x001e },\r
-  { 0x06, 0x04, -1, 0x03, 0x0082, 0x0026 },\r
-  { 0x06, 0x04, -1, 0x03, 0x0082, 0x0036 },\r
-  { 0x07, 0x01, -1, 0x03, 0x00c2, 0x000a },\r
-  { 0x07, 0x01, -1, 0x03, 0x00c2, 0x000c },\r
-  { 0x07, 0x02, -1, 0x03, 0x00c2, 0x000e },\r
-  { 0x07, 0x02, -1, 0x03, 0x00c2, 0x0012 },\r
-  { 0x07, 0x03, -1, 0x03, 0x00c2, 0x0016 },\r
-  { 0x07, 0x03, -1, 0x03, 0x00c2, 0x001e },\r
-  { 0x07, 0x04, -1, 0x03, 0x00c2, 0x0026 },\r
-  { 0x07, 0x04, -1, 0x03, 0x00c2, 0x0036 },\r
-  { 0x08, 0x01, -1, 0x03, 0x0142, 0x000a },\r
-  { 0x08, 0x01, -1, 0x03, 0x0142, 0x000c },\r
-  { 0x08, 0x02, -1, 0x03, 0x0142, 0x000e },\r
-  { 0x08, 0x02, -1, 0x03, 0x0142, 0x0012 },\r
-  { 0x08, 0x03, -1, 0x03, 0x0142, 0x0016 },\r
-  { 0x08, 0x03, -1, 0x03, 0x0142, 0x001e },\r
-  { 0x08, 0x04, -1, 0x03, 0x0142, 0x0026 },\r
-  { 0x08, 0x04, -1, 0x03, 0x0142, 0x0036 },\r
-  { 0x09, 0x01, -1, 0x03, 0x0242, 0x000a },\r
-  { 0x09, 0x01, -1, 0x03, 0x0242, 0x000c },\r
-  { 0x09, 0x02, -1, 0x03, 0x0242, 0x000e },\r
-  { 0x09, 0x02, -1, 0x03, 0x0242, 0x0012 },\r
-  { 0x09, 0x03, -1, 0x03, 0x0242, 0x0016 },\r
-  { 0x09, 0x03, -1, 0x03, 0x0242, 0x001e },\r
-  { 0x09, 0x04, -1, 0x03, 0x0242, 0x0026 },\r
-  { 0x09, 0x04, -1, 0x03, 0x0242, 0x0036 },\r
-  { 0x0a, 0x01, -1, 0x03, 0x0442, 0x000a },\r
-  { 0x0a, 0x01, -1, 0x03, 0x0442, 0x000c },\r
-  { 0x0a, 0x02, -1, 0x03, 0x0442, 0x000e },\r
-  { 0x0a, 0x02, -1, 0x03, 0x0442, 0x0012 },\r
-  { 0x0a, 0x03, -1, 0x03, 0x0442, 0x0016 },\r
-  { 0x0a, 0x03, -1, 0x03, 0x0442, 0x001e },\r
-  { 0x0a, 0x04, -1, 0x03, 0x0442, 0x0026 },\r
-  { 0x0a, 0x04, -1, 0x03, 0x0442, 0x0036 },\r
-  { 0x0c, 0x01, -1, 0x03, 0x0842, 0x000a },\r
-  { 0x0c, 0x01, -1, 0x03, 0x0842, 0x000c },\r
-  { 0x0c, 0x02, -1, 0x03, 0x0842, 0x000e },\r
-  { 0x0c, 0x02, -1, 0x03, 0x0842, 0x0012 },\r
-  { 0x0c, 0x03, -1, 0x03, 0x0842, 0x0016 },\r
-  { 0x0c, 0x03, -1, 0x03, 0x0842, 0x001e },\r
-  { 0x0c, 0x04, -1, 0x03, 0x0842, 0x0026 },\r
-  { 0x0c, 0x04, -1, 0x03, 0x0842, 0x0036 },\r
-  { 0x0e, 0x01, -1, 0x03, 0x1842, 0x000a },\r
-  { 0x0e, 0x01, -1, 0x03, 0x1842, 0x000c },\r
-  { 0x0e, 0x02, -1, 0x03, 0x1842, 0x000e },\r
-  { 0x0e, 0x02, -1, 0x03, 0x1842, 0x0012 },\r
-  { 0x0e, 0x03, -1, 0x03, 0x1842, 0x0016 },\r
-  { 0x0e, 0x03, -1, 0x03, 0x1842, 0x001e },\r
-  { 0x0e, 0x04, -1, 0x03, 0x1842, 0x0026 },\r
-  { 0x0e, 0x04, -1, 0x03, 0x1842, 0x0036 },\r
-  { 0x18, 0x01, -1, 0x03, 0x5842, 0x000a },\r
-  { 0x18, 0x01, -1, 0x03, 0x5842, 0x000c },\r
-  { 0x18, 0x02, -1, 0x03, 0x5842, 0x000e },\r
-  { 0x18, 0x02, -1, 0x03, 0x5842, 0x0012 },\r
-  { 0x18, 0x03, -1, 0x03, 0x5842, 0x0016 },\r
-  { 0x18, 0x03, -1, 0x03, 0x5842, 0x001e },\r
-  { 0x18, 0x04, -1, 0x03, 0x5842, 0x0026 },\r
-  { 0x18, 0x04, -1, 0x03, 0x5842, 0x0036 },\r
-  { 0x06, 0x05, -1, 0x03, 0x0082, 0x0046 },\r
-  { 0x06, 0x05, -1, 0x03, 0x0082, 0x0066 },\r
-  { 0x06, 0x06, -1, 0x03, 0x0082, 0x0086 },\r
-  { 0x06, 0x07, -1, 0x03, 0x0082, 0x00c6 },\r
-  { 0x06, 0x08, -1, 0x03, 0x0082, 0x0146 },\r
-  { 0x06, 0x09, -1, 0x03, 0x0082, 0x0246 },\r
-  { 0x06, 0x0a, -1, 0x03, 0x0082, 0x0446 },\r
-  { 0x06, 0x18, -1, 0x03, 0x0082, 0x0846 },\r
-  { 0x07, 0x05, -1, 0x03, 0x00c2, 0x0046 },\r
-  { 0x07, 0x05, -1, 0x03, 0x00c2, 0x0066 },\r
-  { 0x07, 0x06, -1, 0x03, 0x00c2, 0x0086 },\r
-  { 0x07, 0x07, -1, 0x03, 0x00c2, 0x00c6 },\r
-  { 0x07, 0x08, -1, 0x03, 0x00c2, 0x0146 },\r
-  { 0x07, 0x09, -1, 0x03, 0x00c2, 0x0246 },\r
-  { 0x07, 0x0a, -1, 0x03, 0x00c2, 0x0446 },\r
-  { 0x07, 0x18, -1, 0x03, 0x00c2, 0x0846 },\r
-  { 0x08, 0x05, -1, 0x03, 0x0142, 0x0046 },\r
-  { 0x08, 0x05, -1, 0x03, 0x0142, 0x0066 },\r
-  { 0x08, 0x06, -1, 0x03, 0x0142, 0x0086 },\r
-  { 0x08, 0x07, -1, 0x03, 0x0142, 0x00c6 },\r
-  { 0x08, 0x08, -1, 0x03, 0x0142, 0x0146 },\r
-  { 0x08, 0x09, -1, 0x03, 0x0142, 0x0246 },\r
-  { 0x08, 0x0a, -1, 0x03, 0x0142, 0x0446 },\r
-  { 0x08, 0x18, -1, 0x03, 0x0142, 0x0846 },\r
-  { 0x09, 0x05, -1, 0x03, 0x0242, 0x0046 },\r
-  { 0x09, 0x05, -1, 0x03, 0x0242, 0x0066 },\r
-  { 0x09, 0x06, -1, 0x03, 0x0242, 0x0086 },\r
-  { 0x09, 0x07, -1, 0x03, 0x0242, 0x00c6 },\r
-  { 0x09, 0x08, -1, 0x03, 0x0242, 0x0146 },\r
-  { 0x09, 0x09, -1, 0x03, 0x0242, 0x0246 },\r
-  { 0x09, 0x0a, -1, 0x03, 0x0242, 0x0446 },\r
-  { 0x09, 0x18, -1, 0x03, 0x0242, 0x0846 },\r
-  { 0x0a, 0x05, -1, 0x03, 0x0442, 0x0046 },\r
-  { 0x0a, 0x05, -1, 0x03, 0x0442, 0x0066 },\r
-  { 0x0a, 0x06, -1, 0x03, 0x0442, 0x0086 },\r
-  { 0x0a, 0x07, -1, 0x03, 0x0442, 0x00c6 },\r
-  { 0x0a, 0x08, -1, 0x03, 0x0442, 0x0146 },\r
-  { 0x0a, 0x09, -1, 0x03, 0x0442, 0x0246 },\r
-  { 0x0a, 0x0a, -1, 0x03, 0x0442, 0x0446 },\r
-  { 0x0a, 0x18, -1, 0x03, 0x0442, 0x0846 },\r
-  { 0x0c, 0x05, -1, 0x03, 0x0842, 0x0046 },\r
-  { 0x0c, 0x05, -1, 0x03, 0x0842, 0x0066 },\r
-  { 0x0c, 0x06, -1, 0x03, 0x0842, 0x0086 },\r
-  { 0x0c, 0x07, -1, 0x03, 0x0842, 0x00c6 },\r
-  { 0x0c, 0x08, -1, 0x03, 0x0842, 0x0146 },\r
-  { 0x0c, 0x09, -1, 0x03, 0x0842, 0x0246 },\r
-  { 0x0c, 0x0a, -1, 0x03, 0x0842, 0x0446 },\r
-  { 0x0c, 0x18, -1, 0x03, 0x0842, 0x0846 },\r
-  { 0x0e, 0x05, -1, 0x03, 0x1842, 0x0046 },\r
-  { 0x0e, 0x05, -1, 0x03, 0x1842, 0x0066 },\r
-  { 0x0e, 0x06, -1, 0x03, 0x1842, 0x0086 },\r
-  { 0x0e, 0x07, -1, 0x03, 0x1842, 0x00c6 },\r
-  { 0x0e, 0x08, -1, 0x03, 0x1842, 0x0146 },\r
-  { 0x0e, 0x09, -1, 0x03, 0x1842, 0x0246 },\r
-  { 0x0e, 0x0a, -1, 0x03, 0x1842, 0x0446 },\r
-  { 0x0e, 0x18, -1, 0x03, 0x1842, 0x0846 },\r
-  { 0x18, 0x05, -1, 0x03, 0x5842, 0x0046 },\r
-  { 0x18, 0x05, -1, 0x03, 0x5842, 0x0066 },\r
-  { 0x18, 0x06, -1, 0x03, 0x5842, 0x0086 },\r
-  { 0x18, 0x07, -1, 0x03, 0x5842, 0x00c6 },\r
-  { 0x18, 0x08, -1, 0x03, 0x5842, 0x0146 },\r
-  { 0x18, 0x09, -1, 0x03, 0x5842, 0x0246 },\r
-  { 0x18, 0x0a, -1, 0x03, 0x5842, 0x0446 },\r
-  { 0x18, 0x18, -1, 0x03, 0x5842, 0x0846 },\r
-};\r
-\r
-#endif  /* BROTLI_DEC_PREFIX_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/state.c b/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/state.c
deleted file mode 100644 (file)
index f4179ae..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Copyright 2015 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-#include "./state.h"\r
-\r
-//#include <stdlib.h>  /* free, malloc */\r
-\r
-#include <brotli/types.h>\r
-#include "./huffman.h"\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-BROTLI_BOOL BrotliDecoderStateInit(BrotliDecoderState* s,\r
-    brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque) {\r
-  if (!alloc_func) {\r
-    s->alloc_func = BrotliDefaultAllocFunc;\r
-    s->free_func = BrotliDefaultFreeFunc;\r
-    s->memory_manager_opaque = 0;\r
-  } else {\r
-    s->alloc_func = alloc_func;\r
-    s->free_func = free_func;\r
-    s->memory_manager_opaque = opaque;\r
-  }\r
-\r
-  s->error_code = 0; /* BROTLI_DECODER_NO_ERROR */\r
-\r
-  BrotliInitBitReader(&s->br);\r
-  s->state = BROTLI_STATE_UNINITED;\r
-  s->large_window = 0;\r
-  s->substate_metablock_header = BROTLI_STATE_METABLOCK_HEADER_NONE;\r
-  s->substate_tree_group = BROTLI_STATE_TREE_GROUP_NONE;\r
-  s->substate_context_map = BROTLI_STATE_CONTEXT_MAP_NONE;\r
-  s->substate_uncompressed = BROTLI_STATE_UNCOMPRESSED_NONE;\r
-  s->substate_huffman = BROTLI_STATE_HUFFMAN_NONE;\r
-  s->substate_decode_uint8 = BROTLI_STATE_DECODE_UINT8_NONE;\r
-  s->substate_read_block_length = BROTLI_STATE_READ_BLOCK_LENGTH_NONE;\r
-\r
-  s->buffer_length = 0;\r
-  s->loop_counter = 0;\r
-  s->pos = 0;\r
-  s->rb_roundtrips = 0;\r
-  s->partial_pos_out = 0;\r
-\r
-  s->block_type_trees = NULL;\r
-  s->block_len_trees = NULL;\r
-  s->ringbuffer = NULL;\r
-  s->ringbuffer_size = 0;\r
-  s->new_ringbuffer_size = 0;\r
-  s->ringbuffer_mask = 0;\r
-\r
-  s->context_map = NULL;\r
-  s->context_modes = NULL;\r
-  s->dist_context_map = NULL;\r
-  s->context_map_slice = NULL;\r
-  s->dist_context_map_slice = NULL;\r
-\r
-  s->sub_loop_counter = 0;\r
-\r
-  s->literal_hgroup.codes = NULL;\r
-  s->literal_hgroup.htrees = NULL;\r
-  s->insert_copy_hgroup.codes = NULL;\r
-  s->insert_copy_hgroup.htrees = NULL;\r
-  s->distance_hgroup.codes = NULL;\r
-  s->distance_hgroup.htrees = NULL;\r
-\r
-  s->is_last_metablock = 0;\r
-  s->is_uncompressed = 0;\r
-  s->is_metadata = 0;\r
-  s->should_wrap_ringbuffer = 0;\r
-  s->canny_ringbuffer_allocation = 1;\r
-\r
-  s->window_bits = 0;\r
-  s->max_distance = 0;\r
-  s->dist_rb[0] = 16;\r
-  s->dist_rb[1] = 15;\r
-  s->dist_rb[2] = 11;\r
-  s->dist_rb[3] = 4;\r
-  s->dist_rb_idx = 0;\r
-  s->block_type_trees = NULL;\r
-  s->block_len_trees = NULL;\r
-\r
-  /* Make small negative indexes addressable. */\r
-  s->symbol_lists = &s->symbols_lists_array[BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1];\r
-\r
-  s->mtf_upper_bound = 63;\r
-\r
-  s->dictionary = BrotliGetDictionary();\r
-  s->transforms = BrotliGetTransforms();\r
-\r
-  return BROTLI_TRUE;\r
-}\r
-\r
-void BrotliDecoderStateMetablockBegin(BrotliDecoderState* s) {\r
-  s->meta_block_remaining_len = 0;\r
-  s->block_length[0] = 1U << 24;\r
-  s->block_length[1] = 1U << 24;\r
-  s->block_length[2] = 1U << 24;\r
-  s->num_block_types[0] = 1;\r
-  s->num_block_types[1] = 1;\r
-  s->num_block_types[2] = 1;\r
-  s->block_type_rb[0] = 1;\r
-  s->block_type_rb[1] = 0;\r
-  s->block_type_rb[2] = 1;\r
-  s->block_type_rb[3] = 0;\r
-  s->block_type_rb[4] = 1;\r
-  s->block_type_rb[5] = 0;\r
-  s->context_map = NULL;\r
-  s->context_modes = NULL;\r
-  s->dist_context_map = NULL;\r
-  s->context_map_slice = NULL;\r
-  s->literal_htree = NULL;\r
-  s->dist_context_map_slice = NULL;\r
-  s->dist_htree_index = 0;\r
-  s->context_lookup = NULL;\r
-  s->literal_hgroup.codes = NULL;\r
-  s->literal_hgroup.htrees = NULL;\r
-  s->insert_copy_hgroup.codes = NULL;\r
-  s->insert_copy_hgroup.htrees = NULL;\r
-  s->distance_hgroup.codes = NULL;\r
-  s->distance_hgroup.htrees = NULL;\r
-}\r
-\r
-void BrotliDecoderStateCleanupAfterMetablock(BrotliDecoderState* s) {\r
-  BROTLI_DECODER_FREE(s, s->context_modes);\r
-  BROTLI_DECODER_FREE(s, s->context_map);\r
-  BROTLI_DECODER_FREE(s, s->dist_context_map);\r
-  BROTLI_DECODER_FREE(s, s->literal_hgroup.htrees);\r
-  BROTLI_DECODER_FREE(s, s->insert_copy_hgroup.htrees);\r
-  BROTLI_DECODER_FREE(s, s->distance_hgroup.htrees);\r
-}\r
-\r
-void BrotliDecoderStateCleanup(BrotliDecoderState* s) {\r
-  BrotliDecoderStateCleanupAfterMetablock(s);\r
-\r
-  BROTLI_DECODER_FREE(s, s->ringbuffer);\r
-  BROTLI_DECODER_FREE(s, s->block_type_trees);\r
-}\r
-\r
-BROTLI_BOOL BrotliDecoderHuffmanTreeGroupInit(BrotliDecoderState* s,\r
-    HuffmanTreeGroup* group, uint32_t alphabet_size, uint32_t max_symbol,\r
-    uint32_t ntrees) {\r
-  /* Pack two allocations into one */\r
-  const size_t max_table_size = kMaxHuffmanTableSize[(alphabet_size + 31) >> 5];\r
-  const size_t code_size = sizeof(HuffmanCode) * ntrees * max_table_size;\r
-  const size_t htree_size = sizeof(HuffmanCode*) * ntrees;\r
-  /* Pointer alignment is, hopefully, wider than sizeof(HuffmanCode). */\r
-  HuffmanCode** p = (HuffmanCode**)BROTLI_DECODER_ALLOC(s,\r
-      code_size + htree_size);\r
-  group->alphabet_size = (uint16_t)alphabet_size;\r
-  group->max_symbol = (uint16_t)max_symbol;\r
-  group->num_htrees = (uint16_t)ntrees;\r
-  group->htrees = p;\r
-  group->codes = (HuffmanCode*)(&p[ntrees]);\r
-  return !!p;\r
-}\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/state.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/dec/state.h
deleted file mode 100644 (file)
index 814f95e..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-/* Copyright 2015 Google Inc. All Rights Reserved.\r
-\r
-   Distributed under MIT license.\r
-   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
-*/\r
-\r
-/* Brotli state for partial streaming decoding. */\r
-\r
-#ifndef BROTLI_DEC_STATE_H_\r
-#define BROTLI_DEC_STATE_H_\r
-\r
-#include "../common/constants.h"\r
-#include "../common/dictionary.h"\r
-#include "../common/platform.h"\r
-#include "../common/transform.h"\r
-#include <brotli/types.h>\r
-#include "./bit_reader.h"\r
-#include "./huffman.h"\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-extern "C" {\r
-#endif\r
-\r
-typedef enum {\r
-  BROTLI_STATE_UNINITED,\r
-  BROTLI_STATE_LARGE_WINDOW_BITS,\r
-  BROTLI_STATE_INITIALIZE,\r
-  BROTLI_STATE_METABLOCK_BEGIN,\r
-  BROTLI_STATE_METABLOCK_HEADER,\r
-  BROTLI_STATE_METABLOCK_HEADER_2,\r
-  BROTLI_STATE_CONTEXT_MODES,\r
-  BROTLI_STATE_COMMAND_BEGIN,\r
-  BROTLI_STATE_COMMAND_INNER,\r
-  BROTLI_STATE_COMMAND_POST_DECODE_LITERALS,\r
-  BROTLI_STATE_COMMAND_POST_WRAP_COPY,\r
-  BROTLI_STATE_UNCOMPRESSED,\r
-  BROTLI_STATE_METADATA,\r
-  BROTLI_STATE_COMMAND_INNER_WRITE,\r
-  BROTLI_STATE_METABLOCK_DONE,\r
-  BROTLI_STATE_COMMAND_POST_WRITE_1,\r
-  BROTLI_STATE_COMMAND_POST_WRITE_2,\r
-  BROTLI_STATE_HUFFMAN_CODE_0,\r
-  BROTLI_STATE_HUFFMAN_CODE_1,\r
-  BROTLI_STATE_HUFFMAN_CODE_2,\r
-  BROTLI_STATE_HUFFMAN_CODE_3,\r
-  BROTLI_STATE_CONTEXT_MAP_1,\r
-  BROTLI_STATE_CONTEXT_MAP_2,\r
-  BROTLI_STATE_TREE_GROUP,\r
-  BROTLI_STATE_DONE\r
-} BrotliRunningState;\r
-\r
-typedef enum {\r
-  BROTLI_STATE_METABLOCK_HEADER_NONE,\r
-  BROTLI_STATE_METABLOCK_HEADER_EMPTY,\r
-  BROTLI_STATE_METABLOCK_HEADER_NIBBLES,\r
-  BROTLI_STATE_METABLOCK_HEADER_SIZE,\r
-  BROTLI_STATE_METABLOCK_HEADER_UNCOMPRESSED,\r
-  BROTLI_STATE_METABLOCK_HEADER_RESERVED,\r
-  BROTLI_STATE_METABLOCK_HEADER_BYTES,\r
-  BROTLI_STATE_METABLOCK_HEADER_METADATA\r
-} BrotliRunningMetablockHeaderState;\r
-\r
-typedef enum {\r
-  BROTLI_STATE_UNCOMPRESSED_NONE,\r
-  BROTLI_STATE_UNCOMPRESSED_WRITE\r
-} BrotliRunningUncompressedState;\r
-\r
-typedef enum {\r
-  BROTLI_STATE_TREE_GROUP_NONE,\r
-  BROTLI_STATE_TREE_GROUP_LOOP\r
-} BrotliRunningTreeGroupState;\r
-\r
-typedef enum {\r
-  BROTLI_STATE_CONTEXT_MAP_NONE,\r
-  BROTLI_STATE_CONTEXT_MAP_READ_PREFIX,\r
-  BROTLI_STATE_CONTEXT_MAP_HUFFMAN,\r
-  BROTLI_STATE_CONTEXT_MAP_DECODE,\r
-  BROTLI_STATE_CONTEXT_MAP_TRANSFORM\r
-} BrotliRunningContextMapState;\r
-\r
-typedef enum {\r
-  BROTLI_STATE_HUFFMAN_NONE,\r
-  BROTLI_STATE_HUFFMAN_SIMPLE_SIZE,\r
-  BROTLI_STATE_HUFFMAN_SIMPLE_READ,\r
-  BROTLI_STATE_HUFFMAN_SIMPLE_BUILD,\r
-  BROTLI_STATE_HUFFMAN_COMPLEX,\r
-  BROTLI_STATE_HUFFMAN_LENGTH_SYMBOLS\r
-} BrotliRunningHuffmanState;\r
-\r
-typedef enum {\r
-  BROTLI_STATE_DECODE_UINT8_NONE,\r
-  BROTLI_STATE_DECODE_UINT8_SHORT,\r
-  BROTLI_STATE_DECODE_UINT8_LONG\r
-} BrotliRunningDecodeUint8State;\r
-\r
-typedef enum {\r
-  BROTLI_STATE_READ_BLOCK_LENGTH_NONE,\r
-  BROTLI_STATE_READ_BLOCK_LENGTH_SUFFIX\r
-} BrotliRunningReadBlockLengthState;\r
-\r
-struct BrotliDecoderStateStruct {\r
-  BrotliRunningState state;\r
-\r
-  /* This counter is reused for several disjoint loops. */\r
-  int loop_counter;\r
-\r
-  BrotliBitReader br;\r
-\r
-  brotli_alloc_func alloc_func;\r
-  brotli_free_func free_func;\r
-  void* memory_manager_opaque;\r
-\r
-  /* Temporary storage for remaining input. */\r
-  union {\r
-    uint64_t u64;\r
-    uint8_t u8[8];\r
-  } buffer;\r
-  uint32_t buffer_length;\r
-\r
-  int pos;\r
-  int max_backward_distance;\r
-  int max_distance;\r
-  int ringbuffer_size;\r
-  int ringbuffer_mask;\r
-  int dist_rb_idx;\r
-  int dist_rb[4];\r
-  int error_code;\r
-  uint32_t sub_loop_counter;\r
-  uint8_t* ringbuffer;\r
-  uint8_t* ringbuffer_end;\r
-  HuffmanCode* htree_command;\r
-  const uint8_t* context_lookup;\r
-  uint8_t* context_map_slice;\r
-  uint8_t* dist_context_map_slice;\r
-\r
-  /* This ring buffer holds a few past copy distances that will be used by\r
-     some special distance codes. */\r
-  HuffmanTreeGroup literal_hgroup;\r
-  HuffmanTreeGroup insert_copy_hgroup;\r
-  HuffmanTreeGroup distance_hgroup;\r
-  HuffmanCode* block_type_trees;\r
-  HuffmanCode* block_len_trees;\r
-  /* This is true if the literal context map histogram type always matches the\r
-     block type. It is then not needed to keep the context (faster decoding). */\r
-  int trivial_literal_context;\r
-  /* Distance context is actual after command is decoded and before distance is\r
-     computed. After distance computation it is used as a temporary variable. */\r
-  int distance_context;\r
-  int meta_block_remaining_len;\r
-  uint32_t block_length_index;\r
-  uint32_t block_length[3];\r
-  uint32_t num_block_types[3];\r
-  uint32_t block_type_rb[6];\r
-  uint32_t distance_postfix_bits;\r
-  uint32_t num_direct_distance_codes;\r
-  int distance_postfix_mask;\r
-  uint32_t num_dist_htrees;\r
-  uint8_t* dist_context_map;\r
-  HuffmanCode* literal_htree;\r
-  uint8_t dist_htree_index;\r
-  uint32_t repeat_code_len;\r
-  uint32_t prev_code_len;\r
-\r
-  int copy_length;\r
-  int distance_code;\r
-\r
-  /* For partial write operations. */\r
-  size_t rb_roundtrips;  /* how many times we went around the ring-buffer */\r
-  size_t partial_pos_out;  /* how much output to the user in total */\r
-\r
-  /* For ReadHuffmanCode. */\r
-  uint32_t symbol;\r
-  uint32_t repeat;\r
-  uint32_t space;\r
-\r
-  HuffmanCode table[32];\r
-  /* List of heads of symbol chains. */\r
-  uint16_t* symbol_lists;\r
-  /* Storage from symbol_lists. */\r
-  uint16_t symbols_lists_array[BROTLI_HUFFMAN_MAX_CODE_LENGTH + 1 +\r
-                               BROTLI_NUM_COMMAND_SYMBOLS];\r
-  /* Tails of symbol chains. */\r
-  int next_symbol[32];\r
-  uint8_t code_length_code_lengths[BROTLI_CODE_LENGTH_CODES];\r
-  /* Population counts for the code lengths. */\r
-  uint16_t code_length_histo[16];\r
-\r
-  /* For HuffmanTreeGroupDecode. */\r
-  int htree_index;\r
-  HuffmanCode* next;\r
-\r
-  /* For DecodeContextMap. */\r
-  uint32_t context_index;\r
-  uint32_t max_run_length_prefix;\r
-  uint32_t code;\r
-  HuffmanCode context_map_table[BROTLI_HUFFMAN_MAX_SIZE_272];\r
-\r
-  /* For InverseMoveToFrontTransform. */\r
-  uint32_t mtf_upper_bound;\r
-  uint32_t mtf[64 + 1];\r
-\r
-  /* Less used attributes are at the end of this struct. */\r
-\r
-  /* States inside function calls. */\r
-  BrotliRunningMetablockHeaderState substate_metablock_header;\r
-  BrotliRunningTreeGroupState substate_tree_group;\r
-  BrotliRunningContextMapState substate_context_map;\r
-  BrotliRunningUncompressedState substate_uncompressed;\r
-  BrotliRunningHuffmanState substate_huffman;\r
-  BrotliRunningDecodeUint8State substate_decode_uint8;\r
-  BrotliRunningReadBlockLengthState substate_read_block_length;\r
-\r
-  unsigned int is_last_metablock : 1;\r
-  unsigned int is_uncompressed : 1;\r
-  unsigned int is_metadata : 1;\r
-  unsigned int should_wrap_ringbuffer : 1;\r
-  unsigned int canny_ringbuffer_allocation : 1;\r
-  unsigned int large_window : 1;\r
-  unsigned int size_nibbles : 8;\r
-  uint32_t window_bits;\r
-\r
-  int new_ringbuffer_size;\r
-\r
-  uint32_t num_literal_htrees;\r
-  uint8_t* context_map;\r
-  uint8_t* context_modes;\r
-\r
-  const BrotliDictionary* dictionary;\r
-  const BrotliTransforms* transforms;\r
-\r
-  uint32_t trivial_literal_contexts[8];  /* 256 bits */\r
-};\r
-\r
-typedef struct BrotliDecoderStateStruct BrotliDecoderStateInternal;\r
-#define BrotliDecoderState BrotliDecoderStateInternal\r
-\r
-BROTLI_INTERNAL BROTLI_BOOL BrotliDecoderStateInit(BrotliDecoderState* s,\r
-    brotli_alloc_func alloc_func, brotli_free_func free_func, void* opaque);\r
-BROTLI_INTERNAL void BrotliDecoderStateCleanup(BrotliDecoderState* s);\r
-BROTLI_INTERNAL void BrotliDecoderStateMetablockBegin(BrotliDecoderState* s);\r
-BROTLI_INTERNAL void BrotliDecoderStateCleanupAfterMetablock(\r
-    BrotliDecoderState* s);\r
-BROTLI_INTERNAL BROTLI_BOOL BrotliDecoderHuffmanTreeGroupInit(\r
-    BrotliDecoderState* s, HuffmanTreeGroup* group, uint32_t alphabet_size,\r
-    uint32_t max_symbol, uint32_t ntrees);\r
-\r
-#define BROTLI_DECODER_ALLOC(S, L) S->alloc_func(S->memory_manager_opaque, L)\r
-\r
-#define BROTLI_DECODER_FREE(S, X) {          \\r
-  S->free_func(S->memory_manager_opaque, X); \\r
-  X = NULL;                                  \\r
-}\r
-\r
-#if defined(__cplusplus) || defined(c_plusplus)\r
-}  /* extern "C" */\r
-#endif\r
-\r
-#endif  /* BROTLI_DEC_STATE_H_ */\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/docs/brotli-comparison-study-2015-09-22.pdf b/MdeModulePkg/Library/BrotliCustomDecompressLib/docs/brotli-comparison-study-2015-09-22.pdf
deleted file mode 100644 (file)
index 040f179..0000000
Binary files a/MdeModulePkg/Library/BrotliCustomDecompressLib/docs/brotli-comparison-study-2015-09-22.pdf and /dev/null differ
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/stddef.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/stddef.h
new file mode 100644 (file)
index 0000000..917a177
--- /dev/null
@@ -0,0 +1,9 @@
+/** @file\r
+  Include file to support building the third-party brotli.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <BrotliDecUefiSupport.h>\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/stdint.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/stdint.h
new file mode 100644 (file)
index 0000000..917a177
--- /dev/null
@@ -0,0 +1,9 @@
+/** @file\r
+  Include file to support building the third-party brotli.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <BrotliDecUefiSupport.h>\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/stdlib.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/stdlib.h
new file mode 100644 (file)
index 0000000..917a177
--- /dev/null
@@ -0,0 +1,9 @@
+/** @file\r
+  Include file to support building the third-party brotli.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <BrotliDecUefiSupport.h>\r
diff --git a/MdeModulePkg/Library/BrotliCustomDecompressLib/string.h b/MdeModulePkg/Library/BrotliCustomDecompressLib/string.h
new file mode 100644 (file)
index 0000000..917a177
--- /dev/null
@@ -0,0 +1,9 @@
+/** @file\r
+  Include file to support building the third-party brotli.\r
+\r
+Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+**/\r
+\r
+#include <BrotliDecUefiSupport.h>\r
index 497574cb087022cdcc8b865c3d352e4da6d3ea5f..42ad21cf244d7fc0b5dfe71c970dd72fc08ddb86 100644 (file)
@@ -24,6 +24,8 @@
 [Includes]\r
   Include\r
 \r
+[Includes.Common.Private]\r
+  Library/BrotliCustomDecompressLib/brotli/c/include\r
 \r
 [LibraryClasses]\r
   ##  @libraryclass  Defines a set of methods to reset whole system.\r
index 429c56ee7401e6387ed6181bbc3e634e211c1b4d..5f4e4c2bcbc39705caa7f1c72419f9118b1f35b7 100644 (file)
--- a/Readme.md
+++ b/Readme.md
@@ -58,7 +58,7 @@ The majority of the content in the EDK II open source project uses a
 [BSD-2-Clause Plus Patent License](License.txt).  The EDK II open source project\r
 contains the following components that are covered by additional licenses:\r
 * [BaseTools/Source/C/BrotliCompress](BaseTools/Source/C/BrotliCompress/LICENSE)\r
-* [MdeModulePkg/Library/BrotliCustomDecompressLib](MdeModulePkg/Library/BrotliCustomDecompressLib/LICENSE)\r
+* [MdeModulePkg/Library/BrotliCustomDecompressLib/brotli](https://github.com/google/brotli/blob/master/LICENSE)\r
 * [BaseTools/Source/C/LzmaCompress](BaseTools/Source/C/LzmaCompress/LZMA-SDK-README.txt)\r
 * [MdeModulePkg/Library/LzmaCustomDecompressLib](MdeModulePkg/Library/LzmaCustomDecompressLib/LZMA-SDK-README.txt)\r
 * [IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/Sdk](IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LZMA-SDK-README.txt)\r
@@ -200,6 +200,7 @@ as possible as we can. Currently EDK II contains the following submodules
 - CryptoPkg/Library/OpensslLib/openssl\r
 - ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3\r
 - MdeModulePkg/Universal/RegularExpressionDxe/oniguruma\r
+- MdeModulePkg/Library/BrotliCustomDecompressLib/brotli\r
 \r
 ArmSoftFloatLib is actually required by OpensslLib. It's inevitable\r
 in openssl-1.1.1 (since stable201905) for floating point parameter\r