diff --git a/GraphBLAS/CMakeLists.txt b/GraphBLAS/CMakeLists.txt index 9f0250d3c6..453d9e35da 100644 --- a/GraphBLAS/CMakeLists.txt +++ b/GraphBLAS/CMakeLists.txt @@ -71,7 +71,7 @@ if ( SUITESPARSE_CUDA ) # with CUDA and RMM add_subdirectory ( CUDA ) set ( GB_CUDA GraphBLAS_CUDA ${CUDA_LIBRARIES} ) - set ( GB_RMM rmm_wrap ${CUDA_LIBRARIES} ) + set ( GB_RMM RMM_wrap ${CUDA_LIBRARIES} ) add_subdirectory ( rmm_wrap ) include_directories ( "rmm_wrap" ${CUDA_INCLUDE_DIRS} "/usr/local/cuda/include/cub" ) @@ -259,7 +259,7 @@ if ( BUILD_SHARED_LIBS ) if ( SUITESPARSE_CUDA ) add_dependencies ( GraphBLAS GraphBLAS_CUDA ) - # add_dependencies ( GraphBLAS rmm_wrap ) + add_dependencies ( GraphBLAS RMM_wrap ) target_compile_definitions ( GraphBLAS PRIVATE "SUITESPARSE_CUDA" ) endif ( ) @@ -300,7 +300,7 @@ if ( BUILD_STATIC_LIBS ) if ( SUITESPARSE_CUDA ) add_dependencies ( GraphBLAS_static GraphBLAS_CUDA ) set ( GRAPHBLAS_STATIC_MODULES "${GRAPHBLAS_STATIC_MODULES} GraphBLAS_CUDA" ) - # add_dependencies ( GraphBLAS_static rmm_wrap ) + add_dependencies ( GraphBLAS_static RMM_wrap ) target_compile_definitions ( GraphBLAS_static PRIVATE "SUITESPARSE_CUDA" ) endif ( ) diff --git a/GraphBLAS/CUDA/CMakeLists.txt b/GraphBLAS/CUDA/CMakeLists.txt index 6d0df88701..89c779ff13 100644 --- a/GraphBLAS/CUDA/CMakeLists.txt +++ b/GraphBLAS/CUDA/CMakeLists.txt @@ -29,6 +29,7 @@ set ( CMAKE_CUDA_FLAGS "-cudart=static -lineinfo " ) set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --std=c++17 -fPIC " ) add_compile_definitions ( GBNCPUFEAT ) +add_compile_definitions ( GBCUDA_CPLUSPLUS ) message ( STATUS "C++ flags for CUDA: ${CMAKE_CXX_FLAGS}" ) @@ -54,6 +55,7 @@ set ( GRAPHBLAS_CUDA_INCLUDES ../Source/Shared ../Source/Template ../Source/Factories + Template ../Include ../CUDA ) @@ -149,6 +151,8 @@ endif ( ) # test suite for the CUDA kernels #------------------------------------------------------------------------------- +if ( 0 ) + # 1. Execute enumify/stringify/jitify logic to compile ptx kernels and # compile/link w/ relevant *.cu files. @@ -266,3 +270,4 @@ target_include_directories ( graphblascuda_test ${CUDAToolkit_INCLUDE_DIRS} ${GRAPHBLAS_CUDA_INCLUDES} ) +endif ( ) diff --git a/GraphBLAS/CUDA/GB_AxB_dot3_cuda_branch.cpp b/GraphBLAS/CUDA/GB_AxB_dot3_cuda_branch.cpp index 61a7a67e17..f87d74d24a 100644 --- a/GraphBLAS/CUDA/GB_AxB_dot3_cuda_branch.cpp +++ b/GraphBLAS/CUDA/GB_AxB_dot3_cuda_branch.cpp @@ -9,6 +9,7 @@ // Decide branch direction for GPU use for the dot-product MxM +#include "GraphBLAS.h" extern "C" { #include "GB_mxm.h" diff --git a/GraphBLAS/CUDA/GB_cuda.h b/GraphBLAS/CUDA/GB_cuda.h index 9460a434d1..c0885842b9 100644 --- a/GraphBLAS/CUDA/GB_cuda.h +++ b/GraphBLAS/CUDA/GB_cuda.h @@ -18,10 +18,11 @@ extern "C" #include "GB_compiler.h" #include "GB_cpu_features.h" #include "GB_warnings.h" - #define GB_LIBRARY - #include "GraphBLAS.h" } +#define GB_LIBRARY +#include "GraphBLAS.h" + extern "C" { #include diff --git a/GraphBLAS/CUDA/GB_cuda_init.c b/GraphBLAS/CUDA/GB_cuda_init.c index 978944f0ca..25dd233b88 100644 --- a/GraphBLAS/CUDA/GB_cuda_init.c +++ b/GraphBLAS/CUDA/GB_cuda_init.c @@ -1,8 +1,8 @@ //------------------------------------------------------------------------------ -// GB_cuda_init: initialize the GPUs for use by GraphBLAS +// GraphBLAS/CUDA/GB_cuda_init: initialize the GPUs for use by GraphBLAS //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2022, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -12,6 +12,7 @@ // assumed. Then each GPU is "warmed up" by allocating a small amount of // memory. +#undef GBCUDA_CPLUSPLUS #include "GB.h" GrB_Info GB_cuda_init (void) diff --git a/GraphBLAS/CUDA/GB_cuda_type_bits.c b/GraphBLAS/CUDA/GB_cuda_type_bits.c index 8712f1698d..52b446a4ea 100644 --- a/GraphBLAS/CUDA/GB_cuda_type_bits.c +++ b/GraphBLAS/CUDA/GB_cuda_type_bits.c @@ -1,5 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 +#if 0 #include "GB.h" size_t GB_cuda_type_bits (GB_Type_code); @@ -25,3 +26,4 @@ size_t GB_cuda_type_bits (GB_Type_code type_code) } } +#endif diff --git a/GraphBLAS/CUDA/GB_cuda_type_branch.cpp b/GraphBLAS/CUDA/GB_cuda_type_branch.cpp index 32d34153f8..bd4085cab5 100644 --- a/GraphBLAS/CUDA/GB_cuda_type_branch.cpp +++ b/GraphBLAS/CUDA/GB_cuda_type_branch.cpp @@ -14,6 +14,7 @@ // All built-in types pass this rule. +#include "GraphBLAS.h" extern "C" { #include "GB.h" diff --git a/GraphBLAS/CUDA/GB_reduce_to_scalar_cuda.cpp b/GraphBLAS/CUDA/GB_reduce_to_scalar_cuda.cpp index c68e47f137..32f5857c80 100644 --- a/GraphBLAS/CUDA/GB_reduce_to_scalar_cuda.cpp +++ b/GraphBLAS/CUDA/GB_reduce_to_scalar_cuda.cpp @@ -14,6 +14,7 @@ // threadblock. Then GB_reduce_to_scalar on the CPU sees this V as the result, // and calls itself recursively to continue the reduction. +#include "GraphBLAS.h" extern "C" { #include "GB_reduce.h" diff --git a/GraphBLAS/Config/GraphBLAS.h.in b/GraphBLAS/Config/GraphBLAS.h.in index ecb71611b3..75da682a1c 100644 --- a/GraphBLAS/Config/GraphBLAS.h.in +++ b/GraphBLAS/Config/GraphBLAS.h.in @@ -19,7 +19,7 @@ // This GraphBLAS.h file contains GraphBLAS definitions for user applications // to #include. A few functions and variables with the prefix GB_ need to be // defined in this file and are thus technically visible to the user, but they -// must not be accessed in user code. They are here only so that the ANSI C11 +// must not be accessed in user code. They are here only so that the C11 // _Generic feature can be used in the user-accessible polymorphic functions, // or to implement a fast GxB_Iterator using macros. @@ -110,24 +110,32 @@ #define GB_GLOBAL extern #endif -// GraphBLAS requires an ANSI C11 compiler for its polymorphic functions (using +// GraphBLAS requires an C11 compiler for its polymorphic functions (using // the _Generic keyword), but it can be used in an C90 compiler if those // functions are disabled. -// With ANSI C11 and later, _Generic keyword and polymorphic functions can be +// With C11 and later, _Generic keyword and polymorphic functions can be // used. Earlier versions of the language do not have this feature. #ifdef __STDC_VERSION__ -// ANSI C17: 201710L -// ANSI C11: 201112L -// ANSI C99: 199901L -// ANSI C95: 199409L +// C17: 201710L +// C11: 201112L +// C99: 199901L +// C95: 199409L #define GxB_STDC_VERSION __STDC_VERSION__ #else -// assume ANSI C90 / C89 +// assume C90 / C89 #define GxB_STDC_VERSION 199001L #endif +//------------------------------------------------------------------------------ +// CUDA (currently experimental, not for production use) +//------------------------------------------------------------------------------ + +#ifndef SUITESPARSE_CUDA +#cmakedefine SUITESPARSE_CUDA +#endif + //------------------------------------------------------------------------------ // definitions for complex types //------------------------------------------------------------------------------ @@ -138,7 +146,19 @@ #ifndef GXB_COMPLEX_H #define GXB_COMPLEX_H - #if defined (_MSC_VER) && !(defined (__INTEL_COMPILER) || defined(__INTEL_CLANG_COMPILER)) + #if defined ( GBCUDA_CPLUSPLUS ) + + // C++ complex types for CUDA + #include + #include + #undef I + typedef std::complex GxB_FC32_t ; + typedef std::complex GxB_FC64_t ; + #define GxB_CMPLXF(r,i) GxB_FC32_t(r,i) + #define GxB_CMPLX(r,i) GxB_FC64_t(r,i) + #define GB_HAS_CMPLX_MACROS 1 + + #elif defined (_MSC_VER) && !(defined (__INTEL_COMPILER) || defined(__INTEL_CLANG_COMPILER)) // Microsoft Windows complex types for C #include @@ -151,13 +171,13 @@ #else - // ANSI C11 complex types + // C11 complex types #include #undef I typedef float _Complex GxB_FC32_t ; typedef double _Complex GxB_FC64_t ; #if (defined (CMPLX) && defined (CMPLXF)) - // use the ANSI C11 CMPLX and CMPLXF macros + // use the C11 CMPLX and CMPLXF macros #define GxB_CMPLX(r,i) CMPLX (r,i) #define GxB_CMPLXF(r,i) CMPLXF (r,i) #define GB_HAS_CMPLX_MACROS 1 @@ -185,10 +205,10 @@ // NVIDIA nvcc #define GB_restrict __restrict__ #elif GxB_STDC_VERSION >= 199901L - // ANSI C99 or later + // C99 or later #define GB_restrict restrict #else - // ANSI C95 and earlier: no restrict keyword + // C95 and earlier: no restrict keyword #define GB_restrict #endif @@ -885,7 +905,7 @@ GB_GLOBAL GrB_UnaryOp // Unary operators for floating-point types only //------------------------------------------------------------------------------ -// The following floating-point unary operators and their ANSI C11 equivalents, +// The following floating-point unary operators and their C11 equivalents, // are only defined for floating-point (real and complex) types. GB_GLOBAL GrB_UnaryOp @@ -949,7 +969,7 @@ GB_GLOBAL GrB_UnaryOp GxB_CBRT_FP64, // frexpx and frexpe return the mantissa and exponent, respectively, - // from the ANSI C11 frexp function. The exponent is returned as a + // from the C11 frexp function. The exponent is returned as a // floating-point value, not an integer. // z = frexpx (x) z = frexpe (x) @@ -10737,7 +10757,7 @@ GrB_Info GrB_Matrix_exportHint // suggest the best export format // GrB_Matrix_serialize/deserialize are slightly different from their GxB* // counterparts. The blob is allocated by GxB_Matrix_serialize, and must be -// freed by the same free() method passed to GxB_init (or the ANSI C11 free() +// freed by the same free() method passed to GxB_init (or the C11 free() // if GrB_init was used). By contrast, the GrB* methods require the user // application to pass in a preallocated blob to GrB_Matrix_serialize, whose // size can be given by GrB_Matrix_serializeSize (as a loose upper bound). diff --git a/GraphBLAS/Config/README.md.in b/GraphBLAS/Config/README.md.in index b8c30307cb..3a416e0cba 100644 --- a/GraphBLAS/Config/README.md.in +++ b/GraphBLAS/Config/README.md.in @@ -36,8 +36,8 @@ QUICK START: To compile and install, do these commands in this directory: make sudo make install -Please be patient; some files can take several minutes to compile. Requires an -ANSI C11 compiler, so cmake will fail if your compiler is not C11 compliant. +Please be patient; some files can take several minutes to compile. Requires a +C11 compiler, so cmake will fail if your compiler is not C11 compliant. See the User Guide PDF in Doc/ for directions on how to use another compiler. For faster compilation, do this instead of just "make", which uses 32 diff --git a/GraphBLAS/Demo/Output/gauss_demo.out b/GraphBLAS/Demo/Output/gauss_demo.out index df86ba0b8b..af441d5155 100644 --- a/GraphBLAS/Demo/Output/gauss_demo.out +++ b/GraphBLAS/Demo/Output/gauss_demo.out @@ -2,36 +2,89 @@ Gauss demo. Note that all transposes are array transposes, not matrix (conjugate) transposes. - GraphBLAS Context: GxB_CONTEXT_WORLD - Context.nthreads: 8 + GraphBLAS Context: World + Context.nthreads: 40 Context.chunk: 65536 JIT configuration: ------------------ -JIT C compiler: [/usr/bin/gcc] +JIT C compiler: [/usr/bin/cc] JIT C flags: [ -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC ] JIT C link flags: [ -shared ] -JIT C libraries: [ -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so] +JIT C libraries: [ -lm -ldl -lgomp -lpthread] JIT C preface: [] -JIT cache: [/home/davis/.SuiteSparse/GraphBLAS/8.0.0] +JIT cache: [/home/faculty/d/davis/.SuiteSparse/GrB8.3.0] +JIT C control: [4] +JIT C control: [4] reset ------------------------------------- JIT C preface (revised): // kernel generated by gauss_demo.c #include - [ GxB_Type_new (jit: loaded but must recompile) (jit: compile and load) (jit: /usr/bin/gcc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/davis/.SuiteSparse/GraphBLAS/8.0.0/src -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.o -c /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.c ; /usr/bin/gcc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/lib/b4/libGB_jit__user_type__0__gauss.so /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.o -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so ) - 0.0696 sec ] + [ GxB_Type_new (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +[ 50%] Building C object CMakeFiles/GB_jit__user_type__0__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b4/GB_jit__user_type__0__gauss.c.o +[100%] Linking C shared library libGB_jit__user_type__0__gauss.so +[100%] Built target GB_jit__user_type__0__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/b4/libGB_jit__user_type__0__gauss.so + + 0.583 sec ] GraphBLAS type: BadGauss user-defined: [gauss] size: 4 typedef struct { int32_t real ; } gauss ; - [ GxB_Type_new (jit: type changed) (jit: loaded but must recompile) (jit: compile and load) (jit: /usr/bin/gcc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/davis/.SuiteSparse/GraphBLAS/8.0.0/src -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.o -c /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.c ; /usr/bin/gcc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/lib/b4/libGB_jit__user_type__0__gauss.so /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/b4/GB_jit__user_type__0__gauss.o -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so ) - 0.0515 sec ] + [ GxB_Type_new (jit: type changed) (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +[ 50%] Building C object CMakeFiles/GB_jit__user_type__0__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b4/GB_jit__user_type__0__gauss.c.o +[100%] Linking C shared library libGB_jit__user_type__0__gauss.so +[100%] Built target GB_jit__user_type__0__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/b4/libGB_jit__user_type__0__gauss.so + + 0.6 sec ] GraphBLAS type: Gauss user-defined: [gauss] size: 8 typedef struct { int32_t real ; int32_t imag ; } gauss ; - [ GxB_Type_new (jit: type ok) - 5.29e-06 sec ] + [ GxB_Type_new + 7.53e-06 sec ] GraphBLAS type: Gauss user-defined: [gauss] size: 8 typedef struct { int32_t real ; int32_t imag ; } gauss ; - [ GxB_BinaryOp_new (jit: loaded but must recompile) (jit: compile and load) (jit: /usr/bin/gcc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/davis/.SuiteSparse/GraphBLAS/8.0.0/src -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.o -c /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.c ; /usr/bin/gcc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/lib/1b/libGB_jit__user_op__0__addgauss.so /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.o -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so ) - 0.0564 sec ] + [ GxB_BinaryOp_new (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +[ 50%] Building C object CMakeFiles/GB_jit__user_op__0__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/1b/GB_jit__user_op__0__addgauss.c.o +[100%] Linking C shared library libGB_jit__user_op__0__addgauss.so +[100%] Built target GB_jit__user_op__0__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/1b/libGB_jit__user_op__0__addgauss.so + + 0.608 sec ] GraphBLAS BinaryOp: BadAddGauss (user-defined): z=addgauss(x,y) GraphBLAS type: ztype user-defined: [gauss] size: 8 @@ -45,8 +98,25 @@ void addgauss (gauss *z, const gauss *x, const gauss *y) z->real = x->real + y->real ; z->imag = -911 ; } - [ GxB_BinaryOp_new (jit: op changed) (jit: loaded but must recompile) (jit: compile and load) (jit: /usr/bin/gcc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/davis/.SuiteSparse/GraphBLAS/8.0.0/src -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.o -c /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.c ; /usr/bin/gcc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/davis/.SuiteSparse/GraphBLAS/8.0.0/lib/1b/libGB_jit__user_op__0__addgauss.so /home/davis/.SuiteSparse/GraphBLAS/8.0.0/c/1b/GB_jit__user_op__0__addgauss.o -lm -ldl /usr/lib/gcc/x86_64-linux-gnu/7/libgomp.so /usr/lib/x86_64-linux-gnu/libpthread.so ) - 0.063 sec ] + [ GxB_BinaryOp_new (jit: op changed) (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +[ 50%] Building C object CMakeFiles/GB_jit__user_op__0__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/1b/GB_jit__user_op__0__addgauss.c.o +[100%] Linking C shared library libGB_jit__user_op__0__addgauss.so +[100%] Built target GB_jit__user_op__0__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/1b/libGB_jit__user_op__0__addgauss.so + + 0.596 sec ] GraphBLAS BinaryOp: AddGauss (user-defined): z=addgauss(x,y) GraphBLAS type: ztype user-defined: [gauss] size: 8 @@ -60,8 +130,8 @@ void addgauss (gauss *z, const gauss *x, const gauss *y) z->real = x->real + y->real ; z->imag = x->imag + y->imag ; } - [ GxB_BinaryOp_new (jit: op ok) - 3.27e-06 sec ] + [ GxB_BinaryOp_new + 6.59e-06 sec ] GraphBLAS BinaryOp: AddGauss (user-defined): z=addgauss(x,y) GraphBLAS type: ztype user-defined: [gauss] size: 8 @@ -146,12 +216,12 @@ row 1: ( 2, 2) ( 2, 1) ( 2, 0) ( 2, -1) row 2: ( 3, 2) ( 3, 1) ( 3, 0) ( 3, -1) row 3: ( 4, 2) ( 4, 1) ( 4, 0) ( 4, -1) - [ GrB_reduce (A bitmap) (jit: load) - 5.75e-05 sec ] + [ GrB_reduce (A bitmap) work:16 gpus:0 (jit: load) + 0.00023 sec ] sum (A) = (39,6) [ GrB_mxm C=A*B, saxpy (B = B*B, anz: 15 bnz: 15) (bitmap saxpy) (jit: load) (bitmap to full) - 9.17e-05 sec ] + 0.000294 sec ] =============== Gauss A = A^2 matrix: @@ -162,8 +232,8 @@ row 1: ( 18, 10) ( 18, 8) ( 20, 0) ( 22, -8) row 2: ( 27, 16) ( 28, 12) ( 30, 0) ( 32, -12) row 3: ( 36, 22) ( 38, 16) ( 40, 0) ( 42, -16) - [ GrB_reduce (A full) (jit: load) - 3.59e-05 sec ] + [ GrB_reduce (A full) work:16 gpus:0 (jit: load) + 0.000164 sec ] sum (A^2) = (387,46) @@ -176,11 +246,12 @@ row 2: . . . . row 3: . . . . [ GxB_set (full to sparse) - 4.51e-06 sec ] + 2.09e-05 sec ] [ GxB_set (hyper to sparse) - 3.22e-06 sec ] - [ GrB_mxm (iso mask: struct) (iso wait:M 0 zombies, 4 pending) (iso build) (hyper to sparse) C=A'*B, masked_dot_product (dot3) (S{S} = Sf'*Sf) nthreads 1 ntasks 1 (jit: load) (sparse to bitmap) - 7.75e-05 sec ] + 1.1e-05 sec ] + [ GrB_mxm (iso mask: struct) (iso wait:M 0 zombies, 4 pending) (iso build) (hyper to sparse) C=A'*B, masked_dot_product (dot3) (S{S} = Sf'*Sf) work:16 GPUs:0 Not using cuda path. +nthreads 1 ntasks 1 (jit: load) (sparse to bitmap) (jit: load) + 0.000475 sec ] =============== Gauss C = diag(AA') matrix: @@ -192,11 +263,11 @@ row 2: . . (2893, 768) . row 3: . . . (5108,1456) [ GxB_set - 1.69e-07 sec ] + 7.67e-07 sec ] [ GxB_set (hyper to sparse) - 1.62e-06 sec ] + 8.94e-06 sec ] [ GrB_select (A dense) - 1.69e-05 sec ] + 3.06e-05 sec ] Gauss D matrix @@ -207,7 +278,7 @@ row 2: . . ( 30, 0) . row 3: . . . ( 42, -16) [ GrB_mxm C=A*B, colscale (Sf=Sf*S) (jit: load) - 4.63e-05 sec ] + 0.000186 sec ] =============== Gauss C = D*A matrix: @@ -219,9 +290,9 @@ row 2: ( 810, 480) ( 840, 360) ( 900, 0) ( 960,-360) row 3: (1864, 348) (1852, 64) (1680,-640) (1508,-1344) [ GxB_set - 1.23e-07 sec ] + 4.31e-07 sec ] [ GxB_set (sparse to bitmap) - 2.44e-06 sec ] + 1.29e-05 sec ] Gauss D matrix (bitmap) @@ -242,7 +313,7 @@ row 3: . . . ( 42, -16) (3,3) [user-defined value] [ GxB_set (bitmap to sparse) - 4.22e-06 sec ] + 1.43e-05 sec ] Gauss D matrix (back to sparse) @@ -263,7 +334,7 @@ row 3: . . . ( 42, -16) (3,3) [user-defined value] [ GrB_mxm C=A*B, rowscale (Sf=S*Sf) (jit: load) - 4.5e-05 sec ] + 0.000181 sec ] =============== Gauss C = A*D matrix: @@ -275,7 +346,7 @@ row 2: ( 179, 252) ( 408, 440) ( 900, 0) (1152,-1016) row 3: ( 236, 342) ( 556, 592) (1200, 0) (1508,-1344) [ GrB_assign (C iso assign) (pending: 0) Method 21: (C full) = scalar - 1.45e-05 sec ] + 4.1e-05 sec ] =============== Gauss C = (1,-2) matrix: @@ -297,7 +368,7 @@ row 2: ( 27, 16) ( 28, 12) ( 30, 0) ( 32, -12) row 3: ( 36, 22) ( 38, 16) ( 40, 0) ( 42, -16) [ GrB_mxm C=A'*B, dot_product (dot4: F += Sf'*Sf) (jit: load) (C in place) - 4.39e-05 sec ] + 0.000185 sec ] =============== Gauss C += A*A' matrix: @@ -309,7 +380,7 @@ row 2: ( 918, 58) (1943, 476) (2894, 766) (3845,1056) row 3: (1221, 88) (2581, 658) (3845,1056) (5109,1454) [ GrB_assign (C iso assign) (pending: 0) Method 21: (C full) = scalar - 4.84e-06 sec ] + 2.16e-05 sec ] =============== Gauss B = (1,-2) matrix: @@ -321,7 +392,7 @@ row 2: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) row 3: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) [ GrB_mxm C=A*B, saxpy (saxpy4: F += Sf*F) (coarse, threads: 1) (jit: load) (C in place) - 5.1e-05 sec ] + 0.000194 sec ] =============== Gauss C += B*A: @@ -333,7 +404,7 @@ row 2: (1112, -70) (2110, 327) (2989, 566) (3868, 805) row 3: (1415, -40) (2748, 509) (3940, 856) (5132,1203) [ GrB_mxm C=A*B, saxpy (saxpy5: F += F*Sf) (jit: load) (C in place) - 4.18e-05 sec ] + 0.000177 sec ] =============== Gauss C += A*B: @@ -345,7 +416,7 @@ row 2: (1261,-288) (2259, 109) (3138, 348) (4017, 587) row 3: (1615,-330) (2948, 219) (4140, 566) (5332, 913) [ GrB_apply (shallow-op) (jit: load) - 4.27e-05 sec ] + 0.000171 sec ] =============== Gauss C = (1,-2) + A: @@ -357,7 +428,7 @@ row 2: ( 28, 14) ( 29, 10) ( 31, -2) ( 33, -14) row 3: ( 37, 20) ( 39, 14) ( 41, -2) ( 43, -18) [ GrB_apply (shallow-op) (jit: load) - 3.71e-05 sec ] + 0.000152 sec ] =============== Gauss C = A*(1,-2): @@ -369,7 +440,7 @@ row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) [ GrB_apply (transpose-op) (transpose) (1-thread bucket transpose) (jit: load) (full to sparse) - 5.88e-05 sec ] + 0.00019 sec ] =============== Gauss C = A'*(1,-2): @@ -381,7 +452,7 @@ row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) [ GrB_apply (transpose-op) (transpose) (1-thread bucket transpose) (jit: load) (full to sparse) - 3.92e-05 sec ] + 0.000176 sec ] =============== Gauss C = (1,-2)*A': @@ -402,7 +473,7 @@ void realgauss (int32_t *z, const gauss *x) (*z) = x->real ; } [ GrB_apply (shallow-op) (jit: load) - 3.85e-05 sec ] + 0.00016 sec ] 4x4 GraphBLAS int32_t matrix, full by row R, 16 entries, memory: 280 bytes @@ -435,7 +506,7 @@ row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) [ GrB_apply (transpose-op) (transpose) (bitmap/full transpose) (jit: load) - 3.78e-05 sec ] + 0.000193 sec ] 4x4 GraphBLAS int32_t matrix, full by row R, 16 entries, memory: 280 bytes @@ -458,6 +529,7 @@ row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) (3,3) 10 + =============== C size: 4-by-4 @@ -467,7 +539,7 @@ row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) [ GrB_apply (shallow-op) (jit: load) - 3.69e-05 sec ] + 0.00017 sec ] R = ijgauss (C) @@ -491,8 +563,8 @@ R = ijgauss (C) (3,2) 10 (3,3) 11 - [ GrB_Matrix_extractTuples (A full) - 1.09e-05 sec ] + [ GrB_Matrix_extractTuples (A full) (jit: load) + 0.000162 sec ] R (0,0) = 18 R (0,1) = 38 R (0,2) = 58 @@ -520,7 +592,7 @@ row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) [ GrB_transpose (transpose) (bitmap/full transpose) (jit: load) - 3.99e-05 sec ] + 0.000164 sec ] =============== C = C' @@ -532,9 +604,9 @@ row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) [ GxB_set (in-place transpose) (transpose) - 5.67e-06 sec ] - [ GxB_Matrix_concat (sparse concat) (transpose) (bitmap/full transpose) (jit: run) (transpose) (transpose) (1-thread bucket transpose) (jit: load) (transpose) (1-thread bucket transpose) (jit: run) (transpose) (transpose) (bitmap/full transpose) (jit: run) - 6.61e-05 sec ] + 1.71e-05 sec ] + [ GxB_Matrix_concat (sparse concat) (transpose) (bitmap/full transpose) (transpose) (transpose) (1-thread bucket transpose) (jit: load) (transpose) (1-thread bucket transpose) (transpose) (transpose) (bitmap/full transpose) (jit: load) (jit: load) (jit: load) + 0.000687 sec ] =============== Z = [C D ; E E ; D C] @@ -841,8 +913,8 @@ row 255: . . . ( 42, -16) ( 80, -50) ( 70, -60 (254,7) [user-defined value] (255,7) [user-defined value] - [ GxB_Matrix_split (sparse/hyper split) - 1.29e-05 sec ] + [ GxB_Matrix_split (sparse/hyper split) (jit: load) + 0.000201 sec ] =============== C Tile from Z: @@ -1440,9 +1512,9 @@ row 127: ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) (127,4) [user-defined value] [ GxB_set (in-place transpose) (transpose) - 2.97e-06 sec ] - [ GxB_Matrix_concat (bitmap concat) (transpose) (bitmap/full transpose) (jit: run) (transpose) (transpose) (1-thread bucket transpose) (jit: run) (transpose) (1-thread bucket transpose) (jit: run) (transpose) (transpose) (bitmap/full transpose) (jit: run) - 2.75e-05 sec ] + 7.88e-06 sec ] + [ GxB_Matrix_concat (bitmap concat) (transpose) (bitmap/full transpose) (jit: load) (transpose) (jit: load) (transpose) (1-thread bucket transpose) (jit: load) (transpose) (1-thread bucket transpose) (transpose) (transpose) (bitmap/full transpose) + 0.000361 sec ] =============== Z = [C D ; E E ; D C] @@ -1509,8 +1581,8 @@ row 15: . . . ( 42, -16) ( 80, -50) ( 70, -60) (14,7) [user-defined value] (15,7) [user-defined value] - [ GxB_Matrix_split (bitmap split) - 6.21e-06 sec ] + [ GxB_Matrix_split (bitmap split) (jit: load) + 0.000117 sec ] =============== C Tile from Z: @@ -1628,7 +1700,7 @@ row 7: ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) (7,4) [user-defined value] [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: load) - 4.73e-05 sec ] + 0.000118 sec ] =============== C = C + ciso @@ -1640,9 +1712,9 @@ row 2: ( 60, -40) ( 53, -46) ( 31, -62) ( 9, -78) row 3: ( 81, -52) ( 71, -62) ( 41, -82) ( 11,-102) [ GxB_set - 9.13e-08 sec ] - [ GxB_Matrix_split (full split) - 4.33e-06 sec ] + 2.73e-07 sec ] + [ GxB_Matrix_split (full split) (jit: load) + 0.000108 sec ] =============== S Tile from C: @@ -1726,8 +1798,8 @@ row 1: ( 39, -28) ( 35, -30) ( 21, -42) ( 7, -54) row 2: ( 60, -40) ( 53, -46) ( 31, -62) ( 9, -78) row 3: ( 81, -52) ( 71, -62) ( 41, -82) ( 11,-102) - [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: paused) (generic C(:,:)+=x assign) - 6.87e-06 sec ] + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 1.47e-05 sec ] =============== C = C + ciso (JIT paused): @@ -1748,8 +1820,8 @@ row 1: ( 40, -30) ( 36, -32) ( 22, -44) ( 8, -56) row 2: ( 61, -42) ( 54, -48) ( 32, -64) ( 10, -80) row 3: ( 82, -54) ( 72, -64) ( 42, -84) ( 12,-104) - [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: paused) (generic C(:,:)+=x assign) - 4.99e-06 sec ] + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 1e-05 sec ] =============== C = C * ciso (JIT paused): @@ -1761,8 +1833,8 @@ row 2: ( -23,-164) ( -42,-156) ( -96,-128) (-150,-100) row 3: ( -26,-218) ( -56,-208) (-126,-168) (-196,-128) JIT: run (may not load or compile) - [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: run) - 4.02e-06 sec ] + [ GrB_assign (pending: 0) Method 22: (C full) += scalar + 7.75e-06 sec ] =============== C = C + ciso (JIT run): @@ -1773,8 +1845,8 @@ row 1: ( -19,-112) ( -27,-106) ( -65, -90) (-103, -74) row 2: ( -22,-166) ( -41,-158) ( -95,-130) (-149,-102) row 3: ( -25,-220) ( -55,-210) (-125,-170) (-195,-130) - [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: not loaded) (generic C(:,:)+=x assign) - 4.72e-06 sec ] + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 1e-05 sec ] =============== C = C * ciso (JIT not loaded): @@ -1787,7 +1859,7 @@ row 3: (-465,-170) (-475,-100) (-465, 80) (-455, 260) JIT: on [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: load) - 4.01e-05 sec ] + 0.000112 sec ] =============== C = C * ciso (full JIT): diff --git a/GraphBLAS/Demo/Output/gauss_demo1.out b/GraphBLAS/Demo/Output/gauss_demo1.out new file mode 100644 index 0000000000..90a7cb21a3 --- /dev/null +++ b/GraphBLAS/Demo/Output/gauss_demo1.out @@ -0,0 +1,2399 @@ +Gauss demo. Note that all transposes are array transposes, +not matrix (conjugate) transposes. + + + GraphBLAS Context: World + Context.nthreads: 40 + Context.chunk: 65536 +JIT configuration: ------------------ +JIT C compiler: [/usr/bin/cc] +JIT C flags: [ -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC ] +JIT C link flags: [ -shared ] +JIT C libraries: [ -lm -ldl -lgomp -lpthread] +JIT C preface: [] +JIT cache: [/home/faculty/d/davis/.SuiteSparse/GrB8.3.0] +JIT C control: [4] +JIT C control: [4] reset +------------------------------------- + +JIT C preface (revised): +// kernel generated by gauss_demo.c +#include + + [ GxB_Type_new (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +[ 50%] Building C object CMakeFiles/GB_jit__user_type__0__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b4/GB_jit__user_type__0__gauss.c.o +[100%] Linking C shared library libGB_jit__user_type__0__gauss.so +[100%] Built target GB_jit__user_type__0__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/b4/libGB_jit__user_type__0__gauss.so + + 0.598 sec ] + GraphBLAS type: BadGauss user-defined: [gauss] size: 4 + typedef struct { int32_t real ; } gauss ; + [ GxB_Type_new (jit: type changed) (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +[ 50%] Building C object CMakeFiles/GB_jit__user_type__0__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b4/GB_jit__user_type__0__gauss.c.o +[100%] Linking C shared library libGB_jit__user_type__0__gauss.so +[100%] Built target GB_jit__user_type__0__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ce2be202506bf1b4' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/b4/libGB_jit__user_type__0__gauss.so + + 0.595 sec ] + GraphBLAS type: Gauss user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + [ GxB_Type_new + 1.03e-05 sec ] + GraphBLAS type: Gauss user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + [ GxB_BinaryOp_new (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +[ 50%] Building C object CMakeFiles/GB_jit__user_op__0__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/1b/GB_jit__user_op__0__addgauss.c.o +[100%] Linking C shared library libGB_jit__user_op__0__addgauss.so +[100%] Built target GB_jit__user_op__0__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/1b/libGB_jit__user_op__0__addgauss.so + + 0.608 sec ] + + GraphBLAS BinaryOp: BadAddGauss (user-defined): z=addgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void addgauss (gauss *z, const gauss *x, const gauss *y) +{ + z->real = x->real + y->real ; + z->imag = -911 ; +} + [ GxB_BinaryOp_new (jit: op changed) (jit: loaded but must recompile) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +[ 50%] Building C object CMakeFiles/GB_jit__user_op__0__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/1b/GB_jit__user_op__0__addgauss.c.o +[100%] Linking C shared library libGB_jit__user_op__0__addgauss.so +[100%] Built target GB_jit__user_op__0__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/af7c00a52397011b' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/1b/libGB_jit__user_op__0__addgauss.so + + 0.624 sec ] + + GraphBLAS BinaryOp: AddGauss (user-defined): z=addgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void addgauss (gauss *z, const gauss *x, const gauss *y) +{ + z->real = x->real + y->real ; + z->imag = x->imag + y->imag ; +} + [ GxB_BinaryOp_new + 7.3e-06 sec ] + + GraphBLAS BinaryOp: AddGauss (user-defined): z=addgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void addgauss (gauss *z, const gauss *x, const gauss *y) +{ + z->real = x->real + y->real ; + z->imag = x->imag + y->imag ; +} + + GraphBLAS Monoid: AddMonoid (user-defined): + GraphBLAS BinaryOp: monoid->op (user-defined): z=addgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void addgauss (gauss *z, const gauss *x, const gauss *y) +{ + z->real = x->real + y->real ; + z->imag = x->imag + y->imag ; +} + identity: [ [user-defined value] ] + + GraphBLAS BinaryOp: MultGauss (user-defined): z=multgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void multgauss (gauss *z, const gauss *x, const gauss *y) +{ + int32_t zreal = x->real * y->real - x->imag * y->imag ; + int32_t zimag = x->real * y->imag + x->imag * y->real ; + z->real = zreal ; + z->imag = zimag ; +} + + GraphBLAS Semiring: GaussSemiring (user-defined): (addgauss_multgauss) + GraphBLAS Monoid: semiring->add (user-defined): + GraphBLAS BinaryOp: monoid->op (user-defined): z=addgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void addgauss (gauss *z, const gauss *x, const gauss *y) +{ + z->real = x->real + y->real ; + z->imag = x->imag + y->imag ; +} + identity: [ [user-defined value] ] + + GraphBLAS BinaryOp: semiring->multiply (user-defined): z=multgauss(x,y) + GraphBLAS type: ztype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; + GraphBLAS type: ytype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void multgauss (gauss *z, const gauss *x, const gauss *y) +{ + int32_t zreal = x->real * y->real - x->imag * y->imag ; + int32_t zimag = x->real * y->imag + x->imag * y->real ; + z->real = zreal ; + z->imag = zimag ; +} +(iso wait:C (setElement:to non-iso) 0 zombies, 1 pending) + +=============== Gauss A matrix: + +size: 4-by-4 +row 0: . ( 1, 1) ( 1, 0) ( 1, -1) +row 1: ( 2, 2) ( 2, 1) ( 2, 0) ( 2, -1) +row 2: ( 3, 2) ( 3, 1) ( 3, 0) ( 3, -1) +row 3: ( 4, 2) ( 4, 1) ( 4, 0) ( 4, -1) + + [ GrB_reduce (A bitmap) work:16 gpus:0 (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/30e2328e57edb8cc +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/30e2328e57edb8cc' +[ 50%] Building C object CMakeFiles/GB_jit__reduce__83feee2__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/cc/GB_jit__reduce__83feee2__addgauss.c.o +[100%] Linking C shared library libGB_jit__reduce__83feee2__addgauss.so +[100%] Built target GB_jit__reduce__83feee2__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/30e2328e57edb8cc' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/cc/libGB_jit__reduce__83feee2__addgauss.so + + 0.667 sec ] + +sum (A) = (39,6) + [ GrB_mxm C=A*B, saxpy (B = B*B, anz: 15 bnz: 15) (bitmap saxpy) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e335728df7d8fc68 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e335728df7d8fc68' +[ 50%] Building C object CMakeFiles/GB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/68/GB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss.c.o +[100%] Linking C shared library libGB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss.so +[100%] Built target GB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e335728df7d8fc68' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/68/libGB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss.so +(bitmap to full) + 0.774 sec ] + + +=============== Gauss A = A^2 matrix: + +size: 4-by-4 +row 0: ( 9, 4) ( 9, 1) ( 9, -2) ( 9, -5) +row 1: ( 18, 10) ( 18, 8) ( 20, 0) ( 22, -8) +row 2: ( 27, 16) ( 28, 12) ( 30, 0) ( 32, -12) +row 3: ( 36, 22) ( 38, 16) ( 40, 0) ( 42, -16) + + [ GrB_reduce (A full) work:16 gpus:0 (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/216cc7a07453b1ee +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/216cc7a07453b1ee' +[ 50%] Building C object CMakeFiles/GB_jit__reduce__83feee3__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/ee/GB_jit__reduce__83feee3__addgauss.c.o +[100%] Linking C shared library libGB_jit__reduce__83feee3__addgauss.so +[100%] Built target GB_jit__reduce__83feee3__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/216cc7a07453b1ee' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/ee/libGB_jit__reduce__83feee3__addgauss.so + + 0.708 sec ] + +sum (A^2) = (387,46) + + +Gauss C empty matrix +size: 4-by-4 +row 0: . . . . +row 1: . . . . +row 2: . . . . +row 3: . . . . + + [ GxB_set (full to sparse) + 1.35e-05 sec ] + [ GxB_set (hyper to sparse) + 8.36e-06 sec ] + [ GrB_mxm (iso mask: struct) (iso wait:M 0 zombies, 4 pending) (iso build) (hyper to sparse) C=A'*B, masked_dot_product (dot3) (S{S} = Sf'*Sf) work:16 GPUs:0 Not using cuda path. +nthreads 1 ntasks 1 (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/67a80190c429079f +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/67a80190c429079f' +[ 50%] Building C object CMakeFiles/GB_jit__AxB_dot3__03fe100eee2eee55__addgauss_multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/9f/GB_jit__AxB_dot3__03fe100eee2eee55__addgauss_multgauss.c.o +[100%] Linking C shared library libGB_jit__AxB_dot3__03fe100eee2eee55__addgauss_multgauss.so +[100%] Built target GB_jit__AxB_dot3__03fe100eee2eee55__addgauss_multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/67a80190c429079f' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/9f/libGB_jit__AxB_dot3__03fe100eee2eee55__addgauss_multgauss.so +(sparse to bitmap) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/be2424ff0149b586 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/be2424ff0149b586' +[ 50%] Building C object CMakeFiles/GB_jit__convert_s2b__0002ee0eed__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/86/GB_jit__convert_s2b__0002ee0eed__gauss.c.o +[100%] Linking C shared library libGB_jit__convert_s2b__0002ee0eed__gauss.so +[100%] Built target GB_jit__convert_s2b__0002ee0eed__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/be2424ff0149b586' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/86/libGB_jit__convert_s2b__0002ee0eed__gauss.so + + 1.32 sec ] + + +=============== Gauss C = diag(AA') matrix: + +size: 4-by-4 +row 0: ( 278, -36) . . . +row 1: . (1304, 296) . . +row 2: . . (2893, 768) . +row 3: . . . (5108,1456) + + [ GxB_set + 1.61e-06 sec ] + [ GxB_set (hyper to sparse) + 9.37e-06 sec ] + [ GrB_select (A dense) + 3.26e-05 sec ] + + +Gauss D matrix +size: 4-by-4 +row 0: ( 9, 4) . . . +row 1: . ( 18, 8) . . +row 2: . . ( 30, 0) . +row 3: . . . ( 42, -16) + + [ GrB_mxm C=A*B, colscale (Sf=Sf*S) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/dd2129670608a0a3 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/dd2129670608a0a3' +[ 50%] Building C object CMakeFiles/GB_jit__colscale__0100eee0eee45__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/a3/GB_jit__colscale__0100eee0eee45__multgauss.c.o +[100%] Linking C shared library libGB_jit__colscale__0100eee0eee45__multgauss.so +[100%] Built target GB_jit__colscale__0100eee0eee45__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/dd2129670608a0a3' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/a3/libGB_jit__colscale__0100eee0eee45__multgauss.so + + 0.637 sec ] + + +=============== Gauss C = D*A matrix: + +size: 4-by-4 +row 0: ( 65, 72) ( 77, 45) ( 89, 18) ( 101, -9) +row 1: ( 244, 324) ( 260, 288) ( 360, 160) ( 460, 32) +row 2: ( 810, 480) ( 840, 360) ( 900, 0) ( 960,-360) +row 3: (1864, 348) (1852, 64) (1680,-640) (1508,-1344) + + [ GxB_set + 9.27e-07 sec ] + [ GxB_set (sparse to bitmap) + 1.75e-05 sec ] + + +Gauss D matrix (bitmap) +size: 4-by-4 +row 0: ( 9, 4) . . . +row 1: . ( 18, 8) . . +row 2: . . ( 30, 0) . +row 3: . . . ( 42, -16) + + + 4x4 GraphBLAS gauss matrix, bitmap by row + sparsity control: bitmap only + D, 4 entries, memory: 360 bytes + + (0,0) [user-defined value] + (1,1) [user-defined value] + (2,2) [user-defined value] + (3,3) [user-defined value] + + [ GxB_set (bitmap to sparse) + 2.67e-05 sec ] + + +Gauss D matrix (back to sparse) +size: 4-by-4 +row 0: ( 9, 4) . . . +row 1: . ( 18, 8) . . +row 2: . . ( 30, 0) . +row 3: . . . ( 42, -16) + + + 4x4 GraphBLAS gauss matrix, sparse by row + sparsity control: sparse only + D, 4 entries, memory: 320 bytes + + (0,0) [user-defined value] + (1,1) [user-defined value] + (2,2) [user-defined value] + (3,3) [user-defined value] + + [ GrB_mxm C=A*B, rowscale (Sf=S*Sf) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/96b50768cfd669a8 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/96b50768cfd669a8' +[ 50%] Building C object CMakeFiles/GB_jit__rowscale__0100eee0eee45__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/a8/GB_jit__rowscale__0100eee0eee45__multgauss.c.o +[100%] Linking C shared library libGB_jit__rowscale__0100eee0eee45__multgauss.so +[100%] Built target GB_jit__rowscale__0100eee0eee45__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/96b50768cfd669a8' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/a8/libGB_jit__rowscale__0100eee0eee45__multgauss.so + + 0.634 sec ] + + +=============== Gauss C = A*D matrix: + +size: 4-by-4 +row 0: ( 65, 72) ( 154, 90) ( 270, -60) ( 298,-354) +row 1: ( 122, 162) ( 260, 288) ( 600, 0) ( 796,-688) +row 2: ( 179, 252) ( 408, 440) ( 900, 0) (1152,-1016) +row 3: ( 236, 342) ( 556, 592) (1200, 0) (1508,-1344) + + [ GrB_assign (C iso assign) (pending: 0) Method 21: (C full) = scalar + 3.38e-05 sec ] + + +=============== Gauss C = (1,-2) matrix: + +size: 4-by-4 +row 0: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 1: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 2: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 3: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) + + + +=============== Gauss A matrix: + +size: 4-by-4 +row 0: ( 9, 4) ( 9, 1) ( 9, -2) ( 9, -5) +row 1: ( 18, 10) ( 18, 8) ( 20, 0) ( 22, -8) +row 2: ( 27, 16) ( 28, 12) ( 30, 0) ( 32, -12) +row 3: ( 36, 22) ( 38, 16) ( 40, 0) ( 42, -16) + + [ GrB_mxm C=A'*B, dot_product (dot4: F += Sf'*Sf) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7acb8bd141ca27c9 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7acb8bd141ca27c9' +[ 50%] Building C object CMakeFiles/GB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/c9/GB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss.c.o +[100%] Linking C shared library libGB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss.so +[100%] Built target GB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7acb8bd141ca27c9' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/c9/libGB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss.so +(C in place) + 0.678 sec ] + + +=============== Gauss C += A*A' matrix: + +size: 4-by-4 +row 0: ( 279, -38) ( 615, 28) ( 918, 58) (1221, 88) +row 1: ( 615, 28) (1305, 294) (1943, 476) (2581, 658) +row 2: ( 918, 58) (1943, 476) (2894, 766) (3845,1056) +row 3: (1221, 88) (2581, 658) (3845,1056) (5109,1454) + + [ GrB_assign (C iso assign) (pending: 0) Method 21: (C full) = scalar + 2.18e-05 sec ] + + +=============== Gauss B = (1,-2) matrix: + +size: 4-by-4 +row 0: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 1: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 2: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) +row 3: ( 1, -2) ( 1, -2) ( 1, -2) ( 1, -2) + + [ GrB_mxm C=A*B, saxpy (saxpy4: F += Sf*F) (coarse, threads: 1) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5301828568d7f863 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5301828568d7f863' +[ 50%] Building C object CMakeFiles/GB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/63/GB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss.c.o +[100%] Linking C shared library libGB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss.so +[100%] Built target GB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5301828568d7f863' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/63/libGB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss.so +(C in place) + 1.01 sec ] + + +=============== Gauss C += B*A: + +size: 4-by-4 +row 0: ( 473,-166) ( 782,-121) (1013,-142) (1244,-163) +row 1: ( 809,-100) (1472, 145) (2038, 276) (2604, 407) +row 2: (1112, -70) (2110, 327) (2989, 566) (3868, 805) +row 3: (1415, -40) (2748, 509) (3940, 856) (5132,1203) + + [ GrB_mxm C=A*B, saxpy (saxpy5: F += F*Sf) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/c94d1f86a5825b56 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/c94d1f86a5825b56' +[ 50%] Building C object CMakeFiles/GB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/56/GB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss.c.o +[100%] Linking C shared library libGB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss.so +[100%] Built target GB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/c94d1f86a5825b56' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/56/libGB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss.so +(C in place) + 0.647 sec ] + + +=============== Gauss C += A*B: + +size: 4-by-4 +row 0: ( 505,-240) ( 814,-195) (1045,-216) (1276,-237) +row 1: ( 907,-246) (1570, -1) (2136, 130) (2702, 261) +row 2: (1261,-288) (2259, 109) (3138, 348) (4017, 587) +row 3: (1615,-330) (2948, 219) (4140, 566) (5332, 913) + + [ GrB_apply (shallow-op) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/3b6448d781104419 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/3b6448d781104419' +[ 50%] Building C object CMakeFiles/GB_jit__apply_bind1st__0000eee0efec1__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/19/GB_jit__apply_bind1st__0000eee0efec1__addgauss.c.o +[100%] Linking C shared library libGB_jit__apply_bind1st__0000eee0efec1__addgauss.so +[100%] Built target GB_jit__apply_bind1st__0000eee0efec1__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/3b6448d781104419' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/19/libGB_jit__apply_bind1st__0000eee0efec1__addgauss.so + + 0.615 sec ] + + +=============== Gauss C = (1,-2) + A: + +size: 4-by-4 +row 0: ( 10, 2) ( 10, -1) ( 10, -4) ( 10, -7) +row 1: ( 19, 8) ( 19, 6) ( 21, -2) ( 23, -10) +row 2: ( 28, 14) ( 29, 10) ( 31, -2) ( 33, -14) +row 3: ( 37, 20) ( 39, 14) ( 41, -2) ( 43, -18) + + [ GrB_apply (shallow-op) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/42813a1e14cb43c9 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/42813a1e14cb43c9' +[ 50%] Building C object CMakeFiles/GB_jit__apply_bind2nd__0000eee0eefc4__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/c9/GB_jit__apply_bind2nd__0000eee0eefc4__multgauss.c.o +[100%] Linking C shared library libGB_jit__apply_bind2nd__0000eee0eefc4__multgauss.so +[100%] Built target GB_jit__apply_bind2nd__0000eee0eefc4__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/42813a1e14cb43c9' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/c9/libGB_jit__apply_bind2nd__0000eee0eefc4__multgauss.so + + 0.655 sec ] + + +=============== Gauss C = A*(1,-2): + +size: 4-by-4 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 1: ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + [ GrB_apply (transpose-op) (transpose) (1-thread bucket transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/37d33aa629f415d3 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/37d33aa629f415d3' +[ 50%] Building C object CMakeFiles/GB_jit__trans_bind2nd__0000eee0eef44__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/d3/GB_jit__trans_bind2nd__0000eee0eef44__multgauss.c.o +[100%] Linking C shared library libGB_jit__trans_bind2nd__0000eee0eef44__multgauss.so +[100%] Built target GB_jit__trans_bind2nd__0000eee0eef44__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/37d33aa629f415d3' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/d3/libGB_jit__trans_bind2nd__0000eee0eef44__multgauss.so +(full to sparse) + 0.668 sec ] + + +=============== Gauss C = A'*(1,-2): + +size: 4-by-4 +row 0: ( 17, -14) ( 38, -26) ( 59, -38) ( 80, -50) +row 1: ( 11, -17) ( 34, -28) ( 52, -44) ( 70, -60) +row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) +row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) + + [ GrB_apply (transpose-op) (transpose) (1-thread bucket transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/07d1cb825d4304d3 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/07d1cb825d4304d3' +[ 50%] Building C object CMakeFiles/GB_jit__trans_bind1st__0000eee0efe41__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/d3/GB_jit__trans_bind1st__0000eee0efe41__multgauss.c.o +[100%] Linking C shared library libGB_jit__trans_bind1st__0000eee0efe41__multgauss.so +[100%] Built target GB_jit__trans_bind1st__0000eee0efe41__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/07d1cb825d4304d3' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/d3/libGB_jit__trans_bind1st__0000eee0efe41__multgauss.so +(full to sparse) + 0.673 sec ] + + +=============== Gauss C = (1,-2)*A': + +size: 4-by-4 +row 0: ( 17, -14) ( 38, -26) ( 59, -38) ( 80, -50) +row 1: ( 11, -17) ( 34, -28) ( 52, -44) ( 70, -60) +row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) +row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) + + + GraphBLAS UnaryOp: RealGauss (user-defined): z=realgauss(x) + GraphBLAS type: ztype int32_t size: 4 + GraphBLAS type: xtype user-defined: [gauss] size: 8 + typedef struct { int32_t real ; int32_t imag ; } gauss ; +void realgauss (int32_t *z, const gauss *x) +{ + (*z) = x->real ; +} + [ GrB_apply (shallow-op) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5c78101d6e73dc21 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5c78101d6e73dc21' +[ 50%] Building C object CMakeFiles/GB_jit__apply_unop__00006e06ef__realgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/21/GB_jit__apply_unop__00006e06ef__realgauss.c.o +[100%] Linking C shared library libGB_jit__apply_unop__00006e06ef__realgauss.so +[100%] Built target GB_jit__apply_unop__00006e06ef__realgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5c78101d6e73dc21' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/21/libGB_jit__apply_unop__00006e06ef__realgauss.so + + 0.621 sec ] + + 4x4 GraphBLAS int32_t matrix, full by row + R, 16 entries, memory: 280 bytes + + (0,0) 17 + (0,1) 38 + (0,2) 59 + (0,3) 80 + (1,0) 11 + (1,1) 34 + (1,2) 52 + (1,3) 70 + (2,0) 5 + (2,1) 20 + (2,2) 30 + (2,3) 40 + (3,0) -1 + (3,1) 6 + (3,2) 8 + (3,3) 10 + + + +=============== R = RealGauss (C') + +size: 4-by-4 +row 0: ( 17, -14) ( 38, -26) ( 59, -38) ( 80, -50) +row 1: ( 11, -17) ( 34, -28) ( 52, -44) ( 70, -60) +row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) +row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) + + [ GrB_apply (transpose-op) (transpose) (bitmap/full transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b799fc2c5b29ec49 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b799fc2c5b29ec49' +[ 50%] Building C object CMakeFiles/GB_jit__trans_unop__08006e06ef__realgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/49/GB_jit__trans_unop__08006e06ef__realgauss.c.o +[100%] Linking C shared library libGB_jit__trans_unop__08006e06ef__realgauss.so +[100%] Built target GB_jit__trans_unop__08006e06ef__realgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b799fc2c5b29ec49' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/49/libGB_jit__trans_unop__08006e06ef__realgauss.so + + 0.631 sec ] + + 4x4 GraphBLAS int32_t matrix, full by row + R, 16 entries, memory: 280 bytes + + (0,0) 17 + (0,1) 11 + (0,2) 5 + (0,3) -1 + (1,0) 38 + (1,1) 34 + (1,2) 20 + (1,3) 6 + (2,0) 59 + (2,1) 52 + (2,2) 30 + (2,3) 8 + (3,0) 80 + (3,1) 70 + (3,2) 40 + (3,3) 10 + + + +=============== C + +size: 4-by-4 +row 0: ( 17, -14) ( 38, -26) ( 59, -38) ( 80, -50) +row 1: ( 11, -17) ( 34, -28) ( 52, -44) ( 70, -60) +row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) +row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) + + [ GrB_apply (shallow-op) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/4e606820337e573c +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/4e606820337e573c' +[ 50%] Building C object CMakeFiles/GB_jit__apply_unop__07fe8ee8ef__ijgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/3c/GB_jit__apply_unop__07fe8ee8ef__ijgauss.c.o +[100%] Linking C shared library libGB_jit__apply_unop__07fe8ee8ef__ijgauss.so +[100%] Built target GB_jit__apply_unop__07fe8ee8ef__ijgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/4e606820337e573c' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/3c/libGB_jit__apply_unop__07fe8ee8ef__ijgauss.so + + 0.626 sec ] + +R = ijgauss (C) + + 4x4 GraphBLAS int64_t matrix, full by row + R, 16 entries, memory: 344 bytes + + (0,0) 18 + (0,1) 38 + (0,2) 58 + (0,3) 78 + (1,0) 13 + (1,1) 35 + (1,2) 52 + (1,3) 69 + (2,0) 8 + (2,1) 22 + (2,2) 31 + (2,3) 40 + (3,0) 3 + (3,1) 9 + (3,2) 10 + (3,3) 11 + + [ GrB_Matrix_extractTuples (A full) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5660a671ca40c48b +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5660a671ca40c48b' +[ 50%] Building C object CMakeFiles/GB_jit__apply_unop__0002bb0b8f.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/8b/GB_jit__apply_unop__0002bb0b8f.c.o +[100%] Linking C shared library libGB_jit__apply_unop__0002bb0b8f.so +[100%] Built target GB_jit__apply_unop__0002bb0b8f +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/5660a671ca40c48b' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/8b/libGB_jit__apply_unop__0002bb0b8f.so + + 0.6 sec ] +R (0,0) = 18 +R (0,1) = 38 +R (0,2) = 58 +R (0,3) = 78 +R (1,0) = 13 +R (1,1) = 35 +R (1,2) = 52 +R (1,3) = 69 +R (2,0) = 8 +R (2,1) = 22 +R (2,2) = 31 +R (2,3) = 40 +R (3,0) = 3 +R (3,1) = 9 +R (3,2) = 10 +R (3,3) = 11 + + +=============== C + +size: 4-by-4 +row 0: ( 17, -14) ( 38, -26) ( 59, -38) ( 80, -50) +row 1: ( 11, -17) ( 34, -28) ( 52, -44) ( 70, -60) +row 2: ( 5, -20) ( 20, -40) ( 30, -60) ( 40, -80) +row 3: ( -1, -23) ( 6, -52) ( 8, -76) ( 10,-100) + + [ GrB_transpose (transpose) (bitmap/full transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/20f5326f3ffc493d +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/20f5326f3ffc493d' +[ 50%] Building C object CMakeFiles/GB_jit__trans_unop__0802ee0eef__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/3d/GB_jit__trans_unop__0802ee0eef__gauss.c.o +[100%] Linking C shared library libGB_jit__trans_unop__0802ee0eef__gauss.so +[100%] Built target GB_jit__trans_unop__0802ee0eef__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/20f5326f3ffc493d' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/3d/libGB_jit__trans_unop__0802ee0eef__gauss.so + + 0.626 sec ] + + +=============== C = C' + +size: 4-by-4 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 1: ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + [ GxB_set (in-place transpose) (transpose) + 2.9e-05 sec ] + [ GxB_Matrix_concat (sparse concat) (transpose) (bitmap/full transpose) (transpose) (transpose) (1-thread bucket transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f6daeb95a8060316 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f6daeb95a8060316' +[ 50%] Building C object CMakeFiles/GB_jit__trans_unop__0802ee0ee5__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/16/GB_jit__trans_unop__0802ee0ee5__gauss.c.o +[100%] Linking C shared library libGB_jit__trans_unop__0802ee0ee5__gauss.so +[100%] Built target GB_jit__trans_unop__0802ee0ee5__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f6daeb95a8060316' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/16/libGB_jit__trans_unop__0802ee0ee5__gauss.so +(transpose) (1-thread bucket transpose) (transpose) (transpose) (bitmap/full transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/48b856264c49fbf7 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/48b856264c49fbf7' +[ 50%] Building C object CMakeFiles/GB_jit__concat_sparse__0802ee0ee7__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/f7/GB_jit__concat_sparse__0802ee0ee7__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_sparse__0802ee0ee7__gauss.so +[100%] Built target GB_jit__concat_sparse__0802ee0ee7__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/48b856264c49fbf7' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/f7/libGB_jit__concat_sparse__0802ee0ee7__gauss.so +(jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b74773f44d3a63e0 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b74773f44d3a63e0' +[ 50%] Building C object CMakeFiles/GB_jit__concat_sparse__0802ee0ee4__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/e0/GB_jit__concat_sparse__0802ee0ee4__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_sparse__0802ee0ee4__gauss.so +[100%] Built target GB_jit__concat_sparse__0802ee0ee4__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b74773f44d3a63e0' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/e0/libGB_jit__concat_sparse__0802ee0ee4__gauss.so +(jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ca722575fc658dc5 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ca722575fc658dc5' +[ 50%] Building C object CMakeFiles/GB_jit__concat_sparse__0802ee0ee5__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/c5/GB_jit__concat_sparse__0802ee0ee5__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_sparse__0802ee0ee5__gauss.so +[100%] Built target GB_jit__concat_sparse__0802ee0ee5__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/ca722575fc658dc5' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/c5/libGB_jit__concat_sparse__0802ee0ee5__gauss.so + + 2.63 sec ] + + +=============== Z = [C D ; E E ; D C] +size: 256-by-8 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) ( 9, 4) . . . +row 1: ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) . ( 18, 8) . . +row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) . . ( 30, 0) . +row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) . . . ( 42, -16) +row 4: . . . . . . . . +row 5: . . . . . . . . +row 6: . . . . . . . . +row 7: . . . . . . . . +row 8: . . . . . . . . +row 9: . . . . . . . . +row 10: . . . . . . . . +row 11: . . . . . . . . +row 12: . . . . . . . . +row 13: . . . . . . . . +row 14: . . . . . . . . +row 15: . . . . . . . . +row 16: . . . . . . . . +row 17: . . . . . . . . +row 18: . . . . . . . . +row 19: . . . . . . . . +row 20: . . . . . . . . +row 21: . . . . . . . . +row 22: . . . . . . . . +row 23: . . . . . . . . +row 24: . . . . . . . . +row 25: . . . . . . . . +row 26: . . . . . . . . +row 27: . . . . . . . . +row 28: . . . . . . . . +row 29: . . . . . . . . +row 30: . . . . . . . . +row 31: . . . . . . . . +row 32: . . . . . . . . +row 33: . . . . . . . . +row 34: . . . . . . . . +row 35: . . . . . . . . +row 36: . . . . . . . . +row 37: . . . . . . . . +row 38: . . . . . . . . +row 39: . . . . . . . . +row 40: . . . . . . . . +row 41: . . . . . . . . +row 42: . . . . . . . . +row 43: . . . . . . . . +row 44: . . . . . . . . +row 45: . . . . . . . . +row 46: . . . . . . . . +row 47: . . . . . . . . +row 48: . . . . . . . . +row 49: . . . . . . . . +row 50: . . . . . . . . +row 51: . . . . . . . . +row 52: . . . . . . . . +row 53: . . . . . . . . +row 54: . . . . . . . . +row 55: . . . . . . . . +row 56: . . . . . . . . +row 57: . . . . . . . . +row 58: . . . . . . . . +row 59: . . . . . . . . +row 60: . . . . . . . . +row 61: . . . . . . . . +row 62: . . . . . . . . +row 63: . . . . . . . . +row 64: . . . . . . . . +row 65: . . . . . . . . +row 66: . . . . . . . . +row 67: . . . . . . . . +row 68: . . . . . . . . +row 69: . . . . . . . . +row 70: . . . . . . . . +row 71: . . . . . . . . +row 72: . . . . . . . . +row 73: . . . . . . . . +row 74: . . . . . . . . +row 75: . . . . . . . . +row 76: . . . . . . . . +row 77: . . . . . . . . +row 78: . . . . . . . . +row 79: . . . . . . . . +row 80: . . . . . . . . +row 81: . . . . . . . . +row 82: . . . . . . . . +row 83: . . . . . . . . +row 84: . . . . . . . . +row 85: . . . . . . . . +row 86: . . . . . . . . +row 87: . . . . . . . . +row 88: . . . . . . . . +row 89: . . . . . . . . +row 90: . . . . . . . . +row 91: . . . . . . . . +row 92: . . . . . . . . +row 93: . . . . . . . . +row 94: . . . . . . . . +row 95: . . . . . . . . +row 96: . . . . . . . . +row 97: . . . . . . . . +row 98: . . . . . . . . +row 99: . . . . . . . . +row 100: . . . . . . . . +row 101: . . . . . . . . +row 102: . . . . . . . . +row 103: . . . . . . . . +row 104: . . . . . . . . +row 105: . . . . . . . . +row 106: . . . . . . . . +row 107: . . . . . . . . +row 108: . . . . . . . . +row 109: . . . . . . . . +row 110: . . . . . . . . +row 111: . . . . . . . . +row 112: . . . . . . . . +row 113: . . . . . . . . +row 114: . . . . . . . . +row 115: . . . . . . . . +row 116: . . . . . . . . +row 117: . . . . . . . . +row 118: . . . . . . . . +row 119: . . . . . . . . +row 120: . . . . . . . . +row 121: . . . . . . . . +row 122: . . . . . . . . +row 123: . . . . . . . . +row 124: . . . . . . . . +row 125: . . . . . . . . +row 126: . . . . . . . . +row 127: . . . . . . . . +row 128: . . . . . . . . +row 129: . . . . . . . . +row 130: . . . . . . . . +row 131: . . . . . . . . +row 132: . . . . . . . . +row 133: . . . . . . . . +row 134: . . . . . . . . +row 135: . . . . . . . . +row 136: . . . . . . . . +row 137: . . . . . . . . +row 138: . . . . . . . . +row 139: . . . . . . . . +row 140: . . . . . . . . +row 141: . . . . . . . . +row 142: . . . . . . . . +row 143: . . . . . . . . +row 144: . . . . . . . . +row 145: . . . . . . . . +row 146: . . . . . . . . +row 147: . . . . . . . . +row 148: . . . . . . . . +row 149: . . . . . . . . +row 150: . . . . . . . . +row 151: . . . . . . . . +row 152: . . . . . . . . +row 153: . . . . . . . . +row 154: . . . . . . . . +row 155: . . . . . . . . +row 156: . . . . . . . . +row 157: . . . . . . . . +row 158: . . . . . . . . +row 159: . . . . . . . . +row 160: . . . . . . . . +row 161: . . . . . . . . +row 162: . . . . . . . . +row 163: . . . . . . . . +row 164: . . . . . . . . +row 165: . . . . . . . . +row 166: . . . . . . . . +row 167: . . . . . . . . +row 168: . . . . . . . . +row 169: . . . . . . . . +row 170: . . . . . . . . +row 171: . . . . . . . . +row 172: . . . . . . . . +row 173: . . . . . . . . +row 174: . . . . . . . . +row 175: . . . . . . . . +row 176: . . . . . . . . +row 177: . . . . . . . . +row 178: . . . . . . . . +row 179: . . . . . . . . +row 180: . . . . . . . . +row 181: . . . . . . . . +row 182: . . . . . . . . +row 183: . . . . . . . . +row 184: . . . . . . . . +row 185: . . . . . . . . +row 186: . . . . . . . . +row 187: . . . . . . . . +row 188: . . . . . . . . +row 189: . . . . . . . . +row 190: . . . . . . . . +row 191: . . . . . . . . +row 192: . . . . . . . . +row 193: . . . . . . . . +row 194: . . . . . . . . +row 195: . . . . . . . . +row 196: . . . . . . . . +row 197: . . . . . . . . +row 198: . . . . . . . . +row 199: . . . . . . . . +row 200: . . . . . . . . +row 201: . . . . . . . . +row 202: . . . . . . . . +row 203: . . . . . . . . +row 204: . . . . . . . . +row 205: . . . . . . . . +row 206: . . . . . . . . +row 207: . . . . . . . . +row 208: . . . . . . . . +row 209: . . . . . . . . +row 210: . . . . . . . . +row 211: . . . . . . . . +row 212: . . . . . . . . +row 213: . . . . . . . . +row 214: . . . . . . . . +row 215: . . . . . . . . +row 216: . . . . . . . . +row 217: . . . . . . . . +row 218: . . . . . . . . +row 219: . . . . . . . . +row 220: . . . . . . . . +row 221: . . . . . . . . +row 222: . . . . . . . . +row 223: . . . . . . . . +row 224: . . . . . . . . +row 225: . . . . . . . . +row 226: . . . . . . . . +row 227: . . . . . . . . +row 228: . . . . . . . . +row 229: . . . . . . . . +row 230: . . . . . . . . +row 231: . . . . . . . . +row 232: . . . . . . . . +row 233: . . . . . . . . +row 234: . . . . . . . . +row 235: . . . . . . . . +row 236: . . . . . . . . +row 237: . . . . . . . . +row 238: . . . . . . . . +row 239: . . . . . . . . +row 240: . . . . . . . . +row 241: . . . . . . . . +row 242: . . . . . . . . +row 243: . . . . . . . . +row 244: . . . . . . . . +row 245: . . . . . . . . +row 246: . . . . . . . . +row 247: . . . . . . . . +row 248: . . . . . . . . +row 249: . . . . . . . . +row 250: . . . . . . . . +row 251: . . . . . . . . +row 252: ( 9, 4) . . . ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 253: . ( 18, 8) . . ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 254: . . ( 30, 0) . ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 255: . . . ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + + 256x8 GraphBLAS gauss matrix, sparse by col + Z, 40 entries, memory: 928 bytes + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (252,0) [user-defined value] + (0,1) [user-defined value] + (1,1) [user-defined value] + (2,1) [user-defined value] + (3,1) [user-defined value] + (253,1) [user-defined value] + (0,2) [user-defined value] + (1,2) [user-defined value] + (2,2) [user-defined value] + (3,2) [user-defined value] + (254,2) [user-defined value] + (0,3) [user-defined value] + (1,3) [user-defined value] + (2,3) [user-defined value] + (3,3) [user-defined value] + (255,3) [user-defined value] + (0,4) [user-defined value] + (252,4) [user-defined value] + (253,4) [user-defined value] + (254,4) [user-defined value] + (255,4) [user-defined value] + (1,5) [user-defined value] + (252,5) [user-defined value] + (253,5) [user-defined value] + (254,5) [user-defined value] + (255,5) [user-defined value] + (2,6) [user-defined value] + (252,6) [user-defined value] + (253,6) [user-defined value] + (254,6) [user-defined value] + (255,6) [user-defined value] + (3,7) [user-defined value] + (252,7) [user-defined value] + (253,7) [user-defined value] + (254,7) [user-defined value] + (255,7) [user-defined value] + + [ GxB_Matrix_split (sparse/hyper split) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bc6fbb55201f367c +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bc6fbb55201f367c' +[ 50%] Building C object CMakeFiles/GB_jit__split_sparse__0802ee0ee5__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/7c/GB_jit__split_sparse__0802ee0ee5__gauss.c.o +[100%] Linking C shared library libGB_jit__split_sparse__0802ee0ee5__gauss.so +[100%] Built target GB_jit__split_sparse__0802ee0ee5__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bc6fbb55201f367c' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/7c/libGB_jit__split_sparse__0802ee0ee5__gauss.so + + 0.647 sec ] + + +=============== C Tile from Z: + +size: 128-by-3 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) +row 1: ( 38, -26) ( 34, -28) ( 20, -40) +row 2: ( 59, -38) ( 52, -44) ( 30, -60) +row 3: ( 80, -50) ( 70, -60) ( 40, -80) +row 4: . . . +row 5: . . . +row 6: . . . +row 7: . . . +row 8: . . . +row 9: . . . +row 10: . . . +row 11: . . . +row 12: . . . +row 13: . . . +row 14: . . . +row 15: . . . +row 16: . . . +row 17: . . . +row 18: . . . +row 19: . . . +row 20: . . . +row 21: . . . +row 22: . . . +row 23: . . . +row 24: . . . +row 25: . . . +row 26: . . . +row 27: . . . +row 28: . . . +row 29: . . . +row 30: . . . +row 31: . . . +row 32: . . . +row 33: . . . +row 34: . . . +row 35: . . . +row 36: . . . +row 37: . . . +row 38: . . . +row 39: . . . +row 40: . . . +row 41: . . . +row 42: . . . +row 43: . . . +row 44: . . . +row 45: . . . +row 46: . . . +row 47: . . . +row 48: . . . +row 49: . . . +row 50: . . . +row 51: . . . +row 52: . . . +row 53: . . . +row 54: . . . +row 55: . . . +row 56: . . . +row 57: . . . +row 58: . . . +row 59: . . . +row 60: . . . +row 61: . . . +row 62: . . . +row 63: . . . +row 64: . . . +row 65: . . . +row 66: . . . +row 67: . . . +row 68: . . . +row 69: . . . +row 70: . . . +row 71: . . . +row 72: . . . +row 73: . . . +row 74: . . . +row 75: . . . +row 76: . . . +row 77: . . . +row 78: . . . +row 79: . . . +row 80: . . . +row 81: . . . +row 82: . . . +row 83: . . . +row 84: . . . +row 85: . . . +row 86: . . . +row 87: . . . +row 88: . . . +row 89: . . . +row 90: . . . +row 91: . . . +row 92: . . . +row 93: . . . +row 94: . . . +row 95: . . . +row 96: . . . +row 97: . . . +row 98: . . . +row 99: . . . +row 100: . . . +row 101: . . . +row 102: . . . +row 103: . . . +row 104: . . . +row 105: . . . +row 106: . . . +row 107: . . . +row 108: . . . +row 109: . . . +row 110: . . . +row 111: . . . +row 112: . . . +row 113: . . . +row 114: . . . +row 115: . . . +row 116: . . . +row 117: . . . +row 118: . . . +row 119: . . . +row 120: . . . +row 121: . . . +row 122: . . . +row 123: . . . +row 124: . . . +row 125: . . . +row 126: . . . +row 127: . . . + + + 128x3 GraphBLAS gauss matrix, sparse by col + CTiles [k], 12 entries, memory: 440 bytes + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (0,1) [user-defined value] + (1,1) [user-defined value] + (2,1) [user-defined value] + (3,1) [user-defined value] + (0,2) [user-defined value] + (1,2) [user-defined value] + (2,2) [user-defined value] + (3,2) [user-defined value] + + + +=============== C Tile from Z: + +size: 128-by-5 +row 0: ( -1, -23) ( 9, 4) . . . +row 1: ( 6, -52) . ( 18, 8) . . +row 2: ( 8, -76) . . ( 30, 0) . +row 3: ( 10,-100) . . . ( 42, -16) +row 4: . . . . . +row 5: . . . . . +row 6: . . . . . +row 7: . . . . . +row 8: . . . . . +row 9: . . . . . +row 10: . . . . . +row 11: . . . . . +row 12: . . . . . +row 13: . . . . . +row 14: . . . . . +row 15: . . . . . +row 16: . . . . . +row 17: . . . . . +row 18: . . . . . +row 19: . . . . . +row 20: . . . . . +row 21: . . . . . +row 22: . . . . . +row 23: . . . . . +row 24: . . . . . +row 25: . . . . . +row 26: . . . . . +row 27: . . . . . +row 28: . . . . . +row 29: . . . . . +row 30: . . . . . +row 31: . . . . . +row 32: . . . . . +row 33: . . . . . +row 34: . . . . . +row 35: . . . . . +row 36: . . . . . +row 37: . . . . . +row 38: . . . . . +row 39: . . . . . +row 40: . . . . . +row 41: . . . . . +row 42: . . . . . +row 43: . . . . . +row 44: . . . . . +row 45: . . . . . +row 46: . . . . . +row 47: . . . . . +row 48: . . . . . +row 49: . . . . . +row 50: . . . . . +row 51: . . . . . +row 52: . . . . . +row 53: . . . . . +row 54: . . . . . +row 55: . . . . . +row 56: . . . . . +row 57: . . . . . +row 58: . . . . . +row 59: . . . . . +row 60: . . . . . +row 61: . . . . . +row 62: . . . . . +row 63: . . . . . +row 64: . . . . . +row 65: . . . . . +row 66: . . . . . +row 67: . . . . . +row 68: . . . . . +row 69: . . . . . +row 70: . . . . . +row 71: . . . . . +row 72: . . . . . +row 73: . . . . . +row 74: . . . . . +row 75: . . . . . +row 76: . . . . . +row 77: . . . . . +row 78: . . . . . +row 79: . . . . . +row 80: . . . . . +row 81: . . . . . +row 82: . . . . . +row 83: . . . . . +row 84: . . . . . +row 85: . . . . . +row 86: . . . . . +row 87: . . . . . +row 88: . . . . . +row 89: . . . . . +row 90: . . . . . +row 91: . . . . . +row 92: . . . . . +row 93: . . . . . +row 94: . . . . . +row 95: . . . . . +row 96: . . . . . +row 97: . . . . . +row 98: . . . . . +row 99: . . . . . +row 100: . . . . . +row 101: . . . . . +row 102: . . . . . +row 103: . . . . . +row 104: . . . . . +row 105: . . . . . +row 106: . . . . . +row 107: . . . . . +row 108: . . . . . +row 109: . . . . . +row 110: . . . . . +row 111: . . . . . +row 112: . . . . . +row 113: . . . . . +row 114: . . . . . +row 115: . . . . . +row 116: . . . . . +row 117: . . . . . +row 118: . . . . . +row 119: . . . . . +row 120: . . . . . +row 121: . . . . . +row 122: . . . . . +row 123: . . . . . +row 124: . . . . . +row 125: . . . . . +row 126: . . . . . +row 127: . . . . . + + + 128x5 GraphBLAS gauss matrix, sparse by col + CTiles [k], 8 entries, memory: 392 bytes + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (0,1) [user-defined value] + (1,2) [user-defined value] + (2,3) [user-defined value] + (3,4) [user-defined value] + + + +=============== C Tile from Z: + +size: 128-by-3 +row 0: . . . +row 1: . . . +row 2: . . . +row 3: . . . +row 4: . . . +row 5: . . . +row 6: . . . +row 7: . . . +row 8: . . . +row 9: . . . +row 10: . . . +row 11: . . . +row 12: . . . +row 13: . . . +row 14: . . . +row 15: . . . +row 16: . . . +row 17: . . . +row 18: . . . +row 19: . . . +row 20: . . . +row 21: . . . +row 22: . . . +row 23: . . . +row 24: . . . +row 25: . . . +row 26: . . . +row 27: . . . +row 28: . . . +row 29: . . . +row 30: . . . +row 31: . . . +row 32: . . . +row 33: . . . +row 34: . . . +row 35: . . . +row 36: . . . +row 37: . . . +row 38: . . . +row 39: . . . +row 40: . . . +row 41: . . . +row 42: . . . +row 43: . . . +row 44: . . . +row 45: . . . +row 46: . . . +row 47: . . . +row 48: . . . +row 49: . . . +row 50: . . . +row 51: . . . +row 52: . . . +row 53: . . . +row 54: . . . +row 55: . . . +row 56: . . . +row 57: . . . +row 58: . . . +row 59: . . . +row 60: . . . +row 61: . . . +row 62: . . . +row 63: . . . +row 64: . . . +row 65: . . . +row 66: . . . +row 67: . . . +row 68: . . . +row 69: . . . +row 70: . . . +row 71: . . . +row 72: . . . +row 73: . . . +row 74: . . . +row 75: . . . +row 76: . . . +row 77: . . . +row 78: . . . +row 79: . . . +row 80: . . . +row 81: . . . +row 82: . . . +row 83: . . . +row 84: . . . +row 85: . . . +row 86: . . . +row 87: . . . +row 88: . . . +row 89: . . . +row 90: . . . +row 91: . . . +row 92: . . . +row 93: . . . +row 94: . . . +row 95: . . . +row 96: . . . +row 97: . . . +row 98: . . . +row 99: . . . +row 100: . . . +row 101: . . . +row 102: . . . +row 103: . . . +row 104: . . . +row 105: . . . +row 106: . . . +row 107: . . . +row 108: . . . +row 109: . . . +row 110: . . . +row 111: . . . +row 112: . . . +row 113: . . . +row 114: . . . +row 115: . . . +row 116: . . . +row 117: . . . +row 118: . . . +row 119: . . . +row 120: . . . +row 121: . . . +row 122: . . . +row 123: . . . +row 124: ( 9, 4) . . +row 125: . ( 18, 8) . +row 126: . . ( 30, 0) +row 127: . . . + + + 128x3 GraphBLAS gauss matrix, sparse by col + CTiles [k], 3 entries, memory: 296 bytes + + (124,0) [user-defined value] + (125,1) [user-defined value] + (126,2) [user-defined value] + + + +=============== C Tile from Z: + +size: 128-by-5 +row 0: . . . . . +row 1: . . . . . +row 2: . . . . . +row 3: . . . . . +row 4: . . . . . +row 5: . . . . . +row 6: . . . . . +row 7: . . . . . +row 8: . . . . . +row 9: . . . . . +row 10: . . . . . +row 11: . . . . . +row 12: . . . . . +row 13: . . . . . +row 14: . . . . . +row 15: . . . . . +row 16: . . . . . +row 17: . . . . . +row 18: . . . . . +row 19: . . . . . +row 20: . . . . . +row 21: . . . . . +row 22: . . . . . +row 23: . . . . . +row 24: . . . . . +row 25: . . . . . +row 26: . . . . . +row 27: . . . . . +row 28: . . . . . +row 29: . . . . . +row 30: . . . . . +row 31: . . . . . +row 32: . . . . . +row 33: . . . . . +row 34: . . . . . +row 35: . . . . . +row 36: . . . . . +row 37: . . . . . +row 38: . . . . . +row 39: . . . . . +row 40: . . . . . +row 41: . . . . . +row 42: . . . . . +row 43: . . . . . +row 44: . . . . . +row 45: . . . . . +row 46: . . . . . +row 47: . . . . . +row 48: . . . . . +row 49: . . . . . +row 50: . . . . . +row 51: . . . . . +row 52: . . . . . +row 53: . . . . . +row 54: . . . . . +row 55: . . . . . +row 56: . . . . . +row 57: . . . . . +row 58: . . . . . +row 59: . . . . . +row 60: . . . . . +row 61: . . . . . +row 62: . . . . . +row 63: . . . . . +row 64: . . . . . +row 65: . . . . . +row 66: . . . . . +row 67: . . . . . +row 68: . . . . . +row 69: . . . . . +row 70: . . . . . +row 71: . . . . . +row 72: . . . . . +row 73: . . . . . +row 74: . . . . . +row 75: . . . . . +row 76: . . . . . +row 77: . . . . . +row 78: . . . . . +row 79: . . . . . +row 80: . . . . . +row 81: . . . . . +row 82: . . . . . +row 83: . . . . . +row 84: . . . . . +row 85: . . . . . +row 86: . . . . . +row 87: . . . . . +row 88: . . . . . +row 89: . . . . . +row 90: . . . . . +row 91: . . . . . +row 92: . . . . . +row 93: . . . . . +row 94: . . . . . +row 95: . . . . . +row 96: . . . . . +row 97: . . . . . +row 98: . . . . . +row 99: . . . . . +row 100: . . . . . +row 101: . . . . . +row 102: . . . . . +row 103: . . . . . +row 104: . . . . . +row 105: . . . . . +row 106: . . . . . +row 107: . . . . . +row 108: . . . . . +row 109: . . . . . +row 110: . . . . . +row 111: . . . . . +row 112: . . . . . +row 113: . . . . . +row 114: . . . . . +row 115: . . . . . +row 116: . . . . . +row 117: . . . . . +row 118: . . . . . +row 119: . . . . . +row 120: . . . . . +row 121: . . . . . +row 122: . . . . . +row 123: . . . . . +row 124: . ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 125: . ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 126: . ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 127: ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + + 128x5 GraphBLAS gauss matrix, sparse by col + CTiles [k], 17 entries, memory: 536 bytes + + (127,0) [user-defined value] + (124,1) [user-defined value] + (125,1) [user-defined value] + (126,1) [user-defined value] + (127,1) [user-defined value] + (124,2) [user-defined value] + (125,2) [user-defined value] + (126,2) [user-defined value] + (127,2) [user-defined value] + (124,3) [user-defined value] + (125,3) [user-defined value] + (126,3) [user-defined value] + (127,3) [user-defined value] + (124,4) [user-defined value] + (125,4) [user-defined value] + (126,4) [user-defined value] + (127,4) [user-defined value] + + [ GxB_set (in-place transpose) (transpose) + 1.6e-05 sec ] + [ GxB_Matrix_concat (bitmap concat) (transpose) (bitmap/full transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/0c3e9de2e5d73a82 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/0c3e9de2e5d73a82' +[ 50%] Building C object CMakeFiles/GB_jit__concat_bitmap__0802ee0eeb__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/82/GB_jit__concat_bitmap__0802ee0eeb__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_bitmap__0802ee0eeb__gauss.so +[100%] Built target GB_jit__concat_bitmap__0802ee0eeb__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/0c3e9de2e5d73a82' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/82/libGB_jit__concat_bitmap__0802ee0eeb__gauss.so +(transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/068b643968f6613c +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/068b643968f6613c' +[ 50%] Building C object CMakeFiles/GB_jit__concat_bitmap__0802ee0ee8__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/3c/GB_jit__concat_bitmap__0802ee0ee8__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_bitmap__0802ee0ee8__gauss.so +[100%] Built target GB_jit__concat_bitmap__0802ee0ee8__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/068b643968f6613c' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/3c/libGB_jit__concat_bitmap__0802ee0ee8__gauss.so +(transpose) (1-thread bucket transpose) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e363064d750a735e +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e363064d750a735e' +[ 50%] Building C object CMakeFiles/GB_jit__concat_bitmap__0802ee0ee9__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/5e/GB_jit__concat_bitmap__0802ee0ee9__gauss.c.o +[100%] Linking C shared library libGB_jit__concat_bitmap__0802ee0ee9__gauss.so +[100%] Built target GB_jit__concat_bitmap__0802ee0ee9__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/e363064d750a735e' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/5e/libGB_jit__concat_bitmap__0802ee0ee9__gauss.so +(transpose) (1-thread bucket transpose) (transpose) (transpose) (bitmap/full transpose) + 1.97 sec ] + + +=============== Z = [C D ; E E ; D C] +size: 16-by-8 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) ( 9, 4) . . . +row 1: ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) . ( 18, 8) . . +row 2: ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) . . ( 30, 0) . +row 3: ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) . . . ( 42, -16) +row 4: . . . . . . . . +row 5: . . . . . . . . +row 6: . . . . . . . . +row 7: . . . . . . . . +row 8: . . . . . . . . +row 9: . . . . . . . . +row 10: . . . . . . . . +row 11: . . . . . . . . +row 12: ( 9, 4) . . . ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 13: . ( 18, 8) . . ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 14: . . ( 30, 0) . ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 15: . . . ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + + 16x8 GraphBLAS gauss matrix, bitmap by col + Z, 40 entries, memory: 1.3 KB + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (12,0) [user-defined value] + (0,1) [user-defined value] + (1,1) [user-defined value] + (2,1) [user-defined value] + (3,1) [user-defined value] + (13,1) [user-defined value] + (0,2) [user-defined value] + (1,2) [user-defined value] + (2,2) [user-defined value] + (3,2) [user-defined value] + (14,2) [user-defined value] + (0,3) [user-defined value] + (1,3) [user-defined value] + (2,3) [user-defined value] + (3,3) [user-defined value] + (15,3) [user-defined value] + (0,4) [user-defined value] + (12,4) [user-defined value] + (13,4) [user-defined value] + (14,4) [user-defined value] + (15,4) [user-defined value] + (1,5) [user-defined value] + (12,5) [user-defined value] + (13,5) [user-defined value] + (14,5) [user-defined value] + (15,5) [user-defined value] + (2,6) [user-defined value] + (12,6) [user-defined value] + (13,6) [user-defined value] + (14,6) [user-defined value] + (15,6) [user-defined value] + (3,7) [user-defined value] + (12,7) [user-defined value] + (13,7) [user-defined value] + (14,7) [user-defined value] + (15,7) [user-defined value] + + [ GxB_Matrix_split (bitmap split) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f5d9f01d1b2c9447 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f5d9f01d1b2c9447' +[ 50%] Building C object CMakeFiles/GB_jit__split_bitmap__0802ee0eea__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/47/GB_jit__split_bitmap__0802ee0eea__gauss.c.o +[100%] Linking C shared library libGB_jit__split_bitmap__0802ee0eea__gauss.so +[100%] Built target GB_jit__split_bitmap__0802ee0eea__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/f5d9f01d1b2c9447' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/47/libGB_jit__split_bitmap__0802ee0eea__gauss.so + + 0.614 sec ] + + +=============== C Tile from Z: + +size: 8-by-3 +row 0: ( 17, -14) ( 11, -17) ( 5, -20) +row 1: ( 38, -26) ( 34, -28) ( 20, -40) +row 2: ( 59, -38) ( 52, -44) ( 30, -60) +row 3: ( 80, -50) ( 70, -60) ( 40, -80) +row 4: . . . +row 5: . . . +row 6: . . . +row 7: . . . + + + 8x3 GraphBLAS gauss matrix, bitmap by col + CTiles [k], 12 entries, memory: 432 bytes + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (0,1) [user-defined value] + (1,1) [user-defined value] + (2,1) [user-defined value] + (3,1) [user-defined value] + (0,2) [user-defined value] + (1,2) [user-defined value] + (2,2) [user-defined value] + (3,2) [user-defined value] + + + +=============== C Tile from Z: + +size: 8-by-5 +row 0: ( -1, -23) ( 9, 4) . . . +row 1: ( 6, -52) . ( 18, 8) . . +row 2: ( 8, -76) . . ( 30, 0) . +row 3: ( 10,-100) . . . ( 42, -16) +row 4: . . . . . +row 5: . . . . . +row 6: . . . . . +row 7: . . . . . + + + 8x5 GraphBLAS gauss matrix, bitmap by col + CTiles [k], 8 entries, memory: 576 bytes + + (0,0) [user-defined value] + (1,0) [user-defined value] + (2,0) [user-defined value] + (3,0) [user-defined value] + (0,1) [user-defined value] + (1,2) [user-defined value] + (2,3) [user-defined value] + (3,4) [user-defined value] + + + +=============== C Tile from Z: + +size: 8-by-3 +row 0: . . . +row 1: . . . +row 2: . . . +row 3: . . . +row 4: ( 9, 4) . . +row 5: . ( 18, 8) . +row 6: . . ( 30, 0) +row 7: . . . + + + 8x3 GraphBLAS gauss matrix, bitmap by col + CTiles [k], 3 entries, memory: 432 bytes + + (4,0) [user-defined value] + (5,1) [user-defined value] + (6,2) [user-defined value] + + + +=============== C Tile from Z: + +size: 8-by-5 +row 0: . . . . . +row 1: . . . . . +row 2: . . . . . +row 3: . . . . . +row 4: . ( 17, -14) ( 11, -17) ( 5, -20) ( -1, -23) +row 5: . ( 38, -26) ( 34, -28) ( 20, -40) ( 6, -52) +row 6: . ( 59, -38) ( 52, -44) ( 30, -60) ( 8, -76) +row 7: ( 42, -16) ( 80, -50) ( 70, -60) ( 40, -80) ( 10,-100) + + + 8x5 GraphBLAS gauss matrix, bitmap by col + CTiles [k], 17 entries, memory: 576 bytes + + (7,0) [user-defined value] + (4,1) [user-defined value] + (5,1) [user-defined value] + (6,1) [user-defined value] + (7,1) [user-defined value] + (4,2) [user-defined value] + (5,2) [user-defined value] + (6,2) [user-defined value] + (7,2) [user-defined value] + (4,3) [user-defined value] + (5,3) [user-defined value] + (6,3) [user-defined value] + (7,3) [user-defined value] + (4,4) [user-defined value] + (5,4) [user-defined value] + (6,4) [user-defined value] + (7,4) [user-defined value] + + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bcb251ed7f212866 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bcb251ed7f212866' +[ 50%] Building C object CMakeFiles/GB_jit__subassign_22__1000eee0eec8__addgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/66/GB_jit__subassign_22__1000eee0eec8__addgauss.c.o +[100%] Linking C shared library libGB_jit__subassign_22__1000eee0eec8__addgauss.so +[100%] Built target GB_jit__subassign_22__1000eee0eec8__addgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/bcb251ed7f212866' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/66/libGB_jit__subassign_22__1000eee0eec8__addgauss.so + + 0.639 sec ] + + +=============== C = C + ciso + +size: 4-by-4 +row 0: ( 18, -16) ( 12, -19) ( 6, -22) ( 0, -25) +row 1: ( 39, -28) ( 35, -30) ( 21, -42) ( 7, -54) +row 2: ( 60, -40) ( 53, -46) ( 31, -62) ( 9, -78) +row 3: ( 81, -52) ( 71, -62) ( 41, -82) ( 11,-102) + + [ GxB_set + 6.48e-07 sec ] + [ GxB_Matrix_split (full split) (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b25a3ffd809024d5 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b25a3ffd809024d5' +[ 50%] Building C object CMakeFiles/GB_jit__split_full__0802ee0eef__gauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/d5/GB_jit__split_full__0802ee0eef__gauss.c.o +[100%] Linking C shared library libGB_jit__split_full__0802ee0eef__gauss.so +[100%] Built target GB_jit__split_full__0802ee0eef__gauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/b25a3ffd809024d5' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/d5/libGB_jit__split_full__0802ee0eef__gauss.so + + 0.612 sec ] + + +=============== S Tile from C: + +size: 1-by-2 +row 0: ( 18, -16) ( 12, -19) + + + 1x2 GraphBLAS gauss matrix, full by row + sparsity control: full + STiles [k], 2 entries, memory: 232 bytes + + (0,0) [user-defined value] + (0,1) [user-defined value] + + + +=============== S Tile from C: + +size: 1-by-2 +row 0: ( 6, -22) ( 0, -25) + + + 1x2 GraphBLAS gauss matrix, full by row + sparsity control: full + STiles [k], 2 entries, memory: 232 bytes + + (0,0) [user-defined value] + (0,1) [user-defined value] + + + +=============== S Tile from C: + +size: 3-by-2 +row 0: ( 39, -28) ( 35, -30) +row 1: ( 60, -40) ( 53, -46) +row 2: ( 81, -52) ( 71, -62) + + + 3x2 GraphBLAS gauss matrix, full by row + sparsity control: full + STiles [k], 6 entries, memory: 264 bytes + + (0,0) [user-defined value] + (0,1) [user-defined value] + (1,0) [user-defined value] + (1,1) [user-defined value] + (2,0) [user-defined value] + (2,1) [user-defined value] + + + +=============== S Tile from C: + +size: 3-by-2 +row 0: ( 21, -42) ( 7, -54) +row 1: ( 31, -62) ( 9, -78) +row 2: ( 41, -82) ( 11,-102) + + + 3x2 GraphBLAS gauss matrix, full by row + sparsity control: full + STiles [k], 6 entries, memory: 264 bytes + + (0,0) [user-defined value] + (0,1) [user-defined value] + (1,0) [user-defined value] + (1,1) [user-defined value] + (2,0) [user-defined value] + (2,1) [user-defined value] + +JIT: paused + + +=============== C: + +size: 4-by-4 +row 0: ( 18, -16) ( 12, -19) ( 6, -22) ( 0, -25) +row 1: ( 39, -28) ( 35, -30) ( 21, -42) ( 7, -54) +row 2: ( 60, -40) ( 53, -46) ( 31, -62) ( 9, -78) +row 3: ( 81, -52) ( 71, -62) ( 41, -82) ( 11,-102) + + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 3.18e-05 sec ] + + +=============== C = C + ciso (JIT paused): + +size: 4-by-4 +row 0: ( 19, -18) ( 13, -21) ( 7, -24) ( 1, -27) +row 1: ( 40, -30) ( 36, -32) ( 22, -44) ( 8, -56) +row 2: ( 61, -42) ( 54, -48) ( 32, -64) ( 10, -80) +row 3: ( 82, -54) ( 72, -64) ( 42, -84) ( 12,-104) + + + +=============== C: + +size: 4-by-4 +row 0: ( 19, -18) ( 13, -21) ( 7, -24) ( 1, -27) +row 1: ( 40, -30) ( 36, -32) ( 22, -44) ( 8, -56) +row 2: ( 61, -42) ( 54, -48) ( 32, -64) ( 10, -80) +row 3: ( 82, -54) ( 72, -64) ( 42, -84) ( 12,-104) + + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 1.81e-05 sec ] + + +=============== C = C * ciso (JIT paused): + +size: 4-by-4 +row 0: ( -17, -56) ( -29, -47) ( -41, -38) ( -53, -29) +row 1: ( -20,-110) ( -28,-104) ( -66, -88) (-104, -72) +row 2: ( -23,-164) ( -42,-156) ( -96,-128) (-150,-100) +row 3: ( -26,-218) ( -56,-208) (-126,-168) (-196,-128) + +JIT: run (may not load or compile) + [ GrB_assign (pending: 0) Method 22: (C full) += scalar + 1.4e-05 sec ] + + +=============== C = C + ciso (JIT run): + +size: 4-by-4 +row 0: ( -16, -58) ( -28, -49) ( -40, -40) ( -52, -31) +row 1: ( -19,-112) ( -27,-106) ( -65, -90) (-103, -74) +row 2: ( -22,-166) ( -41,-158) ( -95,-130) (-149,-102) +row 3: ( -25,-220) ( -55,-210) (-125,-170) (-195,-130) + + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (generic C(:,:)+=x assign) + 1.76e-05 sec ] + + +=============== C = C * ciso (JIT not loaded): + +size: 4-by-4 +row 0: (-132, -26) (-126, 7) (-120, 40) (-114, 73) +row 1: (-243, -74) (-239, -52) (-245, 40) (-251, 132) +row 2: (-354,-122) (-357, -76) (-355, 60) (-353, 196) +row 3: (-465,-170) (-475,-100) (-465, 80) (-455, 260) + +JIT: on + [ GrB_assign (pending: 0) Method 22: (C full) += scalar (jit: compile and load) (jit: cmake) +-- The C compiler identification is GNU 9.4.0 +-- Detecting C compiler ABI info +-- Detecting C compiler ABI info - done +-- Check for working C compiler: /usr/bin/cc - skipped +-- Detecting C compile features +-- Detecting C compile features - done +-- Configuring done (0.3s) +-- Generating done (0.0s) +-- Build files have been written to: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7a164201169278d1 +gmake[1]: Entering directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7a164201169278d1' +[ 50%] Building C object CMakeFiles/GB_jit__subassign_22__1000eee0eec8__multgauss.dir/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/d1/GB_jit__subassign_22__1000eee0eec8__multgauss.c.o +[100%] Linking C shared library libGB_jit__subassign_22__1000eee0eec8__multgauss.so +[100%] Built target GB_jit__subassign_22__1000eee0eec8__multgauss +gmake[1]: Leaving directory '/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/tmp/7a164201169278d1' +-- Install configuration: "" +-- Installing: /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/d1/libGB_jit__subassign_22__1000eee0eec8__multgauss.so + + 0.627 sec ] + + +=============== C = C * ciso (full JIT): + +size: 4-by-4 +row 0: (-184, 238) (-112, 259) ( -40, 280) ( 32, 301) +row 1: (-391, 412) (-343, 426) (-165, 530) ( 13, 634) +row 2: (-598, 586) (-509, 638) (-235, 770) ( 39, 902) +row 3: (-805, 760) (-675, 850) (-305,1010) ( 65,1170) + diff --git a/GraphBLAS/Demo/Output/import_demo.out b/GraphBLAS/Demo/Output/import_demo.out index 40e4c92eed..13be0e9b98 100644 --- a/GraphBLAS/Demo/Output/import_demo.out +++ b/GraphBLAS/Demo/Output/import_demo.out @@ -4,7 +4,7 @@ ========================= import_test: format 0 67x67 GraphBLAS double matrix, sparse by row - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (0,7) -0.834182 (0,12) 1.26582 @@ -40,7 +40,7 @@ ========================= import_test: format 1 67x67 GraphBLAS double matrix, sparse by row - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (0,7) -0.834182 (0,12) 1.26582 @@ -76,7 +76,7 @@ ========================= import_test: format 2 67x67 GraphBLAS double matrix, sparse by row - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (0,7) -0.834182 (0,12) 1.26582 @@ -112,7 +112,7 @@ ========================= import_test: format 3 67x67 GraphBLAS double matrix, sparse by row - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (0,7) -0.834182 (0,12) 1.26582 @@ -150,7 +150,7 @@ ========================= import_test: format 0 67x67 GraphBLAS double matrix, sparse by col - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (4,0) -0.278842 (5,0) -0.268019 @@ -186,7 +186,7 @@ ========================= import_test: format 1 67x67 GraphBLAS double matrix, sparse by col - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (4,0) -0.278842 (5,0) -0.268019 @@ -222,7 +222,7 @@ ========================= import_test: format 2 67x67 GraphBLAS double matrix, sparse by col - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (4,0) -0.278842 (5,0) -0.268019 @@ -258,7 +258,7 @@ ========================= import_test: format 3 67x67 GraphBLAS double matrix, sparse by col - C to export, 294 entries, memory: 9.2 KB + C to export, 294 entries, memory: 5.3 KB (4,0) -0.278842 (5,0) -0.268019 @@ -296,7 +296,7 @@ ========================= import_test: format 0 67x67 GraphBLAS double matrix, hypersparse by row - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (0,7) -0.834182 (0,12) 1.26582 @@ -332,7 +332,7 @@ ========================= import_test: format 1 67x67 GraphBLAS double matrix, hypersparse by row - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (0,7) -0.834182 (0,12) 1.26582 @@ -368,7 +368,7 @@ ========================= import_test: format 2 67x67 GraphBLAS double matrix, hypersparse by row - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (0,7) -0.834182 (0,12) 1.26582 @@ -404,7 +404,7 @@ ========================= import_test: format 3 67x67 GraphBLAS double matrix, hypersparse by row - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (0,7) -0.834182 (0,12) 1.26582 @@ -442,7 +442,7 @@ ========================= import_test: format 0 67x67 GraphBLAS double matrix, hypersparse by col - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (4,0) -0.278842 (5,0) -0.268019 @@ -478,7 +478,7 @@ ========================= import_test: format 1 67x67 GraphBLAS double matrix, hypersparse by col - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (4,0) -0.278842 (5,0) -0.268019 @@ -514,7 +514,7 @@ ========================= import_test: format 2 67x67 GraphBLAS double matrix, hypersparse by col - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (4,0) -0.278842 (5,0) -0.268019 @@ -550,7 +550,7 @@ ========================= import_test: format 3 67x67 GraphBLAS double matrix, hypersparse by col - C to export, 294 entries, memory: 10.2 KB + C to export, 294 entries, memory: 5.9 KB (4,0) -0.278842 (5,0) -0.268019 diff --git a/GraphBLAS/Demo/Output/openmp_demo.out b/GraphBLAS/Demo/Output/openmp_demo.out index da6ccd0671..7c05985184 100644 --- a/GraphBLAS/Demo/Output/openmp_demo.out +++ b/GraphBLAS/Demo/Output/openmp_demo.out @@ -1,26 +1,26 @@ Demo: ../build/openmp_demo: User threads in this program are OpenMP threads. -================= worker 1 starts: +================= worker 0 starts: ================= worker 6 starts: -================= worker 4 starts: - ================= worker 3 starts: -================= worker 7 starts: +================= worker 1 starts: + +================= worker 2 starts: ================= worker 5 starts: -================= worker 2 starts: +================= worker 4 starts: -================= worker 0 starts: +================= worker 7 starts: ------------------ worker 1 intentional error: +----------------- worker 0 intentional error: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1001 out of range; must be < 6 +Row index 1000 out of range; must be < 6 ----------------- worker 4 intentional error: GraphBLAS error: GrB_INVALID_INDEX @@ -42,97 +42,61 @@ GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) Row index 1007 out of range; must be < 6 ------------------ worker 0 intentional error: +----------------- worker 2 intentional error: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1000 out of range; must be < 6 +Row index 1002 out of range; must be < 6 ----------------- worker 5 intentional error: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) Row index 1005 out of range; must be < 6 ------------------ worker 2 intentional error: +----------------- worker 1 intentional error: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1002 out of range; must be < 6 - ------------------ worker 4 is done: - - 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes - - (0,0) 101004 - (0,1) 102004 - (0,2) 103004 - (0,3) 104004 - (0,4) 105004 - (0,5) 106004 - (1,0) 201004 - (1,1) 202004 - (1,2) 203004 - (1,3) 204004 - (1,4) 205004 - (1,5) 206004 - (2,0) 301004 - (2,1) 302004 - (2,2) 303004 - (2,3) 304004 - (2,4) 305004 - (2,5) 306004 - (3,0) 401004 - (3,1) 402004 - (3,2) 403004 - (3,3) 404004 - (3,4) 405004 - (3,5) 406004 - (4,0) 501004 - (4,1) 502004 - (4,2) 503004 - (4,3) 504004 - (4,4) 505004 - ... +Row index 1001 out of range; must be < 6 ------------------ worker 3 is done: +----------------- worker 0 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes - (0,0) 101003 - (0,1) 102003 - (0,2) 103003 - (0,3) 104003 - (0,4) 105003 - (0,5) 106003 - (1,0) 201003 - (1,1) 202003 - (1,2) 203003 - (1,3) 204003 - (1,4) 205003 - (1,5) 206003 - (2,0) 301003 - (2,1) 302003 - (2,2) 303003 - (2,3) 304003 - (2,4) 305003 - (2,5) 306003 - (3,0) 401003 - (3,1) 402003 - (3,2) 403003 - (3,3) 404003 - (3,4) 405003 - (3,5) 406003 - (4,0) 501003 - (4,1) 502003 - (4,2) 503003 - (4,3) 504003 - (4,4) 505003 + (0,0) 101000 + (0,1) 102000 + (0,2) 103000 + (0,3) 104000 + (0,4) 105000 + (0,5) 106000 + (1,0) 201000 + (1,1) 202000 + (1,2) 203000 + (1,3) 204000 + (1,4) 205000 + (1,5) 206000 + (2,0) 301000 + (2,1) 302000 + (2,2) 303000 + (2,3) 304000 + (2,4) 305000 + (2,5) 306000 + (3,0) 401000 + (3,1) 402000 + (3,2) 403000 + (3,3) 404000 + (3,4) 405000 + (3,5) 406000 + (4,0) 501000 + (4,1) 502000 + (4,2) 503000 + (4,3) 504000 + (4,4) 505000 ... ----------------- worker 1 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101001 (0,1) 102001 @@ -165,88 +129,78 @@ Row index 1002 out of range; must be < 6 (4,4) 505001 ... ------------------ worker 4 error should be same: -GraphBLAS error: GrB_INVALID_INDEX -function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1004 out of range; must be < 6 - ------------------ worker 2 is done: +----------------- worker 5 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes - (0,0) 101002 - (0,1) 102002 - (0,2) 103002 - (0,3) 104002 - (0,4) 105002 - (0,5) 106002 - (1,0) 201002 - (1,1) 202002 - (1,2) 203002 - (1,3) 204002 - (1,4) 205002 - (1,5) 206002 - (2,0) 301002 - (2,1) 302002 - (2,2) 303002 - (2,3) 304002 - (2,4) 305002 - (2,5) 306002 - (3,0) 401002 - (3,1) 402002 - (3,2) 403002 - (3,3) 404002 - (3,4) 405002 - (3,5) 406002 - (4,0) 501002 - (4,1) 502002 - (4,2) 503002 - (4,3) 504002 - (4,4) 505002 + (0,0) 101005 + (0,1) 102005 + (0,2) 103005 + (0,3) 104005 + (0,4) 105005 + (0,5) 106005 + (1,0) 201005 + (1,1) 202005 + (1,2) 203005 + (1,3) 204005 + (1,4) 205005 + (1,5) 206005 + (2,0) 301005 + (2,1) 302005 + (2,2) 303005 + (2,3) 304005 + (2,4) 305005 + (2,5) 306005 + (3,0) 401005 + (3,1) 402005 + (3,2) 403005 + (3,3) 404005 + (3,4) 405005 + (3,5) 406005 + (4,0) 501005 + (4,1) 502005 + (4,2) 503005 + (4,3) 504005 + (4,4) 505005 ... ------------------ worker 0 is done: +----------------- worker 6 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes - (0,0) 101000 - (0,1) 102000 - (0,2) 103000 - (0,3) 104000 - (0,4) 105000 - (0,5) 106000 - (1,0) 201000 - (1,1) 202000 - (1,2) 203000 - (1,3) 204000 - (1,4) 205000 - (1,5) 206000 - (2,0) 301000 - (2,1) 302000 - (2,2) 303000 - (2,3) 304000 - (2,4) 305000 - (2,5) 306000 - (3,0) 401000 - (3,1) 402000 - (3,2) 403000 - (3,3) 404000 - (3,4) 405000 - (3,5) 406000 - (4,0) 501000 - (4,1) 502000 - (4,2) 503000 - (4,3) 504000 - (4,4) 505000 + (0,0) 101006 + (0,1) 102006 + (0,2) 103006 + (0,3) 104006 + (0,4) 105006 + (0,5) 106006 + (1,0) 201006 + (1,1) 202006 + (1,2) 203006 + (1,3) 204006 + (1,4) 205006 + (1,5) 206006 + (2,0) 301006 + (2,1) 302006 + (2,2) 303006 + (2,3) 304006 + (2,4) 305006 + (2,5) 306006 + (3,0) 401006 + (3,1) 402006 + (3,2) 403006 + (3,3) 404006 + (3,4) 405006 + (3,5) 406006 + (4,0) 501006 + (4,1) 502006 + (4,2) 503006 + (4,3) 504006 + (4,4) 505006 ... ------------------ worker 2 error should be same: -GraphBLAS error: GrB_INVALID_INDEX -function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1002 out of range; must be < 6 - ----------------- worker 1 error should be same: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) @@ -255,7 +209,7 @@ Row index 1001 out of range; must be < 6 ----------------- worker 7 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101007 (0,1) 102007 @@ -288,51 +242,51 @@ Row index 1001 out of range; must be < 6 (4,4) 505007 ... ------------------ worker 3 error should be same: +----------------- worker 0 error should be same: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1003 out of range; must be < 6 +Row index 1000 out of range; must be < 6 ------------------ worker 5 is done: +----------------- worker 2 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes - (0,0) 101005 - (0,1) 102005 - (0,2) 103005 - (0,3) 104005 - (0,4) 105005 - (0,5) 106005 - (1,0) 201005 - (1,1) 202005 - (1,2) 203005 - (1,3) 204005 - (1,4) 205005 - (1,5) 206005 - (2,0) 301005 - (2,1) 302005 - (2,2) 303005 - (2,3) 304005 - (2,4) 305005 - (2,5) 306005 - (3,0) 401005 - (3,1) 402005 - (3,2) 403005 - (3,3) 404005 - (3,4) 405005 - (3,5) 406005 - (4,0) 501005 - (4,1) 502005 - (4,2) 503005 - (4,3) 504005 - (4,4) 505005 + (0,0) 101002 + (0,1) 102002 + (0,2) 103002 + (0,3) 104002 + (0,4) 105002 + (0,5) 106002 + (1,0) 201002 + (1,1) 202002 + (1,2) 203002 + (1,3) 204002 + (1,4) 205002 + (1,5) 206002 + (2,0) 301002 + (2,1) 302002 + (2,2) 303002 + (2,3) 304002 + (2,4) 305002 + (2,5) 306002 + (3,0) 401002 + (3,1) 402002 + (3,2) 403002 + (3,3) 404002 + (3,4) 405002 + (3,5) 406002 + (4,0) 501002 + (4,1) 502002 + (4,2) 503002 + (4,3) 504002 + (4,4) 505002 ... ------------------ worker 0 error should be same: +----------------- worker 6 error should be same: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1000 out of range; must be < 6 +Row index 1006 out of range; must be < 6 ----------------- worker 7 error should be same: GraphBLAS error: GrB_INVALID_INDEX @@ -344,51 +298,97 @@ GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) Row index 1005 out of range; must be < 6 ------------------ worker 6 is done: +----------------- worker 2 error should be same: +GraphBLAS error: GrB_INVALID_INDEX +function: GrB_Matrix_setElement_INT32 (C, row, col, x) +Row index 1002 out of range; must be < 6 + +----------------- worker 4 is done: 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes - (0,0) 101006 - (0,1) 102006 - (0,2) 103006 - (0,3) 104006 - (0,4) 105006 - (0,5) 106006 - (1,0) 201006 - (1,1) 202006 - (1,2) 203006 - (1,3) 204006 - (1,4) 205006 - (1,5) 206006 - (2,0) 301006 - (2,1) 302006 - (2,2) 303006 - (2,3) 304006 - (2,4) 305006 - (2,5) 306006 - (3,0) 401006 - (3,1) 402006 - (3,2) 403006 - (3,3) 404006 - (3,4) 405006 - (3,5) 406006 - (4,0) 501006 - (4,1) 502006 - (4,2) 503006 - (4,3) 504006 - (4,4) 505006 + (0,0) 101004 + (0,1) 102004 + (0,2) 103004 + (0,3) 104004 + (0,4) 105004 + (0,5) 106004 + (1,0) 201004 + (1,1) 202004 + (1,2) 203004 + (1,3) 204004 + (1,4) 205004 + (1,5) 206004 + (2,0) 301004 + (2,1) 302004 + (2,2) 303004 + (2,3) 304004 + (2,4) 305004 + (2,5) 306004 + (3,0) 401004 + (3,1) 402004 + (3,2) 403004 + (3,3) 404004 + (3,4) 405004 + (3,5) 406004 + (4,0) 501004 + (4,1) 502004 + (4,2) 503004 + (4,3) 504004 + (4,4) 505004 ... ------------------ worker 6 error should be same: +----------------- worker 3 is done: + + 6x6 GraphBLAS double matrix, full by row + A, 36 entries, memory: 504 bytes + + (0,0) 101003 + (0,1) 102003 + (0,2) 103003 + (0,3) 104003 + (0,4) 105003 + (0,5) 106003 + (1,0) 201003 + (1,1) 202003 + (1,2) 203003 + (1,3) 204003 + (1,4) 205003 + (1,5) 206003 + (2,0) 301003 + (2,1) 302003 + (2,2) 303003 + (2,3) 304003 + (2,4) 305003 + (2,5) 306003 + (3,0) 401003 + (3,1) 402003 + (3,2) 403003 + (3,3) 404003 + (3,4) 405003 + (3,5) 406003 + (4,0) 501003 + (4,1) 502003 + (4,2) 503003 + (4,3) 504003 + (4,4) 505003 + ... + +----------------- worker 4 error should be same: GraphBLAS error: GrB_INVALID_INDEX function: GrB_Matrix_setElement_INT32 (C, row, col, x) -Row index 1006 out of range; must be < 6 +Row index 1004 out of range; must be < 6 + +----------------- worker 3 error should be same: +GraphBLAS error: GrB_INVALID_INDEX +function: GrB_Matrix_setElement_INT32 (C, row, col, x) +Row index 1003 out of range; must be < 6 ---- Leader prints matrix 0 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101000 (0,1) 102000 @@ -424,7 +424,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 1 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101001 (0,1) 102001 @@ -460,7 +460,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 2 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101002 (0,1) 102002 @@ -496,7 +496,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 3 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101003 (0,1) 102003 @@ -532,7 +532,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 4 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101004 (0,1) 102004 @@ -568,7 +568,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 5 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101005 (0,1) 102005 @@ -604,7 +604,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 6 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101006 (0,1) 102006 @@ -640,7 +640,7 @@ Row index 1006 out of range; must be < 6 ---- Leader prints matrix 7 6x6 GraphBLAS double matrix, full by row - A, 36 entries, memory: 768 bytes + A, 36 entries, memory: 504 bytes (0,0) 101007 (0,1) 102007 diff --git a/GraphBLAS/Demo/Output/wildtype_demo.out b/GraphBLAS/Demo/Output/wildtype_demo.out index cdf36412fc..24fc339563 100644 --- a/GraphBLAS/Demo/Output/wildtype_demo.out +++ b/GraphBLAS/Demo/Output/wildtype_demo.out @@ -1,5 +1,5 @@ [ GxB_Type_new - 9.86e-06 sec ] + 9.21e-06 sec ] GraphBLAS type: WildType user-defined: [wildtype] size: 192 typedef struct { double stuff [4][4] ; char whatstuff [64] ; } wildtype ; WildType size: 192 @@ -11,8 +11,8 @@ a wildtype scalar: scalar1 [this is from scalar1] 100.0 101.0 102.0 103.0 200.0 201.0 202.0 203.0 300.0 301.0 302.0 303.0 -(iso wait:C (setElement:to non-iso) 0 zombies, 1 pending) [ GrB_transpose (wait:A 0 zombies, 2 pending) (build) (jit: load) add:(H<.>=H+H) (jit: load) (hyper to sparse) (transpose) (builder transpose) (jit: run) (hyper to sparse) - 0.000947 sec ] +(iso wait:C (setElement:to non-iso) 0 zombies, 1 pending) [ GrB_transpose (wait:A 0 zombies, 2 pending) (build) (jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/de/GB_jit__build__02eeeee__wildtype.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/de/GB_jit__build__02eeeee__wildtype.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/de/libGB_jit__build__02eeeee__wildtype.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/de/GB_jit__build__02eeeee__wildtype.o -lm -ldl -lgomp -lpthread ") add:(H<.>=H+H) (jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/77/GB_jit__add__1002e0e0eee00__wildtype.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/77/GB_jit__add__1002e0e0eee00__wildtype.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/77/libGB_jit__add__1002e0e0eee00__wildtype.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/77/GB_jit__add__1002e0e0eee00__wildtype.o -lm -ldl -lgomp -lpthread ") (hyper to sparse) (transpose) (builder transpose) (hyper to sparse) + 0.535 sec ] a wildtype scalar: got scalar2 = C(7,2) [this is A(2,7)] 0.0 1.0 2.0 3.0 @@ -139,7 +139,7 @@ Printing the matrix with GxB_Matrix_fprint: (3,7) [user-defined value] [ GrB_Matrix_nvals - 7.73e-07 sec ] + 1.3e-06 sec ] ============= printing the WildType matrix: input A (10-by-10 with 3 entries) @@ -183,8 +183,8 @@ Printing the matrix with GxB_Matrix_fprint: row: 4 col: 2 [user-defined value] pending operator: implicit 2nd - [ GrB_Matrix_nvals (wait:A 0 zombies, 2 pending) (build) (jit: run) add:(H<.>=H+H) (jit: run) (hyper to sparse) - 3.68e-05 sec ] + [ GrB_Matrix_nvals (wait:A 0 zombies, 2 pending) (build) add:(H<.>=H+H) (hyper to sparse) + 0.000289 sec ] ============= printing the WildType matrix: input B (10-by-10 with 3 entries) @@ -213,8 +213,8 @@ a wildtype scalar: [here is B(7,5)] -2.5 -1.5 -0.5 0.5 ============= that was the WildType matrix input B - [ GrB_mxm C=A*B, saxpy (S = S*S, anz: 3 bnz: 3) axbwork 8 (intensity: 1.14 workspace/(nnz(A)+nnz(B)): 1.43) (nthreads 1 coarse: 1) (sparse saxpy) (jit: load) - 0.000114 sec ] + [ GrB_mxm C=A*B, saxpy (S = S*S, anz: 3 bnz: 3) axbwork 8 (intensity: 1.14 workspace/(nnz(A)+nnz(B)): 1.43) (nthreads 1 coarse: 1) (sparse saxpy) (jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/21/GB_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/21/GB_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/21/libGB_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/21/GB_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult.o -lm -ldl -lgomp -lpthread ") + 0.963 sec ] Printing the matrix with GxB_Matrix_fprint: @@ -227,7 +227,7 @@ Printing the matrix with GxB_Matrix_fprint: (3,5) [user-defined value] [ GrB_Matrix_nvals - 8.48e-08 sec ] + 3.43e-07 sec ] ============= printing the WildType matrix: output C (10-by-10 with 4 entries) @@ -274,15 +274,16 @@ The mask matrix M: iso value: 1 pending tuples: 4 max pending: 256 zombies: 0 pending tuples: - GraphBLAS type: int32_t size: 4 + GraphBLAS type: bool size: 1 row: 2 col: 2 row: 2 col: 3 row: 3 col: 2 row: 3 col: 3 pending operator: implicit 2nd - [ GrB_mxm (iso wait:M 0 zombies, 4 pending) (iso build) (hyper to sparse) C=A'*B, masked_dot_product (dot3) (S{S} = S'*S) nthreads 1 ntasks 1 (jit: load) - 9.23e-05 sec ] + [ GrB_mxm (iso wait:M 0 zombies, 4 pending) (iso build) (hyper to sparse) C=A'*B, masked_dot_product (dot3) (S{S} = S'*S) Not using cuda path: type size not supported +nthreads 1 ntasks 1 (jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/0f/GB_jit__AxB_dot3__03fe100eee2eee55__wildadd_wildmult.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/0f/GB_jit__AxB_dot3__03fe100eee2eee55__wildadd_wildmult.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/0f/libGB_jit__AxB_dot3__03fe100eee2eee55__wildadd_wildmult.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/0f/GB_jit__AxB_dot3__03fe100eee2eee55__wildadd_wildmult.o -lm -ldl -lgomp -lpthread ") + 0.563 sec ] Printing the matrix with GxB_Matrix_fprint: @@ -295,7 +296,7 @@ Printing the matrix with GxB_Matrix_fprint: (3,3) [user-defined value] [ GrB_Matrix_nvals - 6.89e-08 sec ] + 3.2e-07 sec ] ============= printing the WildType matrix: output C (10-by-10 with 4 entries) @@ -332,24 +333,26 @@ a wildtype scalar: [this was added] -13424304.0 -2565388.0 6850828.0 16267044.0 ============= that was the WildType matrix output C - [ GrB_reduce (jit: load) - 4.75e-05 sec ] + [ GrB_reduce Not using cuda path: type size not supported +(jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b7/GB_jit__reduce__03feee1__wildadd.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b7/GB_jit__reduce__03feee1__wildadd.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/b7/libGB_jit__reduce__03feee1__wildadd.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/b7/GB_jit__reduce__03feee1__wildadd.o -lm -ldl -lgomp -lpthread ") + 0.24 sec ] a wildtype scalar: sum (first time) [this was added] -111773.5 269.5 93412.5 583455.5 -49510798.5 271594.5 43367587.5 319487980.5 -92402621.5 2801413.5 85075148.5 622622583.5 -149241466.8 471094.8 130123106.2 959972867.8 - [ GrB_reduce (jit: run) - 3.14e-06 sec ] + [ GrB_reduce Not using cuda path: type size not supported + + 1.59e-05 sec ] a wildtype scalar: sum (again) [this was added] -111773.5 269.5 93412.5 583455.5 -49510798.5 271594.5 43367587.5 319487980.5 -92402621.5 2801413.5 85075148.5 622622583.5 -149241466.8 471094.8 130123106.2 959972867.8 - [ GxB_set (transpose) (in-place transpose) (transpose) (1-thread bucket transpose) (jit: load) - 6.21e-05 sec ] + [ GxB_set (transpose) (in-place transpose) (transpose) (1-thread bucket transpose) (jit: compile and load) (jit: sh -c "/usr/bin/cc -DGB_JIT_RUNTIME=1 -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -I/home/faculty/d/davis/.SuiteSparse/GrB8.3.0/src -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/6c/GB_jit__trans_unop__0802ee0ee5__wildtype.o -c /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/6c/GB_jit__trans_unop__0802ee0ee5__wildtype.c ; /usr/bin/cc -Wundef -std=c11 -lm -Wno-pragmas -fexcess-precision=fast -fcx-limited-range -fno-math-errno -fwrapv -O3 -DNDEBUG -fopenmp -fPIC -shared -o /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/lib/6c/libGB_jit__trans_unop__0802ee0ee5__wildtype.so /home/faculty/d/davis/.SuiteSparse/GrB8.3.0/c/6c/GB_jit__trans_unop__0802ee0ee5__wildtype.o -lm -ldl -lgomp -lpthread ") + 0.216 sec ] C is now stored by column, but it looks just the same to the GraphBLAS user application. The difference is opaque, in the @@ -366,7 +369,7 @@ Printing the matrix with GxB_Matrix_fprint: (3,3) [user-defined value] [ GrB_Matrix_nvals - 5.63e-08 sec ] + 2.43e-07 sec ] ============= printing the WildType matrix: output C (10-by-10 with 4 entries) @@ -412,7 +415,7 @@ Printing the matrix with GxB_Matrix_fprint: The matrix D is not wild enough to print. [ GrB_apply (shallow-op) - 1.25e-05 sec ] + 2.92e-05 sec ] 10x10 GraphBLAS int64_t matrix, sparse by row E (positional i), 3 entries, memory: 352 bytes @@ -422,7 +425,7 @@ The matrix D is not wild enough to print. (3,7) 3 [ GrB_apply (shallow-op) - 3.55e-06 sec ] + 1.15e-05 sec ] 10x10 GraphBLAS int64_t matrix, sparse by row E (positional j), 3 entries, memory: 352 bytes @@ -432,7 +435,7 @@ The matrix D is not wild enough to print. (3,7) 7 [ GrB_eWiseAdd - 3.09e-06 sec ] + 6.52e-06 sec ] This is supposed to fail, as a demo of GrB_error: GraphBLAS error: GrB_DOMAIN_MISMATCH diff --git a/GraphBLAS/Demo/demo b/GraphBLAS/Demo/demo index 4b9d2e55cf..db8d2fa7aa 100755 --- a/GraphBLAS/Demo/demo +++ b/GraphBLAS/Demo/demo @@ -3,14 +3,14 @@ # SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 -../build/simple_demo > simple_demo.out -../build/complex_demo > complex_demo_out.m -../build/complex_demo 1 > complex_demo_out2.m -../build/openmp_demo > openmp_demo.out +../build/simple_demo > ../build/simple_demo.out +../build/complex_demo > ../build/complex_demo_out.m +../build/complex_demo 1 > ../build/complex_demo_out2.m +../build/openmp_demo > ../build/openmp_demo.out -../build/import_demo < Matrix/west0067 > import_demo.out -../build/wildtype_demo > wildtype_demo.out +../build/import_demo < Matrix/west0067 > ../build/import_demo.out +../build/wildtype_demo > ../build/wildtype_demo.out -../build/gauss_demo > gauss_demo1.out -../build/gauss_demo > gauss_demo.out +../build/gauss_demo > ../build/gauss_demo1.out +../build/gauss_demo > ../build/gauss_demo.out exit 0 diff --git a/GraphBLAS/Demo/vdemo b/GraphBLAS/Demo/vdemo index 798584ecaa..1835a942ff 100755 --- a/GraphBLAS/Demo/vdemo +++ b/GraphBLAS/Demo/vdemo @@ -6,19 +6,19 @@ # V="valgrind --error-limit=no --tool=memcheck -q --log-file=valgrind_%p.log --leak-check=full --show-leak-kinds=all" V="valgrind --error-limit=no --tool=memcheck -q --log-file=valgrind_%p.log" -$V ../build/simple_demo > simple_demo.out -$V ../build/complex_demo > complex_demo_out.m -$V ../build/complex_demo 1 > complex_demo_out2.m -$V ../build/openmp_demo > openmp_demo.out +$V ../build/simple_demo > ../build/simple_demo.out +$V ../build/complex_demo > ../build/complex_demo_out.m +$V ../build/complex_demo 1 > ../build/complex_demo_out2.m +$V ../build/openmp_demo > ../build/openmp_demo.out -$V ../build/import_demo < Matrix/west0067 > import_demo.out -$V ../build/wildtype_demo > wildtype_demo.out +$V ../build/import_demo < Matrix/west0067 > ../build/import_demo.out +$V ../build/wildtype_demo > ../build/wildtype_demo.out $V ../build/gauss_demo echo "Comparing output:" -diff Output/simple_demo.out simple_demo.out -diff Output/complex_demo_out.m complex_demo_out.m -diff Output/wildtype_demo.out wildtype_demo.out +diff Output/simple_demo.out ../build/simple_demo.out +diff Output/complex_demo_out.m ../build/complex_demo_out.m +diff Output/wildtype_demo.out ../build/wildtype_demo.out exit 0 diff --git a/GraphBLAS/Doc/GraphBLAS_API_C_v13.pdf b/GraphBLAS/Doc/GraphBLAS_API_C_v13.pdf deleted file mode 100644 index 0a230734ac..0000000000 Binary files a/GraphBLAS/Doc/GraphBLAS_API_C_v13.pdf and /dev/null differ diff --git a/GraphBLAS/Doc/README_Doc.txt b/GraphBLAS/Doc/README_Doc.txt index 3d167a8aeb..6039388501 100644 --- a/GraphBLAS/Doc/README_Doc.txt +++ b/GraphBLAS/Doc/README_Doc.txt @@ -6,8 +6,7 @@ This folder contains the following files: CONTRIBUTOR-LICENSE.txt how to contribute to GraphBLAS ChangeLog changes in GraphBLAS - GraphBLAS_API_C_2.0.0.pdf - GraphBLAS_API_C_v13.pdf the GraphBLAS C API Specification (v1.3) + GraphBLAS_API_C_2.0.0.pdf v2.0 C API (see https://graphblas.org) GraphBLAS_API_version.tex the version of the C API that this version of SuiteSparse:GraphBLAS conforms to. GraphBLAS_UserGuide.pdf the SuiteSparse:GraphBLAS User Guide @@ -20,18 +19,61 @@ This folder contains the following files: License.txt SPDX-License-Identifier: Apache-2.0 README_Doc.txt this file -Papers on SuiteSparse:GraphBLAS. See the User Guide for the full citations. - - toms_graphblas.pdf 2019 ACM TOMS paper on SuiteSparse:GraphBLAS - CSC20_OpenMP_GraphBLAS.pdf "Parallel GraphBLAS with OpenMP" - HPEC19.pdf "Write Quick, Run Fast: Sparse DNN ..." - Davis_HPEC18.pdf "Graph algorithms via SuiteSparse:GraphBLAS..." - lagraph-grapl19.pdf "LAGraph: a community effort to collect graph - algorithms built on top of the GraphBLAS" - HPEC20_Python_and_MATLAB.pdf "GraphBLAS programmability", by Mattson - Pelletier, and Davis. HPEC'20 - toms_parallel_grb2.pdf 2021 ACM TOMS paper on the parallel - SuiteSparse:GraphBLAS (submitted July 2021, - revised Aug 2022) - The_GraphBLAS_in_Julia_and_Python_the_PageRank_and_Triangle_Centralities.pdf +-------------------------------------------------------------------------------- +Papers on SuiteSparse:GraphBLAS: +-------------------------------------------------------------------------------- + +toms_graphblas.pdf + + T. A. Davis. Algorithm 1000: SuiteSparse:GraphBLAS: Graph algorithms in the + language of sparse linear algebra. ACM Trans. Math. Softw., 45(4), December + 2019. https://doi.org/10.1145/3322125. + +CSC20_OpenMP_GraphBLAS.pdf + + M. Aznaveh, J. Chen, T. A. Davis, B. Hegyi, S. P. Kolodziej, T. G. + Mattson, and G. Szárnyas. Parallel GraphBLAS with OpenMP. In CSC20, SIAM + Workshop on Combinatorial Scientific Computing. SIAM, 2020. + https://www.siam.org/conferences/cm/conference/csc20. + +HPEC19.pdf + + T. A. Davis, M. Aznaveh, and S. Kolodziej. Write quick, run fast: Sparse + deep neural network in 20 minutes of development time via + SuiteSparse:GraphBLAS. In IEEE HPEC’19. IEEE, 2019. Grand Challenge + Champion, for high performance. See http://www.ieee-hpec.org/. + +Davis_HPEC18.pdf + + T. A. Davis. Graph algorithms via SuiteSparse:GraphBLAS: triangle counting + and K-truss. In IEEE HPEC’18. IEEE, 2018. Grand Challenge Innovation + Award. See http://www.ieee-hpec.org/. + +lagraph-grapl19.pdf "LAGraph: a community effort to collect graph + algorithms built on top of the GraphBLAS" + + T. Mattson, T. A. Davis, M. Kumar, A. Buluç, S. McMillan, J. Moreira, and + C. Yang. LAGraph: a community effort to collect graph algorithms built on + top of the GraphBLAS. In GrAPL’19: Work- shop on Graphs, Architectures, + Programming, and Learning. IEEE, May 2019. + https://hpc.pnl.gov/grapl/previous/2019, part of IPDPS’19, at + http://www.ipdps.org/ipdps2019. + +HPEC20_Python_and_MATLAB.pdf + + "GraphBLAS programmability: Python and MATLAB Interfaces", + T. G. Mattson, M. Pelletier, and T. A. Davis. IEEE HPEC'20. + +toms_parallel_grb2.pdf + + T. A. Davis. Algorithm 10xx: SuiteSparse:GraphBLAS: Parallel graph + algorithms in the language of sparse linear algebra. ACM Trans. Math. + Softw., 2023. https://doi.org/10.1145/3577195. + +The_GraphBLAS_in_Julia_and_Python_the_PageRank_and_Triangle_Centralities.pdf + + M. Pelletier, W. Kimmerer, T. A. Davis and T. G. Mattson, "The GraphBLAS in + Julia and Python: the PageRank and Triangle Centralities," 2021 IEEE High + Performance Extreme Computing Conference (HPEC), Waltham, MA, USA, 2021, + pp. 1-7, doi: 10.1109/HPEC49654.2021.9622789. diff --git a/GraphBLAS/Include/GraphBLAS.h b/GraphBLAS/Include/GraphBLAS.h index 506dd9ad63..e383227637 100644 --- a/GraphBLAS/Include/GraphBLAS.h +++ b/GraphBLAS/Include/GraphBLAS.h @@ -19,7 +19,7 @@ // This GraphBLAS.h file contains GraphBLAS definitions for user applications // to #include. A few functions and variables with the prefix GB_ need to be // defined in this file and are thus technically visible to the user, but they -// must not be accessed in user code. They are here only so that the ANSI C11 +// must not be accessed in user code. They are here only so that the C11 // _Generic feature can be used in the user-accessible polymorphic functions, // or to implement a fast GxB_Iterator using macros. @@ -110,24 +110,32 @@ #define GB_GLOBAL extern #endif -// GraphBLAS requires an ANSI C11 compiler for its polymorphic functions (using +// GraphBLAS requires an C11 compiler for its polymorphic functions (using // the _Generic keyword), but it can be used in an C90 compiler if those // functions are disabled. -// With ANSI C11 and later, _Generic keyword and polymorphic functions can be +// With C11 and later, _Generic keyword and polymorphic functions can be // used. Earlier versions of the language do not have this feature. #ifdef __STDC_VERSION__ -// ANSI C17: 201710L -// ANSI C11: 201112L -// ANSI C99: 199901L -// ANSI C95: 199409L +// C17: 201710L +// C11: 201112L +// C99: 199901L +// C95: 199409L #define GxB_STDC_VERSION __STDC_VERSION__ #else -// assume ANSI C90 / C89 +// assume C90 / C89 #define GxB_STDC_VERSION 199001L #endif +//------------------------------------------------------------------------------ +// CUDA (currently experimental, not for production use) +//------------------------------------------------------------------------------ + +#ifndef SUITESPARSE_CUDA +/* #undef SUITESPARSE_CUDA */ +#endif + //------------------------------------------------------------------------------ // definitions for complex types //------------------------------------------------------------------------------ @@ -138,7 +146,19 @@ #ifndef GXB_COMPLEX_H #define GXB_COMPLEX_H - #if defined (_MSC_VER) && !(defined (__INTEL_COMPILER) || defined(__INTEL_CLANG_COMPILER)) + #if defined ( GBCUDA_CPLUSPLUS ) + + // C++ complex types for CUDA + #include + #include + #undef I + typedef std::complex GxB_FC32_t ; + typedef std::complex GxB_FC64_t ; + #define GxB_CMPLXF(r,i) GxB_FC32_t(r,i) + #define GxB_CMPLX(r,i) GxB_FC64_t(r,i) + #define GB_HAS_CMPLX_MACROS 1 + + #elif defined (_MSC_VER) && !(defined (__INTEL_COMPILER) || defined(__INTEL_CLANG_COMPILER)) // Microsoft Windows complex types for C #include @@ -151,13 +171,13 @@ #else - // ANSI C11 complex types + // C11 complex types #include #undef I typedef float _Complex GxB_FC32_t ; typedef double _Complex GxB_FC64_t ; #if (defined (CMPLX) && defined (CMPLXF)) - // use the ANSI C11 CMPLX and CMPLXF macros + // use the C11 CMPLX and CMPLXF macros #define GxB_CMPLX(r,i) CMPLX (r,i) #define GxB_CMPLXF(r,i) CMPLXF (r,i) #define GB_HAS_CMPLX_MACROS 1 @@ -185,10 +205,10 @@ // NVIDIA nvcc #define GB_restrict __restrict__ #elif GxB_STDC_VERSION >= 199901L - // ANSI C99 or later + // C99 or later #define GB_restrict restrict #else - // ANSI C95 and earlier: no restrict keyword + // C95 and earlier: no restrict keyword #define GB_restrict #endif @@ -885,7 +905,7 @@ GB_GLOBAL GrB_UnaryOp // Unary operators for floating-point types only //------------------------------------------------------------------------------ -// The following floating-point unary operators and their ANSI C11 equivalents, +// The following floating-point unary operators and their C11 equivalents, // are only defined for floating-point (real and complex) types. GB_GLOBAL GrB_UnaryOp @@ -949,7 +969,7 @@ GB_GLOBAL GrB_UnaryOp GxB_CBRT_FP64, // frexpx and frexpe return the mantissa and exponent, respectively, - // from the ANSI C11 frexp function. The exponent is returned as a + // from the C11 frexp function. The exponent is returned as a // floating-point value, not an integer. // z = frexpx (x) z = frexpe (x) @@ -10737,7 +10757,7 @@ GrB_Info GrB_Matrix_exportHint // suggest the best export format // GrB_Matrix_serialize/deserialize are slightly different from their GxB* // counterparts. The blob is allocated by GxB_Matrix_serialize, and must be -// freed by the same free() method passed to GxB_init (or the ANSI C11 free() +// freed by the same free() method passed to GxB_init (or the C11 free() // if GrB_init was used). By contrast, the GrB* methods require the user // application to pass in a preallocated blob to GrB_Matrix_serialize, whose // size can be given by GrB_Matrix_serializeSize (as a loose upper bound). diff --git a/GraphBLAS/JITpackage/GB_JITpackage.c b/GraphBLAS/JITpackage/GB_JITpackage.c index 03939a49d1..39b88bc951 100644 --- a/GraphBLAS/JITpackage/GB_JITpackage.c +++ b/GraphBLAS/JITpackage/GB_JITpackage.c @@ -17,2833 +17,2842 @@ GB_JITpackage_index_struct GB_JITpackage_index [1] = {{0, 0, NULL, NULL}} ; int GB_JITpackage_nfiles = 217 ; // ../Include/GraphBLAS.h: -uint8_t GB_JITpackage_0 [56500] = { - 40,181, 47,253,160,169,243, 8, 0,132,208, 0,170,184, 80, 33, 45,160,142, 89, - 55,186,140,104,187,208, 76,190,242,248, 41,106,148,203, 60, 45,209, 69,224,238, -215,166,119,115,157,106,230, 22,219,144,128,117, 90,111,120, 29, 94, 7,167,195, -168, 25,230, 1, 24, 2, 25, 2, 30,235,181,107, 76,183,211,155,171,150,178,173, -236, 89,120, 75,183,159,102,229,199,118,190,157,238,160,116,126, 36,181, 44, 99, -223,151,244,179,221,127, 26, 86,178,165,116,203, 31,230,200, 83,203,241, 66,223, -208, 32, 61,114,157,161,243,214,232,241,227, 44,143, 77,181, 59,225, 95,173, 37, -112, 44,215, 9,113,233,124,248,246, 98,229,218,158,201,253,255,219,167,219,212, -186,131,241,133,161,222,123,235, 90,244,238,149, 73, 64, 25,124, 63,110, 28,217, - 66,109,118, 29,183, 94,136,218, 14, 68,115,184, 70,141,219,191, 27,123, 99,109, -122,215,206,200, 32,144,138, 47,204, 66,221,248,213,114,123,119,154,255,214,180, -200,205,225,107, 43,223,255,188,208,253, 56, 12,155,114,230, 79, 15,135, 40,141, -218,172,157,214,151,255,235,238,207,201,233,202,153, 36,131, 65,221,157, 31,254, -166,156, 88,181,250,109,252,233,141, 41,230,169,229, 71,181, 58, 3,176,213,188, -255,171, 51,222,106, 53,110, 58, 55,254,217,105,166,215,188,238,110,141, 92,211, -174,150,101,127,228,240,123,221,157,110,185, 58,111,108,215,184,195,237,167,189, -232, 27,183,103,254,183,119,232,183,121,127,108, 71, 78,143,117,238,126,183, 54, -141,158,249, 77,104,110,143,218,132,223, 90, 72,171,173, 69, 9, 50,218,203,178, - 39,237,116, 34,215,238, 26, 48, 79,223,157,208,173,145,223,109,232,246,244,232, - 97,217,119,122,147,214,143,239, 91,143, 70,174,206,255, 24, 62, 87,167, 79,175, -163,115,154,163, 81,182,172,125, 65,205, 53, 70,239,142,101,208,244, 27, 61,254, -219,223,157, 54,187, 15, 67,233, 81,214,120,127,179, 28,111,109,111,114,223,166, - 29,207,106, 28,249, 39, 75, 64,116, 71,113,196,123,110,243,214,150, 23, 68,127, -109,109, 82, 32, 56, 38,152, 73,182,199,251, 59,195,127, 59,110,102,152, 82,138, -225,132,196, 67, 2,194, 0,228, 33,193,146, 22, 49,252,233,137, 19,158, 40, 14, -117,215,122, 83,195,144,161,185,216,161,197, 14,119,119,217,237,198, 95,237,188, -179,206,173, 37, 71,186,137, 33, 34, 34, 24, 30,211,196,116,128, 49,138, 34,233, - 58,209, 51, 34,253, 30, 59, 88,223,249, 97, 28, 17, 17,150,230,218, 68,216, 35, -253,180,121, 61,118, 34, 25, 71,124, 76, 4, 38,200, 3, 18,128, 16,139, 85,185, - 62, 52, 49,213, 57, 77,147, 52, 1, 31, 80, 34,178, 48,145, 13,243,116,231,115, -228,239,247,109,111, 94, 8, 46,114,135,214,157,230,205,241,190,106, 63,215,169, -117, 91, 57,114,145, 32,203, 52,205, 83,153,186, 38,215,134, 37,203,170,106,195, -146, 49,109,254,143,118,180,251,237,210,149, 61,240, 0,150, 36,143,164, 40,146, -162, 8,194,227, 58, 84, 45, 86, 36, 38, 10,214, 52,238,195,248,172,228, 27, 45, -221, 24, 32,140, 93, 50, 21, 85,201, 48, 74, 35,227,136, 37,150, 17, 75, 19,122, -132,193, 81, 17,160,152, 88,240,205, 36, 38, 42, 12,140,235, 75,112, 55, 59, 43, - 28, 22, 69,246, 70,155, 78,190, 23,243,212, 77, 17, 88, 68,107,254, 89, 44,162, - 3,122, 84, 28,104,239,251,143, 12,148,138, 7,129, 2,144, 71, 69, 69, 5,132, - 35, 21, 21, 18, 16, 8,132,242,128, 68, 12,100,153,229,114, 97,147,172, 61,177, -179,146,155,139, 31, 87, 97, 3,249, 83,110,243, 81, 81,221, 41, 73,183,159, 80, -119, 48, 68,252,119,186,189,244,139,207, 83,127,196,202, 41,228,209,175,103,125, - 99, 88, 45, 87,151,134,210, 96,148, 74,142,178,140,171,187,133,252, 31, 43,235, -108, 16, 43,214,100, 46, 24, 14, 43,163, 80, 38, 25, 22,138, 98,193, 2,229,194, - 84, 46, 85, 70,177, 52,150, 43,139, 50,214, 70, 86, 97,149,108,234, 76,215,190, - 37,124, 57,109,181, 30, 67, 40, 73, 76, 96, 48, 50,108, 67,193,116,199,164, 18, -218, 53, 19,141, 28, 75, 61, 82,173,101,132, 66, 73, 46,148, 12,111, 58,183, 41, -171, 68,210,191,233,167, 29,128,161,161,155, 26, 64, 32, 16,135,103, 36, 16,195, -172,146, 17, 49,179, 4,138, 38,136,106,107,247,231,118,236,190, 63,182, 99,248, -180,171,119,135,127,154,102,191,173,244,158,212,163,183,135,251,173, 86,231, 51, -252, 88, 74,109,107,113, 83, 32,153,153, 25, 36,182, 42,151,198,178,201,100,154, -107, 65, 6,128, 5, 8, 96, 41, 98, 10,181, 97,133, 56, 64, 0, 6,177, 20,130, -160, 72, 66, 67, 85,222, 55,210, 8,201,176,132,162,104,168,138, 23,107, 59,231, -241,214, 73,173,229,112, 38,149,213,189, 19,116,147,157,242, 62,130, 16,135,101, -187,243, 95, 4, 96,208,200, 52, 48, 84, 38,131,183,150,117,155, 1,164,237,174, -127,247,219,238,127,118,122,168, 63,122,151,133,194, 28, 8,201,216, 78, 13,104, - 54,152, 78,163,184,174,103,101, 1,141, 74, 67, 85,176,139,170, 92, 38,111, 57, -159, 37, 32, 35,167, 61,251,108, 49, 49,185,236,215,145,200, 92, 48,153,108, 10, -147, 70,174,253, 16, 2,193, 23, 19,235,193, 69,161, 44,151,101,243, 95,236, 64, - 93,113,224, 97,128, 47,176, 13,165,193, 97, 49,244,183, 36, 1,206,136,130, 16, -190, 96,107,147, 69,106,132,148,246,135,225,131, 47, 24,195,172,170,218, 96, 21, - 24, 60,178,166,178, 22, 72, 46,153, 3, 13,166, 98, 77, 44,205,197, 98,129, 38, - 10, 79,199,179,215,227,106,236, 42,207,123, 95,237,144,156,114, 98,130,220,239, -201,237,214,227,237,123,254,248,217,110,148,254,221,118, 26,167,117,151,238,157, - 93,173,247,102, 33, 65, 24,130,165, 7, 5, 35, 64, 0,137, 88,138, 34,201,131, - 34,130, 4,100,128,219,217, 31,141,158,251,205, 57,135, 53,177, 88,240,231,246, -106, 63,189, 41,225,228,234,125,148, 63,214, 35, 32, 88,161, 46,140,225,245,230, -208,153, 49, 77,217,236, 0, 41,246,216,117, 82,120,179,117, 82, 92, 59,205,128, - 67, 94,123, 47,168, 56, 72,152,167, 14,205,186, 23, 37,212,150,112, 53, 58, 96, -234,177, 98, 24,125,182,219, 10, 59,244,219, 5, 53, 82, 58, 43, 90,133,239,181, - 26,246,247,198,138,246,209, 79,194,117,202, 16, 5, 35,176,226,255,233,121,119, -170,183,199,114,221,211,242,108,134, 19,203,197,128, 29, 88, 40,198,184, 38,150, - 75,197,153, 11, 99, 22,149,201, 80, 13, 52, 52, 87, 3,136, 93, 24, 37,225, 6, - 8,216,197, 63,167,108,143,159,187,217, 59,221,185,248,137,244,155,214, 77,196, - 71,112,110,167, 56,125, 62,159, 10,225, 70,230, 88,230,207, 58,104,173,198, 89, -167, 6,234, 80,244,248,179, 33,182,144, 26, 32, 52, 64,136, 24, 50, 75, 11,179, - 88,213, 69,105,168, 16,166,208,157,117,195, 21, 1, 20,127, 4, 53, 87, 45, 22, -192,211,212, 48,246,174,110,167, 39,204,211,127, 68, 68,164,115,111, 87, 33, 52, - 52,104, 54, 23, 9,197,241,251,236,112, 63,203,137, 14,144, 97,218,144,128, 20, -128,176,199, 90, 30,204, 44,217, 96, 19,150,235, 0,103, 46, 11,168, 10,195,199, - 4,107, 61,209, 80,147,134, 6,182, 42,148, 37,147, 36, 10,101,243,120, 60, 32, - 15, 18,231,123,232,182, 78, 15,186,149, 16,189,232,105,123,154,122,115,125, 57, -114,196,194, 50, 20, 6, 11,254, 93,237,243,251,247,211,245, 45,222,195,237,159, - 54, 1,145,168,144, 3,147, 43,147, 34, 54,192,192,178,209,168, 40,176, 9,101, -101, 52, 52,150,127,219,185, 72,218, 19, 35,187, 44, 61,242, 67,246, 0,235,247, -177,244, 43, 11,115,203,146,223,136, 53, 24, 37, 65, 56,226, 7,222,159,181, 99, - 86,230,106,189,109,205,213, 74, 14, 91,124, 40,126,104,140,184,250, 78, 8, 90, -111, 10, 49,222,215,240,158,176, 90,246,166,246,186,125,216, 14,222, 39,193, 97, -198,200,215,150, 21,156, 84,200,111,237,134, 14,210,164,248, 34,162,185, 76,154, -210,123, 39,117, 79, 68,195,114,162,230, 95, 7,130, 70,105, 45,183, 49, 81, 52, -182, 22, 59,175,125, 68,228,224, 59, 84,251, 33, 24,177, 92,176, 13, 42, 35,194, -159, 90,203,239, 14,122,187,143, 26,239,137,160,233,113, 36,170,152, 35, 14, 48, - 28, 20,198,241, 70,185,109,214, 25,130,126,223,206, 19,255,167,109, 61,157,147, -241,185,189, 95,148,162,159,254,117,231,159,221, 60,144, 7,122,160, 7,242,234, -100, 40,121,160,236,173,118,118, 19, 11, 68,201,142, 64, 46,199,233,217, 96,158, - 66,241,227,145,105,189,216,206,215,232,240, 39,196,199,251, 62, 55,205, 3,195, -185, 81,182,183,156,127,155,179,241,239,207, 7,117, 62,224,131,139, 89,241,215, -216, 30, 67, 46, 60,183,245,246, 67, 43,179,209, 84,155,140, 6,131, 12, 48,170, -242,192,130, 31, 23,149,197,131, 41,105, 96, 21, 93,112,130, 10,130,170, 94, 83, -199, 71,239,139,119,155, 92,113,133, 20,140,149,113,203, 26,202,134,194,176, 38, -145,201,237,244,196,174, 57,210, 78, 30,248,114,243,235, 55,213,207,121,227, 54, - 39,113,183,111,220,206, 80,131,210,205,154,194,252,136, 37,230, 44,123,136,248, -129,229,180, 30,168,221,102,168,121, 12,146, 24,108,141, 58, 31, 95,143,247, 27, -170,134,138,244,209,199, 86,108, 48, 25, 25,228,234,228,136, 6,131,202, 76,184, -126,134,229, 98, 80, 93, 40, 18, 75,229, 98,141, 30, 91,217,157,187, 53,237, 30, -242,164, 89,202, 97,254,188,143, 60,133,236,214, 28,102, 11,182, 27,195, 5, 6, -134,200, 20,176, 0, 54,177,116, 62,247,159,143,142,251,108,109, 14, 69,247,104, - 85,212, 85, 93, 24, 24, 27, 44,228,214,107, 79,194, 65,230, 82,177, 42, 25,198, - 37,251,216,218, 81,191, 71, 21,135,221,168,227, 57,130, 86, 66,134, 70,102, 36, - 73, 10, 25,198,147, 64, 16, 12, 16,143,148,141,136,131,121, 90, 31, 19, 65, 67, -113, 41, 40,200,164, 24,133, 51,132, 17, 98,136, 33, 36, 34, 34, 34, 34,129, 72, -144, 36,205, 3, 9,181, 66,116,230, 28, 96, 16,187,133, 68,102,176, 59, 18,110, -225, 88,211,169,196,241, 6, 60,168,219, 60,186,121,225, 69, 38, 77,153,201,202, - 39,152,100,198,237, 10,192,210, 79,120, 28,114, 38, 67,128, 65,133, 24,222,178, - 94, 8,163,119,145, 20,154,224,132, 17, 40,101,147,194, 98,118,132,117, 85, 92, -130,186,254, 32,186,178,138,127,196, 99, 26, 52, 84, 7, 10,133,182,152,255, 1, -253,205, 65, 49, 15, 31,230, 0, 55,194,252,222, 76,252,161, 20, 4,117,252, 83, -166, 43, 17, 14,188, 33, 45,133,208, 41, 86,217,128, 5, 28, 49, 87,147,100,177, - 47,246,203,102,215,130,131,208, 85, 45,211,195, 56, 29,204,248, 17,168, 18, 44, -178,133,117, 97,144, 72,200,141, 13, 17,185, 43, 60,191, 62,118,124,248, 19,191, - 63,113, 93,226, 24,194, 73,174, 41, 35, 94, 47, 89,209,221,168,130,125, 99,186, - 12, 12, 93,254,209,203,106,249,204,164, 99, 38, 15, 67,174, 11,219,161,230,137, -141,153,182,252, 69, 81,236,193, 28, 32,106, 41,141,240,196, 39,205,181,162,201, -148, 16, 4, 48,213,152, 0, 45,217,162,144, 24, 33,138, 63,117,166, 7,219,128, -213, 64,209,128,250,104,243,151, 66, 71, 14,236,132, 98,220,143,211, 5, 58,197, -149, 70,121,205,177, 59, 31, 68,166, 9, 85, 48,109, 71, 72,189, 10,190,101,137, - 89, 94,130,160, 15, 4, 14, 74,144, 73,182, 45,195, 17,105,235, 71, 1,213, 50, -155,215, 22,216,161, 81,135, 80, 73,187,253, 27, 41,245, 39,226, 71, 32,116,139, - 51,167,155,124,187,158,201,248,138, 66,144,109,131,212,209,175,153,118, 40,166, - 23, 23, 99, 97, 93,155, 15,183,149,159,174,157, 33,192, 41,174, 82, 93, 56,137, - 96, 89, 36, 59,201, 58, 24,179, 1,198,122, 51,195, 82, 58, 29,198,190, 3, 2, - 65,118,113, 73,142,177,247,212, 91, 65, 52,158,186, 20,155,152,241, 72, 10, 45, -241, 83,192, 11,129,235,201,118,132,149,167, 70,220, 26, 80,156,182, 82,170,140, -130,222,156,162, 37, 4, 5, 1, 85,154, 2,152,114, 72, 96,210,204,170, 94, 65, -250, 3, 98, 87, 21,237, 10, 12, 50,149,160,171,227, 29,244,208,239, 31,175, 77, -107,208,127,110,161,159,109, 74, 30, 16, 86,129,242,103, 93, 27, 72, 36, 48, 12, - 29, 88,238,255,117,211,109,196,150,230, 42, 93,159, 4, 90,173,100,253, 87, 89, - 30, 30,230, 16,154, 71,136, 50, 28,228,214,162,227, 5, 93, 31, 0,188,201, 15, -157,247,171, 10,124, 53,148,139,249, 7,202, 92, 80,141, 72, 39, 42,139, 95,166, - 99,125, 83, 78,133,199, 38, 55, 84, 97, 68,220, 6, 27,254,183,237,166,168,169, - 61, 78,206,243,158, 52,228,183,108, 83, 62,153,103, 78,170,168,204, 85,150, 56, -108,160, 74,248,239, 89, 40, 33, 79,123, 15, 80, 83, 37, 48,251, 62,194, 98,195, - 97, 73,170, 13,231, 75,247, 72,114,181, 42, 42, 1, 35, 43, 48,155, 67,210,251, -148, 32,213, 60,133,114, 52, 26,148,108,101,226, 94, 90,120, 46, 20, 3, 49, 78, - 3,220,125, 79,171,212,218,211,137, 75, 74,202,210, 63, 39,168,242, 65, 99, 59, - 30,193,169,223,139,198, 48,148,115,195, 22,236,103, 0, 27,180, 10,234, 81,238, - 13,214, 43,175, 82, 38,120, 37, 37, 68,249,180,153, 58, 30,208, 3,120, 70,116, -233,238, 4,229, 65,109, 90,139, 75,145, 68, 1, 20, 36,173,130, 86, 75,144,238, - 75,189,131, 82,178, 75, 80,149,161, 64, 99,134,126,207, 71,137,158, 25,204,140, -205,177,244, 84,254,169,147, 46, 85, 87,196,166, 82,192, 67, 91,234, 43, 1,107, -161, 61, 36,217,180,113, 30, 56, 22,200, 44,138,121,144,194,106, 38,199,173,235, -177, 11,120, 70,134,132, 45,182,169,208, 36, 78,170, 63,243, 52, 6, 49,174,128, - 47,169, 63, 11, 45,107,128,153, 27,226,128, 52,182,184,109,226, 19, 11,104,252, - 66,105, 64,157, 31, 96,234,250,246, 64, 2, 98, 4,100,159,199,141,254, 89,148, - 34, 91,145,154,110, 20, 49,196, 8,132, 98,210,135,175, 36, 61, 35,250, 67, 53, - 30, 13, 43, 80,152, 35,251, 89, 28, 84,115, 67,134,192, 52,229,211, 44,210,178, -135,103, 71,221,224,254, 41, 22,116,191,119, 82, 23,154,183,247,243,166,133,253, - 4, 87,185,100, 32, 67,192,145, 40,222, 8,165, 68,245, 68,244,132,243,153, 74, - 62,128,146,122,251, 35,214, 39,212,246,170,210,206,100, 72,139,195, 24, 90, 81, -189, 2,171,115,190, 45, 0, 70,153,213, 69,147, 12,186,104, 66,222,239, 3, 30, - 4, 12,197,177, 71, 87,141, 93,153,171,188, 58, 62, 4,186, 23,179,250,255, 88, - 17,115,136,127,166,206, 35, 34, 52, 77, 1, 91,183, 72,218,134,127,217, 62,197, - 13,244,129,135, 78,207,203, 43,242,241,223, 3,132,250, 23, 24,115, 36,237,217, -111,151,216,166,254,230, 96,158,129,241,160,209,140,245,146, 31,222,231, 92, 99, -249, 46,133, 60, 12, 30,138,150,150, 81,232,108, 16,181,143, 91,227,114,143,210, -193,150, 12,251, 54, 52,178,167,200,187, 80, 32,223,147, 10,216,194,210,175, 69, - 52,101, 13,253, 27, 65, 2, 31, 99, 29,198,218,147, 55, 29, 69,105, 57, 42, 88, - 28,201, 6, 89,142,103, 83, 67,102, 76,220, 82, 70, 88, 86, 69, 21,223,170,114, - 2, 53, 3,235, 57, 57,248, 49, 47,129,107,254, 63,111,213, 3, 70, 5,232,161, -172, 34,238, 17,153,161,215, 19, 54,106,138, 30, 28,132,110,136,139,198,136,222, -195,108,255, 25,218,199,188,210, 21,182, 33,253,167,148, 2, 65, 63,171,123,101, -201,188,169,211, 52,194,182, 56,187, 88,143, 51,218, 12,244, 49,101, 73,222,204, - 54,237, 21, 1,196,109, 10,173,162,125, 12,102,220,192, 71, 70,200,226,174, 89, - 76, 39,105,230, 23, 30, 7,120, 29, 61,100,171, 32,158, 51,145,107, 69,234, 44, - 11,227, 76, 72, 42, 41,101,123,145, 63, 80,152,213, 32,133,166,122, 40,137, 56, -236,231,240, 82, 0, 59,251,176,236,245,192, 15, 44,146,153,188,184,146, 0, 3, - 99,182,105, 31,137,122,201,219,139, 6,247,251,212,104,126, 1,201,103, 59,252, -205, 47, 13, 24, 92, 12, 99,226,172,195,247,171, 91,144,106,169, 70,102, 51,172, - 44,201,100,157, 35,231, 71,104,240, 59,251, 95,198,136, 64,231,123, 65, 45, 89, - 59,129, 28, 4,183, 55,134, 70,228, 45, 12,194, 12,197, 62, 82, 20,190, 74,242, -133, 75,124,239,170, 5, 13, 54,135, 49, 72, 1,193,103, 73,190, 47, 26, 64, 20, -223,157,158, 42, 38, 2,198, 68, 33, 25,182,177, 80,197, 71,216, 15, 11,206, 12, -182, 11,233, 47, 51, 47,141,237, 5,174,243,242,183, 92,144,142, 0, 0,207, 60, -188,151,177,226, 94,187, 28,251,251,247,196, 44,221,180, 6,228, 57,170, 14,129, -167,171,248,248,201,218, 71,113,136,171,166,154, 41, 61, 57,156,102,225, 22,231, - 6,191,219, 84,235,137, 74,100,161,164,240, 95,106,178,231,158, 58, 81, 13,209, -239, 65,146, 61, 34,126,163, 59,141, 16,153,151,141, 22,196, 83, 67, 81,213,145, -235,194,106,150,243,176,159,245, 89,192,175,140,125,223,212, 14,100,198, 46,125, -255,206, 52, 62,229,209,199,223,205,129,157,187, 12, 72,145,252,235, 88, 48, 60, - 52, 16,151,230,173,250,254, 82,103,172, 84, 20, 77,210, 5,155,113, 82, 85,212, -183, 70,190, 60,132,120, 8,159, 34,108,170,132, 54,251,120,193, 24, 32, 18, 11, -121, 33, 10, 26,151,189, 80, 88,100, 86,102,159,158, 73,195, 69,202,142, 81, 10, - 58,211,152,222, 22, 88,161,191,137,251,160, 24,114,193,173, 58, 50,200,162,183, - 7, 74, 94,190, 0,111, 4, 5, 38,221, 54,216, 8,219,191,122,247, 81, 77, 28, - 72, 38,175,141,112, 10,112, 29,168,225, 21,116,135,232,236, 53, 33, 84,147,219, -250,252, 25,217,148,141, 53,226, 14, 12,191,195,127,208,128,103, 68,181,219,190, - 38,247,138, 31,159, 32, 68, 28, 58, 86,108,109, 0,140,245,102,116,108, 6, 29, -182,190,208,203, 54,160,251, 41,248, 56, 26, 82,132, 36, 22, 2, 87, 27,152,199, -136,224, 44, 5,180, 31, 7,213,209,218,173,160,223, 18,163,108, 13,167, 43,105, - 76, 28,243,110,238, 7,246,226, 7, 17,180,177,135,176, 7, 83, 65, 44, 13, 6, -158,146,150,162,246,169, 26,242,181,173, 69,225, 19, 77, 45,112, 86, 34, 70, 19, - 16,146, 55,107,176,199,254, 77,248, 14,169, 9,185, 49,105,221,194,117,194,155, -116, 44,148,242,202,208, 15, 26,183, 86, 83,245,216,105,143, 17, 9,121,225, 52, - 11,137,185,164,237,156, 4,126, 0,120, 4,243,237, 70,128,211, 54,216,203,253, - 24,220, 66,122,182,210, 41, 19, 22, 27, 72, 37,182,120,126, 59,176, 76,191,246, -159, 1, 83, 5, 20,103,175,224,115,140, 99, 6,136,235,163, 25,205,131, 19, 10, - 94,247, 51, 68, 78,122,173, 0, 32, 15, 92,231, 86, 80, 12,237,176,145, 74, 27, -178,104, 71,174,168,138, 4,153,122, 44, 37,252,193, 35,240, 2, 27, 43, 12,235, -139, 70,146, 1,230, 63, 41, 36,164,160, 61,122, 86,235,127,156, 49,195,241,186, - 12, 51,215,188, 72,239,172, 70, 76, 79,126, 44,185,241, 19, 5,140, 28, 22, 4, - 81, 63,238, 93, 30, 78,154,110, 20,141, 85, 1, 24,106,226,121, 47, 21, 46,115, -134,226,214, 43,136,175, 45,232,241,105, 0,187, 64,135,174, 42, 45,138,223, 16, -224,159,128, 63,217, 10,128, 48,245,155,130,187,125, 38,225,206,255,174, 75, 41, -134,224, 57,176,166,223,204, 12,196, 90,255, 88,209,181, 87, 51,205, 54,228,128, -181,188,207, 24, 16,204, 19,198, 36, 73,241, 30,241, 22,186,168,238, 70, 9, 88, - 23, 31, 88,229, 41,145,212,141, 97, 87,229,207, 3, 57,219,195, 1,156, 80,155, -204, 79, 55,116,186,185, 47, 21, 33,186,117, 37, 19,247,129,250, 46,125, 96,174, -185,118, 37,217, 51,232, 72, 62,182,134, 43, 44, 15, 32,226, 30, 75, 36,102,242, -120, 86, 69,241,114,122,162,136,147, 22, 91,209,246,163, 55,114,139, 84,215,177, -109, 82,218,145,222,125, 48,255, 4, 33,135, 98, 60, 89,252,161,160, 97,117,135, -151,246,174, 48,229, 9, 23,128, 43,204, 44, 37,231,198,106,163,135,169,229,164, -157,147, 20, 36, 67, 2, 2,152, 47,187, 94,139, 24,103, 82,204, 26, 42, 73, 34, -175,144,242,206,172,236,162, 21, 7,116,171,206,167, 69,175, 18,223,171, 96,207, - 40,179,199,150,241,101, 58, 87,135,113, 70,169, 61,250,234,181, 63,251, 97, 94, -185,244,167, 43,165,184,128, 47,114, 2,200,148, 92, 79, 74, 13,148, 80, 52,164, -187,233,135,202,244, 77, 20,150, 64, 18,185, 47,174,152,169,152, 69, 16,206,117, - 7,223, 38,226,214, 81, 6,117,103,113,125,227,214, 66, 56,141,135,227,166, 89, - 17, 23, 52, 30, 58, 56, 91,129,127, 21,179,222,180,166,254,249, 49,207, 31, 97, -153, 46, 4, 16, 53, 90,162,247,145,198,103,125, 65,165,173, 38,199, 80, 14,158, - 7, 15,215,241,129,167,135,196, 54,152, 0,182, 19, 83,108,244, 59, 9,217, 83, -188, 47,191,135, 37,131,170,126,114,202, 58,161, 46,247,137, 74, 48,101,227, 30, - 77,143, 97, 77, 22,115,200, 82,118, 10,180,104, 99,222,248, 50, 64,164,116,154, -120,123,163, 75, 63,169, 76,147, 21,204,130,206,144,157, 83,246,184,226, 90, 75, - 68, 38,118,208,202,192, 17,194, 3,188, 6, 76,157,163,163,219,138,118, 76,112, - 94, 16, 21, 71,117, 17,162, 76,235,228, 3, 60, 74, 28,157,196,100, 55, 18, 63, - 80,113,198, 62, 73,134, 58,124,137, 7,168, 69,212, 48, 66, 97,140, 96,153, 32, - 66, 16, 8, 67,105, 7, 55, 49, 10,211,193,208, 90,112, 89,102, 60, 68, 22, 89, - 6, 71,183,222, 30, 81,154, 99,191, 71,150, 95, 25,115,119,105, 25,110,146,117, -141,197, 55,137,160, 29,132, 81,250, 55, 62,215,255,198, 49,221, 58,214,253, 4, -127, 75,138,189,244,221,140, 79,111,178, 4,102, 44,133,126,194,192,254,152,184, - 40, 33,162,229,144,124, 81, 45, 66,153, 41,108, 80,215,139,126,145,161, 3,222, -229,164,136,141, 50,251,255,168, 17,118, 53,182,162, 16,194,110,149,224,117,163, - 38, 17,235,243, 79, 38,253, 98,226, 52, 86,134, 90,236,100, 43, 49,158, 41, 5, - 61,153,111,178,135,106, 71,156,173,188,232,135,146,143,148,198,126,133, 34,199, -187,117,171, 24, 88,159,224, 37, 21, 96, 44,150, 82, 26,152,200,131,106,198,240, -165,120,130, 48, 32, 58,231, 37,134, 72, 55,192,207,152,199,224,132,200,160, 90, - 9,155,148,166, 18,147,125, 33, 74,221, 78,161,153,188,197,164, 44,214, 39,142, -116,184, 27, 65,140,212, 83, 31,238, 52,110,136,249, 43, 64, 21,187,176, 9,169, -199,248, 91, 81, 42, 74,230,165, 33,130,123,121, 22,165,221,138, 55,208, 94, 2, -120, 3,117,249,101, 7,161,132,167,140, 40, 11, 94, 82,233,213,168, 20,120,106, - 33, 93, 46, 85,211,182, 90, 72,149,233,217,250,135,204, 66,117,221, 34, 30,149, -163, 38,107,116, 83, 75,242, 3, 21,208,152,250, 70, 49,120, 77,133,141,248, 76, -198, 77,214,250, 22,160, 78,122, 92, 7,167,156, 85,203,220, 63, 54, 1,138, 68, -205, 35,105,188, 7, 10,114,242, 64,137,156,144, 89, 99, 70, 20,190,146, 39,190, - 6,190,235, 79,199, 12, 42,150, 32, 67, 73,204,133,149,142, 93,231, 44, 6, 52, - 31,143,104,208,152,229,172, 90, 95, 41,134,220, 56,212, 81,181, 52,105,187, 56, - 83, 40,109,129, 89, 27,155,183,171,205, 54,236,250,225,174,109,201,228, 83,244, -190,108,133,139,185, 79, 86,182, 57,219,176, 65, 70,198,189,118, 70, 57, 51,124, -200,234,239,244, 17,193,139,183,106,113,197, 88, 55, 36, 27, 72,192,121, 97,221, -223, 51,210,195,169,165,253,104,147,194,190, 79,118,167, 96,150,120,159, 92,143, -223,161,189, 18, 4,106, 95,134, 47,158, 9, 17,116,205, 70,133, 26,252,175,195, - 82,156,184, 78,179,173,182,221,104, 98,125, 60,190, 9, 28,131, 46, 88,225,162, - 63, 41,156,198, 64, 69,132,134, 9,173, 23,106, 25,217, 57,217,234,143, 56, 84, -238,139, 26, 65,184,127,180,211, 31,121,215,152,152,203, 41,158,225,141, 61,100, - 74, 64,144,173, 16, 94,155, 21, 70,190, 75, 92, 46,228, 90,116,112,115,107,219, -196, 97,185,158, 64,252,243,146,251, 78, 78,240, 91, 1,224,203,118, 27, 16, 64, - 90, 19,134,218,164, 66,106,205,197,143,164,115,212, 18,152,255, 55,184, 78, 43, -198,160,138, 8, 36,180, 84,143, 69, 41, 57,226,248,230,130,195,192, 0,222, 56, -177,223,236,220,103,141,180, 39,254,156,190, 59, 74,217,133, 3,228, 82,114, 84, -192,143,120,236, 39,136,117,182, 70,153,100,147,111, 76,225, 63,222,215,249, 57, - 51, 54, 37,231, 19,245,244,226, 46, 18,109,213, 53,199,193,132, 95, 52, 50,187, -172,154, 66,200,218, 7, 44,151,251,231,115,169,235,142,133,245, 94,103,227,221, -209, 79, 81, 96,149,237, 2,173,144,211,123, 6,240,118, 81,151,253,221, 99,132, - 95,160,174,107, 79,141, 13,160, 75,206, 54,175, 33,157, 47,120,188, 43, 2, 88, -155, 0,133,238,109,238, 0,145, 82, 28,164, 7, 69, 39, 32,160, 99,155,205, 10, -164,172,209,218, 17,105,190, 68,132,157,174, 57,204,119,215,165, 44, 19,219, 29, -227, 79, 99,200,152,115, 98, 58,208, 77,115,153,145,178,253,202,195,252,103, 79, -161,116,138, 46, 47,153, 69, 97,229, 82,252, 50,125,128,167,206,225, 88,105,186, -230,189, 69, 43,133,171,137, 6,189,140,153,189,225,247, 62,182, 98,167, 41,123, - 54,203,118, 84,245,116, 17,232, 43,187, 0,222, 52, 55, 52, 27,219, 36, 12,137, -123, 74, 90, 62,239,163,145,155,204,174, 79,122, 77,233,148,185, 21,103,132,110, - 54, 3,180,186, 68,203,158,188, 29, 5,214, 95,163, 86,177, 77, 36,188,211,100, - 78, 96, 94,185,138,135, 4,187,197,215, 50,242, 10, 33,186, 82, 63,139, 91,160, -104, 31, 40, 69,174, 80,204,155,166,166,131,250,114,133, 84,175,200, 58, 36,180, - 68,229, 70, 72, 3, 44, 21, 25,243, 38,168,131, 40, 53,183, 75, 21,138,111, 81, -178,244,220,209,198,252,193,207,199,144,130,122, 28,161,105,179,120,219,246,134, - 85, 64, 33,210,157,162, 69, 23,225,212, 35,248, 8, 15,197, 14, 26, 70,218,239, - 53,134, 26, 45,174,212,115, 54, 40,122, 10,154,107, 89,140,128,241,227, 11,183, -203, 39, 97, 84,159,192,225,172, 93, 90, 9,197, 25,192, 80,244, 75, 84, 15, 80, - 19,113,230,244,212,166,149,107, 60,198, 59,223,194,166, 7,251, 1,215, 39, 11, - 23,114,123, 65,240, 82, 7,222,176, 6, 69, 81,162,114,158,161,123,194,157,178, - 14, 33,101, 67, 68, 65,160,200, 83, 97,194, 22, 90,215, 43, 0,200,124,115,239, - 86,122,246,159,105, 44,225, 56, 8,171, 15, 4, 87, 27, 44,116,169, 1, 12, 77, - 49,112,147, 94,115,135, 75,233,255,100,235,245, 8,184,113,181,104,185,203, 18, -158,200,126,139,136, 50,146, 72, 14,134,252,191, 46,226,122,125, 52, 36,161,223, -159, 22, 81, 31,172, 10, 54,242, 50, 15, 94,209, 84, 11,137,135,139, 31,200,136, - 2,229,207,193,248,248,214,237,246, 18,193,118, 17,210,252,150, 70, 99,117,247, -157, 45,166,213, 64,229,156,141, 23,107,231,251,192,245,110,127,235,204, 7,100, -155,246, 3,184,215,231, 38,161,233, 62, 92,222,201,202,144,253,222, 12, 16,137, - 12,219, 38,231,182,232,145,214,215,250,188,206,251, 10, 68,232, 94, 30,254,113, - 39,172,210,104, 15,184, 26, 92,213,247, 64,160, 60,150, 91,134, 98,105,246,205, -213,110,184, 88,198,129,211, 34,223,234, 13,231, 49,184, 81, 54, 51, 0, 14,208, -150, 31,140, 41, 96, 17,201,115,226,222,192, 38, 24,137,249,138,154,112,155, 81, -246,111, 0,109, 66,251,127, 32,154,177, 13,179, 26,227, 37, 29,158,213,243,251, - 35, 10,200,120,112,129,251,230, 81, 23,193, 88, 19,224, 88, 11,156,207,198, 4, -248,157,186, 79,103, 10,241,166,109, 68, 78,139, 24,195,227,193, 44,121,189,147, - 78,148, 96, 31,195,208,139, 60,184,119,241, 17, 34,227,206,225, 11,146, 43,125, - 45, 91, 3, 44, 35, 98,164, 61,102,131, 2, 30,191,201,209,103,244,104,198, 2, - 84,167,229, 35,217,253, 71,126, 92,192,154,126,192, 27,249, 67, 1, 33,157,122, - 54, 49, 30, 19,146,250, 84,102,118,220,204,184,176,134, 87,128,216,253,158, 52, - 13, 10,124,229, 81, 22,204, 11, 22, 27,189,236,246,205,234,172,145, 46,168, 22, -103, 99,175, 39, 59,125,125, 95,240,123, 80, 5,170,251,163, 41,185,235,221, 80, - 50,126,182, 95,234,191,148,113,236,166, 32, 7,237, 9,132,135,181, 58,131,173, -234,170,165,210,105, 60,130,163,232,199,164,119,106, 25,209, 83,101, 78, 92,219, - 85,165,107,126,122,215, 55,155, 81,186,172, 78,215, 28,128,191,247,224,139,237, -177,127,226,129,124,233, 14,240, 16, 76,205, 88,183, 83,171,120,142,211, 13, 42, -132, 36,106,221,255,221, 18,221,157, 68, 27,103,147,165,251,111,151,161, 96,210, - 23, 26, 47,240, 17,243,191,111, 40, 0,225, 96, 41,137,195, 16, 52,226, 14,172, - 51, 10, 30,177, 37,237, 93,189, 81,104,115,184, 63, 25,159,177, 66,104,208,113, - 44, 63, 85,202, 8,253, 96,237,125,139, 20,249, 4,138,167,103,241, 23, 73, 3, -156,137,157,110,193, 10, 37, 2,212,103,166, 10, 52,140, 33, 51,165, 74,155,125, - 55, 8,104,173,171,218,130, 55,233, 31,126, 33, 74,118,129,234,213,169,143, 90, - 13,166,166, 62, 50, 39,210, 6, 93,196, 20,128,255, 33,193,120,205, 82,162,196, -158,120,156, 65, 80, 10, 55,165, 13,191,251,211,135,128, 98, 39,220, 74, 48,218, - 99,154, 24, 29,126, 51,164,121,230,224,223, 8,177,147,182, 26,188, 29, 21, 51, - 17,113,220, 27,218,167,171, 87, 4,193,107,210,100,159, 46,225, 27,203,153,132, -126,163, 19,247,245, 42,182,171,250, 77,251, 52,190,137,244,157,132, 58,130, 89, -105, 68, 0, 21, 51,164,163,135, 58,157, 5,210,246,122,241, 72,146,190,121, 43, - 35, 42,198,236, 44,155,247, 48,232,139, 46, 63,180,230,138,212,220,125,191,219, -110,225,122, 81, 1,195,179,244,208,113,106,137, 85, 89, 72,206, 94, 32,133, 61, -250,250, 79,139,255,132, 39, 82, 36,176,196,174, 71,196,173,110, 16,231,168,167, -114,189, 78, 81,178,235, 4,132, 72,218, 32,125, 9, 5,103,102,174, 36,160,159, -111, 83,129,153,192,133,115, 88,100, 71,124, 20,168,170,209, 75,212,252,119, 53, - 76,116,241, 79,171, 24,213,141,230,225,140,178, 24,205,160,230,189,166,232,250, - 83,106, 23, 55,181,215, 61,182,213, 43,234,231, 32, 8,127,206,168,130,137,149, -186, 0,232, 6, 76,143, 0,134, 52,164, 40,208,206,204, 3,200, 4, 1,156, 94, -173,164,200, 3, 31,251, 0, 31,108,200, 49,152, 78,191,141, 23, 70,133, 74,175, - 26,111,210, 28,186,140, 82, 15, 71,169,152,151, 0,152, 0,150, 0, 63, 59,255, -209, 91, 47,205,136,179,112,244, 34, 83,169,252,217,127,242,255, 76, 43, 67, 47, -149,179, 79, 62, 67, 81,174, 99, 88, 65, 19,178, 65, 82, 73,170,221, 65, 64,232, - 94,163,105, 22, 54,146,248,179,234,216,187,140,239,103,223, 26, 90,173,165,232, -197, 81,172,123, 95, 25, 91,149,231,163,225, 88, 51,157, 96, 28,246,216,126,195, - 56,238,129, 97,143,199,172,186, 14,198, 89,168,255,175, 30,192,226,208,169, 98, -126, 68,194,185, 64, 12,254,245,164,231,233,243,177, 95,233,174, 58,244,220,105, -250, 74, 90,208, 17,119, 48,143,223, 33,219,127, 72,158,232, 15, 40, 80,228, 35, - 61,184,143,156,106,106, 70, 2,239,185,184, 79, 50,139,166,131,197,223,151,212, -192,193,112,244,223, 13,121,106,163, 49, 27,141, 57, 16, 49,244,205,132,146, 22, - 93,252,140,159,252, 68, 68,226, 57,198,182, 30, 5, 49,136, 80,221,163, 34, 19, - 65,242,148,143, 16, 68, 38, 73, 53, 41, 85,119,163, 65, 41, 21, 37,122, 55, 21, -134,228,157, 58,215,253,209, 76, 65, 31, 2,164, 2,237,207,173,225,115, 42, 70, -253, 82, 61,231,148,200,104,127, 92, 64,226, 17,111, 60,223, 59,215, 11, 11, 34, -227,223,246, 87,179,245, 72,209, 83,254,235,128,120,138,190,178,109, 28,221,171, -121, 95,237,145,250,130,234,215,218,226, 29,122,244, 45, 78,194,180,167,244, 51, - 87,199,105, 88,150,185,116,107,252, 93, 11,225, 96,180,110, 99,224, 30,242, 59, - 91,104, 41, 18,189, 20, 53, 88, 59, 68, 95, 83,108,109,121,192,165, 53,196,184, -226, 8,225,176,218,144,171, 88, 50,173,106, 27,218,214,219,100,136,255,235,197, - 34,185,241,245,180, 71, 1, 56, 54, 59, 45,211, 92, 51,162,203,116,153, 37,225, - 83,239, 87,109, 69,219,183,149, 30, 79, 9,120, 30,125, 64, 65, 69,241,146, 91, - 16, 36, 59,173, 47, 79,121,199, 52, 77,183,138,228,135,126, 61,172, 23,163,174, -153,151,124,150,160,117, 63, 32, 72, 41,159,124,107,212,122,166,183,161, 82, 25, - 79, 14,105,110, 77,235,227, 43,205, 25, 14,153,132, 94, 48,241, 78,241, 78,240, -160, 89,184,142,219, 50, 31,194, 35,157,212, 92,233, 58, 91,230,226, 68, 6,149, -254, 10,176, 88, 19,250,236,125, 90,207, 86, 56,231,156,243,114,196,115, 3,242, - 89, 78, 48,226,207,203, 89,206,233,165,239,190, 52, 69, 3, 3,151,154,253,165, - 23,188, 86,219,237,194, 92,155,204,101,217, 50,253, 80,209, 90, 11,153, 70, 97, -129,216, 28, 34,158,251,214,139,169,214,118, 95, 42,214, 12, 86,118,246, 46, 91, -119,109, 54, 23, 70, 3,230, 77, 69,145,126,194, 76, 57,143,170,218, 64,198, 71, - 85,137, 16, 44,219, 54, 77,211, 92, 52, 25, 11,246,221,140, 67, 91,191, 77, 67, -134, 81, 0,129,174, 44,135,222,168,211,156,177,170, 77,210, 1,179, 3, 17, 12, - 48, 10,203, 99,114, 49, 12,115,241, 3, 83,112,146, 88, 29, 36, 5, 10,162, 32, - 96, 66, 36, 66, 24, 49,132, 17, 66, 8, 17, 9, 68,132, 68,164, 36, 82, 7,240, -222,156, 90,168, 62, 41,195, 22,225, 59, 68,183, 89, 3,199, 72,187,181,171,194, -187,148, 67,151, 6,212, 69,102,109,208,196,193, 57,172,108, 27, 36,198,206, 38, - 90,175, 26,173, 40, 2,115, 36,237,144, 94,189,241, 49,252,136,143,234,194, 67, -188, 68, 52, 98, 66,103,201, 8, 79, 23,255, 22,201,118,197, 21, 35, 71, 75, 70, -202,101, 18,194, 91,157, 6, 74,104,163,175, 6,213, 19, 93,214, 10,227, 92,162, - 53, 1,242,211,170, 25, 30, 41,227,153,108,149,171, 75, 20,107,236, 49,122,207, -212,161,106, 22, 95, 10, 25,117,183,105, 90, 75,139, 22, 49, 20,209, 82,103,148, - 42, 39,141, 21, 36,138,232,103,184, 90, 54,224,173,249,136,194, 72,133, 54,224, -143, 84,117,171,199,120, 99,201, 86,250, 82,101, 52, 95, 49,142, 83, 92,232, 16, - 72,139,238,215, 76,189,223, 22,219, 14, 77,203,221,214, 21,132,161,253, 68,147, -184, 77, 71,228, 57,126,196,252, 79,227,136, 28,229, 0, 41,136,247, 0, 84,210, - 15, 25,249, 36, 16, 43,132,244, 31,215, 77, 37, 2,200,120, 91,196, 78, 54,124, - 13, 8, 54, 99, 83,244, 11,224, 30,210, 2, 70,150, 13,244, 99, 65,219,204, 90, -210, 15,142,188,172, 93,160,159,172,121, 55,138,126,172, 49,190, 45,122, 14, 56, - 26, 84,163,123,249, 99, 19,209, 65, 62, 85,217, 0, 93, 57,136,139, 78, 5,216, -216, 66,114, 14,131, 95, 67,151,175,141,119, 93,167,247,154,162, 16,154,183, 30, -121, 77, 46, 52,200,215,238, 16,106, 1,242, 53,195,173,197,219, 90, 93,151,197, - 28, 80, 12,234, 14,182,188,220,245, 40,196,136,129,102, 4, 83, 83, 57, 79, 72, -230, 11, 47,135, 70,229,116, 51,177,173,127,221,210, 1,194,215,252,181,131,223, -244, 95,209,199,158,173,163, 8, 64, 32, 76, 72,224,176, 41,213, 55,146, 7,189, - 67,184, 45,162, 8, 54,170,195,122, 84,176, 18,197,249,209,135,162,255,232, 73, - 44,234,110, 40,249,160, 49, 32, 63,195, 57, 11, 1,149,120,240, 88,104, 8, 50, -124, 68, 98,150,137, 42,185, 93,223, 81,187,212,255, 16,103,122,237,237,239,240, - 35,186,225, 65,140,222, 29, 61,223,187, 58,216,169,237, 1,241,201,227,210,202, -159, 28,168, 79,250,249,255,225, 87,218,111, 54, 52,168, 25,214,126, 86,114,139, -102,255,106,244,177,163,203,219, 88, 70, 30,223, 88,120, 16,203, 74,104,204,184, - 66, 53, 68,113,255,126, 99,169, 17,112, 38,159,211, 26,211,230, 96,183,229, 66, -202, 52,187,108,167,178, 65, 9, 80,201,171,139,206,199, 34, 75,148, 75, 39,154, -154,179,135,117,149,167,135, 93,184,125, 55, 28,230, 96, 33,247, 49, 52, 24,172, - 68,103,220, 4,202, 72,170,224, 15, 54,208,212,183, 9,229,176,129,220, 99,230, -185, 97, 97, 54, 88,105,150, 43,224,179,194,192,106, 12,113,151,112,211,103, 64, - 61,199,118,161,241, 5,125,101, 20,143, 83,113, 85,224,167,118,211, 43, 71,130, -108,163,139, 46,122,167,168,209,112,230,143,114,215,234, 68, 90, 93, 92, 94, 19, -123, 42,152,134,128,130,244, 50,250,158,211, 5,205, 62,217, 34,125, 10,114, 79, -229, 86,100, 9,101,188,139, 50,210, 47, 68,102, 8, 72, 37,194,148,117,209, 60, - 5,131, 3,205, 79, 36, 97, 36, 48,121,178,205, 20,225, 2, 95, 82, 50,191,138, -221, 49,207,183, 55,203,195, 99,153, 66, 3,157,234, 5,250,248,214, 22, 15,131, -167, 12,244, 59,160, 84,122, 56,147,205,204, 83, 42, 89, 42,221,200,193,159, 56, -158, 24,138, 65,197, 50,138,120,148,209, 4, 5,210,153,153,109,149,236, 44,123, - 78,173,198, 47, 58, 93, 75,164, 64,136, 26, 77, 69,249,151,245, 92,127,198,188, -154,101, 79,178,189, 60,141, 76,237,244, 38, 99,206,232,163, 45, 33,188, 62,119, - 21,127,106, 23,156,150,177, 4, 41,105,243,207,207,149, 28, 99,236,222, 43,193, -155,160,187,248,135,186, 76,240,240,174,124, 67, 31, 53,221,195,220,254,140, 67, -233,198, 16,141,114,198,243, 6,119, 77,171, 27,130, 1,176,207,160,142,178, 18, -204, 21, 43,117,217,192, 33, 21,162,111,244,223,207,246,129,101,192, 1,120, 32, -127, 35,160, 28,235,206,229, 21,214,148,137,133, 75, 95,220,245,150, 10,195, 56, - 69,130, 92,167,190,248,145, 30,192, 52, 65, 72, 5, 5, 20, 82,160, 65,197, 39, - 99, 4,191,216,185, 99,231,132, 0, 90,174, 36,236,127,252,198,123, 39,192, 57, - 48,116, 89,188,240,159, 36, 51,205,119, 0,172, 38,142, 64,108,154,144,107,130, - 78,106, 82, 33,150,173, 76,212,116, 71,226,177, 0,173, 25,210, 26,152, 22,107, - 11, 95,137, 9, 75,125, 34, 19,141,228,219,135,182, 75, 92, 42,216,203,236,101, -251, 37,240,141, 94,194,207,176, 38, 15,160, 55, 96,172, 42,146, 74,141, 23,216, - 29, 81, 33, 55,110, 15, 93,105,190, 59, 21,138, 99,153,101, 48,221,243,126,137, -166, 60, 59, 99,215, 19, 36, 20, 12,138,169, 12, 21, 90, 5,193,202,192, 21, 43, - 79, 44,184, 67,226, 84,241,157, 91, 34,133,116,197, 99, 28,182,146,220,202, 60, -135,200,180, 40, 34, 20, 79,186, 34, 48,174, 9,161,127,152,196, 33,128,163, 89, -137,179, 42, 65,188, 91, 27,147, 76, 83, 52, 0, 56,204,164,249, 45,249, 10, 81, - 48,197, 5, 16, 63, 32,109,226,246,141, 10,212,170, 50,168, 43,196,131,206,236, - 46,163,253,141, 32, 52, 16,214,200,160, 29,218,203,104,146,151,145,161,180,246, -170, 6, 73, 59, 43,179, 90,184,200, 39, 93,136, 47, 75,198, 17,151,170, 10,155, - 97,144,253, 98,158,128,108,178, 74, 83,148, 54, 28,193,252, 93,210,161,159,254, -220,247, 61, 58,188,189,136,139, 12, 5,156,136, 24,143,164,169,136,223,255,170, -153, 84, 65, 90,154, 76,160,202,158, 28,228, 59, 72, 63,195,234,184,178, 52,166, - 67,113,102,137,148,238,165,102,116,169, 39,184,223, 26,100,204, 30,128,180, 98, - 81,239, 76,175, 98, 26, 99,113,223,189, 68,117, 91,250,248, 90, 90,240,147, 25, -108, 99,233,109,181, 34,145,115, 35,152,213,181, 49,202,236,139,119, 10,174,229, -175, 66,141, 80,214, 67,146, 32,198,153, 69, 60,128, 43,234,243, 94,203,198,246, -145,180,130, 22,165,217, 69,233,235, 49, 82,105, 19,232, 27,238,173, 74,164, 57, - 36, 85,208, 20,140,243,255,161,228,110,240,106,228,114,228,226,191, 37,144,114, - 67,197,150,197, 98, 0,101,252,134,235, 43,226, 33, 3,179,143, 23,103,250,112, - 18,105,109, 20, 63,137,202, 84,133,122,191,200, 76,124,120,120,136, 70, 18,171, -102, 27,250, 10, 96,139, 81,184, 47, 50, 45,251, 74,106,213, 18, 58,189, 99, 13, -245, 0, 35,193,184, 17,103,175,220,208,189, 10,177,117,238, 69,206, 80, 37, 68, -200, 18, 7,212,190, 26, 30,149,240, 72,212, 83, 96,140, 98, 30, 59, 76,250,171, -227, 41,254,142,228,153, 18,150, 0, 0, 25,123, 53,140,160, 70, 11,220,147, 52, - 2,214,220,224,127,239,149,209, 34, 15,159,126,107, 30,199,231,233,158,136, 72, -242, 90, 93, 3,199,185,196, 48,226,152, 97,133,212,130, 42,194,196,184, 74, 89, - 79,184,156,173,245, 85, 29, 31,152, 46,134,152,107,178, 84, 36,171,161,193, 27, -127,245, 24,218,146,152,200, 40,234,172,244, 53,232,172, 51,125,204,138,182,213, - 73,112, 77,166, 13,237,186,128,149, 98,255, 33,239,134,132,126, 97, 67, 71, 66, -160,159, 39, 93,239, 50,102, 50,106, 99, 33, 81,210,129,106, 52, 74,131, 88, 42, - 73,135,189,250, 16,103, 85, 66, 47,101,251,124, 26, 16,133,217,210,148,168,144, - 65,191,190,154, 97, 84, 69, 22,137, 21, 6, 26,239, 50, 88,157, 18, 21, 38, 89, -178,249, 92, 52, 48,163,150,219, 27, 87,166,246,136,202, 84, 70,253, 24, 20,201, - 43,118,121,202, 72, 36, 95, 41,156,101, 66, 73, 46,206,212, 76,101,227,190,248, -245,196,230,109, 72, 13,144, 15,126,214,156,247, 15, 32,133,189, 34,140, 77,228, -235,198,146,102,231, 34,169,100, 58, 44,230,204,227, 14, 4,218, 4,173,114,130, -111, 57, 19,246, 19,254,241,248,148, 26, 74, 31, 38,104,243,122,239,209, 57,248, - 81, 55, 23, 25, 37,135,217,191,233, 66,190, 61, 5,132,124,152,193, 2,184,157, -102,109,143,118,228,145, 34,207,133, 59, 84,164, 15, 47, 63, 57,129,179, 49,118, -185,106, 20, 36,122, 93,102, 43,247,193,178,207,136,134,171,177, 76, 65,246, 35, -125,225,133, 89, 23,200,124,218, 48,183,160,223, 81,144,103,244,122,103,195, 93, -164, 17,147, 18,169, 9,168,110, 28,239,105,169, 19,117,245, 54,234,199,133,196, -254, 48,155,120, 73,243,108, 14,228,233, 22, 57,175,250,104,106, 57, 61, 10, 21, - 31,171,116,127, 60,139,118,142,111,132, 52, 36,196,131,130, 26,242,240, 41,178, -255, 18,224,176,179,135,149,121, 47,128, 64,129,111, 86, 90,200, 67,149,115,207, - 86, 44,147,252,175,177, 44, 62,243,214,215,176,117,169, 79,223,146,246,138,140, - 50,100,202,237,195,244,114, 17, 92,224,167, 30, 0,102,133,186,120,209, 30,106, -166, 34,206,154, 44,242,194, 7,208,154,212,139,167,204, 72,242,127,226,165,208, -151, 60,224, 24,125,249,210,184, 92,127,100,175,161,200, 46,232,162, 34, 3,134, - 23,201,161, 54,179, 51,208,141,228, 76,187,189,121,240,122,122, 17,112, 76,149, -155,155, 4, 71, 96, 17,138, 43,222,102, 34,130,231,213,173,240,115, 68,142, 1, - 38,133, 2,185,158, 9, 41, 49, 20,214, 51, 27, 39,192,125,207, 7,154,145, 94, - 88,186,255, 31,253,184,132,177,107,229,134, 13,103, 51, 2,116, 20,176, 36,119, - 7,208,108, 71, 88, 76,239,141,122, 65,130,140,106,217, 81,177, 37,160,102,250, -144,201, 33,200, 94, 70,167,109,117,150,176,146, 23,242,211, 32,198,180,157, 73, -116, 20,174, 70,102, 88,152,159, 84,147,123, 56, 98,153, 66,251,207,155,193,224, - 74,185,202,213,243, 24,245,128,113,166, 21,129, 1, 77,155, 92,229,152,130, 58, - 80,249, 10,202, 64,173,129,148,186, 79, 76,116,180, 76, 24,243,154,205,159, 4, -208, 83,227,165, 25, 0, 97,154, 62,243,124,216, 15,114, 58,153,167,225,203,138, - 27, 10,101, 19,241, 51, 46,141,245, 22, 86,143,149, 98,168, 47, 35,120,214,254, -113,246,243, 35, 78,122,214,106,200, 10,185,209,160,108, 42,214, 94,248, 35,165, -220,134,250,155,128,155,179,187,197, 66,180,175,121, 37, 14,241,117, 14, 84,132, - 55, 67,174, 24, 18,230, 33,113,187,183,184,233,114, 27, 69, 5,135,242,224,193, - 64,119,107, 22,120,144,100,191, 18,231,142, 24, 8, 8,234,217,154,220, 84, 45, -220,168, 81,130,185,158, 91, 58, 15, 95, 41, 28,243,186,175,248, 65, 0, 12, 16, - 6, 68, 69,104,107,191,120,122,165,160,239,164,244,114,126,107, 10,235, 70,213, - 15,143,138,208, 56,117,141,132, 4, 2, 50,228, 9, 91,120, 80,151,231,203,214, -157,155,253, 92, 70,119,196,103,143, 71,106, 90,152, 77, 78, 29,247, 15,255,211, -248, 77, 39,123, 34,107,225,146, 51,228,128, 69, 1,191,103,155,184, 86, 55, 53, - 91,138,229, 96, 24, 50, 99, 21,158, 26, 29, 74,131, 45,224, 90,183,214, 79, 65, - 16, 43,146, 97, 54,251,252,186, 92, 2,125,188,101, 5, 23,132,183,176, 58,151, -115, 8, 44, 82,112, 70,190, 62, 14,116,124,162,196,121, 35,103, 68, 74,222,233, -204,195,243,216, 99, 31,145, 81,192,158, 16,170,114,170,174,145, 25, 27,165,221, - 63,108,117,207, 59,253, 73, 74,131,222, 37, 26,206, 94,165, 58, 59,155, 65, 38, -132,239,112, 12, 68,229, 23,221,101, 23,145, 58, 81,192,159,218, 43, 37,204, 37, -110,239, 65, 37, 58,167, 95, 52,213,153,159, 15, 84,221, 33,123, 63, 52,211,184, -173,236, 97,168, 87, 13,236, 22, 8,195,122,105,213,146,118,252,179,184, 31, 14, - 86, 33,180, 1, 33, 51, 25,158, 28,129,238,198, 8,200,175,132,132,156, 61,131, - 35, 81,216,142,238, 70,127,182,153,128,126, 6,139, 5,164,102,140, 76, 38,192, -215, 42,214, 11,176,249,168,170, 35,175,111, 15, 61,130,162, 30,103, 3, 62,213, -126,164,234,198, 97,101, 10,185,230,150,170,215, 41, 13, 75, 27, 87, 5,130,237, - 63,240, 18, 24, 37,184,121, 2,255,255, 4,236,164,185,240,210, 45,216, 71,184, - 0,210, 21, 52,101,126, 74,228, 9, 53, 88,171, 68, 0,130, 14, 55, 47, 57, 36, -192, 77, 21,230,223,196,144,193,174,112,239,204, 52,233,117,164,183, 83, 40, 31, -142,176, 92,216,227, 4,173, 1, 7,214,113,186,142,108,205, 49,105,212,217, 71, -231, 18,145,162, 10, 38,112,251,129, 97,143, 96,177, 65,170, 63,140, 22, 1,250, -130,179,122, 52,210, 3,168, 5, 71,216,149,117, 0, 58,224,193, 99,161, 14,190, - 68,104, 32, 97,177,128,150, 72, 90,164,130, 49,185,132, 47, 51,204, 28,219, 96, - 25,140,190,143,247, 94, 7, 34,193, 69,247,241,165,117, 65, 36,184,120, 98,108, - 21,186, 30,176, 36, 52, 8,232, 83, 47,164,165,121,249, 91,122,167, 32,154,253, -248,255,152,203,217,191,135,200,184,144,154,255,213, 32,255,191,251,186,181,177, - 90,248, 54,130,139, 0, 93,156,201,183,124, 99,131, 98, 40, 69,251, 38,245,211, - 92, 21,109,215,105, 79, 24, 44, 4,101, 64, 90,163,218, 79,177, 23, 66, 89, 39, - 24,240, 2,236, 9,150,214, 30,103,121, 57, 40,147,146, 37,167,192,186,209, 67, -170, 89, 60, 75,136,173,253,178, 86, 86, 21,249, 61,125,169,229, 1, 87,169,164, - 42,231, 75,147, 10,240,149, 68,122, 86, 44, 87,199,227, 5,230,170, 47, 46, 54, - 69, 65, 17,155,244, 79, 94,141,132,105,160,168,105, 58,219, 84, 32,215,158, 65, - 79,198, 64, 78, 51,146,212,239, 84,101,213, 41,230,179,124, 61,255, 21,195, 5, - 46, 65,211,211,216,103, 86,140,158, 57, 53,255, 75,113,159,171, 25,179,172, 36, -188,203,238,249, 57, 28,157,153, 85,145,230,130,116,232,190,182, 52,222, 83, 32, - 60, 99, 0, 13, 23,164,108, 84,146,249,164,111,162,242, 6, 82, 87, 39,149,215, -120, 64,169,196,134,170,225, 40,226, 44,220, 33,159,152,121,123,192,119,245,246, -206,251,191,104,151, 18,196,128, 85,229,101, 44,175,156,180, 81, 78, 18,221, 47, -252, 0,229,178,221, 27, 47,250,126, 6,102, 54,156,140, 89, 19,135, 53,178, 70, -173,131,139,220,148, 3,159, 13, 77, 41,213,143,177, 52, 10, 24, 5, 77, 78,117, -208,199, 58,246,225, 58, 3, 89,123,158,189, 66,141, 42, 12, 92, 49, 3,215,210, - 65, 14, 32,116, 41,122,132,131,124,157, 88, 6, 74,164,242,225,134, 17,106,153, - 29, 30, 33, 32,255, 2,155,220, 27,192, 56, 51,100, 37,235, 90, 61,191,114, 84, - 72, 4,222, 47, 26,112,247,104, 72, 14,205,102, 86, 63,210, 20, 92,102,116,243, -104, 58, 43,171,201,141,192,127, 64,178,252,219,111,157,150,168, 7, 47, 69,193, -213, 32,192,209, 49,146, 2, 58, 24, 24,178, 90, 16, 73, 2,188,193,196,122,114, - 77, 47, 31, 89,143,142, 76,105, 51, 41, 81,161, 96,217, 96,147, 10,225, 5, 88, -178,185,154,144, 29, 16,151,194,209,130, 49,100, 54, 65,115,144,137,211,253,108, - 19,100, 66,226, 25,229, 40,231,181, 0, 52, 8, 45, 64, 19, 12, 69, 32, 13, 77, -243, 97,198,103,162, 54,177,176,158, 42,188,162, 8, 77, 28,127, 98,230,111,154, - 71,250, 12,204, 86,210,169, 50,180, 55,227,113, 77,191,102,122,137, 52, 24,200, - 28,213,108,118,135, 79, 39,103,224, 25,210, 5, 16,140,159,136,176, 48, 75,109, -120, 26, 14,167,151,162, 54,152, 26,237,121,241, 19,145,112,242,184,147,102,240, -225, 32,201,102,137,234,131, 51,134, 66, 49,248,168,100,254,243, 60, 57,238, 9, - 52,227,108, 74, 47,156,220,120,230,222, 12,102, 94,255, 17, 56, 44, 15, 40, 73, - 10, 71, 74,185, 32, 18,138,149,147,168, 89, 53,140, 98,224, 13,192,137,133, 20, - 24, 2,233,222,101,242,184,156, 6,130, 30,152,137,206, 99,132,114,116,126,137, -130,194,167,223, 97, 35,112,228, 39,203, 27,113,248,221,236,120, 22,236, 19,146, -246,139,184, 8,133,159, 40,157,248,236, 12,146,101,135,144, 39,194, 29,201, 41, -212, 75,184, 67,172, 0,212, 34,104,169, 66,247, 64, 42,161,205,240,135, 47,240, -221, 39, 35,179, 64,254,235, 68,219,223,119,193, 45, 68,125, 12,192,117,151,150, -139,181,167,135, 38,188,156,222,158, 9,229, 78,159,159, 17, 42,224,104, 94, 7, -245,200,107, 87, 13, 32,255,235,143, 88, 70, 72,213,115,117,209, 67, 47,108, 97, -186,235,165,233, 55,253, 30,255, 22, 52, 29, 57,209, 21, 43,234, 36,147, 68,154, -176,229, 90,204, 39,132,199, 99, 58, 71, 61, 97,149,146,122,201, 37,141,144,223, -131,178, 37,214,111,122, 54,158,235, 33,166, 94,233,108,206, 78,176,252,193,201, -231,224, 25,127, 1,246, 7,207, 43, 77, 7, 98, 53, 49,254, 63,224,207,253, 39, -188,130,194,140, 18,145,227, 71, 15,134,145,164,110,236,218,108,242, 13,114, 56, -169,116,152,243, 63, 3,139,176,227, 51,162,150,136,212, 48, 29,144,128, 69, 94, -179, 57, 27,169, 31,157,255, 81,249, 42,209,185,175,169,197, 53, 72,194,180, 36, -152,159,190,218,154,183, 90,197,113,249,219, 96, 61,102,117,157, 20, 1, 51, 61, -209, 18,211, 71, 23,129, 1,105,201, 97, 14,112,219,231,179,221,213,154, 62,101, - 20, 30, 43, 83, 1,198,182, 66, 64, 11,197,124, 8,136,164, 53,198, 5,109, 59, - 38,241, 0,128, 61,243,219,124,146, 79,204, 71, 11,148,146,219,127,135,160,129, - 56, 12, 93,158, 56, 93, 22,244, 26, 74, 82, 21,189, 88, 95,220, 5,145,200,122, - 70,191,160, 2, 76, 23, 79, 5,168,150,199,140,225,162, 0,165, 90,192,244, 84, -144,244,130,220, 89, 34, 67,141,252, 9, 75,178,225, 26,142, 71,163, 53,173,131, -228, 46,148,229,143,105, 17, 28, 29, 19,166,252,228, 29, 1,250, 74, 0, 14, 40, -192,210,209, 3,176, 86,175, 89,221, 15,178, 39,184,195,148,106, 9, 67, 63,210, -226,180, 7,128,185,238,222, 45,255,209, 11,251,227,233,119, 21,133, 44, 10,184, -218, 0,215, 0,217, 0, 9, 11, 95,251, 55, 42, 17, 56, 14,250,146, 72,174,149, - 80, 57, 57,205, 20, 37, 97,154, 50,213,159,168, 10,186,112, 46,153,137,161,218, -231,133,201, 15,161,213,228, 89,250, 79,251,254,102,214,218,143,146,159,199, 36, -216, 42,172, 29, 16,111,167,189,253,169,125, 61,109,235,185,118, 21,215,144, 95, - 78,117,209, 46, 85,143, 78,171, 67, 4,177,137,104,160,120, 14, 93,239,231,213, - 23,214, 14, 49, 79,160,199,169,118, 34, 88,206, 19,220,158,169,122,124, 6,113, - 50, 33, 77,131, 73,149,158,158, 58,152, 17, 14,202,119, 51,221, 72,217, 95,124, - 30, 56,205, 97,186,165, 46, 19,154,103, 2, 66,228,249, 92, 68,116,116,179,117, -170,104,183, 93,149,119, 61,209, 66,144,167,211,222,222, 89,219, 59,186,120, 56, - 3, 3,246,233,103, 8,189,202, 76,202,166,120,170,108, 85,105, 28,145,198,193, - 66,161,229, 74, 5,211, 79, 77,172,187,219, 84,230,238,143, 71,245,115, 90,216, - 32,227, 73, 14, 87, 59,206,210, 1, 75,114, 63,150,104, 44, 49, 67,175,157, 66, -107,121,173,108,215, 58,160,246,140, 53, 50,135,227, 89,131,126,187, 72,211, 46, - 35,134, 81,250,157,137,100, 89,102,120, 82,175, 55,207, 90,158, 42,101,132, 13, -224,179,255, 66, 73, 10, 10, 7, 12, 7,210, 99,167,170,171,206,236, 96,147, 73, -187,201,110, 10, 48, 3,217, 89,130, 2, 67,107,154,182,161, 27,245, 60,218,113, -215,215, 85,221, 36,211, 78, 41, 49,137, 53,214,213,201,209, 84,211,147,165,169, -109,144,238,118, 91,221,147,158,170,246, 94,118,103,123,160, 97, 31,212, 29,179, - 1,134, 93,144,169,169,254,103, 60, 76, 0,152,138,172,152,106, 30, 24,240,184, -161, 75,254, 72,159,138,135, 14, 77, 67, 59,223,174,253,217,220,183,253,228, 44, -203,110, 42, 33, 74, 75,140, 99, 20, 74, 66,202,186,145,146,126, 84,206,199, 7, -196, 88,241,163,210,149,130,141, 68, 36,193,206, 22,253,106, 65,175, 3,132,116, -166, 98,187, 67, 8, 13, 44,139,131, 53,201,224,239,251,190,104, 97,236,149,142, - 78,167, 7,166, 29,119,107,233, 78, 88, 44, 26, 7, 17, 39, 64,235, 84,192,206, - 40,180, 42, 39,111, 51, 89,144, 51,172,223,100,186, 1, 21,142,251, 44, 21,223, -201,206,218,121,253, 21,229,126,154,117,155,160,178,152, 11, 42, 4, 93,239,118, -116,229, 77,175,166,106,105,230,206,249,186, 81, 34,201,141, 45, 60, 32,141,195, -241,100,240, 86, 61,194,142,157, 81,221,237, 88,225,138,130,177,173, 88, 93,205, -220, 94,219, 81,117,114, 55,117, 75, 6,158, 23,185, 11, 53,145,136,163,137, 52, - 0,238, 1,105, 24, 16, 16, 30,205,101,243, 80,225,156, 13, 72,148, 61,104,162, - 75, 70, 3,125,180, 7,216,159,115,206, 57,103,140, 49,206, 52,207,185,179, 21, - 43,134,174, 46,105,182, 87, 77, 33,221,247,161,173, 24, 76,103, 11,242,106,207, - 38, 68, 7,222,191,182,251,106, 55,187,254, 40, 85, 14, 94, 29,221,113, 5, 51, - 88,160, 41,163,145, 57,177, 62,234,238, 26,108, 76, 93,233,141,145,143,248, 38, -227, 69, 15,251, 83,180,191,214,254,208,106,133,125, 85, 59,171, 25,252,185,199, - 10, 67,218, 35,132,163,232, 30, 2, 71, 94,187, 12,254, 70, 27,175,227, 40, 69, - 82,209, 56,114,233, 27, 88,233,144,238,108,242,159, 55,189,239,251,117,229, 43, -202, 23, 98,161,180,214, 87, 22,173,255,121,199, 16, 66,252,109,212, 49,254,215, - 74,179,243, 48,245,143, 56, 98,127,120,117,119,163, 94,119, 57,238,251,110, 12, -113, 6,247,135, 31,251,119,134,221,163,154, 71,255, 97,214, 47, 64, 79,243, 43, - 62,202,238,110, 99,208,162,213,163, 39,175, 52,223,186,179, 84,127,146,126,186, -119, 25,229,231,215,139,226,172,187,109,155,110,133,186,251,218,213,127,122, 88, -239, 49,226,232,238,238,238,151,119,173,157, 48, 79,213, 22,143,188,168, 20, 27, -230,176, 54, 32, 8, 3,164, 0, 8, 28, 9, 10,100, 34,105, 26, 73,130,252,180, - 32,199, 3,155,133,147, 4,144, 6,162,128, 70, 16, 17, 0, 24,128, 1, 36,128, - 0, 12, 0, 48,128, 2, 0, 2, 6, 40, 4,152,102, 31,206,183,160,222,117,193, -240, 56, 19,129,203,118, 95,217, 21,192,103,240, 24,110, 99,134,204,160,212, 7, -103, 22, 0, 42, 64,149, 51,145, 79, 91,181, 23,240,233,140, 18,179,173, 30,100, - 88,196,205,131, 83,226, 91,149,134,152,212,224,217, 23,183, 92,116, 67,140, 34, - 8,107,107,189, 40,171,186,205,182,150,152,232,189,175,145, 20,252,173, 86,170, -187,237, 86,222, 34, 10,247,140,117,208,160,201,118,219,208,186,106, 53, 24,218, -220,205, 7, 53,162,144,249, 9,149, 97, 77,130, 47, 5,176, 93,169,252, 34, 38, - 60, 43, 87,222, 2,204, 54,158, 89,238,148, 74,233, 69,193,106,208, 19,185,225, - 49,122,149, 33,140, 1,103,115,193, 73,182, 44, 31,134, 81, 92, 28,224,105, 52, - 8,170,202,157, 64, 26, 53,237,255,130, 95, 55, 57,139,163, 52,144,184, 36,121, -128,203, 20,118,251,251,209, 84, 39,226,178, 46, 55, 45,111,167,119,207,199, 5, - 66, 80, 47,198,217,211,126, 52,155,146, 50, 6, 87,193,131,118,106, 59, 88,181, -146, 12,146,139, 28,135,145,221, 8,100,132,232,115,181,104,244,232, 87,113,205, -244,151,219,108,159,142,150,132, 43, 31,222, 13, 39,112, 56,230,189,205, 94, 9, - 24,192, 32,254,248, 4,224, 21, 84, 78,218, 12, 57, 94, 1, 70,171,121, 42,208, -238,175,179, 47,175,116, 72,127,174,176, 4,160,139, 57, 85,209,221, 97, 73,154, - 15, 47, 37,106,156, 35, 32, 33,231, 62,156, 7, 46, 4, 85,226,191,245,134, 0, -255,186,213, 57, 14, 57,104,185, 30,248, 93,124,119,124,187,246, 47, 44, 92, 21, -174,249, 44,101,117, 56, 87, 37, 41,197, 97,179,226, 99,115, 85, 23,123,234, 44, - 54,140,232, 53,233,169,192, 2, 14, 73,182,193,131, 7,226,194, 97, 63, 27,150, -132,186,107,152,115,149,190,151,186,236,232, 42,159,190, 40,101, 98,109,204, 37, - 56,168,142, 7, 73,113,106,189,186,236,120,188, 21,121, 57,222,236, 45,126, 63, -205,155, 58,149, 96,219,170, 20,150,189,210,100, 34,101, 62, 20, 90,163,152,217, -215,198,128,212, 38, 52,147, 66,137, 14, 2, 37,174,139, 62, 9,198,145, 76,218, - 60, 1,180, 25,145, 75,145,180,188, 74,108,144, 63, 75,241,112,124, 31,137, 38, - 61,225, 25,237, 31, 1,166, 61,129,119,251,205, 7,151, 98,225,145,160,211,161, -153,128,232,147,192, 82, 46,233, 74, 25, 2,126,167,120,132,214, 99, 48,240, 39, -217,225,227,137, 49, 62,160,228,133, 70, 18, 70,153,129,130, 17, 58,249, 75,210, - 10,202, 70, 88, 56, 47, 41, 57, 40, 25,225, 48,186, 44, 35,161,100,146, 75,146, - 8, 83,161, 84,137, 83,211,114,140,134,146, 27,110, 34,139, 73,249, 74, 31, 11, -211, 30,122, 23, 20,156,161,190, 57, 83,190,139, 73, 59,148,185,239,181,243, 94, -209,237, 20,246,222, 75,165, 87,186,137, 10, 18, 10,161,144, 89, 22,175,152, 95, -159,246,235, 21,111,176,217,147, 57,149, 71, 83,138,153, 45,197,229,147,214, 3, -116,129,250, 1,229,152, 18, 5, 89,151, 43, 25, 2, 13, 28,148,103, 18, 68, 52, -146,132,131, 4, 5,176,215,236,210, 45, 0,102, 34,121,196,178, 40,192, 40, 36, -125, 8, 43, 20,119,147, 10, 18,209, 56,252, 46,247, 90, 79, 41, 44,136, 75,223, - 11,200,139,159,210,130,225,106,241,187, 40,198, 5,248,231, 31, 75, 73,237,185, -255,117,105,235,239, 57, 52,245,234,164, 47,218, 5, 36, 89, 55,225,121,135,213, -247,175,207,140,140, 40, 0, 17, 93, 6,217, 9,188, 51,148,203,159, 4, 33,253, - 16,210,157,144,109,154,107, 65, 25,243,137, 9, 40, 93,122, 24,167,172,185, 25, - 65,222, 83, 63, 7, 79, 42,105,128,153,238,247, 87,121,141,196, 12, 15,120, 74, -161, 58,207, 91, 5,108,147, 21,107,204, 16, 65, 62, 60, 36,136, 40, 18,215,209, -224,139,138, 55, 70,202, 29, 25, 87, 7,198,194,205,213,132, 17, 87,213, 41,241, - 68, 10, 55,217, 61, 82,244, 65, 46, 72,241, 36,105, 81, 41,125,244,154,239,195, -156, 93,208,104,145,111,137,117,101, 10,131, 7, 17, 98, 97,113, 24, 12,107, 99, -247,225,155, 79, 23,154,203,207,248,231,244, 28, 10,207,103,146,220,203,223, 92, -108, 89, 35, 0, 74, 89,168,188,150,250, 43, 81, 92, 62,154,251,246,164, 77, 21, - 73,216, 82,127,117, 55, 38, 41, 71,141,221,156, 38,237,248, 97,211,223, 72, 70, -162, 35, 58,232,219,152, 50, 4, 9,159,138,166,203, 34, 19, 60, 12,193,187,239, - 31, 6,165,156, 49,180, 28,105,146,241, 45,144,201,208, 26, 31, 24,186,216, 70, -245,132,203, 48,191, 1, 47,170,147,197, 88,175, 94,153,180, 76,143, 46,202, 85, -188, 4, 80, 35,138,106,127,177, 40,118, 21,141,129,235,242,210, 62, 85,101, 15, -229, 50,242, 32, 64,105,185, 28, 3, 75, 89,250, 45, 11,181, 27,189,132, 11, 32, - 43,241, 73,136, 75,249,235,127, 46, 94, 48, 49, 48, 7, 1, 49,126, 21, 70, 81, -192, 18,142,192,252,149,102,174, 47, 39,243, 20, 49,225, 30,222, 7,249,159,108, -211,228,139,244,129, 32, 48, 3,153,157,210, 71,152,215,200, 39,128, 2,173,108, -212,119,180,143,191,161,132,255, 9,127, 77, 35,220, 46,153, 93,207, 33, 56,161, -247, 59,254, 73, 88, 12, 96,128,198, 99,151,249,240, 92,202,230,223,178,163,184, -114, 64,145, 20, 65,245, 4, 47,231,100,155,124,128,118,174,147, 14, 67,209,113, -161,138,197,254,251,217,127, 24,208,159,164,196, 61,218, 81,231, 68,140,238, 6, - 39,209, 1,180,155,247, 97, 82,245,239,169,185,124,216, 96,188,154, 75, 68,179, -211,189, 21,200,244,172,236, 99,166,106,129,158,243,163,233, 69,242,182,215, 22, - 6, 12,194, 28,106, 46, 67, 40,208, 78, 45,225,106,103,127, 37,135, 87, 92,168, -221, 21, 46,103,174,231, 30,156, 40,183,131,211, 79, 0, 14,207,170, 99,212, 0, - 3,119, 59,219,166,162,221, 9, 61,239, 75,196,233,221,122,103,246, 19, 45, 18, - 44,179,133,214,104,114,190, 40,202,227, 72, 57,199,186, 91,211,192, 6,183,108, -206,254, 81,125,106, 28,206,138, 92,147, 91,209,227, 57, 58, 90,248,113,212,245, - 39, 65,139,128, 95, 10,144,195,172,231, 50,112,101, 49,136,140, 2, 33,114,226, -128, 89, 32,146,227, 38, 50,110, 12,141,201,228,168,126,243,205,209,159, 97, 12, -109, 39,187,115, 48,103,224, 74, 70,184,168, 61,150, 98,220,224,171,173, 45,107, - 11,157,207,177,205,254, 46, 38,138,221,176,226,125, 59,163, 45, 27,107, 26, 23, - 4,237,246,141,233,241,110,103,140, 92, 24,124, 72, 91,109,241,214, 78, 32, 59, -238,246,243,106,111,240,102,217,146,125,251, 86, 42,152, 36, 52, 76, 94,165, 25, - 88,188, 37, 53,184, 98, 39,162, 45, 48,163,145, 20,111,127, 45,132,180,124, 60, - 1,185,254, 27, 92,126,150,228,189,138,101,201, 72,250,178, 36, 99,137, 23,188, -217,185, 2,195, 87, 66,113, 42, 95, 87,210,193,191, 94,197, 19,243,137,126, 9, - 5, 1,190, 17, 41, 74,197,201, 43,134, 69,204, 71,253, 85,188, 58, 78, 83, 64, - 84, 1, 13,174, 85,146,238,148, 55, 80,229,132,146,148, 20, 45,108,177, 77,132, -210, 74,197, 97,234, 65, 30,227, 7, 50,114, 65,102, 82, 28,215,235,140,227,223, -247, 3,178,155, 31,148,236,184, 74, 22, 7,100,145,200,242,136,140,171,121, 8, - 80, 12,100,207, 45,118,159, 15,145,126,216, 11, 18, 88,145,204, 89,138, 53, 51, -144, 34, 73, 33, 19,107, 21, 59, 91,172, 75,115,220, 45, 69,221,225,181, 67,148, - 13,142,226, 92, 22, 18, 61,115, 33,172, 56,136, 32, 22, 31,239,208, 17,210,246, - 60, 94, 20, 89, 55,169,142, 91, 72, 80, 6,150, 30, 34, 66,166, 76,170, 36, 29, -180, 97, 9,156, 31,169,183,216,230, 99, 43, 4,223,143,106,237,129,183, 56, 64, -174,233,121, 96,147,209, 36, 19,100, 21, 52, 60, 90,116,172,107, 59,194, 2, 72, -168, 31, 66, 76,219, 23,141,231, 87,202, 51,170, 72,192, 13, 58,156,241,192,129, -237, 8,215,244,156, 88, 99, 33, 66,148, 51,233, 58,208,111, 7,182,144,159,118, - 32, 51, 49, 8,241, 0,249, 20, 29, 92,239, 88,220,181, 99,234,116,248,137,222, -221,164, 60, 69,212,246,253,187,187, 21, 91,229,253, 24,135,186,106, 37,116,219, -170,110,231,160, 64, 58,230, 21,102,123, 76,222, 49, 70,254, 4,121,211,189, 54, - 47, 66, 95, 75,141,135, 95, 76, 15,228, 16, 18, 56, 24,241, 15,202,173,151, 75, - 49,206,130,203,119,234,252,249,137, 27, 33,153, 69, 12,173,137, 63,215, 96, 45, - 82, 34, 98, 45,207,220,102,197,234,174, 35,173,100, 84,160, 14,109, 94,192, 27, -236,109, 79, 38,171, 48,189,238,149, 78, 17,172,116, 9, 2, 2,177, 25,241,186, - 78,117, 85, 58,226, 32,159, 32, 85,115,227,176, 80, 33,113,183, 31,221, 95,112, -176,168,229, 1, 13, 25,159,200, 92,142,196,179, 60,152,158,198, 14, 85, 84,235, - 3,119,190, 15,236, 51,185, 87, 63, 84,198, 80,133,245,120,244, 35, 54,165, 89, - 22,164,200, 8,212, 65,237,195,169,143,177,158,247,128,212,163,244,198,164, 80, - 95, 24,246,103,208, 57,136,171, 46, 46, 20,132,188,246, 77, 55,148, 24,247,121, -201, 15, 30,122,194,214, 62,239,118, 41, 54,144,185,131,103, 33,175,243,135, 74, - 58,187,102,156,151, 30,216,214, 15,199, 88, 20, 62, 0,124, 19,138,163, 17,253, -192,191,243, 33, 93, 48,217, 72, 77, 94,172, 70, 33, 23, 65,197, 62, 60,176,129, -123, 27, 52, 58,197, 99, 92,117, 93,176, 8, 67,178,243, 55,210,207, 53, 94, 58, -169,181, 91,211,172, 9,172,157, 78,183,156,169, 52,134, 8, 88,223, 3,240,139, -128,102,231, 87,157,192, 94,168,155,185,216, 59,198,218,102,238, 75, 59,194,192, -210,224,226, 44, 64,209,115,237,105,142,203, 60,156,171, 5, 48, 90,236,223,148, -149,129,196,123,213, 56,157,144, 44,113,183,102, 14,236,251,176, 19,122,205,123, -127, 44,161,232,212, 52,124,124,172, 26, 75,167,113,114,238,125,102,190,136,245, - 3,213,213,124, 88,245, 67,110, 63,109,140, 50, 62,238,116, 93,148,244,233, 35, -110, 23, 52, 1, 81, 40,106,105, 58,131,128, 91,121,228,220,142, 48,206, 41,214, -208,141,205, 77,202,143,186, 78, 36, 76,104, 52,144, 2,162, 87, 8, 79, 18, 56, -171,140,252,161,130,245, 55,187, 71,167,198, 53,168, 31, 3,153,210, 15,246,102, -195,145,185, 38,212,178,181,133,204, 1, 40,147, 76,119, 60, 74,201,156,166,177, -100, 65,111,201, 46,215,126,136, 34, 0, 5,112,136,205, 80, 8,184,232, 15,178, -212,239,191, 42,204, 48, 85,252,180, 37, 25,164, 52,121,235,152,252,160,193,226, - 42,213,102,105,200, 23,152,225, 18,113, 92, 92, 55,234, 39,126, 18,107, 56,218, - 36,174,227,137,150,199,129,144, 83, 11,152,172,164, 62,146,120,247, 38, 60, 18, - 81, 90, 51,160,106, 50,233, 41,126,185,113,185,134,163,102,255, 69, 87,200,107, -221, 15,173,185, 45, 22, 31,201,102,232, 70,193, 23, 16,216,245,239,195, 8,189, - 85,128,252,237,120,232,102, 10,172,222,213,116,146,162,117,152,200,139, 58,159, -163,208,207, 71,207, 6,177, 79,242, 62, 57, 26,160, 59, 7,126,109,159, 1,102, -128, 96, 81,130,218, 94, 80, 55, 97,190,132,159,180, 11,149,236,127, 88,103,200, - 50,242, 63, 31,233,174,222,219,208,178,228,197,244, 69, 47, 13,228,194, 69,109, - 4,106, 30, 71,117, 42, 32, 78,186,120,179, 70, 21,239,193, 52, 14,115,145,241, - 71, 85,150, 98,231, 82, 70,197,212, 39,120,236, 38, 20, 15,211,146, 45,248, 29, -107,180,198, 95,156,206, 87, 36, 78,142,220,164,146, 75,212,248,211, 20,107, 47, -248,212,154,118,149, 33, 7,137,161,144,209,172, 69, 85,164,210,103,210, 55,165, - 67, 38, 46,191,162,114,233,190, 13,171, 5, 83,168,168, 34,236,106,245,150,249, -122,123,230,166,245,104,219, 64,207,194,222, 87,148, 36, 73, 61,118,228, 52, 1, -142,196, 50,243, 6,179,123,239,125,243,240,176, 1, 40,167,131,119,177,115,157, - 56,133,217, 19, 34, 31,208,122, 12,205,253,138,155,187,113, 3, 56,105, 48, 45, - 96,228,240,117,168,222, 76,249,201, 25,128, 94, 1,185, 13, 76,178, 80,196,131, -226, 38,176,155,143, 93,129,251, 87,125, 25, 11, 59,210,228,103,123,111,217, 74, -104,210,189, 12,166, 27,233, 29,241,183,193,199, 61,172,168, 35,194,147,131, 45, - 99, 98,235,180,226,208,151,172,168, 51,230, 34,123,147,171,100, 57,241,193, 44, - 40, 34, 79,101, 68,212,133,236, 24,203,154,158, 6, 58, 30, 31,133,180,168, 40, - 45,253, 91,228, 20,233, 21,213,157,227,192,110,149,193,158,206,177, 64,208, 35, -229, 1,138,187,163,204,123,201,187,135,241, 46,130,152, 22,100,147,248, 0, 6, -121,248, 89,229,159,144, 73,195, 92,214, 34,212,216,242, 39,203, 62, 95,118,242, - 89, 39,247,222,152,243, 69,152,122,195, 99, 68, 81,244, 38,206,247,220,100, 94, - 81, 76,135,181,246, 92, 32,126, 58,254,249, 73, 71,132, 44, 8,116,223, 46,190, -197, 67,168,220,238,106, 44,245,211,216, 33,204, 99,110,251,113,183,193,188,177, -113,112,120,242, 51, 41, 62, 83, 11, 63,198, 22,204, 26,234,242, 71,190, 98,103, -209,203,130, 49, 11,148,158,209,125, 28, 61,182, 30,162,133,229,195,152, 15, 70, - 83,125,198,210,152, 92,100,104,210,224, 42,134,124,213,154, 37, 62,118, 30,124, - 41, 11, 14,248,103, 40, 67,113,218,221,230, 80,230,196,174,248, 42,105, 56,152, - 41, 83, 81,101,200, 84, 34, 81, 60,143,135,201,187,252,246,135, 57, 40, 73,150, - 29, 9,202,114, 70,215, 73, 1, 49, 7, 35,180,131,158,166,159, 24, 54,128,178, - 65,227,123,165, 24, 67,146,109,227, 40,109,175, 24, 41, 70,221, 14, 84, 52,188, -159,135,200,107, 23, 59, 16, 68,102,176,215, 47, 20,146,117,241, 98, 98, 88, 13, -224,141,139,171, 83,101, 48,234,168,121, 21, 64, 71,162,117, 57, 41,130,188, 14, -203,232,123, 30, 84, 19,249, 75,139,213, 63,114, 51,103,101,146, 63, 6,134, 99, -194,207,191,139,215,177, 22, 77,204,216, 79, 60,231, 16, 62,226,248,114, 28,158, -142,208,227,104,249, 14, 10,140, 25,205,235,225, 24, 45,106,159,233, 57,208,248, -149, 93,117, 68, 75, 73, 93,224,208,169,177,235, 34,106,147, 42,178,168,230,112, - 71,218,127, 31,228,177,165, 97,121,116,132,128,172, 67,101, 21, 77, 23,246,173, -168,139,123,158,175,146,101,216, 33, 51,128,166,239, 61,156, 94,102,248, 21,222, - 23,185,116, 75, 25,179,185,188, 65, 36, 41,100,172,193,115,191, 11, 19,138, 21, -242, 45, 68,159, 16,142,203, 40,226,111, 40, 1, 55, 79,151, 28,183,199,231,195, -158,199, 21,188,244,129,199, 32,229,243, 49, 31, 25,157, 36,126, 17, 83,239, 8, -199,225,129, 3, 75,134,104, 42,196,204, 51,147,205,192,211, 82,114,129, 99, 25, -247,117, 81, 72,184, 44,134, 78,144, 29, 9,201,220,132,238,115, 32,139,220, 55, - 58, 79,172,242, 20, 93,132, 53,170, 35,131,236,244, 61,145,139,202, 28,100,226, - 17,170,112, 63, 23, 19, 83,232,240, 32, 98, 95, 37,171,200,151,246,229, 49, 6, -195, 78, 94, 46,210,107,127, 34, 47,112, 71, 23, 89,224,134,161, 33,127,153, 63, -164,189, 80,117, 22,139,123, 13, 81,145, 99,153,187, 88, 79,128, 20, 37, 21, 67, - 1, 75, 19, 81,217,170,192, 56, 29,157, 41,101, 10, 65,138,204, 60,166, 63,253, -160, 0,131,119,251, 31,124, 4, 21,212,164,141, 96, 38,131,181,201, 5,116, 6, - 35,133,121, 52,212,232,144, 31, 69,234,120, 17,120,108,105, 52,179, 76,233,164, -195,177,141, 15, 94,173,207, 12,243,246, 26,148,234,147,134, 73, 28, 78,169, 60, -226,164,219,245,112,166,130,118, 27,222, 59, 21, 94, 44, 66, 53,230,202,156, 53, -150, 19,168, 2, 45, 44,211,158,240,145, 82, 70,119,127,105,113, 43, 89,152,228, - 46,212, 3,194, 53,136, 96, 91,184,134,124,178, 40,128, 12,157, 30, 28,254, 45, -194,236, 44, 90,134, 94, 15, 78, 43, 22, 3,172,139,177,102,169, 63,174,149,159, - 9,217,162,190,194,174,142,178,231,110, 91, 5, 64, 69,192, 16,148,234,187,234, -212,161,212,210,131, 31,200,232,175,252,246, 1,160, 56,138,150, 11, 92, 9, 24, -195, 72,242, 84, 66,118,143,177,234,253, 59,187,140,135,172,231,221, 35,238,187, - 44, 0,106, 4, 70, 32, 82,190,171,144, 60,204, 45,156, 24,145,167,159,138, 85, -225,193,202,166, 8, 67, 84,101, 84, 35, 40,206,255, 81,176,104,210,167,158, 88, -194, 8, 0, 8, 17, 0,159, 82, 84, 36, 53,198,165,164,123, 40, 11,207, 15,153, -175, 88, 98,132,101,202,139, 76, 98, 45, 65,166,176,192,181,182,168,105,253, 0, - 16,107,146,198,165,177,135,155,196,224, 47, 92,149, 79, 86,248,163,247, 88, 3, -175,135,228,195,161, 86,159,141,227, 68, 51, 20, 64, 65, 30,144,158, 63,210, 35, -219, 52,138, 41,131,238, 62,133,127,186, 18, 93,188,223,114,167, 76,158,212,168, - 18, 36, 67, 59,111,141, 92, 62,148,243,137,204, 99, 87,173,155, 39,185, 62, 8, -250,246,102, 9,190, 34,158, 23,171, 81, 16,120,173, 30, 6, 80,179, 64, 56,169, -211,159, 22, 5,165,224, 13, 15,167, 75,121, 26,117,165, 79,226,252, 14, 37,101, - 68,182,162,113,214, 78, 64,153, 66, 31, 9, 1,231,136,250,198, 28,249,180, 96, - 81,191,201, 88, 58, 15, 20,125, 5,174, 0,205,101, 88, 20,207, 29, 13,202,124, - 14, 17,224, 12, 32,205,229, 88, 70,107,183,219,131, 55,201,130, 10, 5,228,159, -233,111,156,150,207,147, 14, 8,160,100, 92,255, 26,246,160,125, 38, 24, 36,120, -205,209, 81, 37,104,182, 39, 69, 36,236,138,110,166,134, 70,161,149,147,137, 61, -150, 66,232, 56,241,102, 91, 27,204, 61,193,105,197,199, 10,171,235,249, 1, 61, - 86,108, 34,210, 57, 26,199, 22, 91, 38,186,142,244,170,178,165, 26, 19, 94,186, - 62,175, 98,176,188,198,246, 13, 54, 10,192, 1, 1,125,111, 97,254, 2, 38,242, - 42,158,114, 20,207, 26,154,226,233,155, 73,140, 52, 84,210, 72, 52,138,130, 29, - 67,150, 38,188, 4,232,255,237, 62,197, 25, 20,231,154, 44,131, 38,153, 25,187, - 15,177, 82,244, 7,135, 3,161,237,243, 54,239,106,165, 37, 36,130, 80,110, 39, - 95, 2,203,227, 4, 93,112, 65, 75,244,216,249, 64,185,215,160,174, 35,255,239, - 37,118,158,221,175, 71,218,187,184,203,133,194, 99,166, 92,134,104,115, 18,233, -163,201,247,121, 69,163,202, 0, 7,106, 70, 18,208, 66,169,174,158,194,111,152, - 68,252,172,230,115, 37, 17,140,109, 62, 58, 62,161, 5,219,112,106,180,159,144, - 42,214, 12,181,130,105,100,239,215, 45, 11,114,207, 30, 32, 92,173,235, 43, 46, -254,188,192,247,242, 68, 57,137,238,127,241, 44,199,117,133, 70,191,240, 1,125, - 7,197,144,163, 31,233, 72, 16,234,242, 48, 29,181, 36,195, 96, 52,220, 35, 40, -215, 36,233, 16,104,216, 74,115, 15, 28, 56,194,128,252, 73, 18, 78, 40, 45,231, -177, 69, 43,183,106, 24,113, 20, 48, 13, 11,219, 96, 81, 68,204,151, 74, 24, 70, -147,154, 72, 25, 27, 81, 92, 80,163, 76,243,245,105,240,126,107, 68, 41, 23,219, -234,143,202, 39,112, 57,190, 66, 49, 97, 52,168,101,111,201,209,173,219,126,248, -136, 40,224, 62,227, 39, 16, 53, 64,201,180, 85, 32,108,143,232,188, 5, 39, 20, - 97, 52, 7,212,110, 45,169,193,191, 43,217,100,234,138, 90,150,127, 34, 67,133, - 46, 77, 91, 24,123,166,159,150,150,131,134,254,100,101,130, 63, 93,158,239,224, -248,170, 8, 34,190,230, 78,226, 48, 24, 22,144,138,115, 77, 61,137,193,216, 19, -241,160, 58,250,180,163,170, 67, 31,114, 1,100,187,253,102, 93,238, 37, 8,164, -185,213, 21, 33,165, 42, 68, 53,156,236,137,138, 42,127, 52, 73,238,233, 60, 62, -170, 51,185, 25,184,178,146,125, 89,159, 38,202,132, 45,123,196,196,165, 49,125, -218,253, 47,116,223, 96,170, 2,243,199, 83,198,207, 33,126,187,131, 83,255,156, -131, 99,164,202,150,119,248, 24,108, 50,219,172, 57,120,250,113,159,235, 68,136, - 48,125,206,250,102,125,152,170,158, 67,233,134,190,149,201,176,228, 35, 30,202, -207,107,102,224,245,189,200,165, 50, 88,197, 7, 59,129, 79,165,181,170,211,247, - 51,125,193, 35,161, 90, 37, 73,135,117,155,205, 54,245, 49,210, 12,109,159,193, -210,160, 43, 41,223,123,226, 97,139, 61, 50,116,176,100,153, 93, 66,235,180, 90, -239,239,151, 19,167,187,219,116,175, 18, 29, 54,148, 65,151, 8,255,151, 90, 32, -181, 23,108,200,173,246, 12,198, 29,175,135,166,179,196, 99,148, 87,170, 24,164, -101, 44, 46, 53, 64, 28,104,212, 11, 24,182, 20,245, 64,249, 6, 33,159,147,154, -132,168,247,143,161,158, 89, 63,160,231,209,195, 88,153, 77,198, 30,134,147, 85, -199, 96, 77,101,214, 77,227, 57, 48, 78,229, 14,212, 63,142,220,160,162,175,110, - 53,194,237, 39,232, 37, 23, 13, 55,103,129, 35,183, 7, 50,138,192, 65, 65, 9, -242,233, 22, 11,111,228,106, 10, 53, 25, 57,110,137,115,132, 31,103, 0, 88, 0, -162,171,177, 50,228,182,132, 91, 34,110,212,217, 90,254,175,164, 73, 64,113, 21, -171, 32,231,223, 2,171, 64,174, 76,146,198,146,135,225, 41,128,165,174,199,225, - 77,106,151, 32,220,171,191,245, 16, 4, 13, 29, 39, 38,107, 91,209,177,104,229, -137,105,151, 7,104,219, 17,105,150,166, 20, 71,248,207,112,158, 50, 50,195,134, - 73, 76,234,158,253,130,227, 24, 75,122,227, 96,217, 14,224,198, 65,119, 25, 21, -219, 56, 31,194,198, 21,246,238, 23,215,115, 58, 59, 47,174,185,134,132,118,113, - 70, 18,238,186,250, 81,246,196,115, 21, 67, 64,232,128,248, 57, 3,101,109,212, -145, 43,113,171,195,174, 67, 14, 68, 97,118, 36,138, 76,227, 85, 73, 20,155, 83, - 52,240,140,173,106,120,249,250, 8, 26,220, 94,144,183, 15, 46,186,181,132, 26, - 44,241,140, 5,238,107, 66,127, 27,239,188, 78,210, 11,164, 49,252, 14, 16,142, - 55,203, 43, 72, 11,132,253,182,137,185, 14,132, 0, 3,140,224, 12,174,123, 61, - 16, 63, 76, 8,102,223,114,250,231, 48,134,112, 11, 76, 86, 87,106, 92, 99, 90, -159,244,232,169,206,113,137, 49,110, 69, 98,112,150, 8,212, 77, 4, 42,120, 11, - 43,104, 56,164, 90, 78,159,169, 39,209,251, 60,150,143, 99,101,140, 24,126, 64, -188,131,105, 57, 55, 28,164,241,236,251, 37, 14,166, 80, 19,208,111, 51,138, 71, -156,134,153,127,197,232,188,134,197,253,155, 51, 64, 66,147, 62,198,255, 43, 64, -131,200, 46, 40,219,118,105, 97,171,136,198, 64, 2,144, 55, 49,224, 70,168,172, -151,199,100,239, 99,118,196,194, 59,242, 33,226,137, 0, 82, 23, 6,214, 82,135, - 70, 55, 18, 51,152,236,129,106,157,138, 44,102,116, 8, 62,137,225, 73,244,127, - 91, 24,234,229,215,145,218, 62, 65,224, 24,218,129,230, 30, 5,117,107, 73,217, -237, 92,155,181,138, 59,216, 41, 61, 65,131, 92,191,252,176,238, 37,128,156,224, - 44, 84, 24,126,176, 0,156,110,146,194,125,107,160,244, 55, 37, 7,148, 56, 26, -176, 97, 36,225,157, 70,232, 33,205, 14,231,211,205, 61,198,220,110, 75,250,209, -130,111, 22,196, 75, 28, 32, 21, 28,115,242, 40, 84,177,164, 28,222, 89,169,170, - 93, 98,141,117,125,160, 27, 29,187, 5,212, 20,195,251,161,145, 25, 75, 69,173, -236, 28,213,221, 97,150,188,120,117, 9,230, 40,192,214,139,106,127, 41,167, 52, - 20,109,128, 34,241,211, 3,138,175,197, 48, 63, 10, 21,187,132, 63,226,191, 28, - 27,234,131, 73,212,214, 11,188,184,173, 67,237, 99,166,151,189, 52, 94, 14,203, - 80, 29,237, 78, 87,245,105,204,187, 72, 95,185,214,127, 6,238, 17,240,173,155, -209,151,101, 93,207,249, 76,220,230,173, 72, 47, 6,124, 87, 88, 29,185,133,187, -242, 93,179,117, 56,169, 44, 61,114, 51, 95, 0, 35, 50, 43, 21,246, 3,228, 21, -217,202, 28, 38,173, 5,220, 50,196,203,232, 71,229, 92, 5,182, 74,234, 37,191, -139,211, 73,109, 51, 2,242, 54, 27,199, 23,130, 81, 58,223,123,177, 72,204,248, - 4,217,194, 55,121, 95,160,141,194,225,232, 90,145,246,157,198,116,226,142, 0, - 14,246,148, 74, 62,137,252,180,242, 43,121,144, 47, 32,240,102,189,192,130,229, -200,151, 10,125,210,126,158, 87,207,212,191,168,103,160,176,235, 62,203,197, 18, -110,193, 49, 82, 14, 15, 36, 80,245,107, 2, 57, 15,253,194, 44, 90, 13,238, 80, -118,224,246, 81, 8, 29, 91,172,232,168, 65, 5, 28, 0, 99, 66,234, 80,252,188, - 35,216,174,187,177,143,223, 16,145,176,176,154,125, 22,124,169,172,187,175, 96, - 13, 10,251, 63, 48,251,232,185,212, 29,162, 42,251, 91, 35,139,122, 42, 13, 1, -192, 92,113, 94,196, 26,244,133,129,116, 94, 54, 1,218,110,229, 13,184, 42, 95, -101,193, 67,203, 66,112, 51, 64, 88, 59, 83,234,215, 4, 36,135,145,209,236,142, -107,214,254,238,187,166,167,184, 45,175, 85,161, 52,154,215,105,143,252, 75,233, -140,194,112,238, 69,165,120,168, 93, 24,236, 29,186,227,195,146,250,161,196,109, -212,251, 23, 97,253,223,253,125,146,254,101,131,132,104, 32, 5, 7,187,176,218, -176, 89,116,224, 41,202,185,133, 43, 77, 68,113,232, 47, 77,200,115,192,230, 47, - 38, 20, 90,241,229,169,108,129, 72,236,120,138, 8,113,191,172,134,111,220,119, -248, 16, 87,209,237,123,114,251, 91, 66, 20,156, 68,208, 24, 15,110,194, 69, 11, -149,169,245,220, 88, 0,248,250, 59,255,169, 88,231,216, 42,237,190,200,115,128, - 4,169,114,242, 31, 9, 75,136,187,194, 41,119, 42,112,124,132,176,147,241,102, -234,150, 75,135, 39,241, 4, 72, 25,181, 16,226,182,169,108, 70, 22,175,202, 62, -165, 37,226,174,145, 26, 1,238, 4,226,163, 57, 61, 48, 1,106,187, 67,225,203, -146,156,133,250, 33,138, 7, 64,245,186,133, 47,167,225,231,157, 43,190, 4, 60, - 61, 20,241,249,187, 50, 22, 21, 39,233,130, 91, 96,190, 26, 0,159,255, 73, 25, -123, 73, 13, 80,126,138,139,245, 49, 1,231,214,112,178, 4, 71, 91,101, 19, 77, - 7,147,253,204, 31,121,227,172, 44,207, 45, 17, 2, 47,114,231,196,208,136,180, -122,230,136,202, 90, 75,238,104,179,105,105, 13, 97, 72, 86, 86,180,208,223, 56, -154,219,180,244, 28,155, 88,177, 37, 8, 51,164, 89, 80, 77, 22, 4, 39, 71,171, - 85, 97,189, 89,200, 45, 95,196, 93, 4, 94, 14,211, 26, 98,248,180, 4,211, 28, - 15, 36,205,122, 99,119, 76, 42,166,216,189, 45,177, 20,222, 77, 24,240,214,244, - 50,228, 52, 86,130, 34, 1,174, 88,189,114, 58,157, 82,181,174, 72,167, 12,128, - 3,148, 9, 50, 62, 61,109, 35, 39,178,137,168, 15,237, 63,232, 96, 89,151, 4, -118,110,135,184,226,126, 62, 17,114, 48, 15, 28, 23,193, 14, 91, 5,216,146, 95, -187, 94,198,144, 98,223, 78, 39, 29, 61,213,137, 36, 83,123,242, 47,250,245,204, -218, 58,182,115, 58,166,100,198, 98, 21, 57,251,188,214, 6, 27, 33, 35,110,182, - 42,162, 70, 69,199,170,146,130, 86, 53,164,186, 45,170,208,174,164,180,106, 53, -165,169, 59, 81,196,169, 40, 78, 26,213, 94, 31,164,202, 67,119, 54, 89, 93, 8, -148, 73, 56,181,204,170, 80, 18, 20,119,103,131, 78, 89, 14,161, 4, 7, 86,154, -255, 73,126,164,186,226,129, 51,185, 78, 3,121,133, 33, 37, 30,226,225, 29,180, - 39,195,108, 22,187,146,252,107,136,164,221,102,158, 62, 95, 48,128, 32,241, 78, -194,100,122,189,230, 96, 81,228, 0,119, 4, 91,173, 93, 27, 63,138,214, 25,231, -247,207,118, 74, 3, 1,218, 48,197,101,175, 25,189,208, 84, 43, 85,137, 92, 8, -233,210, 16, 84,120, 85, 77, 21,143, 39,141,201, 55,198,225,146,141, 55, 30,157, -145,102,147, 5,134, 70,179, 99,248, 20, 33, 64, 65,163,131,242,201,166,242,244, -179, 43,110,171, 19, 4,160,196,222, 74,149, 64, 21,202,174,189, 73, 15,157,231, - 44,106, 0, 4,144,158, 47,190,154,115,219,155,242, 38,117, 46,159, 95,123,181, - 83, 49, 18,203,161,153, 30, 5,248,187,105,126,192, 77,175, 94, 25,171, 27,214, -129, 5,142, 49, 28, 45, 35, 17,216, 30, 0, 16,150,132, 24,221, 23, 76,151,178, -120,164,213, 30, 92, 50,246,200,230,166,222,253,216,165,126,249, 91,182,211,246, -120,129, 48,219,105,241,171,196,172, 45, 82,103,124, 87, 42,179,240, 90,186, 56, -129, 18, 34,193,165, 72,141, 38, 92,253,140,211,156,220, 69,251, 9,233, 12,231, - 5, 87, 66, 99,167, 0, 56, 30,183,166, 24,219, 32,244,234,193, 37, 3, 48,163, -219,167, 25,222, 49, 3, 78,143,143,173, 14, 37, 34, 83,148, 56,212, 2,246,222, -204, 90, 74, 22,115,116, 71,202,236, 46, 21, 65,228,248,176,138,156, 77,145,189, - 42,173,155, 75,102,141,249,224,107,187, 85, 8, 57,134, 61,225, 83,211, 65,224, -102, 35, 61, 61, 57, 14, 57,202, 16,210,183,127,155,113, 59,197,173,239, 89,100, - 88,140, 51,114, 9,188,252, 95,236,214,230,235,220, 51, 3,179,140,231, 51, 97, -123, 17, 18,188, 15,254,174, 28, 60,229,165,121, 8,167,104, 16, 55, 88, 4, 70, - 34, 27,111,196,177, 24,121,233,255, 14,164, 68,221,171, 49,167,208,186,210,139, - 46,119, 92, 36, 30,154,251,151,230,105,196,202,219,108,174,132,166,156, 86,177, - 97,158, 32,178,164,231,179,194, 85, 89, 16,225,188,208,230, 98,211,246,242, 52, -241, 88,124,180,175,150, 88,255, 63,168, 5,134,165,175,215,108,191,110, 31,165, - 78,151,217,175,135,230,177, 10, 41,241,250, 38, 33,192, 72, 94, 40,187,129,241, -207,155,140, 74,250, 77, 81,234,242, 9, 18,194,203,242,145, 3, 10,124,157,203, -235, 86,195,132,187,238,214,212,238,240,187,107,144,211,107,108,121, 68,160,116, - 82,225, 94,246,228, 43, 19, 12, 69,200, 70, 93,230, 7,225,168,161, 72, 46, 78, -237,128,146, 47, 94,144, 35,159, 34,144,244, 33,209,242,234,138,136,124,208,200, -211,241, 90, 32, 43,212,211, 15, 85,235, 65, 45, 81, 47,210,202,246, 69, 15, 5, -100,182, 14, 63, 21, 36, 77, 71,209, 90, 86,159,210,220,203, 0,170,208,218,185, -144,145,196,238,161, 8,162, 30,193,175,145,162,168,145, 77,149,150,116,114,127, -232, 56,213,233, 16,149,202,236,194,124,215,236, 49, 34, 16,147, 68, 20,178, 72, - 45, 2,104,211,232,238,123, 20,242, 61,202,122,148, 45,193, 94,110,207,242,109, -183, 49,178,183,203,254,132, 80,181, 6,114, 1, 12, 67, 38,190,117,176, 80,132, - 56, 53, 90,232,173, 42,236,181, 96,192, 94,202, 27, 74, 0,120, 41, 64, 1, 1, -156, 82,134, 71,154,221,202,162, 13,128, 75,245, 90,150, 46, 22, 32, 1, 71, 82, - 9,102, 43,172,222,183, 58,207, 21, 95,212, 53,193, 95, 80,180, 73,120,106,111, - 72,150,193, 33, 60,231, 15,207,235, 93,151,155, 49, 2,250, 13,114,169,249, 3, -187, 60,104,120, 80, 47,128,152, 55, 28,190,184,220,171,199, 6,100,129, 96,218, - 38,221,244, 88,119, 31,242, 26, 44,177, 61,157, 7, 89,106,200, 24,195,190,167, -126,249,158, 11,145, 15,120,209, 49, 17,171,253,227, 9,199, 25,247,134, 8, 23, -119,113, 39,230,155,235,117,183, 44,101, 54,123, 10, 47,209,216,102, 70, 43,182, - 22,218, 27,142, 93, 58,211,168,239,220,186, 3, 82, 87,148,108,240,223, 86,169, -138, 49,125,255,236,220,223, 64,114,226,177,224,205,211, 11,219,249,117,124,198, - 85,117, 97,167,245,170,236, 64, 29,229, 64,221, 46, 66, 62,136,165,189,109, 78, -210, 59, 5,167,212,243, 63, 74, 27,237,119,204, 6,205, 9, 84, 72,188, 51,219, -248,161,254,204,186, 7,111,186,180, 29,227,185, 79,254, 38,138,205, 44,166, 13, -214,178,246,229,133,133,250, 50, 68,169,224,168,189,177,144, 60, 77,220,121, 58, - 72,165, 98,133,239,121,116, 38,227,105, 27,254,159,240, 16, 43,228,199,163, 59, - 28,254,138,164, 99,216,216,229, 91,226,156,253, 64,164,246,251,135, 42, 18, 81, -163, 8, 78, 88, 97, 84,126,245,195,164, 47, 97,241,105,215,151, 82, 88, 75, 83, - 51, 10,140,230,242,150,104, 8, 99,186,188, 12, 39, 13, 61, 35,237,202,162,173, -240, 79, 3, 2,219,234, 91,128, 6,139,173,170,241,196,117, 48,214, 53, 14, 34, - 39, 20,242,210,118,122,250,241, 97, 26, 44,237, 41,122, 78,141,202,160, 25, 1, - 44,108, 21,197, 16, 73, 3,113,150,134, 67,204,183,248, 6, 24, 17, 0,162,215, - 79,122,218, 30,207,177,142,157,151,108, 56,199,164,196,177, 49,116,246, 16,129, -194,108,254,241, 40, 99,140, 30, 18,127,241,112, 16,202, 7,180,152, 41,116, 60, -214, 37,144,164,130,106,232, 70,109, 13,182,176,151, 2,132, 2,124,235,100, 81, -114, 3, 24, 34,114, 52,134,136, 32,238,201,163,200, 14,138, 6, 37,153,162,227, -227, 7, 76,234, 50, 69,158, 25, 16,179,142,156, 75,112,176,240, 97, 38,158,242, -237, 34,170,220,157,148,116, 16,117,106,221, 21, 1,210,103,125, 18,111,207, 41, -170, 98,116,159,137,182, 22,136,230, 99,187,210,245, 35, 63, 9,135, 42, 9, 51, - 28, 24,224, 13,194, 86, 94,233,121, 65, 94,133,231,205,200, 47,171,220, 28, 11, -109,162, 65, 70, 32,104, 17, 23, 18,108, 60,164,198, 1, 55, 62,230,171, 16, 60, -121,177,164,246, 34,140, 26,137, 23, 71,173,170, 85,214,107,116,192,167,176,236, -135,205,120, 0, 27,213, 51, 7,170,158, 26, 18,194, 25,187, 9,195,167, 8, 38, - 40, 93,165,126,116,228,148,191,242,203, 37, 57,177,235,140,214,180,139,219, 90, -113, 6,199,155,253, 67,114,103, 15, 65,233, 12,143, 56,136,244,120,226, 74, 95, - 23, 29,244,152, 80, 22,217,237, 95,102, 51,167,230,243, 85,236,198, 66, 73, 85, -197,105,166,119,111,118,193, 10,239, 49, 62,111,236,245, 54,129, 26, 5,187,209, -169,124, 36, 7, 67,108, 90, 60,181, 84,140,195, 83,219, 31,252,191, 6,189,141, - 13,145, 66,141,146, 40,213, 84, 28,111,185, 41,116, 68,180, 44, 34, 9, 34, 19, -230, 17,126,190, 65,139,222,123,163, 18, 1, 86,193,147,112,177, 25, 0,138, 15, -219,234,241,155, 36,145,144,215, 84,163,237, 72,147, 42,240,124,228, 45, 5, 59, - 25, 16,249,237,215,192, 91, 11, 39, 5,178, 83,200,227,199, 9,128, 9,250, 30, - 81,165,223,190,250, 56,131,237,193, 46,145, 35,109, 28,157,164, 70,158,202,120, - 33, 16,215,191,248, 73,102, 92, 9,162,112,222,104, 48,100,252,120,210, 95, 5, -118,144,123,222,165, 29, 65,117,211, 2,204,139,193,161,137,130, 95, 25,195,119, - 85, 46, 5, 79,105,194,210, 69, 62, 33,124,103,159, 82,249,234, 94, 16,170, 83, -241,225,236, 59,162,119,167, 20,105, 78,113,126,237, 61,246,130,202,139, 92,225, - 92, 28,119, 85,158,166, 68,236, 71, 16,144, 42,213, 17, 46,167, 20, 62, 6,220, - 52,195,195,148,138,224,183,194, 38,136,221,169,205, 73, 86, 80, 48,253,116,164, -217, 24,206, 40, 81, 74,200,190, 32, 46,122, 56,210,157,120,145,195, 8, 2,107, - 18, 80, 43, 52,149,166,112,223,140,211,173, 22,179,158,235,163,155, 92,246,255, - 56,141, 19,221,185, 16,122, 20, 69,232, 40,208, 21,124,220,124,180,157,174, 19, -177, 92,127,118, 86, 9,137,118,143,151,169, 3, 14, 38, 84, 32, 21, 73, 53, 12, -151,128,121, 75,116,127,192,222,144,239,245,122, 71,170,137,195,202,235, 72,236, - 16, 65, 11,157,229,206, 22, 11,101,181, 24,173,165,200,112,142, 64,101,184,189, -139,136,110,238, 99, 92, 77,117, 20,145,179,104,219,197, 46,111,170, 35,148, 51, - 16, 3,143, 41, 10, 81,109,179, 39,224,171, 20, 58,120, 22, 57, 74, 25, 74, 81, -235, 21,137,183,116, 43, 94,107,252, 58,199, 63, 26, 50,134, 58,114, 57, 70, 40, -247,222, 67,105,124,204, 46, 89,232, 21,170, 84,144,154, 53,234, 67,133,182, 92, -164,175, 18, 36,191,227, 86,191,230, 75,242,166,215,149,168,101, 33,178, 39,204, -119,178, 80, 96,140, 27, 41,165, 5,158, 48, 86,121,222, 4,155,229, 88,110,216, -127, 37, 35,105, 45,238, 84, 77, 98,217,156, 71,224, 45,116,139,128,180, 8, 92, -188,233, 17, 80,113,182,131, 90, 24, 46,228,252, 36, 1, 5,108, 35, 78,108,245, -163,211,221,125,126,127, 81,213,228, 0,134, 88,156,130,252, 18,136,122,150,157, -189,252,222,188,186,216, 75,127,109,205,200,209,119,245,202, 97, 5, 72, 41,168, -101, 11,192,137,100,116,143, 49, 9, 40,151,132,121, 19,160,186,185, 24, 35, 79, -143,216,108,231, 75, 97, 60,212,153,182, 10,117, 16,163,211,124, 83,110, 92, 55, -208,129, 15,163, 12,227, 68, 14, 42,204, 86,135, 50,130,141,197,156, 25,234, 73, - 28, 60,161, 96,122, 73, 87, 83, 53, 85,165,160, 98, 98, 89,131, 89,150, 97, 70, - 3,221, 36, 42, 45,151,203, 38,152, 73, 80, 98,169,162,156, 48,164,125,162,115, -205, 69,239,179,243, 86, 39, 14,146,131,229,183,157, 20, 27, 29,156,208, 78,181, - 95, 93,220, 80,243,150, 46,230, 58,144,162,151, 49, 12,244,208,208, 5,109,230, - 51, 5, 23, 7,221,180, 19, 63,115,224,164, 46,172,107, 25,103,158,187,184, 25, -244,184, 88,254,146, 20, 49,167, 1, 59, 98,212,147,206,200,224, 16, 52, 26,126, -184,239,112, 97,212, 61, 6,134,215,190, 30, 5, 20,139,156, 25,225, 22,208,192, - 77,104,155,239, 49, 76,189, 12,200,211, 87, 40,247,114,207,248, 82, 66, 96, 5, -244,227, 45, 40,182,123, 65,172,174,238,185, 47, 68,147, 67, 16, 40,245,228, 19, - 81, 60,108,171, 85, 87, 68,118,233,131, 91,102, 53, 36,117, 42,249,221, 74, 48, -166,141,135,180, 91, 1, 90,101,124, 19, 41,192, 14,109, 3, 10,136,233, 53,198, - 87,213, 60, 19,101,118, 8, 5,105,151,253,135,234, 17, 9,139,235, 14,198,187, -157,249,159,150, 33,219,166, 40, 48, 69, 7, 2, 32, 1, 57, 1, 43, 1, 59,159, - 36,247, 72,150,196,150, 2,179, 70,102, 89,233,191,166,111,125, 73,164,211,150, - 40,212,209,138,254,196, 44, 61,159, 44,244, 37,232,174, 60,211, 87,196, 58,255, -201,225, 32, 31,218,227,244,200, 79,162,153, 89, 15, 78, 46,209,216,107,214,186, -220,143,154,123,244,157,254, 59,157, 30,150,116, 79,142,215, 27,159, 42, 45,178, -142,124, 77,253, 22,198,229,104, 29,205,251,228,254, 89,160,122,145,103,215,159, -255,230, 82,148,212,145,189,121,131,188, 76, 2,100,146, 0, 97,137,156,201,124, -145, 98, 73, 49,234,179,196,168,117,172,234,252,228, 95,144,202,102, 81,108,252, -165,209,198, 41,237, 40, 75,110, 44,242, 55,203,202,175,104, 73,241, 90,216,100, - 45,147, 85,189,198,213, 56,154,178,199,153, 60,181,105, 71, 26,139,214,191,140, -109,141,211,187, 1,249,131,212, 52, 13, 67,123,100, 12,195, 54,205, 29, 35,251, - 76,194,187,164,171, 49, 44,234,190, 24,119, 76, 28,203, 82,230, 8, 78,250,246, -210, 6,153, 28,249,194, 18,110,150, 38, 75, 62, 50,118,113,188, 37, 18, 59,246, -121,198,216, 83,229,124,241,136,210,219,142,210,122,177,234,151,122,189,212,106, -166,183,154,252,191,175, 74,221,228,223, 95,190,203,119,249, 46, 95,213,245,171, - 87, 57, 34, 81,203, 12,214,227, 91,185,128,127,134,230, 54,248, 73,141,237, 72, -223, 49,159,239,128, 60, 44,171, 86,213,230, 61,207, 1,180,246,255,186,241,124, - 44,135, 70,228, 95,105,145,164,192,114, 86,229,155,230, 32, 23,110,200,208,198, - 70, 22,251, 95,115,103,171,113,130,168, 61, 62,241,254, 75,182,173,212, 13, 6, - 34,249,132,168,155, 79,179,243,169, 28,241,138,182, 28,199,209,195, 0, 0,248, -140, 3, 13,192, 39,136,120, 62,205, 39, 33,244,109, 48,152,106, 73, 6, 52,175, -139, 20, 60,247,219,107,149, 89,250,115,159,137, 72,184, 9, 67,208,219,192,206, -231,100,201,145,214, 1, 25,106,166,180, 45,170, 86, 62, 31, 36,139,120, 42, 39, - 4, 46,124, 53,244,104,190,154, 0, 94, 76, 0, 90, 78, 25,143, 12, 26,221, 81, -168,152,132,207,159,251, 52, 29,169,128,157, 74,209, 66,152,205,134, 19, 42,233, - 83, 91,232,124, 48, 19, 59, 99, 19,149,109, 9, 30,141, 37,228,140,240,214,101, - 54,192, 80,194, 15,197,194, 52,121,202,103, 41,253, 9, 39,147, 47,106,195,201, -104, 64,206,134, 64,235,194, 1, 77,211, 44,156,170,137,218,166, 62,211, 12, 10, - 48,225,135, 96, 91,177,211,141, 72, 53, 96, 85, 28, 68, 88, 67,138, 5,115,197, - 50, 2, 86, 54, 25, 8,239,235,124,144,176,243,155,167,102,194, 77,130,198,169, - 25,143,165,220,159,101, 25,129,197,161, 19, 10, 65,239,106, 8,128,133, 66, 14, -135,131, 12,112,228, 83, 20, 43,170,172,172,247,252, 45, 84,233,189,245,185,187, - 91, 79,249,250,168,242,247,185, 81,118,212, 97,117,226, 65, 39, 27, 67, 47,236, -116, 83,128,120, 3,202, 20,182, 40,209,180,164, 21,177, 7, 92, 88, 0,229,194, -254,145, 57,107, 69,207, 93, 65, 94,141,211, 63,213, 72,161, 20,145,226, 94,227, -106, 52, 28,141,159, 68,228,211,162, 92,213,205,139,122,104, 74,162,239,137,141, - 59, 97,245,227,189,175,168,107, 77,150,146, 10,203,216, 33, 4,199,135,190,163, -200,110,125,189,141,109,234,189,235, 43, 16, 83,209,212, 5,157, 73, 36, 18, 41, - 20,234, 40,132, 53, 84, 27, 66, 33,247,222,194, 48,236, 53,146,105,171,235,218, -102,169, 53,205,225, 47,138,174,235,253,177, 43,244,161,191,204, 83,116,165,150, - 12,101,125,129, 36, 92,116,149,176,212,238, 76,161,223,154,165, 64,101,237,198, - 90, 99,209, 47,201,146,242, 37,253,165,249,205,229, 1, 0, 86,193,132, 27,135, -144,231, 1, 28,153,103,169,189,157,222, 42,172, 11, 31, 68,168,178, 24,205,184, - 45,128,116, 26, 36,167, 46,246, 3, 91,151,105,148,244,102,105,117,190,160,166, - 3, 81, 29, 48, 29, 1, 1, 4,215,214,162,176, 91,111, 74, 87,190, 54,215,114, -101, 75, 86, 56,129, 79,185,172, 92,143,214,158, 48,236,249, 87, 85, 32,102,202, -117, 92,199,117, 92,183, 69,182,200, 22, 49, 61,207,244,188,207,196,239, 13,188, -247,110, 13,164,105,234,185, 46,200,247, 37,112, 29,215,113, 29,215,109,145, 45, -146,214,106,202,255,125, 9, 92,199,117, 92,199,117, 91,100,139,156,159,136, 52, -181,206, 19, 83,140, 27,143,112,250,164, 69,185, 7,146, 8, 53, 26,184,158,159, -166,103, 90, 17, 60, 53, 89,176,255,197,146,141, 19, 87, 8, 13, 50, 85,134,218, -153, 34, 79,191,184, 92, 92, 88, 46,200,204,196,225, 22, 61, 98, 59,225,150,165, - 74,185,246, 48,137, 53,246,121,207,229,191,152, 42,130, 37, 62,206,111,249,243, -201,114, 67, 76, 99,249,153,176,101,169,180,205,180, 46,241, 7, 69, 54,138,100, - 98,127,208,230,156,119, 94,224,153, 38,225,119,164,121,219,195,203,180, 50,103, -149,235, 83, 60, 55,206, 36, 75,126, 26,203,214,169,132,213,129,225,171, 20,237, - 97, 61,212,140, 41, 99, 38,189, 47, 96,197, 18, 78, 44,253,142,129, 10,154,106, -113,174,104, 64,144,198,162, 0, 82, 44,191, 89,222, 39,185,196, 70, 25,139, 87, -180,196,124,189,140, 73, 87, 84, 69,182,151, 92, 38, 22,175, 26,199,108,233,202, -227, 18, 43, 58,189,127, 74,250,111, 75,168,209,218,125, 69,218,127,107, 43,162, - 92, 61, 94,135,231,168, 20,202, 41,242,170,177,219,252, 73, 29, 1,144,139,168, -212,249, 70, 37, 35, 18, 0, 20, 0,195,178, 0, 8, 10,139, 77, 69, 18,137,156, - 7,138, 82,123,164,224, 70, 68,152,134, 17,134, 15,134,196,161,104, 32,136, 8, - 8,137,129, 1,152, 0, 3, 48, 8, 1, 3,160, 0, 66, 1, 24,128, 66,128,164, -145,249, 41, 92, 80,110, 64, 72,182,224, 78,142, 26, 62, 19,140,187, 95,170,161, - 53,156,165,210, 35,205, 32, 4,208,159,123,154,123,205, 58,216, 72,192,187,213, - 66, 18,124, 97,165, 24,211, 13, 96,208,248,115, 56,146, 59,161,114,135, 5,134, -254, 53, 44,123, 59, 35, 40,136,129,144,232, 58, 19,206,231,102,122,218,192, 51, - 78, 91, 17,144, 22, 66,241,154, 80, 3,187, 16,231,215,124, 74,192, 78, 11,162, -150, 16, 1, 10,128,234,131, 46, 45,184,179,132,233, 10, 98,112, 90,168,195,255, -109, 81, 59,237,128,127,182,187, 41,200, 5,185, 57, 2,148, 55,247, 42, 0,246, -187,222, 67,224, 59,236,203,163,248,179, 23, 90, 4,225, 92,241,253,181,134, 59, -244, 87,127, 2,195, 22,141,230,161,247, 56,181,111, 40,106,216, 39, 83, 41, 4, - 16, 64, 98,141, 70, 24, 66,238,233,137,107,193,141,126, 1,163,209,226,181,148, -124,121,216, 30,219, 32, 87, 14,195,149,233,223,219, 47, 85, 82,202,131,110,176, -106, 25,195,120, 73,100, 24,168, 82, 5, 12,201, 24,231,134,125, 15,101, 24, 23, -185, 12,227,171,173,103, 46,101,148, 0,165,165,120, 38, 14, 82,241,200, 56,156, - 60,252, 0,220, 39,224,203,171, 72, 59,222, 70,166, 28,165, 64,114,205,200,171, -148,198, 20,219,164,230, 81, 9,196, 81,122,200,129,146, 0,128,218, 52,233, 77, -240,188,193, 26,176, 48, 3, 78, 38, 39, 9, 66, 96,206,105,198,251, 12, 72, 80, -244, 96, 97, 9,102,205, 62,203, 8,189, 61, 20, 66,155, 67, 19, 50,159,163,227, -135, 41, 90,194, 20,232,225,128,139,230, 38,190,225,122,216,148,178, 6,113, 92, -179, 52, 63, 59,139, 75,179,239, 85,107,236,171,203, 13,104,114,166,139, 48, 15, - 50, 71,162,244, 24, 14,128,138,114, 38, 59, 64, 74,216, 26,225,238,138,196, 29, -159,200, 19, 1,201, 1, 0, 26,242,115,241,182, 47,164, 89, 14,172,187,133,244, -138,173,237,145, 70,182, 57,163, 35,100, 83,165, 65, 54,124, 78,185,196, 47,234, - 3, 66, 54,177,142,175, 64,195, 40, 79, 54,222, 26, 15,250, 14, 57, 76,104,172, - 45,135,101, 73, 67,210, 47, 44,204,118, 49, 2, 83, 17, 97,100,146, 86, 20, 56, -139,187, 65,206, 88, 33,188, 88, 70,237, 42, 8,103, 44, 66, 84,244,236,123,212, - 36, 10,227,107, 53, 17, 78, 58, 78, 70,172,115,181, 17, 99, 65,135, 79,223,136, -115, 82, 10, 53, 45, 69,198, 42,250,153, 48,130, 73,167, 22, 61,165, 46, 98, 71, -101,173, 70,132, 12, 56,222,243, 30,225,162,210, 41, 36,233, 96,186,132, 60, 22, - 44,133, 22,125, 24, 0,129,227,151,250,167, 35, 0, 64, 28, 85, 40,225,235,217, -205,198, 24,135, 82, 33,197,166,148, 32,235,101,187,100, 12, 13,238,134, 76,149, - 39,180, 51,136, 82, 79, 84, 96,136,162,250,176, 75, 33,210, 37, 30, 5,186,136, -144,128,161, 84,163, 33, 58,255,246, 6, 15,130, 23,198, 7, 89,238,240, 22,122, -239, 17, 26, 20,132,102, 4,224,128,176,189, 34,171,176, 81,173, 96, 27,248,191, - 3,152, 89, 16, 21,105, 70, 84, 53,214,200,111,181,222, 11,130,172, 32, 34, 56, -155, 27,136,251,139, 1,177, 58, 4, 37, 59, 63, 54, 44,175,166,236,239,193,173, -129, 80,142,163, 54,210,172, 65,248,105,172, 59,141,253, 81,166,107,130,144,234, - 95,147, 76,122,212,208, 66, 43, 87, 21,225, 32,176,213, 38,194, 20, 6,177,101, - 76, 3, 49,128,210, 11, 65,130, 48, 2,166, 87, 72, 44, 16, 24, 19,216,167,144, -245,154, 35, 12,129,150, 66,199,192,116, 36,177, 49, 24, 65, 26,105, 27, 30, 65, - 99, 60, 73,174,206, 10, 62, 90,127,160,149, 10,125,137, 16,203, 30, 80, 28, 33, -138, 27, 46, 52,194,160, 15, 67,184,219,213,226,141, 96, 4,113,158,181, 44, 32, - 85, 18, 94, 14,116,249, 47,132,219, 5, 95,245, 27, 56, 2,153, 87, 55, 94, 49, -192, 23,132,250, 16,192,178,159,227,225, 0, 41,249,244, 6,213,157,188,228,216, - 9, 98,220,225,204,132, 6,186,218, 20,137, 68,157,156,121, 40,198, 20,158, 65, - 46,139, 89, 63,134,227,124,162, 73,223,104, 55, 94,113,155, 54,113,126,128, 75, - 26,110,112,106, 68,197, 49,199,164, 59,169,251, 93, 47,246,211,249,102, 75,147, - 5, 5,208,241,143,221, 81,196,204,103,145, 7, 62, 46,215,235, 10, 39,103,167, -212,251, 41,250,167, 83, 5,250,157,225, 78,236,126,144, 6,173,147, 78,158, 93, -174, 49,132,245, 53,247, 5,249, 50, 32,234,133, 98, 22,220,105,111,129, 70, 87, -230, 59,157, 41, 85,152, 45,237, 6,152,180,156,110, 49, 78,148, 12,160,242,253, - 56, 93,219, 83,228,182, 45, 22,246,164,192, 39,158,205, 70, 4,108,112,149, 57, -166,129, 76, 49,154,139, 56,134, 57,149,154,121,145,123, 48, 26, 83, 46, 42,161, -180, 70,137, 98,249, 69,111,161,159, 9,225,194, 45,199, 81, 30,102,107,123, 92, -120,192,181,152,216, 36, 80,238,193, 38,203, 68,152,111, 29,230,211,178, 53,130, - 96, 16, 27,141, 91, 17, 24, 8, 46,158,200,206, 37,188,172, 87, 46, 5, 20,175, -182, 16,252, 26,176,155, 7, 62,253, 73,200,242,247, 61,244, 40, 80, 20,161,204, -115,114,125, 17,166,116,164, 84,235, 41,187, 77, 98,176, 16, 62, 60, 11,134, 93, - 50, 40, 91,116,160,232, 17, 93, 50,186,126, 69,212, 51,118,135, 29, 44, 74, 3, - 20, 37,200,232,178,204,247, 29,115,129,166, 18, 51, 70,154,134,147,250,176,208, -202,112, 13,190,149,168, 29,183, 13, 43, 1, 98,113, 98,104,236,152, 8,172,177, - 66,236,131,120, 36, 17, 80,166,120,134,231,111, 65,210, 53, 17,169,181,228, 55, -205,103,210,141, 65, 33,230, 75, 24,206,199, 12, 33,207,237, 31,118,251,209,142, -159, 51,184,216,157,137,248,135,250, 25, 79, 5, 1, 77,230,133, 15,158,209,136, -155,247,139, 97,218, 14, 83,251, 10,160, 40,232,105,242, 24,254, 55,105,156,162, - 19,196,152, 80, 16, 52, 39,129,206, 60,208,114, 93, 67,173,134,229,215,198,199, -254, 55, 20,137, 6,170, 5, 2,114,230,135,239,196,145, 24, 87,223, 34,176,211, -128, 86,130, 85, 65,145,108,124, 52,199, 72,192, 97, 66, 69,136, 36,220,172,254, - 90,107,171, 52, 24, 84, 36, 67,230,113,181,232,130, 65,248,246,111, 97, 21, 14, - 50,143,138,185,186,253, 31,170,227,111, 44, 10, 15, 8, 27,141,205,153,185,176, - 34,255, 72,166, 68,198,143,184, 71,119, 56,138,157, 42,148,114,180, 55, 22, 46, - 93, 7, 30,180,252, 28,199,223, 58,125,134, 29, 39, 96, 74,152,138, 1, 60,105, -229, 69, 55, 51, 91,139,115,149,180, 22,241,132,172, 0,250,107, 55, 69, 96, 65, -121, 79,212,122, 34,249,138,166,137,215,103,181, 69,115,126, 33, 69,146,109, 34, -130, 66, 41,226,165, 2,241, 64, 50,215,232, 24,108, 65,124, 17, 2,171, 31, 5, - 96, 46, 82, 97, 57,128, 21,165,196, 36,126,234,170,156,130,171,252,113, 16,160, -142, 84,128,150,195,165,225, 47,144,169,148,232, 75,137,137,162, 55, 53,103, 46, - 33,148, 34,234,110,168,220,209, 45,224, 48,213,196,135,123, 1,107, 95,215,210, - 34,113,125,233, 79,129, 14,109, 54,253, 29, 32, 50, 2,123, 88,211,252, 93, 85, - 10, 69,192,164,246, 6,221, 38,219,166, 59,113,229, 17,252,140, 85,103, 90, 13, -150,123,220,208,181,179, 4, 82, 33,138,124,224, 3,203, 17,208,180,120, 52,160, -213, 26, 74,228, 17,180, 79,162,143,140, 96,138, 20,118,177,183,158, 48,152,219, -161,141,156, 80, 41,253, 52, 0, 65, 43,248,238,118, 31, 45,171,188,223,152,164, -147, 28,116, 66, 31, 27, 21, 25, 80,142, 40, 96, 26, 36, 50,173,255,199,115, 59, - 88,230,101,167,252,134,125, 54,123,251,103,210,155, 7,114,149, 97, 70, 26,157, -217,187,235, 59, 2, 41,192,237,131,231,172, 69, 29, 50, 55, 25, 2, 79, 14,138, -172,200, 37,191,135, 23, 30, 69,254, 4, 48,107, 72,180,226,165, 30, 53,209, 10, - 7, 96,117, 5, 55,174, 64,143, 5, 42,148,222,160, 50,149, 97,180,147,233, 16, -248, 39,208, 7,117,210, 12,226,163,230, 34,220,197,161, 30,106,178,251,212,211, -170,104, 22, 54, 73,245,113, 0,125,117,108,159,201,196,134,133,220,154,179, 59, - 16, 24,187,175, 20,231,134,212,132, 19,239, 66,140,108, 46,252, 39,198, 5,240, -131, 79, 21,177, 16, 83, 44,170,146,175, 3, 30,211,243,212, 40, 91,252, 59,175, - 73,161,124, 91, 24,241, 7,227,146, 91,242, 82,167,184,100, 16,185,192, 88,162, - 68,144,141,215,153,151, 97, 91, 48,220,254, 95,206, 46,167, 63, 62, 93,225, 44, -155, 43,227, 36,116, 49,142,174, 12,195,157,212, 77,106,110, 38,145, 98,193,131, -117,154,132,113,244,116, 91, 64,219, 3,198,136, 66,125,147, 83,200,212,127,171, -222,160,229,101,169,246, 23,216, 46,220,247,125,160,121, 17, 41,198,206,209,129, - 63, 19,142,233, 6,241,115, 25, 85, 62,134, 31, 12, 70,186,135,144, 81, 35,140, -249,123, 48, 8,101, 81, 93, 48, 15,148,188,234,210,195, 54,120,224,235, 55, 23, -184,137, 5, 58, 20, 29, 13, 1,160, 56, 38, 60,175,148, 52,127,117,154,140,185, -236, 84, 81,160, 60,238, 84,178, 22,210,210, 11, 69,209,222,193,139,170,150,249, - 66,214, 8,169, 26, 53,220,106,144, 38,116,144, 2,179,221,198,237, 43,117, 45, -198,188, 86,109, 32, 1, 44,205,235,108,135,178,173, 34, 13,122,246, 76,140,126, - 18,141,181,104,165,203,169, 59,216,101,128, 92,254,186,192,196, 29,212,145,196, -251, 94,173,201, 64,244, 26,173,177,245,252,251,162, 49,212,178, 41, 20,137, 23, -104,103,110,151,131,239, 77, 27, 9,206, 17, 42,249,186,188, 73,227,123,197,137, -186,126, 67,236, 84, 74, 37,117,171, 48, 11,215, 24, 58,101, 39, 68, 83, 79, 72, -110,105,245, 35,133,122, 27,122,219,198, 73,130, 0, 81,142,134, 51,145,160,216, - 97, 54,233,213,235, 72, 82,245, 19, 36,251, 84,180,168,204, 29, 0,201,193,153, -122, 52, 0,103,149,146, 34,228,180,196,231, 74, 97,121, 97, 69,253, 86,230,131, -219, 18,138,117, 37, 61, 44, 37,239,126, 16, 24, 84, 9,166, 4, 88, 53,132,237, - 5, 99, 8, 27,172, 88,244,139,152, 20,233,169, 84,172,205,195,229,252,117,217, - 13,178,254, 49,123,249,144,180,189, 21,219,250, 99,127,247, 54,235,101,174,235, - 62, 57, 33,232,244, 81, 66,209,149, 60,160, 40,247, 80, 25,146, 16, 93,112,224, -198, 20, 58,182, 60,103,227,249,134,233,178, 33,131, 75, 67,231,115, 55,225, 3, -144,230, 44,192, 93,146,209, 50,126,157, 21,156,244,232,195,214, 46,147,172, 14, -201,105,173, 0, 76, 33,138,185, 9,134,236, 20, 80,105,216,208, 26,217,149,102, - 83, 33,136,180,251,214, 10,153,159, 58, 33, 31,181,173, 62,211, 92, 6,230, 9, - 96, 35, 24, 29,254,110,197,115,113,110,158,111, 85,167, 56,121,208, 91,254, 35, -185, 18, 76,174, 24,251,248,121, 19,187,211, 66,151,145,231,179, 74, 48,117,115, -219, 95, 99,114,211,134,154, 72,194, 44,159,221,156,252, 47, 11,228,251, 11,139, -175, 95, 2,220, 89,153,214,143,168, 38,165,106,163,165, 61,215,233, 48, 82,104, - 16,175, 3, 24, 38, 2, 46,208,232,180, 19,204,255,214, 54,196,248,108,183, 73, -109,147,130,102, 75,139,219, 99,112, 80, 66,142,144,116, 35, 89,234,204,149, 19, -106,206,242, 45, 59,136, 42,206, 86, 68, 81, 35, 20, 75,162,208, 79,100,249,150, -254, 16, 51,248,143,253, 21,253,148,176, 13, 52,106, 33,114,204, 54, 10,176,236, -187,115, 44, 33,215,215, 30,128, 43,149, 74, 96,209,128,211, 31,191,103,131,202, - 78,216,231,192, 68,172, 84,240,104,154, 67, 70, 11, 58, 45,229, 7,237, 69, 81, - 36,184, 97, 61,230, 11,151,156, 46, 65, 2, 27,231, 18, 76,132,213, 27, 60,170, - 10, 51, 88, 16,173,102,246,164, 27,173,111,150,233,134,180, 66,231,209, 41,201, - 92,126,122, 46, 14, 36, 97,185, 40,159, 35,151,141,249,170, 90,250, 34,108,204, - 77,174, 47,166, 64,249,107,217,227,136, 59,181,120, 78,136,208,161,109, 51,152, - 85,240,222,202,236,109, 35, 67,253,161,156, 8, 37, 11,210,170,121,128,221,165, -218,131, 86, 56,101,194,224,184, 4,135, 15, 0,134, 49,250,217, 12,188, 23,185, - 55, 22, 54, 14,220,198,241, 70,177, 87, 37, 15,129, 56,232, 78, 2, 91,218, 75, -144,136,124, 34, 75,184,140, 69, 37,108,132, 25,252,157,225,215, 56,237,218, 10, - 65, 73,206,210, 73, 7, 86,114, 11,216, 4, 39,232, 16,133,162, 45,215,142,170, - 4, 45,113, 85,162, 96, 21,139,253, 30,176,168,250, 80, 68,226, 61,235, 6,213, -233, 3, 11, 15,215,222,124, 19,244,207,160, 35, 10, 41, 98, 87, 3,212, 43, 85, - 24,240,169, 7, 3,163, 54,173, 53, 30,242, 50,228, 90, 87, 98, 99, 24,117, 34, - 5,242,134,155,241,168,110,166, 2,223,214,205,123, 67,178,109,225, 44, 41, 72, -182, 43, 49, 83, 68, 42,156,143,235,103, 73,127, 86, 36,245,121,227,219,212,153, - 97,149,121,200,165,124, 18, 95, 10,249,233, 3,126, 18,228,152,207,154, 96,208, -144,229, 70,204,216, 40, 9, 49,173, 60,244, 39, 88, 97, 84, 31,250, 78,137,200, -166,105,230,112,136,249, 15,241,112, 67,183,227, 27,167, 1,174, 94,199,244,218, -194,131,152,166, 45, 70,122, 38, 21,250, 62,180,200,235, 40, 71, 44,144,117,225, - 11,104,236,145,226, 21,197,205, 45,124,129,252,197,151, 32,120, 65,137, 21,112, - 17,113, 87, 63, 98, 41,234,119, 80, 27,151, 67,173,116, 9,114,140,106, 17,226, - 68,146, 52, 41,115,182,131, 56, 3,197,118, 20,204,183, 0,114,155,125, 70, 69, -254, 9,157, 39, 37,165,184,135,203, 18,166,189,178,175,183, 32, 94,182, 53, 98, - 47,193,134, 19,107,233,123,107,250, 46,233,133,218,190,223, 69,101, 81, 9,206, -182,182,138,201,238,173,224, 0,168,130,249,207, 78,196, 96, 65, 49,197,203, 69, -141,109, 46,171,185,192,254, 23,207, 36, 3,220, 84, 91, 20,188, 67,158,106, 88, -252,104, 42, 74, 34,101, 33, 85,228,128, 30,252,149,110, 29, 32, 68, 82,199,166, -101, 60, 20, 66,254, 47,109,122,126, 86,223, 65, 68, 71,143,252,196,216,166,217, -140,241,165,137, 4,221, 39, 38,203,133, 64,138, 28,100,226,155, 82,241, 15,103, - 24,151,194,139,143, 52,126,246,119,147, 11,222, 46,196, 58, 4, 9,241,178,138, -191, 53,239, 17, 30, 92,132, 34, 44, 40,199,211,211, 12, 1, 18,248,137,222,147, -162,153, 36, 29,132, 46, 48, 11,249, 4,235, 19,203,224,156,120,117, 82,144,159, - 86, 25, 28,110, 98, 85, 18, 36, 15, 71,170, 52,197, 66, 66, 30, 78, 53,129, 39, - 46,131, 82, 59, 86, 99,219,140,210, 45, 60,196, 59, 33,212, 86,158,252, 47,102, -248, 68,200, 41, 55,177,107, 37, 43,247, 67,219, 8,172,164,206,137,172, 42, 15, - 84,129,245,123, 19,146,205, 10, 88,146,155,252,157,255, 42,251, 64,243,243, 42, -156,115, 22, 31, 82,208,217,218,180, 6,107, 45,153,158,113, 25,234, 72,220,230, -123, 50,147,157, 95,209,168, 18,113, 51,104, 60, 85, 75,135,189,226, 57, 28,221, - 65, 88,115,249,193,156,157,150, 2, 87,219, 65,187, 34, 92, 81, 87, 50,165, 85, -229,117,142,140, 94,181, 21,173,160, 46, 93,131,130, 95,112, 69, 64,177, 93,144, -206,241, 32, 96,162, 20, 21,221,114, 72,240, 24,206, 56, 3,158, 99,103,108, 70, -231,168,188,238,236,116,131, 12,184,170,228,242,121,238, 75, 40,115,129,167,115, -207,254, 12, 45, 32,158,130, 1,148,250, 12, 30,180, 67, 26, 97,219,161,207,138, - 35,176,129,165,217,132,238, 42,196,182, 64,148, 34,113,153,133, 65,231, 89, 0, - 41,100,197,108,182,157,170,121,112,133,209, 50, 18,185,108, 84, 3,105,114,107, -183,215,236,242, 41,190, 12, 77, 31,174, 17,114,145, 81, 52,162,146, 28, 49,175, - 21,105,106,136,220,168,173,246,106,251,148,217, 15,146, 6, 2,193,166,105,145, - 36,189,132,146, 81, 31,211,114,244,196, 13,225,210, 73,138,236, 54,193, 51,214, -123,227,113, 59,126, 12, 46,169,194,160, 90, 88, 81, 33, 60, 22,248,170, 24, 66, -196, 35, 78, 80, 16, 4, 16, 31, 20,140,140, 70,120,190,176, 54,198, 57,124, 42, -168,220, 90,227, 73,220,219,176, 84,201,243,188,120, 1,200,244, 67,178,104,112, - 3,234,172, 72, 49,173,218,194, 34,149, 30,129,103, 46, 69, 41,128,194,180, 28, -134,194,184, 10,109,162, 88,217, 41,181,118,187,208,108,154,177,226,255, 71,105, - 8,105,250,242, 96,127, 17, 10,182, 27,206,166, 27, 81,222,141,107,135, 37,194, -134, 79,199,218,232,176, 86,251,120,210,169,156,167, 97, 66, 10,184,216, 66,243, - 71, 70,253,230,220,221,207,223, 84,121,243,225,143,172,224,243, 44,153, 12, 9, -117,220,168,137,202,102, 37, 4,157, 31,248,209,196, 29,220,151, 32,172,122, 27, - 54, 40,177,107, 63,136, 50,149,245, 98,174, 90,214,201, 38,134,179,144,114,153, -137, 28,136, 68, 1,250,230, 76,190, 57, 86,227,248,196, 16, 98,233, 18,242, 78, - 3, 3, 23,152,168,200, 76,151, 77, 71, 15,232, 74,168,175,207, 91,103,199,235, -193,130, 21,255, 51,117, 43,119,160, 32, 12,139, 90,242,211,133,116,250, 60,172, -200, 85,156, 15, 40,162, 65, 5, 39, 5, 28,115, 52,202,129,183,136, 10,233, 87, -242,176, 97,201,184, 25,139,224, 1,153,194,134, 38, 87, 98, 4, 80,154, 51, 56, - 97,250, 27,171,167,171,172, 56, 5, 71, 46, 68,212, 85,219, 27,245,201,173, 89, - 29, 67, 13,212,120, 13,233, 86, 21,107, 96,217, 29, 28,194,139,112,236,157, 13, -193,126,175,152, 66, 42,117,130,228,128,153, 92,249,153, 18, 15, 87, 41,219,223, -227,198,121,142, 44,206,130,197, 59,242, 35, 4,140, 47,105, 51,131, 59,221, 54, -220,220, 64, 58, 36, 87, 54,145,172, 61,231,229,199, 49,106,143, 87, 48, 90,137, - 51,204,235,223, 85,159, 98, 47,181,197,194,209, 58,202, 58, 98, 40,118,152, 77, - 73,145,215,122,126,255,189,100,157,169, 51,159,202, 35,132,128,250, 48,226, 91, -176, 59,116, 56,165,230, 54, 90, 90,105,168,138, 27,175, 53,156,165,161, 58,192, -105,167, 63,242,194, 22, 80, 33, 97,161,213, 75, 61,185, 75, 71, 86,199,155,161, - 80,130, 9,144,167, 13, 73,175,157,235, 83,133,108, 60, 46, 0, 7,248,108, 8, -163,209,137, 25, 23,114, 13,210, 23,195, 21,124,173,204, 31, 33, 19,160, 60, 45, -111,179, 91,204, 83,225, 31,128,187,232, 89,127,162,138,135,162, 34,210, 55, 29, - 49,113, 10,239,143,135,231,166,138,156, 33,101,185, 73,135, 94, 80,121, 55,217, -164, 40, 54,132, 15,110, 98,180,233,105,249,238,225,120,140,121,134,122, 0,187, -132,232,127,102,196, 56, 77, 65,120,101, 90, 34,251, 51, 22,105,221,187, 30, 52, -211,120,223, 8, 50,130,159,215,128, 64,119, 38, 98, 39,196, 5,153,153,210,210, - 49,236,101,138,187, 32,222,243, 13, 72, 83,140,175,170,196, 76,219,183,238,244, - 60,129, 44,213, 76,241, 55, 99,180,188, 19, 74,107,162, 73,201,137,224, 78,155, - 56,192, 87, 51, 43,246,118, 14,208, 14,136,191, 33,101,119,152,184, 73, 60, 37, -238,194, 14, 98,182,239,101,155, 86, 23,211, 52, 13, 78, 70,149,156,203,233, 18, -236,166,217,216,245, 57,150, 27, 16,252,182,186,177,130,244, 85, 3,154,222,168, - 79,211,228, 77,231,225,121, 48, 0, 74, 64,153, 0, 18, 72, 13, 38,147, 16,196, - 17, 11,165, 15, 15,142, 32, 38, 36,192,235,231, 12,144,131, 61,233,201,165,137, - 84,190,101,181,180, 42, 35, 22,144,235, 83, 85,101, 55,129, 56,196, 88,150,155, -158,130,173,121,126, 4, 44,137,233,102,237, 16,126, 90, 60, 0, 11,233,224, 68, -136,198,113,253, 92,219,166,233,248, 57, 52,123,203, 85, 28, 7, 2, 58, 94,124, - 22,174,201,207,211,135,194, 67,166,212,184,161, 8,139,198,138, 88,159,129,240, -141,147, 16,155, 72,197, 0, 9, 99, 34,198,160, 39,232, 89,135, 36, 5,102,119, -121, 74,110,217,249,226,154,238,102,102,194, 87,116, 79,174,166,105, 40, 91,142, -138,172, 87,159, 45, 63,219, 5, 89, 62,211, 83,172,126, 51,193,243,176,159, 0, - 65,160, 30,202, 1, 41,131, 87,174, 7,222, 62, 7, 12, 12, 64, 2,238, 22,196, - 34, 8, 25, 97, 65, 28, 60,184,107,200, 21, 56,172, 71,199,209,131,140, 72, 53, - 88,160, 24,218,161,134, 6,238, 21, 86,194, 60,227,192,173,109,195,216,240,166, - 23, 31,233, 30,102, 57, 12,252,208,100,246,175,129, 91,150, 74, 17,247,226, 14, - 89,139, 15,165,202,195,161,166, 15, 93, 95,234,131,243,144,227,176, 27,172,126, -236,192,250,181, 17, 90,253,229, 49,207,227, 86, 31,235, 44, 46, 73,154,237, 42, - 71, 64, 9,228, 62,116,186,134, 66,247, 77,222,234, 4,162,107,119, 19, 22, 77, -170,197,177,126,186,248, 72,186,214,155, 74,109,241,230, 99, 63, 58, 18, 61, 48, - 72,135, 96, 7,178,156,159, 81, 14,164,152, 75, 81, 52, 46, 15, 77,233,219,151, -178, 2,129,208, 31,201, 85,138, 42,143,160,105,224,224,142, 78, 25,132, 15, 8, -136,153,107,164, 52,168, 52, 99,203, 66,110, 78, 52, 40, 25, 59,106, 59, 69, 67, - 21, 29,243,131,254,222,102,232, 55,241,227,239, 73, 70, 88,195,238,112, 34,211, - 4, 56,190,128,118,105,174,222,118, 68,195,176,249, 17, 7, 65,199,214, 37,254, - 94,118,149, 27, 23,200,136,200,213,170, 28,104,250, 44, 88, 68,125,134,104,197, -143, 13,218,225,171, 54, 55, 48, 45, 66,238,108,154,109, 60, 50,125,236, 57,126, - 5,218,210, 64, 94, 6, 66,210,117, 43,159, 37,184,210, 25, 24,236,190,194, 46, - 53,129,182, 11, 7,117,252, 5,218,177,145, 73, 77,169,234, 33,215, 99,117,210, -192,212,169,244,152, 49, 96,199,210,182,219,221, 3,119, 0, 84,242,208,239,191, - 11,140,241,158, 14,123,169, 62,212,182,198,255, 87, 62,169, 79,141, 26,234, 11, -170, 88,205, 44,104, 66,211,225,242,185, 31,168,194,187,163,145, 9,209,191,155, -233,174, 74,222, 35, 63,164,135, 19, 47, 91,151,232, 58, 80, 17,214, 30,207,202, -240, 76,129, 86,151, 2, 55,104, 21, 52,128,150,213, 64,212, 68,220,194, 89,160, - 49,208,140, 50, 81,206,215,206,159,201,113,160,200, 85,230,135,142, 7,227,117, -198, 92, 22, 39, 37,135,201, 1, 45,216,211,221,108, 26,110,231,176, 6,178, 59, -169,150,149, 7,223,140,144,114, 6,155, 68,132, 13,185,200, 52, 67,114, 92,252, -232, 9,140,115,130,158,226, 41, 80, 91, 93, 11,232,149,174,123, 89,161, 93,241, -163, 10,134,216,227, 98, 47,125,168,106, 43,254, 89, 51,186, 46, 25,253,214,195, -152,209,136, 2,228, 92,218,159,154,245, 32,218, 92,169, 65,241,112, 28,163,237, -247, 4, 54,150,206,197, 73, 5,255,239,109, 40, 21,115, 22,254,150,252, 35,156, -172,116,180, 89,234, 15, 59,141, 72, 39,215, 13,142,236,231,220, 38,132,150,103, -116,251,216,119, 50,210,133,180, 98,206,189, 3,251,169,172, 33, 64,237,147,224, - 80, 81,172,133, 27, 36,247, 24,247,187,169,157,128,119,217, 51,188,216, 76,171, -226,253, 50,246,155, 9, 0, 98,148,236,184,166, 77,151, 62,110, 10,139,159,240, -139, 57, 42,144, 51,187,102,133, 73,148, 30,255,102,239, 69, 64,133,138,236, 39, -246,248,227, 19,225,201, 52, 50, 15,200, 27, 8, 89, 32,192, 65, 94,247,114,191, - 78,246,123, 82,141, 40, 65, 36, 98, 13,123, 8,152, 72, 39,137,214,118,198, 91, -171,145,234,218, 38, 45,236, 9,203,143,194,169,108,158,122, 76,190,205,218, 25, -124, 15, 30,187, 61,214,184,122,188, 67,117,156,115,127,105, 12,253,195,134,104, -137,238,227,230,135, 19,210, 80, 54,154,104, 67, 34, 13,231,240,178, 40,175,100, - 37,173,143, 17,106, 81,205,132,150,174, 87,238, 14,247,159, 25,188, 57,129, 62, - 52,101, 2,241,108, 85,140,204, 69,186, 0,137,220, 66,172,198,243, 78,123,165, -157, 29,115, 80,139,185, 23,185,143,208, 63, 61,158,118, 49,189,159, 6,123,123, - 99, 70,167,164,109,155,105, 94, 49, 50, 74,243,109,177,248, 12, 42,238,238, 3, -163,246,109,143,242, 44, 72, 2, 73, 42,186,199,121,157,179,154,219,111,114,122, -215, 92,208,218,250, 3, 29, 57, 64,110, 21, 25,240, 70,218,133,173, 57, 28, 83, -131, 2, 57, 17, 15,127, 15,113,152,236,240,131, 32,213, 12,242,119, 97,240,185, -174, 61, 79,149,242, 46,131, 65, 9, 96, 15,117, 85, 33,111,224, 56,159, 84,241, - 52,138,213,204, 95, 36,214, 32,215, 96,227,145,112, 16,184, 45, 23, 3,135, 37, - 17,243,201, 96,185, 52,231, 64,168,252,237,188, 12, 99,236, 18, 89,160, 90,134, -173, 40, 23,249, 12,176, 81,135, 65,119, 1, 27,254,133, 89,248,131, 86,135, 60, - 69,172, 92,186, 39,208, 4,229,159, 61,165, 92, 82,154,240,141,209, 8, 14, 62, - 38,250,106, 97, 32, 79, 46,236, 22,224,173,105,189, 34,200,231,192,206, 15,118, - 28,160, 98, 99,218,201,194,110,191, 90,114,100,182, 55, 44,177, 73,167,113,234, - 76,241,155, 82,215, 77,253, 38,246,162,151, 4, 76, 11, 88,177, 27, 7, 36, 19, -225,169,142,241, 38,104,149, 45,231,230, 47,140,116,228,242,115,241,250,200, 55, - 11, 14,190, 85,228,175, 71, 72, 95, 99,196, 24,136, 64, 45,102, 41, 47, 76, 34, -118,129, 45,120, 2,238, 55, 79,226,202,216,112,228, 22,155, 7,163,122,182, 70, - 91,116, 35, 34,147,243,158,137,193, 17, 34,233, 97,106,120, 10,178,118,140, 53, -173, 55, 41, 39,153, 66,137, 18,233,143, 53, 30, 57,205,212,205,171,179,227, 56, - 2, 97,156,159, 61,192,129, 31, 69, 54,115, 52,210,194, 49,169,201, 61, 96,126, -103, 38,235, 13,121,151,121, 36,252, 37,129,216,197,111,178,132, 7,177,159, 82, - 47,176,225, 60, 49, 44, 14,213,169, 39,163,253,230, 2,199, 41,131, 95, 91,159, -194,241,162, 91,125, 33,137,164, 72,149,109, 13, 74, 6, 14, 32,224,150, 37, 49, -156,226,162,203, 16,155,145, 78, 91, 29,155, 63, 86,185, 53, 0, 45,234, 1,230, - 38,204,140,109, 68, 72,140,100,181, 69, 75,136,131,249, 9, 51,109,149, 17,141, -175,133, 48, 98,100,102,173,144, 59,247,189,175,117,198,155,148, 6, 75, 12, 99, -142,178, 19, 26,109,120,174, 82,167,188,173, 94,234, 30,150,118,166, 75,206,166, -164,242, 48,186,153,133,238,216, 1,102, 34,218, 90, 1,175,100,247, 2,205,179, -167, 0, 6, 97, 3, 1, 42,163,143,202,155,216,244,215,182,233, 14,158, 56, 8, -196,142,244,102, 6,191,170,186,191, 55, 19,197,195, 63,102,220,151, 81,141,187, -137, 1,177,231,184, 77,226,242, 80,167,226,236,147,166,145, 59,199, 13,241,181, -196,198,225, 15,198,110,187,203,253, 18,209,100, 46, 35,151,126, 67, 5,137,139, -218, 76, 20,136,185,158, 90,221, 7,134, 68,117, 50, 52, 9,115,142, 15,106, 96, -158, 84, 87,225,194, 37, 17, 95,131,107,104,136,100, 76, 16, 52, 67,102,156, 8, - 13,142, 99,107,149, 68, 17,229, 48,159, 4,245,184,201, 25,150,128,135,190,251, -122,192,205,165, 10, 89,244, 51, 59, 76,160, 64, 13,186,194,127, 72, 67, 69,168, -178,219, 56, 30,204, 95,232,225,154, 64, 68, 28,254, 24, 83,169, 91,250,229, 6, - 52,122,116,161,253,100,182, 29,131,243,180,171,230, 32,148,227, 11, 20,157, 22, - 45, 0,133,204,249,229,133,104, 81,115,200, 31,198, 94, 21,141,211,225,114,193, - 7, 83,120,143,177,227,237,235,129,193, 12,105, 31,100, 28,165,159,146, 88,134, -184,170,158,167, 88,225, 95,134, 77,160,122, 96,169,243,181,239,203,102, 60,124, - 76,178, 38,180, 58,163,166, 80,155, 60,143,183, 56,185, 82, 20,123,237,211,230, - 72, 88,219,231,181, 7, 31,134,245,246,182,150,159, 96,252,167,136,124,193, 53, - 82,192, 45,180, 77, 52, 91,143,100, 36, 82,249, 60,122,153,194, 60, 26, 38,176, - 20,138, 2, 53, 65, 12, 93,198,109,166,173,140,104, 82, 37, 9,131,161,115,251, -109, 98,255, 6,167,140,253,162, 50,205, 69, 4, 14,191, 36,214,196,116, 34, 81, -200, 22, 37,181, 12, 59,114,160, 74,116,202,131,254, 96,151,251,166,196,133,225, -163, 11,185, 25, 27, 1,146,138,197,120, 22,171,158, 48, 8, 94, 87,149,148, 48, -161,211, 6,224,217, 65,249,253,144, 77,224,136, 82, 20,197,197,149,103, 89, 6, -162,197,233, 38, 47,148,150, 8,222,106,128,119,218,112, 43,143,142, 98,118, 31, -240,153, 78, 3, 84,240,182,155,150, 75, 12,226,136,242, 29, 77, 75,138,184, 71, - 77, 26,172,135,100,228, 84,103,138, 58,254, 80, 67,150,121, 46,218, 0, 67, 65, -112,182, 73,155, 0, 61, 97, 27,105,130,196, 53, 40,133,119,196,186, 8,199, 58, -191, 84, 98, 41,107,130,183, 11,134,126,152, 32, 65,226, 76,172,107,127,132,195, -215,110,255,177,193,172, 46,225,180,231,246, 28,147, 93,197, 64,125,182,126, 10, - 48, 53, 93,196, 6, 11, 80,117, 58,142,201,216,106,101,185,187,123,101, 28, 96, -206, 0,165, 27, 76,196, 94,156, 17, 39,144, 96,163,152,130,108,188,163,162, 41, - 2,164,203,189, 2,215, 68,121, 63,250, 36,126,137,193,190, 11,233,230,113,103, - 40,137,142,156, 44,222,180,166, 69,117, 70,241, 80, 19,239, 56, 2,177, 54,149, - 0, 37,110,152,228,233, 96,168, 91, 84, 32,167, 77, 89,106,142,191,146,167, 83, -117, 75,169, 47,134, 19,218,224,109, 56,203,125,196,212, 25, 17,160,185,221, 48, -117,226, 46, 23, 80,138, 91,222, 42,252,188,142,165,242, 74,187,247,164, 23, 68, - 63, 78,125,104, 18, 50, 93, 25, 76,216,141,122, 0, 0, 21, 72,192, 97,133,122, -215,220, 45,187,114, 94, 3, 95,195,195, 28,192, 4,177,218, 70,124, 94, 10,205, - 24, 0,138,246,156, 17, 85, 19,202,241, 36, 53, 72,140,142,172,176, 25,237,134, - 50, 24,193,136, 7,163, 19, 69, 66, 52, 28, 46,199, 78,124,151, 70,239, 96,218, - 84,248,250, 30, 54, 83,136,164, 58,130,146,127, 44,133, 0, 76, 2,244,250,161, -224,115, 5,142,198,191,159, 73, 38, 62,117,152,237,255,176,212,220,255,253,163, -208,117, 49, 20, 3,165,168, 98,201,120,205,201,104,133,112,110,147, 25, 48,238, - 72, 65,170, 23, 39,112, 61,162,149,238,194,105, 84,202, 48,101,183,160, 9, 7, - 81, 8,162, 94, 39, 62, 5,229, 33, 90,170,212, 47, 13, 4, 60, 95,183,137, 48, -236, 61,151, 20, 16,131,138, 52,152,133,249,234,193,172, 52, 14, 18, 77, 25,230, - 74,129, 11,141, 68,103,149, 12,245,109,243,140, 18, 5,206,178, 73, 23, 42, 4, -144,171, 74, 87,176, 72,208,153,165,255,197,129,165, 48, 68,194,134,166,156,174, -126,240,162,146,105,207,247,237, 75, 94,223, 88,171,182,104, 56,130,164,191,172, -179,173, 35, 32,126, 4, 48,114,222,129, 50, 15, 88,173, 7,248, 5,142, 23, 40, -208, 31,163,127, 12,117, 48, 73, 44, 62,220, 90,233,250,164, 39,189,215,171,155, - 17, 73, 32, 43, 91,105, 12,175,181, 4, 86, 57, 82,127, 28,130,137,192,184,160, - 63,105,203,149, 65, 77,108, 84, 73, 72,119, 19,186,174,132,183,167,160,254, 6, -122, 19,122, 5, 12, 44,143,108,109, 69,165, 14, 25, 63,124,133, 20,224,252,151, - 83,249, 68,182,215, 95, 67,249,176, 83, 31,144,253,179,168, 33,177, 82,131,212, -133, 64,183, 77, 37, 44,243, 86,177,156,158, 64,116, 86,130,104, 64,132,188,158, - 56,138, 53, 81,112, 4,121,204,247,186,237,210, 36, 7, 47, 17,178,127,212,199, - 95, 8,107,131,233,107, 41,223,142,192, 61,105,194,178,182,249, 81, 75, 75, 22, - 6,141,148,171, 61, 99,183,131,142,153,209,199,101, 22, 12, 2,168, 61, 44,134, - 62, 43,173, 94,211, 29, 27, 31, 96,232,242, 44,136,174,162,170,144, 17,144, 97, -103,160,217, 52, 16,140,174,170,201, 37,166, 23, 27,146,152,154,144,146, 95, 7, - 80,207, 49,206, 18,135, 80, 78,249,129, 46,150,227,158,113, 80, 55,107, 13, 21, -187, 65,242,161,200,255, 78,240,154, 37, 38,200,212,206,148,122,126, 31, 66,181, -152, 15, 30,152, 96,180, 44, 89,174, 53, 88, 50,216,150,115, 42,238,220,111,158, -130,237,234, 92,182,156,160,180,198, 21, 84, 13,152,129,246,120, 6, 3, 14,147, -205,227,125, 55,158,209, 88,101,164, 12,240,131,249, 34, 13,130,174,228,153,215, -192,109, 86,112,162,239, 71, 44,114,228, 20, 10,250, 6,104,118,230,150,163,101, - 17, 96, 44, 40,163,135,164,110,247, 28, 59, 59, 11,107,213, 68,195,206, 76,119, -207, 41,255,160,122,175, 5,101, 45, 24,243, 32,162,137,124, 24, 48,213,222,139, -227, 50, 54,102,166,106,197, 81, 29, 4, 39, 78,203, 2,170, 29,183,192, 25,243, -127, 23, 16,199, 68, 82,166,183,105,180, 69,161, 17,178, 75,112,185, 81,103, 30, - 23,194, 97, 33, 82,239, 43, 54, 28,180, 92,121, 57,180, 2,192, 31,162, 24, 40, -228,150, 71, 67, 40,157, 0,221, 94, 84, 28, 54, 0, 57, 96, 64,153,183,197,199, - 23,194, 93, 43,250,129,149,240,109,130,255,219, 38,166,210, 4, 99,196,177, 97, - 42,239,138, 22, 42, 4,172,209, 23, 66,131,174,126, 94, 81,221, 23, 37,195, 86, -245,127,213,248,203, 91,109,130,193,176,152,169,173,198, 22, 41,146,163, 20,213, - 66,215,174,147,157,105, 0, 30,209, 21, 75, 48,238, 30,187, 65,199,211, 9, 5, -107,152,167,135,172,203, 53, 55,130,221,214, 20,107, 32,154, 85,212,111,175,252, - 25, 39, 93, 16,225,175, 66,108, 7, 66, 79,146, 45, 23, 53, 80, 21,114,122,100, - 75,140, 22,109,132,213,156,182, 13,169,153, 20, 72, 26,144, 1, 58,190,195,124, -196,104,153, 56,105,208, 83,121,112, 9,174,107, 7, 55, 0,197,100, 18, 65, 62, - 15, 54,180, 26, 41,148,165,161, 89,219,134, 33,244, 63, 49,126, 72,242,104,108, - 14, 70, 45,156, 28,248,161, 79,212, 87, 50, 86,240,233, 58,219,111, 94,158,244, - 77,143,221,202, 46, 23,243, 30,153,220,178,153,242, 52,230, 84,114,141, 67,169, -158, 24,228,215, 48,197, 19,167,179,150,204,144,181,184,201, 49,174, 19, 19, 17, -207, 59,195,114, 57,129, 63,254,165,206, 3,152,109, 90,176,233,203,169, 78,130, -247, 66,117,252,147,145,147,250, 92,232,162, 8,230,126,171,172,227,122,168,177, - 56, 20,252,168, 39,113, 82, 94, 32,137,137,181, 38,189, 96,151,236,137, 13,199, -236,178, 13, 42, 73,120, 76, 26,174, 60,122,125, 21, 28,174,160,202,154,149, 76, - 36, 7,145,252, 21,249,225,165, 90, 16,167,210, 26,134,218, 76, 21, 33,115,242, -118, 23, 51, 40, 80,187,249, 32,119,189, 43, 65,149,104,145,117, 76,175,125,203, - 7, 3,227, 31, 88, 3,179,108,172,225,108, 49,251, 82,174, 39, 76, 38,235, 94, - 50,250, 6,250,247,194,118,184,232,209,162,144, 58, 85,240, 6,237, 46,167,240, -248, 48, 0, 71,250, 65, 55, 27, 63,134,213,189,152, 74, 16,116, 83,201,246,185, - 27,101,136,146,255,205, 40, 29,239, 21, 28,139, 58,217,177, 24, 73, 48, 3, 56, -206,182,217,114,187,238, 15,152, 55,229, 81,175, 97, 54,196,225,146, 18,153,168, -240,114,122,154, 52, 23, 97, 99, 77, 35,217, 37, 88,188,110,213,213, 26, 54,170, - 86, 95,238,250,159,172,110,249,164,147, 15, 97,128,123,165,154,104,251,163, 2, -242, 7, 10, 39, 40,139, 32,188,156, 57,227, 23, 80, 69,154, 63,184, 99, 69, 92, -145,180,107, 32, 81, 43,251, 93, 25, 62, 5, 13, 22, 37, 72,175,190, 39,250, 33, -170, 9, 58, 38, 18,180, 9,183,148,248,118,147, 6,254,102,173,236, 3,225, 97, - 1,136,145,138, 26, 53,186,205,159, 90,118,198,176,130,250, 55,229, 38,196,140, -140, 5, 16, 75,192,109, 90, 11, 66,182,132,152,124, 87,216,194, 13, 67, 24, 35, -237,245,139,251, 70,141,231,170, 85, 93,232,112,103, 18,194, 93,136,100, 24,230, -222,213, 99,207,204, 4,148, 65, 63, 1, 70, 1,148,172,188,131, 26, 75,245,129, -175, 43,171, 79, 16, 97,114, 86,192,178, 46, 77,137,161,225, 12,214,234, 1, 31, -157,127,151,216,248,157, 47, 91,219, 23,144, 52, 86, 11,122,155,207,137,214,130, -226, 97,236,125, 2, 55,136,211, 85, 4, 59,136, 64,155,254,107,109,240, 22, 80, - 71, 62, 88, 29,107,174,180,247,132, 64,124, 22, 88,150,187,171,148, 88,128, 41, -138, 11,127,250, 48, 3,105,178,186,254, 1,180,102,246,171, 87, 34,132,224, 10, -163, 12, 30, 15, 21,133,222, 80,195, 95, 10, 9, 16,126,149,226,152,218,162,130, - 83,227, 50,101,157,131,156,112,114, 90,222,107,113, 67,119,198, 0, 96,151,221, - 36,101,134, 82,159,150, 63, 21,146, 99, 99, 21,185,199,238, 81, 83,106, 67,199, -114, 6,246,170,240, 46,237, 97, 63, 49, 61, 96,182,201, 44,209,160,162, 27,119, -254,102, 11,128, 6, 94, 9, 72, 61,102,140, 99, 66,111, 72,121, 40, 31,228, 58, - 45,132,124, 2, 84,140,128, 48,184,188, 87,225,244,209,125,158, 61, 56, 74,244, - 84, 3,157, 55,144,150, 53,191,233,103,171,203,190,117,208,231,185,192,159, 85, -177,182,228, 95,198,207,145,253,133,242,182,218,140, 53,228, 5,255, 4,177,176, -233,140,102, 70, 60,193,135,157, 11, 75,146,111, 28, 26, 36,145,112,130, 82,112, -151, 14,116, 37, 22,143, 24,144,234, 18, 83,199,205,196, 43,114,175, 56,116,172, - 16,209, 42,100, 12, 17, 67,162,150,132, 68, 29,242,232, 4,202,142, 44,111, 64, -152,247,144,242, 86,168, 69,156, 34,102, 26, 31, 34, 4,246,135,201, 94,212,226, -129,244,119,224,151, 10, 47,236,187,246,193, 18, 44,228,144,116, 29,224, 8,253, -118, 61,245,242, 51,234,224,237,145, 17, 90,226, 78, 58, 36, 8, 89, 42, 90,249, -151,209,113,231,199, 5,244,235,246,119, 44, 28,106,206, 38,126,139,255, 20, 69, - 85,111,137,188,233, 65,238, 16,134, 10,191,218,242, 74, 87, 67, 5, 10, 28, 7, -102,231, 52,234, 93,243,163,248,118,203,134, 26, 16, 46, 25, 40,229, 70, 53, 66, -220,120,228, 71,197, 99, 27, 6, 99, 77, 70,142, 31,111,107,132,128, 73,225,103, - 62,137,113, 17, 33, 44, 8,238, 46,170,207,210,111, 58, 19,163, 22,166, 11, 11, -100, 72, 79,155, 83, 88, 51,249,183,212, 53,161,174,189, 14,154,218, 9,200,134, -133,245, 74, 51, 95,195, 6,250,156, 28, 26, 81,121, 31, 11,139, 56,118, 29, 33, - 10, 8, 66,172, 23, 1,203, 69, 43, 99,104, 56, 6,135,189,128, 84,170, 9,228, - 53, 10, 39,248, 59,129,188, 88,180,154,204, 49, 85, 76,132,158,111, 15, 42,236, - 66,154, 34,108,220, 34,150, 31,157,237, 7, 97, 8, 96,149, 77,171,151,126,214, -145, 66,139, 28,210,229, 47, 49, 81, 16,113,199,205,222, 80,170, 30,252, 22,205, -139, 45, 22, 66, 7,211,119,225,105,152,228, 5,129,183,230, 98, 77, 77,230,217, - 47,238,125, 86, 31,125,122,132,109,226, 19, 10,195,151,155, 43,138, 15,211, 34, - 30, 79, 26,157, 45, 54,243, 95,193,143,229,250,236, 84,139, 57, 15,162,221, 34, -242, 68,172,215, 21,233, 89, 99,178,226,137, 46, 26,219,112,167,251,246,136,202, - 73,136,127,191,201,209, 26,198,148, 8,214, 17,113, 58,123,227, 74,169,114,107, - 7, 68,206, 95,117,253,208,138,141,120, 69,178, 9,228,105,111, 2,214, 33, 23, - 88, 26,200, 6, 97, 8,193,247,150, 79, 89,224, 29, 24,208,157, 66,240,136, 45, - 73,234, 21,127,178, 26,125, 14, 4,214,191,235,222,124,236, 57,110, 16, 15, 2, -177,172,103,100, 10,175, 8,247,165,203, 46, 64,157,114, 9,201, 98,118,131,196, -192, 12,204,168,161,255,236,153, 42,191,115,104, 33,164, 34, 40, 15,155,155,255, -236, 99,218,164,213,167, 1, 29,183,155,115, 61,155,143, 49, 32,165,115, 28, 68, -223,188, 96,163,247,218,152,234, 24,188,243,123,175, 32, 54,157,101,190,213, 19, - 4, 41, 46, 51, 24,105, 26, 13, 42,174,219,124, 42,134,208,175, 57, 27, 39, 27, -128, 20,195, 4,210,111, 37,220,170, 88, 79,252,216,124, 53,249,168, 35,171, 42, - 25,227, 73, 4, 64, 51,129,209,240, 56,229,206, 91,252,119,175,175,164, 0,166, - 29,164,236,252, 66,127, 29, 90, 71, 65,236,124, 33,155,140, 85, 8,187, 44,230, -105, 34,112,138,249, 83,230, 25, 16,181,154, 45,241,199,132,230,236, 92, 26,235, -218,236,142, 3,194,102,213, 70, 18, 32, 40,190,147,237,125,128,110,248,131, 20, -158, 43, 3,238, 63, 26,119, 92, 18, 7,104,220,232,243, 30,141,118,179,189, 15, -181, 68,112,207,208, 99,104,183,161,134,168,115, 51,104,177,198, 61,212, 28,122, -153, 12, 45,102,182,135,181, 69, 92,135,189, 77,201,222,124, 19,222,249,131,102, -129,177,203,107, 79, 27,247, 72,167,196,107, 56,237, 89, 95, 58,234, 94, 8,195, -250,123,222,213,198,159,133, 26, 14,225,156, 41,107,237, 68,144, 74, 34,187, 22, - 15, 16,165, 0,100, 57,181,185,184,249, 30,213,211,109, 82, 77,254, 50, 4,218, -111,229, 5,170, 1,240,128, 92,227,212,124,151,190, 22,209,156, 58,117, 37,189, - 47,144, 19,128,217, 24,114,155, 90, 53, 50,185,116,162, 11,229,157, 11,208, 37, -162,199,206,210, 90, 90,179,150,148,180,162,154, 96,160,142, 37,162, 7,177, 7, - 62,160,150,210,230,232, 2,174,126,166,152, 6,144, 2, 68, 7,211,167,116, 80, - 38,175,124,160, 22,127,200,224,151,166,243,236, 30,189,244,224, 72, 23,137,255, -155, 52,231, 50, 4,237,220,184,181, 47,120,110,239,117,233, 69,100,220,204, 72, -158, 29, 93, 84,182,210,168,188, 3, 56,218, 32,139, 26,105,166, 80,133, 30, 42, -130,246, 76,162,241,252, 49, 54, 19, 57,233, 64, 36,145,212,230,161, 4, 28,251, -104,205,168,206,214,230, 54, 87, 79, 82,204,150, 94, 87,131,192, 0, 46,182,179, - 12,155, 51, 53,212,195, 74, 82, 72, 78, 31,138,171, 44, 51, 20,108,129, 88, 98, -105, 22, 53,167, 6, 69,155,147, 36, 99,253,180,241,107, 66,186,112, 49,120,243, - 51, 10, 8, 73,142, 13, 30, 74, 92, 86,225, 67, 14,103,192,114, 51,226,194,106, - 79,216, 24,231, 4, 39,140,104,144,241,180,142,133,101,205, 34,179, 38,113, 40, -100,193, 47,247, 95, 66, 58,102, 13,177,233,118, 44,120,242,139,180, 21, 12,184, -150,109, 78, 66, 97,180,155,225,122, 28, 76,206,226, 0, 83,112, 30,146, 2,101, - 85,163, 62, 3, 86, 64, 40, 64, 73,139, 72,221, 11, 5,123,166, 28,213, 25,166, -178,120,220, 2, 14, 4,248, 48,137,161,117, 2, 70,199,204, 60,187, 15,112,116, -140,144, 33,204, 13,172, 3, 9, 53,248,251, 78, 81,188,254,125,189,219,182, 46, -116,209, 32,242, 94,243,255, 82, 78, 97,211,101, 83,238, 74,129,112,139,133,204, - 33, 84, 55, 7, 64,180, 74, 56, 92,174,185,174, 32, 81,182,219,144,239,226,246, - 5,207,141, 54, 13,115,227, 91, 24,252,143,153,126, 40, 70,219,142, 96,207,220, -168, 67,211, 93, 27, 14,227, 41, 78, 95,174, 50,158, 57,204,218,190, 62, 20,247, -179, 3,176, 47,126,210,208, 4,152, 13, 10, 96,208,245,178,144,158,163,104,142, -131, 96,175,198, 34, 42,199,163,132, 39, 15,228,100,131,236, 98, 45,166, 27,139, - 51,184,147,220,207, 32,227,176,255,153,178, 22,166,179, 2,130,172,179, 87,253, -177, 17,202,255,246, 37, 18, 35, 38, 42, 0,174,207, 26, 65, 2,126,236, 35,195, -201,190,207, 87,217,237, 99,143, 60,105,238,181,143, 97,143,197,188, 13, 31, 37, -183, 91, 55,128, 97,231,118,230,123, 90, 98,205,242,131,209,229,235, 65,119,113, -204,136,154,171,224, 1,225, 93,159, 23,253,180,122, 93, 98, 77,115, 38, 88,123, -185, 15,151,227,198, 76, 67, 58, 32,158,144,107,182, 77,127, 91, 79, 27,105,222, - 35, 50,213,152, 50, 47, 3,134,135,148,145, 52,115,151, 94,200,226, 63,173, 98, -205,204,209, 21, 24, 60,181, 55,166,153,182,255,196, 12,255,193,145,116, 42,173, - 72,230,242,150,251,195,117,249, 87,144, 78,158,194,112,236, 44,109,208,225, 67, -127,248,225,119,204, 22, 40, 2,211, 27,205, 19,137, 81, 59,106, 51,125,179, 70, - 7,168,217,184,211,182,118, 43,215,233,104, 97,109, 79,197,112,129, 16,246,178, -236, 71, 33,232,153,110, 2, 42, 31,228,246,101,206,167,102,140, 16,135, 1, 73, - 49, 63, 65,240,209, 69, 69,148, 68,177,179,135,105,141,104, 80, 80, 37, 23,114, -245,192,192,119,140,206,148, 59, 35,143, 63,168,199, 34,124,140,164,159, 67,123, -249,220,106,182, 33,177,128,122,218, 69, 21,204, 36,170, 90,251, 77, 91,228,138, -187,197, 25, 54,118,215, 92,143, 95,135,134,102,206, 95, 45,249,103, 86,253, 29, - 48,132,110,193, 1,184,182,115, 39, 24,231, 56,198,128,202, 56,143,241, 13, 63, -114,176,243,226,101,119,202, 42, 64,223,133,238,126,227,145,172, 92,103, 49,110, -232, 17, 24,167,195, 35,187,236,144,148,194,185,183,210, 10, 98,133, 66,218,100, - 54,146,241,204,140,110,195,116,219,128,253, 23,114, 49,219,181,182, 18,142,145, -248,112,161, 86,219, 2,231, 2, 75,255,240,130,224, 78, 93, 98, 73, 93,253,121, -254,136,169, 73,154, 4, 68, 22,113,255,165,216, 33,172, 51,188,190,201,246,172, -128, 95,207,231,151,128,123, 72, 61, 74,167, 4,116, 98, 0, 38,210, 57, 30, 64, -115, 30,107, 49,251,117,131,248, 42, 84, 42,153,254,196, 21,216,194,104,110,105, - 27,106,168,235, 81,209,154,224, 5, 47, 0, 49, 0, 49, 0,206,243,231,205, 53, -231,142,166, 33,227,133,246,222,123,239,237,122, 35,169,201, 8,173, 59,207,159, - 55,215,156, 59,182,178,138, 58,212, 0, 5,176,235,250,197,221,221, 20, 69, 81, -208, 6, 29, 73, 23,204,138,140,183,209,229,118,181,141,112, 76, 36,107, 38,233, - 89,212,213, 34, 93, 42,240,121, 46,227,243,188,185,219,130,127, 25,161,125,158, - 63,111,174, 57,119,160,160, 25,123,232, 1, 4, 74, 69,233,130,180,145,170,154, - 9, 4, 24, 63,173, 32,204,208,134,213,223, 18,176,152,209, 26,217,194,243,231, -205,245, 98, 67, 67,124,223,209,144, 68, 5,227,203,184,155, 27,106,123,219, 6, - 12,106, 72, 8, 1,159,248, 79,233,250, 57, 53,211,148,161, 38,142,252,127, 79, -202, 62,175, 53,154,115, 50, 52, 85,220,115,242,225,112,120, 32,120,194,120, 56, -112, 36, 30,238,129,228, 23,140, 6,132,217,168,211, 93,147,179,172, 1,243, 52, - 17, 8, 6, 6, 71,130,241, 72,146, 99,187, 90,218, 3, 83, 64, 81, 8, 25, 44, - 8,137, 2, 65, 48, 18, 8, 12, 2, 1, 65, 32, 4, 69, 16,132, 65, 16,132,128, - 34, 64, 40,132, 66, 72, 6,161, 48,134, 75, 63,142,226, 81,198, 30, 58, 30, 38, -113,178, 41,136,225,112,112, 95,235, 55, 39,119, 42, 12, 75,146,117, 10, 32,150, -102, 42, 96,165, 51,240, 62,122,240, 89,167, 16,175, 97,159,209, 67,235,189, 92, -125,208, 27, 56,118,230,109,117, 34, 8,178, 95,207,192, 78,204,165,148,122,212, - 80,188, 30, 99,212,183, 87,139, 15,139,160, 45, 92, 18,102,155,117,111,147, 58, - 28, 36,247, 16, 82, 70,194, 18, 73,104,224, 81, 28,235,211,205,170, 98, 86, 74, - 21,166,163,179,204, 18,105,157,147,254,192,123, 23, 79, 25, 31,227,133,105,220, - 10,183,192,243, 37, 92,139,144,247,214,108, 73,147,177,206,247,141, 76, 0,232, -188,109, 65,214,128,140,125, 80, 82, 98,100,208, 99, 36, 83,164, 72, 19,254,221, - 18,102,135, 13,212, 63, 68, 88,140, 88,101,153, 36,147,193, 1,203,159, 80,255, -101, 44,121,162, 9, 42,211, 45,119, 88,158,101,150,228, 67,170,127, 25, 40,178, -147,119, 34,118,146,187,145,150,122,215,210,172,142,242,182, 49,255,231, 74, 39, - 18,130, 91, 74, 41,223,242,215,146, 96, 11, 72, 88,191,117,222,137,152,140,241, -246, 14, 52, 13, 73,140,197, 1,132,126, 23, 32, 56, 84,175, 17,149,131,116,229, - 3,199,254, 80,147,182, 46,165,196,136,123,173,196,221,128,205,168,147, 20,146, -245,216, 71,207, 2,100,218,224, 0,191, 13,205,221, 56, 59,250, 32, 32, 89, 90, -220,173, 71, 91,197,143,238,147,100,178,197,204,188,134, 44,218,116, 83,157, 48, -138, 4,145,179, 44,212, 9,130,161, 18,244, 93,171,198, 96,121,182,174,190, 10, -131, 52,116, 33,221, 79,141, 60, 8, 37,113,148,104,224, 97,146, 5, 31, 32,146, - 0,213, 82,105,128,136, 49,130,194,218, 92,185,180,172, 85,223,169,180,202,210, -184,239,161,136, 10, 79,105,147,189,155,150, 87, 36,195,213, 67,126, 64,164, 64, -124,177, 9,154,168,200, 89, 65, 97,162, 18, 79, 61, 29,146,224,133, 37,231,127, - 26, 0, 71,119, 52, 8,160,129,192,169,141,244, 84,132, 48, 42,182,200,230,169, -101,245, 38,240, 43,203,237,152,221,174,254, 25,220,192,212, 19,234, 34,253,175, -254, 40, 36, 36,132,226, 45,164, 35,200, 15, 19, 62, 27, 75, 75,177, 52, 98,253, -139, 77, 64,151, 63, 84,116, 21, 28, 98, 20, 16, 83, 3, 85,173, 7,145,106,240, -156,253, 3, 74, 32, 77, 39,143,158,175, 30, 17,181, 46, 72, 47,116,196, 70,244, - 60, 97,109,102, 72,162,249,189,134,149, 54, 26,227,224, 25,102,155,229, 27, 35, - 64,185, 21,140,142,254,195,184, 67, 82,214, 44, 52,156,221,178, 70,153,188,253, -116, 24,221,243,113, 12, 37,176, 27,201,148, 1, 94,239, 88,199,255,132, 92,230, -114,139,123,143, 57,212,105, 66,255,174,244,136, 58, 93, 63, 85, 67, 55, 7,114, - 14, 60, 39,107, 97,228, 14, 64, 84,164, 11, 39,241, 3,158,235, 88,135, 75, 15, - 71,168,238, 87, 56, 63, 8, 40,135, 82, 88,126,103,195, 0, 67, 67, 72, 93,193, -149,141, 65,175,182,100,170,166,115,219, 50, 0,246,233, 36,233,114,119, 15,188, - 89, 48,236, 0, 29,203, 16,104,177,105,128, 21, 87,254,209, 16,109,246,192, 11, -179,116,187,182, 49,102, 96,137, 19, 40, 96, 35,215,253, 27, 33,130, 99, 94, 2, -239, 66, 55, 5,247,183, 29,163,227, 59,227,251, 23,126,174,112, 95,201,162,219, -142,157, 89,119,212,232,109, 68,160,130, 13, 63,118,161,130,195,151,248, 81, 6, -177,244,142,107,163,221, 32, 29, 27,134,139, 87, 32,111, 66, 55, 20,171, 61,179, - 76,168,129,124, 15, 13,242,173, 30, 49, 44, 90,253,203,185,186, 71, 7,169, 15, - 49,101, 93, 29,207,250, 96,141,129, 62,104,106, 33,141,152,180,150, 88,229, 73, - 13, 78, 36, 46, 82,150,108, 37, 50, 99,103,228,201, 87, 35,136, 22, 25,116,200, - 73, 27, 6, 85, 4, 48,193, 24,163, 64,137,202, 14, 18,158,188, 13,250,253,166, - 26,131,224, 66, 66, 85,164, 57, 83, 42,153, 8, 64,228,108, 18,116, 95, 60,220, -192,158,199, 39,210,216,144,178, 26,234,136, 87,133, 67, 67,183,226,103, 83,230, - 39,150, 91,175,150,252,124, 57,235, 76, 80, 82, 15,148, 23,224,232, 31, 76, 39, -242,249, 10, 61, 75,162,245, 65,195, 7, 61,153,197,162,183,183,234, 92,138, 81, - 93,101,159, 0, 73,246,212,148, 30,193,184, 5, 39, 44, 12, 6, 68,181,128,196, -225,132, 16,191,128,179, 68, 45, 21, 88,229, 96, 45,237,162,224,194,161, 91,170, - 51,173,144, 75, 59, 32,252,103, 58, 97,129,176, 75, 49,128,248, 31,253,163, 99, -142,105,128,206,162,120, 1, 56,122,134, 51, 37,166,128,154, 97, 64,152,242, 48, -169, 62,241, 24, 92,103,249, 9,184, 76,141, 14,240, 68,168,103, 32,229, 10, 40, - 19,174,105,176, 37,129,153,160, 64, 86,134,169,215, 32,223, 2,206,100,250, 54, - 8, 79, 1,104,242,137,156, 65, 98,222, 64,211, 67,248, 56, 22,151, 15,131,156, -158,202, 7, 69,206,130,254, 67, 36,199,102,203, 7, 76,206,251,242,225,147, 67, -170,255,193,148, 99,113,249,208,202,233, 84, 62,208,114, 22,232, 63,236,114, 44, - 91, 62, 8,115,190, 47, 31,146, 57,164,250, 15,208, 28,237, 10,177,252,112,205, -169,171,224,114,193,155,115,117, 70,144, 25,245, 64,229,163, 76,177, 84,200, 45, -140,155, 74,165,120,165,150, 17,164, 44,166,135,121,249,151,193,182, 12, 81,109, -110,218,102,157,216,161,186,142,236, 28,253,137,242,172, 92, 23, 55, 34, 45,243, - 61, 77,199,175,245,246,176,108,112,124,169,189, 35, 31, 69, 1, 97,122, 73, 41, -111, 22,248,107, 43,106, 36, 41,162, 79, 76, 74,200,159, 88,129, 98,105,244, 9, -184, 5,189,153, 19,104,156,163,239,216, 43, 26, 58, 98,127,225, 7,168,228,217, - 46, 50,245, 83, 77,204, 11, 90,146, 79, 5, 20,227, 2, 47,220,135, 73, 56,245, -135,205, 29,112,119,111,192, 13,124, 81, 86, 42,212,169, 30,165,145, 33,114,165, -107,189, 5,235,139,184, 52,114, 75,121,114,248,208, 47,146,202,195,134,149,162, -221, 97,147,162,237,110, 72,209,226, 73, 56,126, 28, 4, 69,250,184,163,218,164, -141, 71, 37, 43,198, 85,127,176, 43,180, 85,175,210,154,155,124,228,255,128, 72, -190, 30,188,248,197,219,246, 43,219, 10,136,214, 66, 44,232,104, 46,111,163,185, -222,188,226,120,108, 57, 47,212,163,100, 64,241,120,121, 48,119, 4,164,251,194, -102, 84,204,203,145,209,173,235,223,226,253,129,161,174,203,207,202,203, 6, 43, -255, 34,138,106,170,161, 76, 56,155,111, 35,183,140,204, 44, 48, 0, 64, 34,187, - 74, 44, 6, 37,236, 47, 82,105,224, 65,133, 87,215,195, 24,115, 55, 19,210, 61, - 82,195, 26,238,164, 47,179,238,201, 35, 49,131, 89,191,166,122, 48, 29,223, 94, -237,172,122, 31, 28,144,180,224,173,192, 73, 90,151,153,228,247,245,253,205, 5, -170,139, 73, 13,106,163,249,198,203, 71, 0, 88, 33,250, 3,182, 82,131,140, 87, -216, 6,162,112,193,144, 5,118, 7,110, 1, 21, 22,181,176,250,247,162,249, 82, -241, 50,112, 97,220,223, 89,148, 98,234, 38, 99, 23, 18, 6,111, 97,211, 3,227, - 11,160, 65, 91,116, 91, 28,130,225,230, 96, 45,154, 30, 24, 34, 98, 80,198, 65, - 90,148,195, 83, 10,100,183,169, 5, 23,202,128, 13,132,192,169,248,139,102,152, - 5, 90,154, 83, 19, 13,104, 48,252,169,217,169,139,140,105,176,245,189,144,231, -169,226, 1,107,240,123,124, 25, 69,179,227, 77,169, 43,249,212,202, 67,119,142, -119,188,167,242,232, 3, 73, 58,208, 71,236, 55,196, 97,247,212,248,203,188, 71, -138, 6,205,109,106,184,232,145,252,193, 51, 96, 15,114, 52,165, 33, 30, 9, 7, -214,136, 37,100,118,119,228,115,224,101, 56, 2, 73,125, 72, 89, 67,225, 51, 26, - 68,158, 95,114,167,208, 25, 77,141,123, 28,249, 45,108,198,100,145,141,203, 47, -145,124, 33, 51,246,136,246,193, 36,107,168, 13, 14, 85,149, 30, 3,248,131, 35, -135,153,170, 0, 98, 32, 78,127, 60,247,140,232, 3,107,204,185,223, 83,138, 29, - 80,231, 75, 67, 33,249,144,136,246,170, 83, 90,198, 92,122, 36, 57,134,104, 91, - 96,140,209,198,215, 36,206, 51,187, 52,129, 68, 24, 94,170,169,206, 79, 64, 34, -150, 78, 75,245,224, 82, 26,118,127, 88,127, 89,153,106, 93,145, 97, 22,155, 83, -165,229,162, 51, 36,248,222,133, 62,213,105,168, 6, 29,143,212,155, 75,162,106, -107,200, 25,249,117, 68, 95, 59, 74, 85,129,163,103,180,193,238, 21,114,113,228, -140, 78, 88, 79,170,250,113,212,140, 49,216,198,249, 8,145,216, 17, 51,102, 0, -159, 92,212,242,152,115, 81,241, 58,241, 14, 31, 21, 69,173, 56, 60,220,161, 62, -113,174,104,134,229,170,135,161, 26, 23,173,136,244,158,226,236,128, 58, 95, 0, - 13,164,124, 65, 34,189,137,161,144, 68,242, 50,209,141,160,132,198,100,177,137, -212, 29,142, 28,156,142,142,241,250, 85, 29, 69, 37, 33,115,134, 68, 34,215,178, - 28,112,107, 27,200,165,249,178,245, 92,140, 17, 32,171,226,109, 86,129, 6, 96, -240, 56,253,194, 26, 91, 41, 24, 0, 19, 98, 24,174,136, 16, 19, 26,198,112, 94, -136, 97,164, 65, 34, 25,174, 12,101, 44, 40, 67,142,132,152,129,155,225, 94,216, -107,134,170,114,133,104,223, 23, 35, 17, 87,254,112, 2,198,199,136,216,105,195, - 6, 40, 68,144, 13,173,100, 78, 65,196,188,195, 28,145,136, 56,105, 71,111, 17, - 19,101,244, 60, 90,195,144,245, 8,236, 7,156,195, 67,235, 21, 16,160, 74,232, -128, 64,198, 62, 64, 29, 26,202,243,249,146, 17,178,155, 21,205, 30,144, 97,248, - 35, 61, 64,214, 36,177,156,179,181, 27,153,196, 37, 41, 81, 19, 32,219,113, 0, -148,224, 4, 43,199,228, 77,138,173,199,116,247,181, 48,204, 12,144,146, 34,221, - 68,156, 88,222,228, 5, 20,219, 88, 39,183, 21, 0,159,144, 55,193, 16,113, 76, -219,150,211,166, 55, 25,133,184, 26, 85,114,102, 57,197,172,110,252, 40,170,194, -164, 30, 27,172,120,161,116, 88,233,240,107,223,240, 39,138, 95,119,195, 7, 42, - 62,205, 9,247, 66,170, 98,142,137,113,168, 4, 17, 49,168, 50,126,253,163, 55, - 89, 64,196,209, 1, 37, 64,176, 21,122, 6,240, 8, 93,228,138,240,201,251, 4, - 89, 34,235, 2, 38,168, 1,107,183,228, 64,188, 24,196,234,175,183,185, 13, 32, -161, 10, 89,102, 18,158, 46,241, 72, 44, 67, 49,201, 11,221,128,241, 25,141, 74, -247,237, 84,134, 13, 26, 89,204,100,167,170,212,203,140,195,212, 6,183,182,110, -151,118,246,148,112,196, 51,179, 61, 77,234,232, 28, 74,171, 81,231,231,248,154, - 44, 83, 92,179, 94,152,214, 16, 45,199,134, 70, 76,199, 55,147, 55, 92, 82,138, - 51,228,125,203, 39,211,205,175,156, 76,222,180,127,189, 99, 50,101,171,144, 84, -167,210,221,152,126,201,227,154,253,174,132, 99,151,213,251,215, 20,101, 27,136, -227, 47,138,130,166,170, 14,246,121, 91,162, 26, 91,202,183, 96,134,242,183, 28, -225,233,203, 65,157,234,170,238,154,112,190,200,194,222, 55,230, 90,210,151,150, -117, 6,132, 50,104, 35, 45, 67,212,196, 59,154,116,186, 3,134, 74, 28, 96, 25, - 55, 83, 46,241,122, 54, 88, 70,107, 82,222,136,204, 54,228, 58, 69,160, 62, 36, -131, 0,112, 16,247,242, 69, 59, 80,126, 34,234,110,235, 55, 94,114,180,197,174, -120,131,123, 72,105,168, 22,104, 97, 19,240,231, 98, 63,125, 88,142, 43,168, 58, - 52, 80, 51,140,129, 53,117, 96,111,125,188,191, 0,224, 4,114,236,204,195, 66, - 13,255, 36, 42, 36, 89, 90,202,149, 28,248,233,157,171,194, 72, 51, 60,165,108, -122,129,245,209, 19, 52, 9,214,128, 4,114, 93,108,247, 64,186, 3,238, 29,223, -197,245,210,232,242,246,210, 48, 11, 18, 20, 89,189,126, 4, 1, 6,117,206,218, - 12,136, 68, 67,103, 33, 65, 3,146,202, 40,215,107,210, 14, 12,223,224,201,179, -239,233,238,179,209,225,200,134, 57, 46,189,185, 57,202,193, 90,147, 63,171,255, -104, 30,154, 41,107,140,188, 11, 17,209,149, 40, 12, 79,189,141,240,142,129,161, - 85,222, 37,200,195,180, 2,140,246,191, 89,198, 7, 28,112,160,166, 1,221,134, - 24,112, 5, 94, 68,226, 56,152, 11, 15,214, 19, 7,240,220, 33,114, 33,232,135, - 32,161,155,142, 76, 68,208,210, 74, 7, 82, 51,132,167, 11,211, 71, 82,125,160, -197, 17,140, 58,138,247,127, 29,158, 17,124,202,164,218, 8,188,219, 46, 73, 96, -179, 69, 5,128, 9,132,180, 74, 52,223, 88, 84, 32, 57,208, 18, 78, 22, 99,226, -176,194,192, 36, 1,147,121,232, 91,248, 48,150, 27, 40, 93, 96, 43,115, 98,237, -129, 95,179,208,146, 92, 25, 65, 97, 33,130,167, 4, 76,199, 31, 6,182, 29,171, - 18, 20, 77, 88,165, 88,104,161, 70, 80,137,130,253, 2, 62, 82,254, 63, 85,175, -224, 95, 24,150,146,123, 13, 21, 47,248, 23,130, 39,132,126, 82,149, 12,150, 47, -180,116, 72, 29,123, 48, 88,214, 96, 63, 0, 86,198,253, 7,214, 56,248, 17,134, - 86,113,175,129,213, 14,126,132,224, 69,208, 75,176,238,193, 46,129, 56, 54,140, -129,105,138,228, 45,196, 86, 0, 86, 20, 66, 32, 0,181, 30,148,150, 87, 18,160, - 91, 90,130,207,166, 87,132, 7,137,199,165,204,102,164,224,152, 40,211, 19, 85, - 85, 85, 21, 43, 57, 0, 57, 0, 58, 0,149,180, 90,244, 82, 49,171, 79,197,190, -177, 90, 91, 42, 83,121,246,217,212, 45,184,137,100, 18,233,254,193,140, 37,207, - 42,185,179,159, 36,143, 49,241, 8,233,225,158,105,235,241, 44,206,218, 3,152, -159,185,211, 25, 63,122, 1,175,111, 5,117,219,214,168,120,229, 63,106,146,239, -106,254,197,201,190,119,214,222, 95,139, 31, 40,183,132,150,167,215, 37,247,197, -224, 18, 44, 9, 25,140, 48,106,201,117,166, 48, 29, 37,202, 38,113, 13,106,124, -218, 22,174, 52, 27,188, 34, 79, 95,143, 2,117,238,236,138,171,253,120,149, 14, - 78, 58,228,115, 4,157, 49, 33,166, 34,248,187,133,205,125,103,129, 90, 87, 23, -178, 27, 92, 63,157, 63, 41,175,107,131, 56,166, 73,149,130, 64, 79, 5, 95, 88, - 63, 30, 22, 54,233, 15,166, 41,122,180,133, 77,138,201,255,247,236, 5,214,195, -246,126,223, 5,247,190, 63, 53,191, 40, 1,179,168, 7,180,189,209, 23,180,123, - 3,180,209,117, 75,215,109,110, 71,127,127,233,113,206, 59,132,218,168,195, 77, -115,146,130,100, 57,163,244, 16, 20, 28,140, 73, 99, 2, 77, 73, 41,136, 12,247, - 1,115, 64, 97, 72, 41, 80, 14,144, 4, 65,112, 19,132, 68, 16, 16, 81, 2, 74, - 64, 4,132, 8,136, 64, 18,130, 4, 68,110,196, 76, 7,234,232,250,204,146,152, -137,110, 70,193,118,241,117, 91,206,161,139,202, 0, 50, 6, 54,215,236, 74, 27, - 68, 57, 93, 5,141,191,222,191, 48,198, 86,230,132, 90,148,193, 67,113,101,175, -147,135,239, 20,166, 91,134,215,220,141,212,216, 71, 48, 52, 91, 9, 49, 4,177, - 29,209, 73,229, 34,203,222,150,242, 3,239, 66, 62, 23,227,141, 72, 55, 14, 63, -105,216,112,118, 60, 11,142, 3, 69, 42,225, 51,241,155,218,106,249, 45, 53, 67, - 87, 13,167,238,123,118,201, 25,114,244,227,103,169,185,160,211,198, 75,134,133, - 62,202, 36, 90,196, 89,217,207,200, 42, 85,251,178, 14, 97, 87,211,198, 6, 15, -190,250, 58,230, 96,188,237,237,242,231,248,144,146,152, 74,118, 84,219, 59,203, - 34,160, 79,186, 76, 25,221,156,152, 73,115,194,103,108, 92,219, 17, 3, 79, 48, -184, 67, 86, 82, 8,101, 29,118,105, 65, 87,184,153, 62,229,219,228,104,239, 42, -203, 54, 13, 92,177,206,155,225,208, 80,153, 81,249,243,100,235,172,115, 99,175, -114, 6, 23,229,112, 52,164,212,205,250, 30, 86, 86, 34,169, 85,154,210,128,157, - 27,169, 24, 20,164,163,177, 86, 21,115,186, 94,184,249, 73, 1,102, 74, 99,180, -254,177,176, 72,198,162, 11,141, 10, 3,147, 70, 40, 25,181,252, 73, 35, 57, 85, -207,248,108,197,224,165, 63, 10, 67, 35,159, 92,228, 99,194,121,231,170,236,208, - 75, 64,173,111,114,108,236,252, 56,177, 41, 12,236,114,200,163, 8,219,112,203, -240,212,166, 64,155,169, 30,208,224,167,173, 26,163,114,148, 70,233, 16, 32, 23, - 43,213,134,148,220, 42,152, 39,103,207, 91, 2,106, 27,198,219,241,151,228,111, -111,233,179, 59, 6,144,144, 23,169, 69, 91, 90,254,252, 0,249, 27,156, 85, 79, -199,151, 58, 37,126,149,198, 27,193, 64, 80, 75, 53, 76, 51,177,145,219,191, 7, -125, 41,219, 6,227, 49,246,124,136,194, 71,186,233,199, 15,106,145,139,144,223, -166,176,213, 25, 65, 5, 29, 18, 9,169,195,143, 46, 56,219, 69,112,133,156,107, - 14,245, 19,143,180,223, 3,204,221, 12,248, 32, 0, 84,202, 72, 2, 47,168, 34, - 89,169,218,138,168, 90,170,141,191, 73, 14, 18,187, 15,129,193,193,189, 52, 83, -212, 62,186,235, 82, 57, 0,147,179,154,217, 92,169,171,218, 21, 89, 22, 10, 31, -144,106,161,137,183, 36,107,234, 92,220, 30,136,152,146, 55,169,197, 34,136,206, -209, 46, 93,195,238,199, 7,192,238,247, 44,241,208, 91,144, 9,239,230,138,175, -136,211, 26,231,112,131, 59,120,252, 73,187,174,205,139, 23,227,198,169,111, 74, - 10, 91,151, 0,127, 48,145,158, 0,251,181, 4, 71,225,204, 16,113,245,144, 0, -221,152,227,124,111,192, 78,236, 12,151, 60,139,227, 78,252,201,142, 70,164,220, - 73, 70,206,156, 46,217,228, 12,148,227, 98,113,253, 17,123,166, 89, 63, 99,195, - 18, 12,121,223,164, 3,173,221,232,180,164,156, 44,167, 89,213, 47,202, 25,107, - 72, 9,159, 32,234, 27, 23, 68,142,221, 15, 7,215, 57,150,187,250,169, 21, 6, - 5,130,122, 42, 22,128, 87, 40,113,139,132, 61,112, 83, 45,244,180,130,246,187, -175, 65,193,241, 47,224, 37, 71,110, 75, 39,150,166,250, 96, 74, 25, 86,158, 18, -187, 85,182,224,184,168, 42,241, 5, 29,195, 98, 1,213,225,213,117, 90,126,212, - 67,106, 76,134,163, 56,214,177,195,136,243,118, 44,223,183,189, 53,182, 68,243, -196, 67, 47,160, 78, 86,253, 74,121,214,130, 0, 5,151, 82, 63,109,106,199,184, -150,210, 98,156, 62,115, 81,149,168, 85,181, 70,146, 13,179, 37, 57,137,156,168, - 55,207, 76,194, 97, 75,152, 50, 12,101,249,152,238, 65,228, 34,170, 58, 38,122, - 18,139, 15, 69, 87,129,128,241,179,231, 5,145, 21, 99,122,248, 29,197,220,242, -104,212,133,128, 39,198,123, 93,220,253,215,159, 60,255, 64,178,235,100, 16, 45, - 46,100, 22,160, 79,252, 98, 44, 54,241, 46,146,188, 80,104,249,137,124,206, 30, -207,179,176,179,120,250,252, 14, 35, 37,120, 28, 95,196, 82,204,237, 81, 1,224, - 62, 55, 74,212,172,247,247,237,149, 20,154, 89, 64, 48,227,164,225,111, 70,194, - 61,113, 73, 89,173,212, 21,187,226,105, 22,248,153, 77,206,227, 77, 11, 82,122, -150, 24,110, 54,117,227, 11,225,151,162,255,196,164, 5,218, 95, 37, 18, 8, 67, -124,170, 34,170, 70, 20, 87,184, 10,179,113,116,198, 91, 2, 78,229, 98,168, 69, -216,129, 81,143,211, 14,216,131,176,197,162,170, 12, 96,125, 23,253, 23, 50, 14, - 45,181, 63, 28,100,253, 52, 9,105,204,126, 53,118, 33, 59,200,253, 22,126,187, -129,155, 43,221, 80,178,145, 73,171,205,245,116,198,219,150,211,145, 55,162, 1, - 21,198,167, 8, 68,108,231, 61, 92, 62,202,190, 86,191,184,255, 47,166,156,206, -156, 14,255,191,166,172, 52,199, 92, 46, 24,123,199,199,136, 89,197, 25, 18, 62, -144,140,167,113,150, 3, 6,152, 59, 40, 28,241, 76,189, 5,251,206,153, 94, 99, -246, 16,249, 35, 4,199, 99,203, 90, 41, 44, 55,177, 27,242, 72, 78,110,140,112, - 73,161, 31,102, 87, 63, 79,246,157, 36,163,116,127, 66, 55,168, 85,124,146,107, - 96, 3,212, 42,215,208,251, 61,138, 93,214,174, 88, 5, 70,205,252,163, 53, 25, -135,203,139,235, 34,224,175, 33, 95,130,236,234, 1,252, 93,125,129, 7, 97,170, -143,243,227,202, 56,155, 8,137,165,201, 70,161, 15, 27,205, 96,125,133, 4,167, - 85, 48,250,228,229,102, 83,216, 10, 28, 27,221, 84,130,210, 90,243,159,181, 6, -241,140,108,210,133,217,168, 12,124,233, 76,213,139,232,113,222,186,247, 32,125, -239, 85,236, 29,251,251,254,196, 19,242, 38,127, 66,228, 91,145,145,101,191,249, - 78, 67, 76, 71,187,210,224, 17, 40,102,202, 13,207, 69, 25, 34, 71,189, 5,119, -244,238, 22, 71, 57,237, 3,223,132, 63,133, 98, 0, 67,233,220,166, 79,227, 33, - 89,248, 20, 36, 11,191, 25, 91, 97, 36, 98,104,113,241,140, 39,205,111, 13,114, -112, 74,248,151,101,209, 28, 37,231,253,241,240, 69, 60,239,115, 31,104,143,133, -230,166,222, 76,172,167,107,245,148,170, 54,204,152,193,202,205, 25,228,169,227, -179, 0,130,240,142,152,209,249,150,128, 49,100, 39, 53,210,155,160,215,238,127, - 21,182,184,236, 29, 90, 91,243,196,146,169, 98, 94,204, 58, 87,154, 60,136,251, -237,169,156,231, 15,199, 9,238, 72,237, 1,185, 24,218,242,168, 91, 37,201, 78, -102, 40,136, 3, 22,109,146,198, 48,100,137,130,148, 17,181, 41, 98, 88,170,145, -196, 64, 78,213, 92,250,135,211,193,214,209, 25,237, 20, 25, 60,252,133,252, 35, -210, 69, 97,249,211, 39, 4, 2,244, 51, 8, 88,169, 40,108, 67,163,222,178,156, -219, 17,157,194,216,214, 36,249, 90, 69,170, 38,127,101, 65,172, 54, 20,113, 59, -115, 74,153, 95,122,178,148, 30,244,102,167,229,107,163,115, 93, 53,151,177,185, -158,169, 14,168,205, 23, 24,247,255,244,149,132,254,113,201, 1,190, 35,122,179, -183, 5, 92,110,167,164,219,243,195,145, 22,139, 61,164,158,149,141,125, 99,105, -179,230,156, 96, 53,157,136,250, 27, 8,165,233,192,209,242,139,252, 96, 17, 66, - 7, 96,193,118, 28,248,152, 48, 18,173,134,152, 65, 72,121, 22, 46,137,130, 38, - 52, 36, 4, 85,183,192, 35,144,104,109,138,146,172,129, 17,210,202,198, 46,183, -175,189,133, 0, 69, 87,136,147, 37, 34,198, 56, 69,177, 17,123,165,148, 52, 77, -112,111,122,169,103,111, 64,204, 68,214,123,239, 97, 11, 70,216, 7,208,228,184, -135,100,211,182, 39, 66, 85,147, 97,243,128,190,149,121,178,150,233,224,199,111, -143,193, 62, 78,104, 89, 18,176,255, 40,248, 71,194, 15,161,130, 3, 8, 30,218, - 7, 7,214,209, 28,196,172, 51,180,123,166,179,164,152,121,187,131,148, 41, 24, - 49, 99, 88,200,216, 40,172,144,160,222, 37,108, 80,136,223,178, 54,234,196,147, -174,212, 94,219,208,185,217,125, 27, 75, 97,202,170,135,216, 79, 42, 35,185,164, -119, 62,129, 77, 46,138,140,151, 44,253, 5,130,127,171, 90, 24, 45, 11,163, 53, - 55, 2,100, 30,188,140, 25,204,117,171,167,121, 50,250, 82, 25,110,148,240,246, - 6, 61,194,205,230, 83,152,115,242,229,164,239, 95, 0, 68, 18,208, 53, 64,197, -198,156, 71, 39, 35,226, 51,202,192, 32, 12, 8, 83, 58,186,188, 68,106,116,228, -118,252, 40,154, 78,148, 92,245, 74,244, 20,247,162,125, 72,237,232, 70, 3, 90, -179,251, 84,150, 54,239,167, 89,172, 29,156, 39,115,116,238,135,117, 24,159,248, -189,126, 76,164,226, 38,104,231, 30,194, 91,126,228,252, 35,132, 56, 79,195,212, -151, 37,223, 71, 58,242,105, 26,182, 15, 75,161,237,204, 4,137, 60,223, 34,215, -174,226, 64,125,229, 5, 84,125, 47,227,214,159, 62,215, 77, 36, 98,125, 72, 86, - 38,106,194,251, 59, 23, 22,152,201, 40,220,166,186, 2, 67, 97, 13, 23, 84, 99, -162,123, 16,138,206, 56,132, 29,125, 59, 19,218,172, 9, 59,248,111, 70, 52, 18, -141, 67, 50,147,152, 57,249,177,245,209, 12, 81, 82,223,140, 0, 29,245,100, 14, - 25,130,243,167, 17, 11,133,132, 38, 66,129, 52,179, 4, 27, 3, 98,126,124, 86, -170, 59, 42,236, 11, 78,170, 57, 39,133,250, 78,138,143,169,231,185,134,125, 36, - 8,134, 96, 89,150, 29,207, 30, 77,214, 73,105, 6,177,178,182,224,225, 13, 97, -134,147,135,244,171,114, 78,200,141,100, 52,174,153, 77,251,116,100, 8, 24, 23, - 69,157,148,101,208, 40,177, 41, 70,216,166,184,104, 61,130, 74, 54,172,243, 87, -136,142,201, 37, 69,184, 19,218,162,112,217, 34,105, 93,146, 71,241, 18, 82, 89, - 5,221, 11,176, 99, 46,141,154,129,108,143,204,164,138, 3,157,243, 16,251, 6, - 27,196, 71,110, 30,131,138, 79,131,220,150,113,252,239,141, 63, 22,245, 11, 56, -103,165,122, 3, 85,211,199,181,246, 64,230, 50,215,194,180,222,111,157,116, 57, -128,231, 45, 50,224, 36,166,202, 31,199,159, 28, 37, 78,116,240,241, 81,147,166, -102,185, 94,213,156,120,226,240,192,197,236,127, 54, 61, 34, 96,253, 87,111, 30, -176, 8,149,198, 54,216,197, 45,109,213, 65, 30, 59,198, 32, 31, 42,225, 12,134, -195,135, 79, 24,144,215,222,191, 89,253, 5,172,193,166, 94,136,155, 1,250,196, -235, 13, 23,220, 23,121, 27,164, 44,133,139, 20, 96,156,146,193,210,192, 55, 20, -173, 75, 90,222, 99,132, 52, 56, 50, 45,225,241,184, 53,143,232, 85,169, 1,244, - 76,156,153, 84,231,236,164,189, 63, 30,174, 17, 17,213,184,157,158, 2,136, 18, -152,157,219, 12, 34, 47, 2,245, 2, 12, 50,206,172,228,197,108,253,171,237, 34, -109, 15, 58, 13,164,132,149,169,221,134,122,196,143,225, 36, 6, 25, 1, 98,235, -106,219,129, 20,239, 65,248,120,229,167, 55,105,227, 48, 52,165, 7, 12,162, 48, -164, 76,105,147, 8,217,236, 69, 64,236, 93, 29,232,255,169, 42,114, 35,131, 65, - 22,180,151,180,183, 10, 1, 59, 16,246,129,220,223,155, 75, 52,182,243, 50,254, -218,129,126,150, 21, 20, 1, 48, 22,218,113,104,128,126,208, 12,156, 75, 18,223, -245,137,226, 65, 68,237,127,227, 65,231, 15,229,160,165,103,208, 16, 75, 84,211, -112,185,173, 15,196, 27, 0,104, 65, 85, 82, 71, 84, 76, 76, 71, 69, 76, 76, 76, - 88,134,134,168,243,207, 1,115, 61, 68,192,142,208,136,154,230, 35, 48, 16, 0, -134, 32, 33,240, 20, 2,153, 75, 96, 34, 20, 5,202, 63, 82, 7,101,251, 75,200, - 85, 19,220,199,126,100,171,162,165,182, 24, 42,205, 42, 42,107,105,227, 27,104, -223,150,118,103,103,180,190,196,208,247,114,142, 53,102, 36, 24, 33, 67,117,104, -135, 35, 19,177, 92, 29,253,204,197,197, 50,238,216, 5,100,122,102, 78,151,127, -186,174,243,119,151,138, 21,169, 39, 77,239,131, 9, 6, 33, 71,115,186,205, 12, -223, 6,112,192,203, 63,109, 1,214,106,209,165,112, 50,140,240,163,125, 95,195, -252, 19,157,176,119,223,189, 27,131,240, 65, 39, 67,192,163,154,218,136,211,146, - 34, 93, 47,108,106, 66, 50, 29,103, 86,217, 87,120,206,183,171,138, 26,177,135, -166,247,133, 2,143,176,163, 51,184,151,137, 24,116, 5,160,161,215,185, 13,218, -191,121, 32,154, 86,243,213,185,119,223,189, 45,131,240,129,179, 70,192, 81, 10, - 58,139,233, 51,145,174, 46, 60,118, 1,153, 26, 35, 83,200, 11, 56,206,170, 75, -133,138,208,130,162,243,128, 64,131,144,163, 57,221,146,139, 2,116, 5,160,161, -211,185, 13,200,116,205,172,178,111,240,156,223, 94, 42, 90,164, 30,150,222, 23, - 6, 53,132,140,202,224,230, 44, 2,208, 85, 1,176, 85, 17,189,236, 97,212,177, - 11,200,244, 76, 69,169,114,117,208,245,207, 92,153, 98,233,161,200, 55, 67,214, -121,221,244,213, 20, 19, 24, 10,129,186, 48,120,136,173,149,203, 82, 91,163,183, - 90,116, 77, 40,140, 30,116,236,204,205,152,151,199, 76, 17, 77, 15,166,154,228, - 43,144, 51,181, 53, 61, 56, 97,243, 96,222, 2,129, 82, 77,201, 78,178,121, 48, -111,129, 64,169,166,100, 39,108, 30,204, 91, 32, 80,170, 41, 47, 55,135,113, 40, - 8, 20,215, 85,137,173,131,121, 11, 4, 74, 53,229,229,230, 48, 14, 5,129,226, -186, 42,177,117, 48,111,129, 64,169,166,100, 83, 77,242, 21,200,153,162, 55,186, - 66,143,215,127,212,177, 27, 84, 28,178, 49,143,121, 2,205,105,118, 85, 81, 83, - 79,146,122,189,119,194,132,157, 90, 0, 13,109,236,215,202,185,170, 24,169,186, -213,101,205,109, 72,166,131, 82,109, 99,163,168, 58,114,246, 65,204, 55,179,243, -106, 76,148,234, 34, 36,228,148, 4,181, 98,229,161, 0, 89,209,255,105, 11,176, - 86,139,174,133,106, 28,130,161, 86,179, 53,136,143,192, 4,185,247,123, 94,141, -183,102, 55,135, 9,155, 52,212,173, 22,197,152,142,228,108, 59,130,171,197, 75, - 6,109,172, 7,162, 51,187, 49,206, 38, 21, 12,133,186,150,101, 97,149, 18,102, - 69,211,219, 13, 38, 98,210,218, 41,217,183, 48, 91,153, 52, 22, 81, 25,115,199, -177,185, 72, 97, 23,138,127,103,193,172,200, 39, 99, 57,122,139,231, 68,136, 48, - 86, 17, 33,164, 46,184,203, 51, 11,188, 92, 82,221, 47,174,208,151, 9, 16, 84, -113,182,201, 34,249,120,140,148,204,118, 4, 47, 30, 31, 2, 93, 47,233, 30,247, -194,134, 64,154,246,164,239,107,147,133,132,212,115, 84,132,127, 11,110, 21,233, - 70,170,203,245, 26,185, 73,124,212,179,116, 32, 81,204,161, 47,194,158,122,176, -206, 75,246,127, 87, 69, 67,178, 2,220,106,209, 37, 51,238,220, 20,100,122,144, - 38,238, 94,250,140, 68, 3,145,222,100,230,173, 49, 81,180,143,141,128,175,229, - 38,155,228,174,104,225,205, 0, 90,161,233, 22, 22, 0, 57, 32,210,203,155, 97, - 91,126, 14, 34, 37, 90, 40, 5,102,222, 36,120,122,101,165, 27, 94, 10,169,231, -148,188,107,201,214, 38,237, 5, 21,201, 30,217,140,164,135, 83,242,174, 37, 91, - 59,151,180, 23, 84, 36,123,100, 51,186, 31,142, 20,207, 22,184,245,220,213,131, -202,154,141, 70, 22,161, 73,139, 67,176, 80, 28, 51,211,178,202,149, 4, 50, 15, - 58,120, 68, 35, 49,230,186,144,102,192,224,208,189,182, 7, 8,206, 86, 30,171, -248, 12,161,143, 0,193,223, 10, 3,203,141, 87, 41,136,110, 20, 57, 0,114, 69, - 20, 24,112,111, 3, 40, 15,166,148,187,112,133, 32,149,191,154,251,182, 16,101, - 37,171,255,187,137, 3, 67,251, 3,180, 59,112, 82,244, 88,143, 23,212, 26, 6, -123,121, 44, 71,162,207,221,156,140,184,222,150,205,165,187, 56,177,130,178,204, - 89,198, 83,210, 38,196, 8, 31,126,140,204, 51, 15, 37,148,141,154,216, 97,168, -122, 1,134,135,168,115,111, 51, 28, 83,138, 4, 8, 20,210, 28,131,202,204, 76, - 74, 7, 51,112, 32,168, 16, 40, 6,152,194, 65,128, 29, 16, 69,136, 35, 18,160, - 64, 68, 68, 36, 40, 41, 40,104,210, 6, 64, 47,217, 5,254,177,119, 10, 96,153, -175, 59,193, 12, 52,152,214,169,203,133,154,176, 39,189,223,162, 39, 28, 89,212, - 52,124,142,106,104, 55, 32, 64,163,128, 74, 78, 94, 19, 77,158,186,134, 86, 3, -175,122,144,179,222, 42,161, 27,140,158,248,226, 19, 85,194,113, 48,128, 68, 53, -194, 31, 28,143,175, 83, 29,201, 92, 42,136,114,113, 73,201,220,106, 85,217,186, - 7,182, 90, 75, 79, 71,107, 86, 2,193, 38,112,194, 37,226, 64, 61, 12, 14,172, -136, 87,253,248, 22, 62,157,128,110, 69,172, 55, 76,128,184,162, 18,141,120, 12, -136, 99, 64, 23,202, 20,114, 66,208,208, 46,136, 15,112, 72,222, 40,151, 59, 80, - 25, 10,225,232,118,207, 85, 7, 36,254,176,114,155,101,201, 19,210, 26, 66,247, -193, 22,236, 12, 87,110, 69, 87,236,137,151, 17,184, 63, 95, 87, 96,226,183,122, -182, 6,204,184, 16,190, 22, 6,154, 27, 73,196,210, 0,178,129, 47, 32, 72, 30, - 36, 72, 94,212, 1,254,148, 12,132, 79,137, 5,235,137, 63,118, 4, 27,251,115, -238,107, 1,141,110,128,142, 74, 23,131, 26,208, 84,214, 36,102,216, 39, 72,216, - 90, 40, 47,168, 28,153, 81, 32,107,249,253,146, 14,172, 45,250, 52, 26,224, 76, -207, 55,163,228,137,219,239,250,164, 92, 92,203,219,136, 26,205,105, 57,200,162, -171, 45,227, 90,174,141,190,111, 25, 50,157, 62,189,152, 8, 94,125, 56, 2,198, - 5, 45,148,119, 70,162,164,122,162,112,177, 39,135,224,227, 62,208,114,226,141, -252, 47,221, 69,187, 17,166,251,137,221, 81,206, 37,213, 5,165,136,160, 57,238, -212,182, 27,176, 1,159,193,123,192, 67, 50,252, 30, 56,237, 51,156,158, 76,160, -110,226,207, 55,129,177, 41, 58,220,155,135,105,201,124,184,152,115, 43,204, 81, -122,201, 63,111, 98,208, 85,134, 22, 89, 38,244,142, 33, 43,231,206, 92,232, 47, -210,157, 50,126,158, 71, 38,209,244,253, 49,117, 31,247, 66, 58,253,217,144, 64, -119,159,135, 12, 28, 50, 64,163,251,111,221, 11, 15,130,243, 68, 74, 76,157, 46, -236, 56,147,111,187,116, 88, 25, 90,170,129, 7,231, 89, 93,190,192,100,141,187, - 76,229, 3,237, 23,115, 41, 22,220, 65, 5, 71,150,164, 89, 58, 26,138, 20, 1, -142, 53,111,241, 55,164, 54, 77, 14, 20,209, 63, 7, 78, 58,121,191,148,238,254, - 5,145,134, 50,241,176, 1,227, 50,184,232,108, 95, 70, 30,230,141, 47,163, 61, -132,219,236,198, 73, 85,206,214, 37,159, 3, 92,197, 29,150, 45, 18, 49,230,207, -172,195,251,160,207,252,220,105, 10, 91, 7,131, 72,122, 61,142,168, 90,156,147, -240,130,177,231,227, 13, 99,160,255,133,185, 57,217, 21,184,115,119, 41,102, 23, - 53,115,249, 8, 46,124,208,202,156,238, 4,146, 38,147,200,116,185, 12,226, 71, -229, 5,224,240,187, 67,112,143,195, 54,180,229,209,175,112,127, 24,146,116,114, -204,115,209, 19, 30,143,124, 87,115, 93,251, 2,204,201, 64,134,221, 13,238,110, - 94,198, 76, 39,122,190,227,173,135,226, 19, 88, 71, 65,132,210,159,126,117,180, -182,178, 1,233,164,119,231, 21,226,247, 50, 80,144, 63, 76,213, 23,238,187,205, - 29,121,185,209, 39,126,159,120,137,220,183,218, 16,251,188,207, 60,161,206,132, -187,234,203,215, 51, 93, 89,235,211,199,199,253,234,142,250, 95,181, 88,177,172, - 40, 49,150,245, 15,125,149,235, 99, 89, 60,184,216,192, 99,113, 97,139,121,246, -141, 85,244, 40,121,104, 34,251,135, 77, 27, 78, 93,248, 21,241,244,194,127, 99, -149,102, 81, 87,195,129,153, 46, 25,163,100, 87, 70,190, 12,189,148,144, 55, 35, -194, 78,166,228,193, 43, 55, 26, 74,157, 21,215, 25, 71,212, 79, 44,170, 34,167, -110, 20,228,123, 54,137, 69,149,114,236,125, 63,226, 33,141, 30,178,151,173, 21, -198,166,107,157,127,110,104, 45,250,143, 18,112, 91,239, 39,154,205,107, 11,123, -193, 95,123, 36,179,100,154,116, 89, 36,119,234,167,173,173,169,195,129,106,190, - 18,175,171, 77,254, 21,103,201,194,215,196, 85,125,174, 35,204, 12,193, 81,139, -250,240,101,102, 78,245,159,186, 57,145,241,206,170,161,254, 8,183, 28,167,236, - 65, 81,191,252,194, 33,141, 44,229, 53,255,111,141, 76, 37, 46,146, 42,107, 75, -139, 89,148,237,155,246, 71,122,229, 95, 19, 66, 26, 79,141,186, 77,154, 12,119, -224, 89, 45,105,190, 74,223,254, 19, 32, 36, 10, 68, 20, 76,231,242,214, 31, 63, -167,144,154,245, 7, 65,183,237,126, 37, 12,183,138, 54,108,244,246,203,201,240, - 13,106,133,156,126,231,162,197,245,180,145, 85,216,190,130,109,141,244,250,122, - 27, 92,152,248, 27, 29,249,220,118, 35, 78,255,155,132, 1, 4,161, 15,126, 21, -171, 6, 18,232, 80,181,244, 92,249, 57,152,245, 34,115,197,184, 48,215,127, 97, -162, 3, 37,223,139, 63,143, 37,163,195, 98,222, 43,173, 98, 78, 60, 40, 72,121, -169,191,139, 4,178, 5,162, 61,114,247, 65,223, 70,187,181,191,250,151,110,164, - 66, 21,240, 24, 90, 25,188,188,159, 78,163, 92,251,166,188, 51,124,183,246,126, - 23,184,189, 31,189,146,193,232, 95, 64,176,181,234,126, 79, 65,103,239,133, 38, -156, 84, 99,119,133,250,177,220,230,141, 60,238, 81, 53, 52,227,153,163,254, 41, -170,207, 4,240, 66,205,141,236,175, 80,125, 22,176,112, 68, 62, 56,101,191,167, -254, 88,110, 19, 59, 91, 24, 92,247,105,182,198, 8, 22, 19, 69,154,228,188, 89, - 23,221,118, 19, 91,117, 0, 88,105, 24,189,186, 63,110, 20, 4,175,233,204, 36, - 36,213,255, 80, 0,185, 96,165, 92,180,152,234,136, 70,113,142,195,101,142, 6, -139,174,143, 4, 7, 80, 30,166,220, 52,230,148,243,147, 51, 92,180, 13, 9,162, -155, 48, 13, 55, 10, 75, 66,223,134, 1,139,107, 9, 89,132,138,233, 10,118, 66, -246, 10, 55, 73, 19, 84,107, 85,200,135,228, 29, 19,146, 20,133,222, 57,141,194, -199, 53, 0, 71,228,140,174,136, 36, 62, 23, 50,151, 67, 96, 91,196,227,245, 17, -121,165,153,238, 9,193,167,194, 1, 80, 77,202, 19,112,235,104,238,167, 42,108, -246,107, 89,141, 75,175,116,113, 74,192, 29,102, 52,167, 97,136,123,171, 94,145, - 58,146,163,177, 1,206,178,235,144, 61,117,130, 64, 81,210,145, 83, 47, 24,115, - 13,192, 68,162,161,139,137,196,226,150, 76,210, 30,160,202, 97, 71, 82, 93, 67, -106,209,124, 82, 21, 63, 86, 94,185,225, 0,229, 11, 97, 51, 35, 88,191, 93,175, - 25, 92,231,118,220,104,161, 11,146,133,237, 70, 76,242, 10,200, 15,225,188,108, - 50,230,180,163, 57, 43,208,117, 16, 2, 11,203,237,132,196,142,140,237,168,138, -205,124, 45,111, 25, 92,122,205, 37,167,107,142, 49,222, 76,197, 71,139,235, 35, - 6,111, 13, 9,226, 31, 27,168, 21,226,253, 88, 33,252,185,221,171,177, 91, 54, -180,240, 27,151, 72, 55,213, 34,168,199,172,219,185, 26,191,113, 99,197,226, 73, -159, 90, 39,214,126, 10, 22,127,237, 22,236,197,167, 27,115,236, 21, 77,174, 21, -181,182,168,190,216,213, 79,213, 42, 17,128,214,118,149, 4,181, 5,135,199, 58, -200,101, 28,107,148, 55,175, 0,163,125,186, 72, 78, 24,248,153,118, 75, 39,226, -124, 1,128,240,175,244,164,175, 93,126,192,145,192, 27, 12,204, 74,211, 85,116, -205,145, 91,140,149, 13,183,140, 31,110, 4, 29, 8,187,202,126,181, 87,215,250, - 37,134, 10, 21, 85, 5, 87,210,118,155, 46,112,129,233, 8,236,171, 52,247,205, - 17, 93, 40, 49, 55,116, 67, 69,149,178,199,149, 34, 8,127, 50,209,178, 72,207, -169, 16,172, 80,146, 13,171, 16,220, 21,248,133,228,138, 5,248,176,212,157,243, -158, 54,125,223, 18, 64,105, 82,157,196,134, 7, 84,175,102,150,186,169, 41, 54, -160,214,175,231, 84, 12, 1, 22,247,165, 38,208, 84,209, 3,233,214,216,174,220, -117,124,253,165, 17,240, 42, 37,194, 2, 42, 9,137, 10, 49,159,174, 36, 18,254, - 0, 67,244, 1, 95, 60,201,213,103,158, 0,152, 0,152, 0,115,251,159, 23,149, - 77,181,131, 59, 15, 44,222,163,154,250,118,237, 15,237,100,194, 83, 44, 9, 73, -160, 76, 4, 36, 26,152, 7,132,104,226,147,201,215,100,160,133, 5, 7,117,190, -164,246,213, 61,242,147,101,181, 66, 84,107, 32, 34, 95,196, 14, 29, 33,100,152, - 86, 57,246, 41,234,154,111,233,231,242,183,113,145, 97, 30,237, 95, 58,254,200, - 11,123,250,222, 33,243, 89,102,239,157,141,204,170, 70, 93,207, 49,117, 14,209, - 38, 8,122,156, 85,174,116, 98, 14, 40,152, 82, 44,183,133,127, 20,196, 17, 21, - 25,198,215,220,102, 5,200,243,229, 54,108,205, 93, 17, 14,247,124, 57,179,205, -228,203, 28,241,159, 25, 8,148, 17,193,208, 97, 9, 15,122, 20,137,132, 33, 8, -132,106,156,121, 39,132, 48,169, 76, 18,170,110,186,193, 59, 99,230,186, 52,137, -204, 3,127, 38, 58,163, 65,255, 47,120,190,247,133, 78, 82,223, 37,176,159, 69, - 81, 88,128,204, 53,219,156,159,190, 57,134,119,115,124,165,103,164,223,198, 93, -216, 22,228,118,200, 61, 65,110, 12,114, 87, 16,211, 90, 68,137, 55,194, 61,138, -195,244, 99, 46,153,205,109,190,165,115,243,205,244,188,157,250,193, 1,151, 73, - 56, 18,234, 33,246,191,214,106, 67,157,223,228,250,115,217,106,101, 86,159,116, -159, 39,192,188,250,108,118,100,119,252,162, 93, 80, 16,153, 58, 75, 60, 18, 42, - 39, 28, 57,171, 44, 63, 81,193,138,105,157, 90, 47,141,131,129,194,198, 60, 77, - 49,198, 24,227, 52,197, 88, 85,238, 49,222, 11,109,102, 29,170,246,165, 79, 62, -240,221,231,237,208,217,153, 81,109, 3, 77,211,182, 93,182,109,227, 74,229,182, -109,219,230, 91,199, 24, 47, 17,242, 5,178, 10, 98,140, 49, 18, 80,248,221, 42, -112,158, 76, 30, 1,114,154,122,130,144, 55, 88, 49,186,199, 24,161, 24, 99,167, -211,192,238,169, 38, 24,236,202, 82,193,170,170, 42,247,106, 89,164,102, 44,203, - 45,143, 49,186, 67, 14, 61,198, 24,223, 45,132,142,255,225, 30,216,135,219, 11, - 25,248,227,227,195,163, 33,122,253, 84,235,123,173,118,151, 45, 43,206, 82,159, -120,141, 24,163, 69,170, 68, 22,201, 34, 89,164, 74, 84,137, 42,145, 68,145, 40, -125,240, 53,186,108,112, 67,126,253, 46,124,214, 67, 53,116, 47,139, 23, 67,194, - 34, 85, 34, 14,141,195, 34, 89,164, 74, 84,137, 36,138, 68,241,123,253, 97,254, - 28, 75,112, 5,131,137, 46,163,113,137,164,117,199, 28,233,161,168, 90,177,234, - 73,145, 12,148,252, 4, 15,127, 62,179,198,195, 80,145, 27,157,124,209,240, 69, -179,241,151, 15,204, 82,243,154,150, 6,151,247,131,142, 95,118, 54, 82,211,210, -206, 15, 87,207, 52,129,111, 96,224,250,245,170, 49, 56, 96, 53,173, 25,184, 92, -207, 61,151,105, 33,212, 63,215,180,210,253,130, 3,141, 13,168,244, 90, 38,109, - 6, 0, 65, 3,227,114, 0, 0, 10,138,137, 35, 82,153, 76, 73,163, 40, 6,253, -196, 96,134,194,152, 5, 22, 6,149,133,195, 80, 37, 24, 60,134,161, 25, 10, 0, - 2, 6,128, 16, 0, 1, 64, 0, 32,162, 8, 67,192, 64, 71,125, 41,164, 99, 39, -253,128, 6, 64, 17,218, 66, 9,110,219,100,163, 4, 92, 77,155,247,194, 12, 26, -227,118,223,187,221,136,206, 42,251,197,237, 46,145, 83,119,173,167,137,133,184, - 73,245,201, 54, 34,109,178,231, 36,255,156, 64,162, 60,216, 80, 91,148,168,255, -177,241,253,220, 82, 6, 65, 14, 54, 70, 74,137,127, 32, 18,238, 60,165, 44,106, -238,191,123,161,160,220, 16, 42,156,122, 57,188,209, 11,218,142, 99,245,179,200, -210,214,188,201,173,139, 78, 45, 73, 59, 43, 5, 48,243,160,244,109,229,112, 54, -191,142,216, 72, 82,191, 26, 66,115, 75,226,143,115,197, 93,167, 54,184, 70,179, -244, 52, 76, 17,194,185, 50,178, 67,143,159,224,193,199, 63,162,112, 71, 91, 20, -220, 61,145,239, 89,209, 78,184, 64,118, 70,145,160,239, 41, 0,135,134,235,108, -215, 51,124,237,241,172,147,238, 41,207,143,203,165, 78,229,113,179, 1,230, 15, -116,145,186, 28,129,129, 96,197,146, 71,195, 38, 5,113, 79,123, 4,213, 9,217, -130,160,209, 19,172, 13,123,141,127,119, 60,237,109,249,117, 85, 77,118,254, 91, - 6,169,115,109,222, 26, 58,121,187, 60,122, 21, 27, 83,171, 30,204,139,206,228, - 7,143, 36,215, 96,147,117, 34, 84,197,186,215,201,235,116,204,191, 7,235,220, - 10, 83, 93,212, 7,224, 1, 47,132,193,189, 34,189, 21,196,152,116,118, 92,188, - 38,187, 50, 38,129, 88, 43, 5, 69,189, 24, 88,147,184, 45, 28,214, 86,162,148, - 48,228,223,203, 4, 38,101, 82,209,182, 87,240, 13, 65, 24, 16, 2, 27, 42,106, -239,254, 2,208,243, 30, 54, 75, 14,132, 55, 60, 48, 91, 63,200,105, 39,192,182, -227, 94, 46, 20,208,128,207,199,238, 74,128, 73,104, 93, 80,177,159,134,104,104, -111, 26,230, 50,249,145, 46,101,174,227, 48, 0, 12,238,108,163, 35, 50,132,131, -180,192,126, 59,105, 23,179, 17,197, 16, 7, 74,164,126,112, 29,220,180,190, 70, -142, 91, 61, 57,240, 42,156, 82,107, 5, 48, 41,223, 48,242,221,216, 76, 23, 82, - 20, 87,229,191,229, 13,198,246, 32,108, 80,184,134, 32, 66,117,169,147, 17,128, -228,149, 82, 65,168, 8, 23, 8,100,232, 9, 1,134,240,115,176, 11,185, 74,165, -129, 87,191,167, 8,245, 86, 70,132, 12,172,140, 66, 47,148,169,124,242,200,237, -101,137,137,139,254, 5,187, 57,203,197, 25, 24,223,138, 60,128,251, 30,243, 66, -213, 2, 27,162, 72, 48, 10,218,224,202, 95,180, 85, 39,194, 26,128,156,202,211, - 66,123,112,121,246,158, 25,193,119, 21,208,164, 52, 26, 98,245,234,209, 35,144, -242,187, 48, 31, 10, 9, 53,160,239,138,230, 69,247,169, 97, 28,158,125, 14,237, -171,228, 15, 45, 58,251,202, 52, 15, 15,159,195,250, 46,187, 35,205, 95,219,123, -140,169,139,234,147,125, 14,233,155,139,224, 0, 16,125,149,122,248,209,247,137, -134, 48, 25,206, 87,138,180, 4,216,249, 4,124, 23,148,162,151, 35,202, 80,202, - 11, 66,185,201,107,231,121, 20, 25,120, 17, 93,194, 17,236,144,189,106,146,182, -253,118, 48,240,115, 71, 32, 18,246,185,226, 44, 34, 6, 27,128,242,131, 70,250, - 74, 66, 69, 25,178, 87,104,230, 76,100, 80,111,114,232, 19, 63, 86,239, 34, 19, - 3, 56, 66, 80,109,126,114,220, 56, 45, 42, 45, 76, 45, 63,144,150, 49,237,106, -148,247,199,142, 8,175,182,135, 73,144,228,160, 22,240, 90,252, 59,142, 72, 68, - 51, 79,207,190,213,191,142, 65,249,243,174,130,133,108,157,220, 4,230, 17, 3, -134,197,146, 69, 41,149,234,188,148, 19, 77, 30,131,239,183, 84, 81, 63, 91, 13, - 47, 4,243,195,249, 47, 82,173, 6,177,175,228, 28, 69, 37,110,126,159, 27,249, -217, 82,130, 76, 10,133,191,132, 91,248,136,149, 74,183, 21, 2, 51,113, 37,160, - 47, 70, 8,214,202,201,224,214,253, 23,181, 57,128,130,252, 30,205, 73, 94,255, -114, 92, 13, 24,154,249, 65,114,103, 71, 26,136,132,145,209, 78, 80,135,212, 70, -208,105,183, 89, 37,170, 30,145,174,193,173,119, 48, 23,230, 46,195,178,151, 37, -221,109, 85,105,186,230,234,199, 91, 12, 84,175,224, 43,237,233,111,124, 59, 33, - 73,164, 82, 26,133, 87,124,240, 93,169,166,190,208,123, 67,148,243,149, 86,139, - 67,224,128,141,141,194,191, 66,238,126, 84,172, 8,174,146, 44, 24,130,149,236, -160, 62,235,214, 31,253,192,226,213, 70,103,197,134,247,144,224,171, 80,204,215, -113,119,107,191, 87,238,148,122,109, 4, 78,237, 94, 98, 65,187,155,242,191, 43, - 73,143,220,169, 64, 76, 61,251,246, 0,239,242,168,248,151,165, 6,151, 37, 56, -114,169,138, 4, 21,189,147,166, 97, 30,142,178,187,224, 85, 84,232,203, 53, 48, - 88,228,100, 69, 13,213,195,123, 29,196,219,178, 3,108,102, 19, 34,163, 5,224, -206,110,135,208,118, 48,210, 85,118, 47, 46,131,235, 28,222,126, 77,158, 24,186, - 4,158,205, 66,202,154,102,197,124,211,133,245,106, 4, 35, 54,167, 43, 44,112, - 35,107, 3, 10, 70, 38,177, 7,134, 33,198,232,252, 12,103,112, 97,165,227,182, - 57, 7,213,220,236,199,239, 82, 69, 76, 38,108,150, 99,174,243,134, 85,234,135, -146,118, 19,235,119,139, 77,121, 47,166,146,255,115,147, 7,128, 7, 45, 95,132, - 27, 88,197, 59,208,222, 74,115, 52,159, 6,210,178, 87,191,231, 92,193, 63,243, -224, 42,246, 54,135,195,246,172,235, 13,209, 85, 32,207,227,223,116,128,112, 99, -233, 49, 5, 89, 67,201, 77,188,144,113,246,244,248, 1,171,233, 25,173, 66, 28, -239,164,209,134, 80,251,230, 20, 89, 67,242,239,133,202, 72, 69, 57,134, 11, 19, - 3, 8,206,222, 38, 24,114,166,240,191, 66, 19, 10,133,176, 83,210,156,143, 90, - 4, 0,125,171,224, 88, 90, 5,131,110, 85,174,137, 83, 32, 43,224,236,231, 52, -108,186, 19,152, 34, 51,177,149, 18, 94, 53, 37, 12,200,193,131,192,241,254, 58, -207, 72,105, 82,154, 38,100,116,241, 26, 55,212,103, 79, 41,117,107, 9, 53,144, -119,192, 78,209, 79, 97,234,254,203,141, 96, 9, 36, 61,120, 56, 9, 59,203, 36, -154,103, 99,150, 24,147, 39, 73,125, 87,220, 27,246,192, 87,146, 4,202,212,170, -230, 75, 89,203,130,206, 46,171, 17, 43,111,219, 20, 29,159, 29,124,186,120, 87, -222, 66,180,170, 67,113, 96,233,254, 59, 88,103,130,155, 99,111, 0, 18,251,221, -113,219, 48,128, 29,181,219, 73, 34, 65,162, 20, 72, 53,138,182,188,103, 91,237, - 75,190, 76,175, 31, 92,136, 2,100, 27,164, 43,109,139,172,176,114, 7, 34, 13, -165, 90,127,136,171, 29,218,105,205, 38, 19, 76,135,165, 68,207, 15, 26,124, 34, -152, 66, 14, 73, 70,123,113, 42,246,215,135, 36,105, 72, 33,155, 21, 7,229,198, - 37,233, 77, 13,243,244,229,231,255, 71,185,147,177,167,239,210, 90, 91, 39, 93, - 75, 99,187,250,167,226,171,111,255,179, 85,220,187,226,221, 39, 57,163,229, 73, - 21, 43,248,231,138,126,243, 76,145, 80, 60, 62, 69,102, 22,216,141, 20,193,207, -166,227, 50, 49, 21,180,133,118,234,174,135,244, 53, 4,138,130,193, 34, 41, 53, - 97, 94,248,159,211,146,131, 57,141, 7, 9,153,135,234,207,245, 96,124,126, 40, -133, 2, 88,139,162,227, 54,168,129,138, 68, 64,244,156,249,105, 30, 21,133, 43, - 68,246,113,230,247,174,135,225,206, 70, 97,168,212,127, 58, 4,188,204, 39,228, -108, 48, 29,199, 42, 71,243, 52,202, 35,197, 27,193,134, 9,122, 7,114, 89,124, - 92,195,189, 57,233, 50,136,123,143,125, 81,165, 54, 76,133, 17, 78, 74, 71,245, -172,212,187,236, 72,172,101, 90, 65, 74, 60,134,172,182, 41,212,127,211, 33,103, -126,120, 89,249,251,229, 56,194, 15, 20, 71,238,154,188, 42,242, 11,199,159,231, -166, 93,110,115, 4,120,207,198, 51,186, 42,105, 27, 51,118,231,108, 42, 49,112, -104,146,255, 38,128,185, 58, 77,165, 20, 63, 72,252,181,106,161,228, 48,154,192, -105,234,206,112,106, 14, 35,238,194, 78,206,228,121, 72, 42, 85, 14, 66,223,245, -175,110,240,217, 85,123, 25, 24,104,192,162, 97,112,231, 17,193, 98,200,134, 18, -238,231, 77,155,183, 17,103,157,173,119, 80, 94,186, 87, 72, 27, 21,110, 84,227, -225,120, 8, 77, 3,104, 51, 98,160,177, 81, 81,105,173,186,215, 72,219, 61,255, - 35,213, 78, 30,248, 20, 89, 87, 90, 45,101,168, 47,181,154,128, 69,145,161, 37, -109,135, 10, 16,237,198,169,103,229,198,151,248, 74, 42,219,219,136,185, 8,118, - 81,255, 85,200, 94, 55, 10, 53,163,154,182,103,185,254,209, 62, 68,210,222,233, -198,250, 66, 97,165,130, 60, 65, 81,160,120,176, 8,160,246,251, 38, 71,153,115, -178,188,177, 89,253,182, 43,144,124,143, 38,185,142, 14,126, 77,150,200,239,139, - 80,224,192,173,246,170, 19, 33,154,185,221,128, 17,197,136,222,167,192,252,105, - 68, 46, 0, 94,148,248,147, 49,213,103,249,239,222, 42, 18,108, 75, 67,188,195, - 51, 67,247, 51,172,195,129, 62,138, 67,189,103,143,197, 67,133,229, 97, 15,222, -143, 70,182,156,237,223, 52, 75,139,249,100, 9, 61, 35,131,240,156, 62, 90,240, - 25, 28, 32, 24, 82, 96,225, 77,101,126, 73, 73, 47,142, 64, 28,192, 13,155,168, - 11,136,251,198,189, 21, 19, 27,213, 50, 17, 49, 0, 58,141,166, 25,208, 17, 55, -175,181, 53,142,237,239, 70,235,177,168,110, 98,134, 12,216,178, 34,213,165,252, - 63,233, 68, 29, 71, 58,244,147,185,220,163,185, 68,170, 73,130, 21,200,164, 57, - 37, 79, 59,199, 1, 71,146, 84,101,114, 70, 87,178, 9,123,104, 71,158,105,115, - 76,203, 2,183, 5, 91, 27,143, 81,117,141, 96,170,236, 70,172,138,105,199,180, -112, 97, 13,185, 78,131, 80, 30, 71,123,130,151,174,222,156, 70,128,152, 82,190, - 48, 39, 8,252,190,188, 93,142,204,176, 86, 78,135,208, 20,188,251,115, 91,131, -237,208, 97,177,214, 71, 13,138, 89,176,115,198,225,202,147,140,214,127, 58,229, -197, 37,167,119, 44, 52, 60,179, 85,117,241,110,250, 37,200, 13,108,175,248, 0, -162,109,193,118,119,232,111, 48, 23, 84,121, 29, 64, 4, 85,230,202,125,171,138, -112, 56,168, 47,138,167,249,228,159,204,149, 87,154,248,101,130,141, 47,224, 73, -226, 53, 28,194, 17,238,103,250,192, 4,137,120, 26, 4,205,202, 18,195,249,155, -161, 62,171, 94,163,107, 33, 77, 90, 98,105, 47,152, 51,135, 89,229,207, 1, 24, -201, 13,142,115, 45, 47,249,234,124,150,135,127,252,109,219,184,194, 31,159, 97, - 60,207, 82,235, 21,121,112,108,216,140, 28,192, 57,100,254, 70,120,206, 99, 77, -239,235, 32, 58,129,155,112, 4, 73,142, 96,239,138,229, 25, 0, 32, 44, 81, 68, -254, 33,156,247,184, 42,232,181,234,167, 2,157,108,116,173,116, 78,226, 10, 52, -159,129,224,142,210,142, 65,197,248, 7, 40, 84, 21,152,151,182,186,207,139,196, -119,228,106,110,164,154,197, 8, 2, 49,198,254, 34, 81,154, 71,128,128,196, 25, -122, 11,200,204,120, 19,125,229,215, 29,173, 15, 49,109, 35, 65,178, 34,118,173, -174, 6, 76,251,131, 8, 13, 53, 17,153,208,252,174, 34, 7,254, 40,230,189, 32, - 74,136, 53,185, 61,182,237, 36,166,222, 9,225, 64,158,250,102,130,251, 87, 62, - 39, 28,248, 3, 45, 74, 48,136,126, 44, 96,185, 71,202,227, 8,111,178, 39,235, - 4,187, 79,177, 3,108, 9,150,224, 9, 73,240,176, 79,209,242, 75, 8,142,255, -227, 38, 81,133,179, 88,123, 20, 57, 90, 71, 26,141, 0,184,133,185,118,134,109, - 21,161, 88,119,191,170, 84, 50,166, 17,238,204, 64,234,187, 62,157, 1, 68,174, -138, 96,166, 23,255,213, 63, 81, 78, 14, 50,233, 34, 23,244, 62,121,216, 17, 28, - 52,207,219, 78,203, 88, 63,188,161,246,214,201, 49,122,168, 27, 32,117,128,188, -198,130,238, 71,140, 85,199,227, 53, 88,206,100,170, 26, 58, 83,207, 77,143,198, - 71,123, 29, 61, 22, 2,164,167, 93, 85,237, 91,232,208,205, 33, 15,123, 92,170, - 56, 35,194,209, 20,104, 17, 9, 53, 56, 99, 11, 41, 42,223,144,201, 29,126,149, -215, 94, 56, 39,136,197, 10,210,212,151,124,157,215,143,152, 70,162, 82,246,136, -128,102,114,206,253, 27,160,218, 39, 93, 17,121,158, 65, 74,139, 88,153, 1, 55, - 80,130, 99, 29,155,109, 67, 65,105, 56, 55,166,245,113,148,219,138,129, 96,202, - 61, 77,180, 33,126,237,117, 1,102, 47,146, 87, 58,193, 9,197,167,227, 64, 52, - 90, 19, 70,198,112, 39, 83, 18,199,239, 7,122, 96,240, 40, 7,135,192,230,178, -202,242, 45, 13,140, 69,186,237, 85,129, 48, 83,255,214,179, 83, 28,226, 47,225, -191,138,158,164, 46, 7,248,228,202,153,111, 67, 36,237, 8,182,207,195,107, 57, -224, 45,191, 33,164,181, 13,212, 74, 92,126, 90,132, 70,196, 79,104,141, 4, 32, - 8,198,130,137,142,213,205,187, 52,152,179, 90, 36,230,162,225, 17, 41,192,129, -129, 52,247,204, 44, 91, 69, 2, 39,170,105,175, 96, 57, 77, 68,156, 28, 54,195, - 7, 24,217, 68,141, 39,103,180,199,240, 27, 72,246,162,227,232,125,166, 25,171, -198,232, 25,211,171, 5,241,105, 24,172,222, 20,171, 57,147, 49,202, 14, 26,145, -210,188,125, 26,192,161,183,113,135,185, 51,224,144,138,193, 60, 85,189,151, 43, -193,176,241,220, 74,172, 0, 33,167, 79,167,179, 69,143,219,135, 59, 72, 40,115, -230,248, 26,124, 4, 83, 45, 70, 64, 62,208,165,140,213, 78, 48,192, 76,125,214, -188, 83, 55,237, 6,106, 72, 13,224, 38,146,245,202,247,235, 18,121,145,111,195, -175,192, 92,129,175,111, 2, 49,152,122,147, 21, 16,205, 26, 1, 65,194,235,111, - 5, 11,183,240,185,227, 13, 30, 35,139,134, 38,236, 26, 39,143, 94,216, 94,149, -124, 12,121,236, 93, 95,140,147, 90,239,211,224,106, 84,220,148, 40,217, 68, 14, -217,192,139,141,181, 1, 46, 27,104,192, 15,191, 22,198,157, 86,176,142, 19, 90, -139,159,150, 97,243,179,210, 22,122, 15, 20, 65,207,129, 98,138,145,211, 57,100, -156, 40, 82, 27,214,229, 3, 35,165, 41,113,110,222,173, 78, 53, 5, 38, 42,138, -206, 37, 48,102, 76,232,216,127,127,137, 75,231, 2,101,178, 5,164,100,114,160, - 72, 12, 36,118,169,130, 86,205,254,101, 42,108,201, 87,126,102, 82,254, 15, 6, -100, 96, 14,222, 23,111, 78,142,184,224,136, 63, 83,178, 48,127,122, 71,128,225, -246,229, 26,153,112,163, 90, 58,171,179, 53, 82, 88,191,212, 2,176, 23,250,183, - 89,195,194,244,232, 87, 36, 72,182, 90,234,117,231,119, 26, 78, 74,166, 21,234, - 99,219,126,214,226,199,247,112,161,131, 53, 55,254, 39, 27, 8,233,245,105,214, -211, 93, 15,174, 59,146, 55,244, 86,137,204,199,224, 22,109,188,108, 67,186, 22, - 21,137, 46, 5,156, 28,111, 22,254,206,198,127, 51,208, 3,116,224,209,161, 67, -181,248,204, 78, 25, 30, 80,144,245,244,144,207,188,139, 24,252,245, 47,125,174, -244,184,177,207, 14,176, 70,102, 35,232, 49, 24, 26, 27, 97,134,147,148,162,173, - 69, 88,209, 70,212,162, 45, 90,127, 47,167, 66, 38,104, 57,171,142,173,109,207, -141,226, 6, 24,182, 53, 41,237, 2,177, 51, 71,213,250,161,206,242,142,217,120, -151, 25,248,130,197, 96,147, 33,251,202,200,200,128,245,186, 53,130,166,136,159, -212,238,128, 35, 3,173,134, 61,164,152,204, 27,183,216, 82,134,165, 89, 7, 41, - 59, 48,138, 10,253,219, 6,154,248,121, 72, 87, 52,243, 0,254, 8, 17,237, 50, -151,136, 1, 46,132, 61, 49,131, 78, 37,171,112, 13,162, 17, 76,191, 8,133,207, -208,121,211,159,102,192,109,216, 96, 14, 7,152,206,210,227,172, 98,164,252,220, -205, 51, 19, 20,213, 57,142, 9,132,247, 57, 28, 78,137,114,104,152, 8, 44,145, - 17, 29,102,198, 3, 5, 92, 72,140,208, 54,247, 95,250,148,185,198,114, 91,142, -162,183, 49,139,162,115,100,204,137,108, 95,125, 46, 65,191,184, 57, 83,118,118, -148,133, 42, 54,164,151,248,177, 71,237,212,164, 42,146, 0,147,181,231,119, 88, - 41, 31,125,191, 51, 92,215,250,177, 35, 5,250, 7,230, 23,185, 22,134,167,183, - 8,239, 65,248, 18,137,111,153,151, 7,208,120,230,181, 14, 31,126,146,124, 58, - 67,235,136,168, 36,206,142,181,204, 25,188,173,108,200,187,107,233, 73, 62, 55, -113, 10,224, 93, 18,178,197, 72,210,102,178, 38,187,109,150, 1, 66,200, 84,234, - 3, 86,212,140,214,224, 50, 86, 76,168,138,204,206,104, 81, 25,104,158,161,178, -144,125,208,105, 18,188, 43, 14,102, 46, 96, 71,180, 48, 42, 79, 29,162,224, 77, -211,123,123, 29,183,249,154, 32, 80, 91,231,126,137, 11,216,104,252,226, 62, 55, - 55, 80,198,189, 42,186,241,228,183, 55,170, 20,144,139,111,123, 35,213, 66, 2, -154,222,217, 9,110,245,195,213,157, 5, 56,110,205,164,220,160,237,166,200, 53, -112,196,253,152, 48,232,184, 13,184,135, 2, 13,182, 52, 67,235,212,229,184, 21, -106,106,130,235,119,142, 33, 87,109, 12, 14,224,150,249, 47, 7, 63,215,219,209, - 49,227,202,249, 10,220,162,110,248, 97, 5, 22, 79,164,176,171,109,188,237,131, -208, 25,193, 84,103,154, 15,247, 6,136,107,205,174, 2, 54,191,164,213,184,112, - 69,137,242,221,110,125,216,165,155, 12,184, 21,131, 2, 57,219,107, 76, 66,234, -164, 23, 65,219, 71,132, 61,197,161,168, 18, 38, 0,152, 73,236,190,228, 92,235, - 56, 69, 50,158,157,173,159,221, 40,247,130,241,135,151,210,231,102, 2, 47,252, - 65,109, 77,109, 74,198,122, 96,107, 2,111, 93, 7,126, 27,241, 27,153,186,110, -220,143, 49, 0,203,238, 77,162, 11,140, 87, 95, 61,161,246, 43,114, 3,106,240, -253, 66,101,116, 42, 49, 59, 24, 3,113, 82, 53,216, 77,231,149,219, 87, 87, 99, - 6, 67,156, 77, 89,180, 40, 66,141,241,248, 12,132,187,172,131,123,220,133,232, -185,113, 49, 16, 59,161,134, 35,106,219, 88,225,115,147,219,230,213, 86, 99,136, -254,244, 60,190,175,228,216, 18,143, 19,138,190,183,189,190, 27,158, 91, 13,230, -104,152,173,172,164,118,108,197, 98,109,190, 10,156,232,164, 79,133,170,200,133, -177,199,186, 55, 73,152,122, 4, 90,133, 97,136, 64,132,240, 32, 14,213,244,147, -145, 4,249, 1, 18,179,223, 22,208,184,117, 23, 0, 19,217,252,111,205,120,141, -224,209, 45,218,209,208, 38, 12,159,233,194, 41,105, 46, 96,196,115,193, 54,141, - 82,159,102,211, 35, 53, 91,206,123,252, 28,108,160, 99,128,129,185,153, 83, 59, - 7,103,199, 45, 76,187,193, 38, 77, 33, 73,217, 69, 68, 98,239, 46,177, 19, 18, -174, 53,204,238, 15, 51,244, 80,185,149,204,240,237, 63, 1,231,123,248,143, 69, -173,123,173, 66, 16,158,245,109, 4,186,247, 53,153, 37, 46,211,196, 26,103,142, - 69,168,172, 75,183, 12,112, 96,114, 75,229,191,255, 73,147, 94,207,196,128, 44, -167, 68,110,205, 34,199, 44,151, 61, 44, 5,176, 82, 40,238,213,110,136,142, 94, - 81, 7,137,172, 60, 70,192, 48,176, 31, 29,174,236, 1, 83,215, 42,202, 4,184, - 98,115, 49,218,181,234, 32, 66,156,155,112, 37, 60,102,141,216, 63,118, 52,165, - 71, 15,238, 42, 65, 52,226, 24,184,186,117,102,110,118,252, 65, 57,107, 96,230, -200,160,204,174, 62,135, 54, 30, 32,147,106,239, 35,148, 49, 56,177,175,170, 22, -108,121, 49,163,202, 95,221,149,156, 70,167,229,114,146,138,244,172,200,156, 1, - 91, 81, 19,114,111,226, 8,142, 84, 95, 71,150, 96, 13, 37,103, 89,135,238,135, -133, 90,176, 62, 49,228,247,168,109, 98,147,203,150, 55, 74,150,208,192, 53, 80, -236,213,189,175,111,199,128, 29,105, 28, 65, 78,233,103, 17,174, 51,128,173,219, -178,244,151,235,142, 29,132, 54,248,135, 74,167, 34, 23,163, 19, 71,210, 42,200, - 71,225,115, 25, 39,250,147, 76, 99,186, 16,213,168, 35, 18,147,120, 57, 16,188, - 3, 69,114,142,195, 7,105,101, 16,138, 0, 1, 93,150, 66,142,180, 4,180, 39, -109, 11, 76,150, 27,156, 86,103, 87,183,169, 62, 2, 52, 50,205, 67,228, 41,102, -230, 35,207, 29,159, 9,150, 9, 39,204, 7, 90, 22,140,240,187, 60, 57, 36, 98, - 79,213,118,182,189,227, 75,139,152,231,104,168,118,194, 91,255,225, 68, 31,113, - 28, 57,193, 49, 85,112, 84,114,211, 6, 86,132, 58, 68, 71, 17, 53, 32, 34, 38, - 19,196, 23,141,168,194,159, 41,173,127, 25,149, 94, 67, 81,198, 35, 4,165, 21, - 15,140, 22, 34,183, 42,141, 60,249,235, 78,228, 28,169,189,119,137,128,132,113, -232,169,157,105, 64,115, 83,235, 23, 43, 46,237,219,136,136,222,129, 34, 32, 22, -100, 12, 29,180,215,188, 10, 38,197, 96, 74,126,130,173, 45,118, 7,200, 30, 24, - 20, 78, 61,151,229,144,172,110, 62,218, 6,224,139,127, 80,219,250,233,111,202, - 93, 13,195, 91, 90,255,202,163,189, 63,255, 39, 4,107, 70,195,180,226,170, 27, -234, 13,234, 67,114,170,208, 15,221,109, 85,118, 41,217,131, 82, 46,149, 35,172, -207,194, 53,200,156,207, 15,179,226, 21, 96,234,228,106, 81, 40,129,123,249,151, -133,174, 22,155, 76, 25,224, 75, 67, 30, 49,193,152, 31, 1,196,207,197, 26,159, -109, 25,156,180, 22,206,200,179,200, 71,131, 30,206, 95,117,197, 80,241, 7, 30, -195,121,206,167, 5,229, 18,226, 82,159, 59,229,201, 17, 93,193, 29, 92,183,212, -236,136,141, 51,195,141, 63, 38,236, 46,232, 89,202, 63, 94,129,205,121,183, 81, -229,205,136, 73,153, 65, 10,151,139,155, 3,106,145,209, 1, 17,171, 3,138,214, -107, 57,247,178,243, 7,139, 99,142,157,113, 47, 57, 29,212,136,216,195,213,143, - 70,126,189, 69, 39, 95, 98, 73,139,164, 9,178,174, 11, 17, 75, 42,172,190, 87, -183,186,122,100,249,213,247,156,183,129,245,192,171,111, 49, 73,178, 1, 78, 7, - 92, 9, 49,223, 72,220,167, 77,150,183,107,137,198, 9, 40,189,124, 62,147,138, -227,138,242, 48,252,250, 67, 45, 85,251,135, 6, 90, 82,223, 26, 14,180,224, 8, -233,190, 90,142,146,158, 79,218, 40,157,247,167, 86,219, 91,246, 90,247,110, 71, -235,193, 53,180, 74,249,230,184, 32, 30,137,176,238, 8,230,203,250, 83, 64, 43, - 59,152,106,229,202, 65, 91,115,197, 69,175,150,137,219, 79, 7,120,207,122,112, - 49,180,116,142, 8, 96, 61, 40,186,217, 69,181, 13, 86,183, 75,248,220, 81,139, - 80,174, 16,118, 56,154, 20, 99, 52,233,246,204, 49,141,217, 97,225,103, 38,175, - 66,241, 90, 32,108, 93,189, 39,204,225,100,109,226, 98, 62,159, 45,138,241,197, - 49,157,130, 68, 82,157,115, 40,106,163, 19,123, 87, 47,169,196,190,243,138, 92, - 75,151,142,211,249, 55,243,126, 45,191, 0, 87,142,237, 18,180, 77,197, 1,150, -132,194,251,189,171,185,124,190,145, 5,100,169,102, 75,203,100,229, 69,244, 23, - 41,161, 26,250, 2,112,243,206,218, 53, 97, 51, 43, 43,144,141,212, 72, 54, 3, -250,217,161,127,141, 65, 99,249,130,250,125,104,114, 82, 44,129,195,243,133,148, -190,233,146,233,193,236, 69, 42,149,158,196, 9,180,203,131,148, 45,148,227, 54, -124,120, 7,122,161, 28, 29, 11,128,242,251,122,198, 24,111,239, 68, 74,185,198, -219, 50,177,177, 48, 23,176, 53, 70,193,243, 60, 82,186, 83,145,144,131,131,104, - 91,189, 19, 73,202, 45, 18, 28, 40, 77,185,112, 98,107,221, 30,145, 41, 76, 39, - 80, 33,152,198,170, 54,125,223,126,149,226, 47,104,191,170,244,117, 58, 84, 94, -124,157,189, 10,192, 34, 36, 16, 74,144, 60,139,229, 74,154,104,155,194, 18, 37, -157, 39, 56, 46,185,163,148, 81, 46, 93,248, 61,202,198,252,149,135,125,167,214, -212, 58,136,124,172,224,245,193,192,176, 16, 36, 2,218,198,240,121,216,134, 77, - 48, 49,202, 96,185, 62,106, 91,166, 66,209, 40, 97,156,152, 88,146, 67, 98, 9, -158,124, 18,199,159,114,184, 53,174,249,210,222,101,239,197, 24, 60,172, 62, 11, -225,152, 55,107,136,249,238,208, 70,188,122, 40,189,122,130, 97,130, 80, 35, 91, -213,247,244,194,114, 13,121,157,210,250,151,228,189, 54,183, 37, 87, 54,111,217, -237,212, 41,150,148, 84, 48, 64, 58,182, 32, 11, 78,159,225,148, 53, 30, 25,229, - 41, 22,171, 5,160,134, 43, 52,143,188, 35, 40,198,133,237, 78, 78, 89, 98,230, -164, 14,214, 41, 53,175,160,236, 2, 55,134, 27, 1, 98,207,206,130, 78,182, 86, -191, 65,161, 84,111,181, 45,246,136,197,102, 24,133, 14, 64, 71, 94, 62, 40,226, - 42, 84, 32,112,170,218,138, 61,175,202,155,236,125, 85, 55,191,178, 17,150,109, -136, 91,235,245,130,210,213,191, 17, 70,195, 55,103,169,112,197,204, 15,129,142, - 0, 27,217,253, 10, 9, 9,110,112,160, 91, 7, 60, 13, 80,164,167,237,106, 8, - 84,119,217,179, 30,105,196,163, 68,114,108, 72,171,187,128, 42,213,214,186, 38, - 37,206,117, 16,226, 9,144, 13, 76, 65,171,225,109, 81,153,148, 66,241, 78, 34, -236, 3, 69,223,254,101, 79,162,227,125,174, 68, 4,157, 68, 33,190, 82,210, 85, - 60,210, 93,195, 83, 9, 7, 74, 87,237, 97,199,174, 83, 2,236,220,192,224,206, -169,137,160, 84,213,187, 5,230,220,125,111, 92,120,229, 18,200,150,112,189, 93, - 35,190,242, 36,160, 90, 53, 2,121, 90,128,168, 10,134,137, 66,122, 18, 8,196, - 59,194, 34, 22,179,160,226,214, 70,140,140, 0,167, 6,194, 48,102,207,113,180, - 84, 5,232,252,227, 10,159, 57, 30,253, 85, 5,181,175, 57,124, 51, 13,171,245, - 82,107, 44, 12, 1, 68, 6,162, 20,185,253, 68, 19, 79,147,206, 56,252, 34,232, - 78,184, 67, 46,181, 9, 88,169, 23,156,199, 16,209,205, 76, 92,193, 91,165, 68, -198,181, 56, 29, 79, 18, 52,213, 77,141, 94,169, 59,186, 10,102,174, 28,206, 44, -164,172,193,143,126,151,157, 38,210,103, 70,222,253, 1, 76,145,212, 67, 75,228, - 70, 44,145,122, 15,115,241,243,217, 32,130,140,186, 13,123, 91, 33,151,222, 47, - 56,165,145, 32, 53, 49,134, 3, 38,219, 68, 38,143, 79,212,165,112, 60,108,193, -134,237, 36,146,150, 19,197,134,233,128,181,124, 9, 16,175, 58,147, 96,117, 16, -231, 23,216,244, 89,108,169,114,140,247, 93, 0, 93,130,141,225,178, 65,153, 64, - 10,210,119, 83,208, 61, 97,169, 35, 83,146,163,208, 17,242, 12,213,221, 28,168, -191,161, 79,117,145, 7,136,209, 42,211,254,114,167, 54,164, 24,171,109,188,161, -109, 64,228,175, 40, 32, 15,152,174,166,108, 48, 16,100,146,140,238, 25,135, 77, -240, 67, 19, 1,127,103,253,184, 53,125,230, 19,249,122, 49, 12, 54, 12, 90, 91, -190, 17,149,215,239,204,248,129,123, 34, 82, 89, 99,144,112,131,119,142,250, 16, -243, 28, 4, 20,217,157,152,153, 73,197, 95,153,198,169, 3, 42,255, 36,119, 18, -207, 88, 30, 94,180, 11,150,163,190,253,220, 48, 61,212,158,140,226, 73,198, 40, - 2,213,254,177,143,252, 96, 64, 81,203,206, 20,205,104, 30,100, 49,132,156,158, - 35, 25,144, 84, 78, 87, 17, 58, 2, 40, 65,153,129,141,149,241,190,246, 13,103, - 58, 12,118,112,157, 76,129, 79,105, 5, 80, 72, 34, 7,100, 90, 37,128, 5, 11, -244,231, 49, 59,135,196, 35,150, 47, 68,245, 13,228,246, 23,214, 95,119,111,142, - 43,221,117,123, 32,128, 20,246, 65, 10, 22,137,121, 77, 47,250, 23,240, 17, 59, -170,110, 98, 77,246,189,255,140,244,193,215,205,254, 68, 98, 20,238, 49,246,226, -244,216, 48,198,244,248,255,230,184,162,163, 7, 72, 53, 15, 99,145, 7,218,145, -226, 19,220,117,199, 88, 54,213, 64,104,202, 21, 50,121,251,116,202, 48,203, 6, -113, 34, 36,189,191,123,230,163, 68, 68,238,140, 71, 78,115,124,180, 15,173, 57, -218,131, 18, 49,194, 82, 0,123,130, 86,176, 38, 72, 62, 98,115,165, 16, 30, 49, -138,255, 0, 16,146, 81,184,120,128,118, 2,249, 75,233, 61,201, 83, 41, 28,224, - 27, 71,158,166,226,219, 69,210,154, 19, 71,142,142, 70, 56, 60,240,244,108,190, -159,126,236,108, 22,139,218, 21,105,172,119,172, 20,218,125, 78,227, 28,169,103, -195, 18, 68,223,147,254, 64,158,246,191,147, 56,164, 93, 66,179, 14, 35,168, 81, - 19,204,126,158, 13,192, 99,104,113, 12,183, 55, 77, 38, 42,160, 10, 41,140,131, -123, 0, 90,215,139, 88, 39,232,239,155, 36, 52, 35, 41, 26,177,153, 13, 14, 83, -149, 28,241,100,248,161, 48,152,191,218, 86, 68,161, 6, 78, 66,127, 10,145, 67, - 10,134, 68,152,182, 14, 92,171, 85, 15,213, 62, 21,148,157,127, 64,159,201,160, - 53,198,218, 62, 91,216,151,213, 89, 91, 75,204,132, 78,183,101,239, 83,105,197, - 18,203, 71,198, 20,175, 83,100,168,132, 69,115,191, 81,230, 52,124,210,163,137, -120, 40, 72,250, 2,253, 16,170, 38,225,147,131, 54, 71,112,212, 50,252,130,136, -189,109,177,139,174,208,217, 79,188,132,130, 21,130,159,138, 31,228, 44, 9, 51, -164,202,211,228, 5,109, 4,186, 94, 19, 29,246, 44, 29,251, 59,160,198,245, 5, - 20,137,151,228, 34, 72, 70,227,198,235,165, 47,252,189,123,155, 45,205,169,236, -242,187, 65, 6, 59,234, 49,250,110, 17, 92,218, 54,158,219,240,207,164,233,143, -129,133,217,153,147, 37, 90,120, 93,252, 44, 2, 87, 30,165,162,202,144, 90,135, -189, 37, 23, 98,142,147, 19, 73,103,234,128,114, 79,177, 12,132, 38,216,114,102, - 59,141,220,151,207, 27,159, 11, 55, 2, 21, 96,106,161,229,102,155, 86,188,165, -107,223, 42, 92,108,192, 84,244, 0,200,245,249,133, 87,105, 29, 94,154, 81,159, - 77,241, 84,156, 25, 34,217, 75, 70,201,116,246,189, 58,132,235,243,230, 63,107, - 56,146, 92,249,128,224,181, 45,249,141, 53,115, 98,130, 47,149,165,147, 73,220, -202,209,212,152,114, 90, 19,109,237,109,236,135,152,151,217,102,177,152, 44, 77, -141, 36,162,215, 10, 64, 99,142,232, 2,197, 6,119,185, 1, 62,122,219, 82,228, -122,140,208, 94,240,158,164,150, 92, 69,180, 60, 54,251, 89, 1, 32, 21,229,106, - 75,224,216, 22,216,194,198,180,232,154, 84, 86, 53, 40, 55,130, 71,205, 68, 64, -157,244,119,126,171, 24, 80, 92,178,172,190,181, 64,112,192, 21,199,171,156,223, -243, 53,113,215, 26,218, 53,208,249,142,112,237, 94, 70, 73,109,136, 48, 46,183, -165,214,150, 57, 4,192,210, 40,102,152, 10,101,234, 28,230,242, 68,119, 25, 33, - 52, 11,129, 77,184,124,242,149, 64,220,186, 49,200, 98,149,101,160, 76, 67, 52, -107,159,130, 4, 67, 23,109,103,209,134,125,208, 54,242,223,171,116,164,129, 39, - 29,183,135,135,177,114,130,211,197, 0,128, 82,160,135,157,178, 4,243,207, 43, - 46, 26,167,145, 24,191,183,116, 37, 35,144,118,206,188, 27, 43,180, 32,142,108, -133, 98,137,210, 66, 14,114, 17,240, 18,251, 87,211,141, 14, 34,230,110, 94, 66, -222,125,155, 98,246,192, 34,242,248, 66,137,204, 63,227,139, 80,227, 76,182,179, - 91,162,104, 21,248,111,100, 89, 46,162, 80,107, 83, 99, 43,241, 34,126,250,100, -160,157,183,116, 68, 56, 2, 82, 47,173,132,204,114, 73,124,236,175,244,152, 75, - 0,216, 8, 24,160, 6, 34,128,129,182,183,254,115,250,208, 97,142,183,155,178, - 55, 54,246,159, 91, 55,135, 96,161, 19,183,224, 62, 83, 89, 71, 48, 5,102, 81, -191,151,141, 8, 34,108, 19, 46, 48,104,203,230,209,241, 59,218, 47,208,239,170, - 94,240, 23,162, 99,194,223, 20,213,145,194, 22,215, 89,204, 23,112,254,204,233, -247, 83, 35,112, 18, 74, 41,239,142,105, 89, 38, 68,143, 24,212,169, 3,142,254, - 1,140, 53, 1, 15, 10,137,165, 99,209,210,121,184,225,102,176, 67,139,141,128, - 67,163,129, 94,229,168,142,208,250,140, 85, 35,180,208,213, 29,189, 33,137,230, - 78,231, 91,129,188,101,113,254, 65,202,164, 17, 80,191,255,240,103,176,115, 29, -153, 5,147, 27,227,252,134,244,215, 27,113, 54,130, 82,160,122,177,180, 47,251, -157,131, 5,197,173, 86,240,238,157,164,199, 37, 47, 55, 20,208, 12,251, 4, 22, -110, 36, 29,100, 63,246, 86, 6,213,249, 71,147,141,192,215, 1, 54, 96,211, 2, -169, 99,215,242,185, 79,166, 68, 67,102, 47,141,200, 54, 39,233, 55,236,240,215, -223,152, 40,120,192,173,170,121, 0, 14, 75,105,198,169, 26, 60,100,222,114,180, -184, 19,248, 70,173, 97,119,252, 50,231,114, 70, 34,124, 89, 40, 69, 74, 79,107, - 58, 3,227,240,124,121,162,135, 9, 42,242, 47,111, 9,140,244,202,107, 90, 35, - 48, 46,195, 32,175, 67,142, 10, 94,111, 94, 1,135,214,238,203,113, 96, 13, 99, - 41,119, 89, 22,182, 39, 93,152, 54, 81,160,168,209,238,252,116,184,137,173,152, -198,243,160,123, 65,198,109,176,213,145,137,214,255,145,179,213,169,108,125, 35, -103,186,144,104,255, 6,196,149,108,246, 46,130,200, 15,167,110, 89,177,192,136, -221,108, 41, 37, 67,223,236,229,237, 92,173,211,219, 43, 84, 15, 3,161, 49,166, -139, 43,193, 60,241, 19,229, 72,138,135,201,167, 24, 84, 16, 73,251,189,186,165, -213, 74, 58,184,213,214,170,237,196, 90, 47,199, 91, 71, 6,109, 56, 37,209,171, - 19,111, 0,133,252,133,211,146,188, 85,185,119, 66, 28, 39,210, 24, 78,253,245, -164, 25,187,204, 50,141,249,228,239, 55, 45,165, 33,237,115, 3, 78,219,106,253, - 13, 20, 60, 90,204,236,191,211, 68,113,252,130,161,111,166, 44, 46,242, 56,220, -208,193, 56, 60,246,178, 91,197,115, 27,161, 13, 59,149,101,183,198,211, 28, 59, -218,123, 37,118, 91,121,203,161,245,170,175, 70,167, 42, 93,164,200, 14, 63,108, - 41, 47,251,115,204,137, 90, 92, 27,180, 18,183,111,193,255,127,240,134,122,204, - 40,102,239,242, 50,223,255,222, 60,155,229,218, 77, 78,116,140, 75, 55,244,243, -148,211, 75, 13,237,253,196, 36,151,139,162, 9,209,109, 30, 60,252,194,151,241, -179,215, 77,183,247,243,107,159, 21, 39, 66, 91, 78, 58, 33, 70,186,104, 81, 62, - 89, 84,169, 0, 73, 41, 35, 13,226,164,142,124,198, 16,211,130,230,250, 72,195, -157,198,205,234, 87, 64,184, 49, 89, 5,226,255,129,129, 57,198,144, 14, 18,245, -245, 4, 43,232, 21,236, 39,204, 26, 48, 14, 30, 41, 26,208, 92,246,104,215,252, - 65,149,120,187,105, 65,164, 53,107,166,113, 91,119,171,112, 97,132,252,198, 18, - 6, 84, 21,125,165,189, 6,203, 12,144, 53,128, 74, 45, 20, 41,106, 24,119,149, -170,121,218, 32,125, 96,204,217,168,152, 22, 49,133, 44, 85, 98,242,253,138,202, -190, 42, 9,198,252, 40,214, 72,164, 54,178, 0, 69,193, 89, 70, 51, 32, 62, 41, -100, 53,242,216,136,250, 3, 40,211,203, 37,105, 65,218,213,115,224, 81, 53, 54, -253,105, 61,195,216,160,155,168,145,202, 52, 42,104,158,129,213, 69, 98,166, 38, - 64,240, 72, 95, 5,227,125,214,158,224, 57,148,104,230, 90,163, 65, 30, 45,229, -151,198, 53,210,192,167,177,102, 49, 43,155,126,190,174, 92, 55,160, 94,133,112, - 78, 66,214, 97, 44,195,106, 94, 96, 46,136,207,186, 20,233,144,110, 43, 34,241, -140,101,248, 87, 78,180,164, 95, 99, 36, 62, 78, 6,218, 24,197,177, 39, 26, 27, -189, 86, 60,160, 44, 0,117, 71, 32,255, 99, 86,161,218,193,133,174,183, 3, 85, - 73,118, 11,106,164,184,108,195,133,113, 81,141,216, 46,116,109,173, 21,155,214, -138,147,150, 33, 25, 68, 9, 80, 68,128,169,205,227,208,133,179, 96, 63,139,132, - 45,238,251, 56, 72,223, 88,213,170, 27,160,150, 8,172,194,218, 40, 11, 3,110, -184,162,148,230, 84,106,110, 9, 88,115,173,134, 74,201,141,129,180, 88,105, 85, - 65,185,160, 82, 25,160,151, 27,132, 48, 3,186, 33,115, 33,170, 84,117, 80,160, -200, 6, 97,117,163, 1, 72,241,194,122,225, 58,176, 21,225, 90, 26,159, 69, 45, - 97, 9,119,104, 40,234,167,160,167, 9,150, 91,183, 36, 51,176, 45,137, 2, 52, -167, 10,134, 3, 56,170,162,156,213,123, 10, 68,184, 27,114,132, 61, 10,253, 89, - 51,213,148, 31,219,235, 84,110,106, 46, 89,153,130, 61,128,241, 74, 23,254,186, -172, 98, 61,220,181, 16,129, 91,226,226,103, 89, 43,197,240, 0,166,118,164, 40, -208,178,232, 1,164, 41,186,150,149,226,239,136, 90, 80, 65,230,165,216, 5, 66, - 96, 40, 9, 19, 22,197, 96, 15,188,234,197,216,254, 2, 95, 60,192,106, 3, 2, -154, 0,153, 0,151, 0,219,213,236,150, 53,154, 91, 47,154,247,214, 55, 34,226, - 7,150,187, 83, 85,228, 13, 22, 7,201, 5,132,199,137,217,207, 28, 93,243,220, -239, 11, 21, 57,198, 73, 57,214, 50, 54,239,143,144,205,208, 3, 46, 33,231, 46, - 26, 24, 94,201,209,227,194, 92,208, 55,203,104, 52, 80,199, 71,131,156,219,138, -239, 36,112,210,229,116,143,208, 53,161,223, 58,111,151,235, 72,115,163,171, 47, - 41,211, 54, 71,178,168,130,105,202,251, 53,169,118,100,166, 73,234,207,126,123, - 25,238,243,188,246, 46,117, 29, 11,180,195,223,243, 28,204,255,201,178, 76,245, -123, 70,239,198, 85,251,156, 28,107,206,170,181, 16,230,102, 24,168, 94, 19, 12, - 4,206,227, 85, 51,150,102, 20,163,189,147, 0, 84,144,184, 61, 79,179,107,217, -168,184, 93, 55,255,174, 18, 64, 81, 60, 25, 41, 55,177, 90,245, 71,205, 91,246, -212, 61,252,185,231,100,232,222,148,226, 22,111,247,157,173, 25,148, 22,128,233, -209,212,254,220,221,150, 69, 89,150, 85, 85,145,202, 45,171,114,202,138, 80,110, - 81, 94, 81,239,242,177, 76,172, 75,127, 68,187, 75,188, 49, 80,142,158,192, 46, -243,141,181, 66,144,229, 93,187,223,209, 14,119,202, 91, 62,118, 83,237,183,174, - 46,185, 52,253,133,209,217,141,117, 41, 22, 56,164,128, 74,149,244, 80, 77, 30, -104, 92, 94,235,206,201,232, 92, 57,155,119,176, 1,175, 55,246, 35, 38,225,139, - 28, 99, 15,240,159, 47, 31,211, 27, 46, 55,166, 41,150, 27,149,107,241,255,131, - 60,233, 92,172, 32, 81,163,130, 48,105,100,116,236, 97, 14, 2,153,160,107, 62, -194,201, 29, 38, 47,156,237, 50,147, 93,156,168,212, 18, 66,151, 31,115, 94,166, -107,207, 99, 56,147,242, 87,135, 66, 91,179, 14,245, 80, 77,127,149, 20, 44,159, -166,218, 2, 67, 9, 17, 68,167, 9,230,155,105,213, 91,226,250,108,211,182,204, -132,168, 53,111,234, 21, 31, 48, 90, 51,198,223,171,156,115,233, 10,254, 34,206, -146,248, 4,171,200,146, 21,190, 16,136,228,122, 39,113, 23,205,177,118,157,106, - 27,154,177, 64, 31,207,227,123, 16,226,207,249, 7,103,158, 69, 50,177, 34,239, - 73,167,174,126, 12,127,158,249,160,219, 36, 19, 43,226, 14, 0, 96,145, 76,172, -200,164,218, 17,186,132,147,227,200,241,177, 30, 57, 56, 60,146, 65, 71,139, 58, -157,206,119,222,117, 58, 48,223,171, 49,133,166,242,245,104,161, 86,217, 52, 17, -211, 6,251, 4, 27,143,189, 40,221,148,244,118,183,205,205,168,125, 10, 8,105, -189,185, 94,124, 44, 37,123, 31, 31, 5,187, 87,197,248, 49,173, 63,223, 72, 61, - 98, 24, 86, 69, 89,154,254,162,125,135, 46, 41,148, 74, 2, 37,193, 95,115, 93, - 34,104, 82,255, 63, 58, 35, 43, 32, 31,212,118,147, 82,190, 12,139, 34,172,228, -250, 85,143, 52,128, 0, 35,129, 0, 0, 12,141,139, 68,114,161, 60,158,231,105, - 28,242, 13,243,194, 98, 29, 91, 84,216, 22,205, 23,215, 40,190,242, 90,140,242, -145,211, 98,250,228, 89,241, 48, 72,252, 10,105,230, 26, 17, 1, 68, 78, 17,248, -125,142,237, 82,130, 82, 59, 56, 11,157,215,183,188,102,110, 17,181, 1,212, 8, -179,119,253,171, 47,127, 84,201, 6, 29,250, 89, 84,176, 95,218, 80, 78,237,161, -184, 91, 34, 4, 95, 67,249,115,252, 43,132,180, 78,112, 81,253,201,112,248,112, -188, 31, 37,237, 1, 39,201,205,225,205,243,221,112,140,190, 10, 12, 67, 19, 86, - 96,132,253, 75, 7, 16, 34,115, 87,226, 25,194, 87, 29,133,163,192, 78, 4, 64, - 61,120, 59,217,208, 8, 9, 56,250,143,111,238, 48,186, 47,136,247,253,246, 31, -161,150, 4,102,159, 56,190, 72, 73,255, 78,161, 86,110, 20,248,163,119,188, 36, -190,106, 1,156,238,196,118, 25,179,101, 56, 92, 53, 9,104, 12, 34,116, 46,190, -195,192, 45, 74,150,191,102,108,132, 54, 84, 85,239,143,189, 5,179,232,228,126, -147, 81,118,252,136,177,187,236, 86, 45,245, 38, 54,209,206,177, 65,175, 58,226, - 51,184,128, 17, 1,150,117,175,131, 60,112,113,178, 93,242, 32, 98, 87, 60, 73, -218, 37,182,134, 92,240, 13, 4, 65, 30,228,207,147, 38,117, 3, 24, 41, 0, 30, -199,253, 91,118, 67, 75,114, 63, 77,255,244,115,108, 46, 14,173,199, 55, 55, 25, -160, 12, 96,104,235,147, 4, 64,191,241,148,189, 79, 67,125,164,137,201, 39,227, -129, 23, 88, 69,244,116,123,130,133, 30,104, 3, 41,161, 24,144, 62,111,120,156, -144, 41, 51,247, 93,189, 54,244, 2,167, 80,232,116, 7,192, 48,232, 26,170, 37, -200, 84,154, 60,207, 6,211, 77,176, 2,201,147, 52,225, 0,168,159,192,112,193, - 34, 44, 6,107,117,114,221, 6,179, 87,151,200,182,115, 5, 82, 95,208,235, 6, -214,162,209, 79, 65, 38,150,229, 40, 25,199, 7, 17, 96,156, 15,175,181,246, 73, - 71,230,174, 49,175, 73,220,246,206,223,195,125,229,242,166,209, 95, 35,207,121, -158,237,170, 8,132, 56,124, 53, 37,116, 99,151, 56,205,201, 33,163,221, 88,167, -155, 59, 69, 58,246,129, 56,217, 4,188, 7, 54,188,159,231,216,240,240, 20, 84, -172, 20,168,208,217, 37,234, 4,215,150,136, 31,242,122, 59, 87, 59,119, 70,209, -241,155,162,233,251, 0, 53,122, 64, 78,173,154, 81, 62,207, 94, 30,159,208, 94, -191,107, 78, 17,117,202, 27,250,145,222,236,209,232, 96,192, 75,133,208,150,116, - 34, 91,185, 61, 78,156,225,109, 43,117, 43,254,228,148, 12,114,175,143, 27, 38, -117,146, 14,234, 36, 71,157, 48,255, 68,130,214, 81, 55, 90, 3,159, 19,133, 7, -174, 89, 88,255, 86,222, 23, 99,119, 10,128, 39, 91,239, 13,211, 71,150,186,202, -202,236,116, 99,176,189,105,141, 96,118, 55, 20,191,205,206,238,106, 91, 93,121, -125, 13,198, 86,186, 72,159, 43, 12,214, 39, 77,140,139,215,182,121,223,186,242, -129, 68,240,158,120,244,131,204, 52,160,229,222,125,158,178, 3,188,189, 23,131, -242,248,133, 1, 59, 29,217,170,117, 50, 69,176, 46, 70, 52,139,215, 96,229,171, - 43, 23, 86,200,139, 97,119,176,142, 92, 99, 0, 63, 12, 29, 49,190,152,103, 36, - 42,249,104,145, 88, 56,115, 27,243,237,172,162, 38, 91,185, 64, 24,202,233,212, -196,247,247,224, 22,246,253,188,217, 76, 59, 63,210,158,180,174,219,133, 71,151, - 13,130, 37,231,107,120,221,136,235,204,140, 32,120, 83,219,203,132, 76, 2,141, -127,249, 41, 29, 9,176,223, 1, 51, 47,194, 26, 64,166, 60,237, 25, 99, 25,114, -164,170,226, 10,204, 86,175, 12, 12,192,125,171,110,189, 89, 81, 88, 3,220, 21, -140, 56, 89,210,252, 81, 15, 74,135,170,198, 7, 44, 57,236,126,153,113,232, 42, - 13, 63, 97, 65, 95,103, 22,206,130,145, 10,179,105, 51, 20, 12, 85,226,151,231, -151, 88,214,158, 33, 69,193, 13,211,172,139, 73, 50,140,176,206,239,190, 48, 55, -102, 86, 23,102,183,254, 74, 42,224, 14,187,107, 65,225, 90,211, 77,140, 61,102, -230, 62,211,191, 47,164,111, 38, 79, 89,172,211, 84,193, 29, 26, 16, 9, 13,248, -147,244,145,174, 64, 87, 93,125,236, 43, 11,196,185,192,155,240, 83,219, 44, 60, -190,130,101, 56,230, 15, 5,169,109, 38, 73,177,238,222, 88,135,228,221,134, 74, - 1, 51, 33,107,216,133,231,137,170,138,106, 31,248,247,192, 13,101,183,198,239, -125,164,134,252, 27, 34, 58, 94,244,130,248,118, 33, 45,145,133, 39, 18,186,242, - 78,136,204,111,223,247,153,141,195,206,173,199, 24,132,162,148,240,133, 31, 0, - 66,117, 64,113,175,143,154,217,184, 5,192,105, 34,251,242, 16,251, 5, 40,202, -156, 82, 2, 14, 57,219,233,124,129,153, 74, 52, 40,202,110, 38,102,139,132,184, - 14,113, 7,245,234,246,134,176, 30, 3,206, 23, 65, 78,175, 86,216,121,237,186, -200,126,237, 79,168,234, 82,142,247, 45, 53, 36,251,188,145,225,230, 87,251,151, - 9, 71,253, 2, 68,228, 68,237,129, 35,232, 37, 77,215, 93,147, 98, 99, 96,103, -203,214, 24,142, 88, 62, 41,121,165, 49, 16,244, 41, 55, 75, 86,239,144,239, 0, -201,123,181,112, 10, 84, 12, 81, 75, 24, 33, 48, 64,188, 88,142, 90,146,194,213, - 62, 29,182,115,186, 93,122,247,130,142, 24,135,251, 82, 17,208, 63, 92,191,195, -110, 75,201,164, 70,212,135, 75, 46, 67, 74, 47, 87,210, 96, 11,130,239,187, 64, -245,133,140, 45, 72,154,141,241,206,248, 27,166,122,192, 19, 1, 47,192,245,240, - 85, 8, 33,251, 48,161,165, 24, 47,178, 16,249, 39, 7,180,150,184, 84,217,186, -202,165, 46,175,138,122,131,147, 37, 61,236, 93, 89,189,170,164, 87,121,241, 79, - 31,201, 56,158, 54,226,239,207,243, 12,195,129,242, 64,224, 98,143, 31,174,113, -206,184,218,137,230,224,239, 12,206,100, 8,211,127,246, 4,134,101, 22,121, 87, -226,106,193,131, 32,187, 64,114, 97, 95, 1,213, 26, 65,214, 60, 46,134, 79, 31, -128,227,130,140,130,194,206, 10,125, 63,230, 32,153,175,187,175,147,227,186,146, -116,113, 64,172, 27,144, 24,136, 18, 96,139, 94,117,116, 39,202,248,114,175,108, -183,107,168,169, 49,186,210, 31,202,207, 44,229,240, 80, 94, 37, 68,183,153,212, -211, 92,111, 87,104,102,147,118, 34, 69,131, 44,177, 20,201,116,236, 61,164, 27, -114, 33, 62,236,228,166, 82,111,214,203,164,108,100,170,122, 41,233, 95,125,192, - 67,144,212,189, 32, 2,250, 22,136,225,119,190, 5, 53,123,207, 78,223,136,232, -229,233, 69,117,133,132,188,169,128, 43, 65, 80,138,216, 85, 90, 46,171, 2, 20, -204, 12,147,246,239, 2,189,144, 87,104, 98,173,126, 66, 97, 17,187,244, 47, 2, -252,197,252,102,140, 93, 3,222,225,147, 67,217,108, 39, 2, 82, 46,243, 69,146, -189,127, 5, 25,111,184,210,187,157,167, 5,225,121, 24,255, 42,143,136, 3, 69, - 12,217,248,115,121, 41,130, 68,159,193, 15,226, 21,136,250,116, 85,152,199,183, - 4,223,157,209, 70,123, 84,101,181, 99,206, 18, 4,156,153,226, 70,209,102,244, -121,245, 11,249, 3,112,206, 71, 14,207,180,182,212,129,193,128,177,192, 64, 92, -166,169,124, 75,234,167, 2, 11,246, 15,249, 81,127, 72, 70, 6,219,131,136,214, - 41,176,206, 19,248, 3, 9,191,110,229, 91, 87, 23,157,114,136, 79,222,249,178, -238,101,238,171, 39, 26,157,202,240, 69,247,244,204, 84,200, 5, 22,125,219,147, - 75,138,102,131,247,171, 60,167, 4, 6, 62,238,208, 55, 45,167,187, 60,194,149, -233,228, 28,135, 55, 22,176, 6, 15, 62, 94,163,223, 40,192,132,142, 69,236,187, - 78,179, 32,115,144, 71, 64, 31,236, 64, 8,136, 57, 27,163,193,162, 3,118,154, -120,119,173, 49, 77,127, 46, 46,184, 35,148, 4,185, 69, 52,157, 63,205,170,190, -168, 33,115,118,144, 63, 84,226, 58, 92,152, 3,219,136, 8, 60,195, 35,165,158, -128,198,254, 59,155,149, 24, 36, 39,188,175,240,231,159,218,108,199,142, 62,255, - 99, 65,226,234, 79, 17,244, 63, 96, 16, 22,114,144, 8,156,193, 24, 55, 93,119, - 72, 28,134,179, 41,183,246,181,173, 46,176, 10,167, 44,105,172, 67, 73, 77,142, - 30, 55,166, 63, 56,180,141, 86,157,143, 18,251,237,107, 80, 88,127, 56, 58,100, -248,170,244,103,177, 45, 39, 51, 22, 90, 18, 72,163, 67,215,184, 16, 33,192,115, -167,173,164, 10,228,209, 59,109,178,235,174,116,249, 61, 18,128,166,175, 81, 79, - 4,156, 62, 55, 24, 15,168,118,213,237,135, 38,242,234,151, 26, 7, 80, 52,146, -250,148,244,174, 95, 35, 14, 76,100,211, 37, 32,173, 73,185,227,250,105,239, 46, -112,218,213, 45, 75,164,173,217,230,142, 59,149, 42,220,159,136,159,150, 86, 98, - 94, 31, 18, 5,169,232, 25,183,125,254, 87, 38,115,108, 79,161,139,240, 63,207, - 57,194,194, 77, 53, 63,244,164,102,248,195,223, 7,249,244, 25,217,145,125,217, -163, 65,216,195,210,149, 84, 77, 9,211, 68, 58,167, 1,121, 99,111,177, 84,171, - 7,234,132,254, 56, 85,153,226,198,185,210, 68,168,198, 47,225,217,225,230, 56, -147, 50, 77, 30,154,157,180, 48,232, 3,232, 41, 86,101, 93, 43, 41,200,232,181, - 20,233, 42, 2, 20, 66,235,224,130, 12,134,114, 64,142,226,178, 26, 46, 77,182, -161,133, 26,183,119, 70,184,190,228, 54, 38, 32,237, 23, 20,188,141,250,107,139, -133, 2, 33,105,112,238,245,188,100, 71,165,183,154, 20, 4, 93,185,145, 50, 43, -181, 63,202, 40,175,183,146,146, 30,169,221,152,208, 13,230,182,179, 12, 89,243, - 75, 82, 56,115,143,225, 92, 58, 69, 4,250, 33,192, 10,186,249,194,248,144,213, -163,102,181, 38,228,231,200,126, 43,109,121,252, 0,149,205,121,145, 69, 17,200, -212, 50, 45, 35,137,158, 86, 92,144, 44,241,204,175, 98,139, 76,223,232,254,149, -188,134,173, 96, 83,101,191,156,179,199,163, 73, 12,215,231, 38,234,184, 41,166, -255,208, 68,203,162,196, 8,229,158, 97, 7,174,196,153,120,174,249,123,157,153, -119,209,195,167,229, 8,202,132,142,211, 12,202, 5, 53,220,163, 19,247,165,178, - 13, 43,201, 9, 44,209,182, 28,241,243, 74,229, 84,180, 9, 63,239,138, 6,254, - 77,142,212,162,118,225, 71, 21,141,234,225,118, 78, 42, 97,216,220,232, 96, 96, -193,181,238,101, 91,174, 8, 64,110,197,213,165,215,178,235, 15,166, 5,107,215, - 42, 39,228,237, 1, 32,169,119,172,173, 88,242, 26, 0,117, 78,252,114,101, 54, - 91, 29,186,176, 54,108, 44,195,173,149,174,116, 94, 32, 80, 91,115,129,181, 38, -198,121, 77, 21, 6, 90,182,106,166,179,157, 80,111,234,130,182,149,167, 58,109, -105, 50, 61,220, 26,106,244, 75,213, 62, 39, 3, 2,133, 13, 20, 87,252,128, 49, - 83, 38, 74,103,218, 40,237,167, 89,217, 61, 1, 30, 32, 48, 42, 14,202,229,251, - 7, 84, 41,185, 41,235,250,149,115,241, 98, 68, 22, 69,167, 90,155,145, 97,167, -212, 28,153,102, 50,246, 72, 29, 77,159, 50,218, 11, 19,133, 26,164,242,250,213, -251,105,179,118,185, 13, 62, 97, 57,234,246,133, 39, 2, 6, 79,249,156, 9,239, -249,168,154,231,179, 15,148, 8,252, 20,242, 14,112,125,237, 45,112,117,187, 81, -253, 42,245,248, 20,104,146, 74,141, 19,195,192,110,179, 73,127,227,184,194,167, -167,175, 82, 96,158,212, 95,236,155,210, 25, 27,164,149,186,240,219, 76, 69,191, -193,199, 5, 86,118, 2,177,130, 89,100, 44, 77,241, 97,186, 67,211, 18,133, 51, -175,229,236,185, 12,119,197,221, 15,156, 98,174,164, 24, 60, 89, 1, 11, 31,118, - 80, 46,126,178,177,195,110, 26,103, 45, 98, 7,115, 38, 24, 35, 94,251,218, 19, - 31,218, 80,183, 47, 54,187,100,223,235,150,118, 18, 20,242, 10, 19, 41, 76,215, -225, 17,173,234,157,206,124, 1,190, 17,236,152,172,229,199,237,250,251, 91,177, - 29,101, 18,244,236, 68,196,127, 17, 35,132,105,103,113, 37, 45,104,176,139,181, -111, 66,243,231, 14,105,238, 10,181,165, 47,124, 55,223,173,182,211, 13, 64,107, -192, 20, 3,139,160, 12, 68,113,176, 42,182, 58,215, 81,109, 41, 3, 25, 81,166, - 34, 10,149,143,250, 8,238, 28,126, 29,152,240,156,194,169,199, 73,104,198,157, -118,232, 72,216,254,224, 18,132,132,138,229,130,114,126,140,146, 6, 14,135, 3, -176, 68,102,179,179,202,144,110,171,204,247, 58,179,244, 98,108,174, 53, 15, 66, - 25, 71,200, 19,186, 36,171, 46,238, 84, 72, 80,168,133,246,144, 48,208,213,171, -246, 74,100,174, 41, 81, 22,120,141, 20, 64,183, 83,111,135,211,204, 8,168, 46, -137,160,192,196,210, 98, 32, 7,193, 61,176,138, 87,181,247,216, 24, 4, 70, 82, - 88,206, 66, 3, 4,221,117,106,198, 99, 7,124, 1, 66,109, 56,158,196,192, 2, - 39,208,152, 79, 78,233,124, 1, 65,243,171,247,235,229,226,123,112,172,238,148, -182, 75,199, 15,180, 70,126,154,248, 20,193,237, 60, 2,203,173, 84,142,227,214, - 16, 30,202, 58, 6, 21, 30, 10,121, 83,238,221,221, 9,140, 63,124,236,198,222, - 13,173,255, 61,250, 7, 60, 42,100,142, 91, 75,135,194,217,129, 48,118,239,226, -195,101,247,176,234,180, 55,250,102,132,147,148,211,199, 19,239, 9,160,172,116, - 42, 98, 14,104,207, 85,193,111,109, 37,183, 40,223,225, 2,104,160,228, 58, 1, -156,240, 22, 70,129,226, 44, 75,180,232, 30,179,242, 91, 17,128, 62, 32,194,175, -254,236, 4,193,233,225,120, 20, 6,157, 10,208, 18,214,212, 98,255,140, 54, 0, - 18,175,246, 45,123, 82,134, 89,193,187,153,255,112, 50,199,157,243, 2,183,218, -188,192, 87,189,113,232, 49,105, 34, 82,129,253,188, 19,248, 44,216, 5, 69,163, -198,126,159,225,100,224,145, 52,156, 69, 48, 29,168,201, 3,155, 11,215,186,247, - 20, 24, 2, 35, 14,132, 37,222,245,247,218,109,229, 39,126,226,191,162, 0, 61, -140, 58, 18,215, 94,183, 49,180,185,226,235, 40, 95, 94,184,143, 32, 83,178,147, - 74, 6,242,206,221, 84,120,209,235, 72, 41,248, 79, 7, 71,227, 37,159,134,172, -104, 50, 68,247,104,215, 11, 69, 2, 53, 73, 8, 29, 21, 2, 22, 30,161, 92,169, -246,110,135, 15, 70,154, 97, 15, 27,139,141,217, 87,128, 88, 2,233,195,155, 84, -166,212, 29, 97,244, 80, 88,245,167,124,136,183,122, 64, 29,250,151,108,203,143, - 73,100,170,222, 9, 10, 16,155,237,255,168,128, 28,143,181, 46,129,254,231,249, - 95,243,186,156,168,177,213, 64,166, 73,247, 58,138, 23,197, 50, 13,175, 65, 11, -201,139,103,210,179,135, 8,183, 70, 77,224,198,221, 40, 85,140, 6,106,206,153, -214,130,171,102,255,137, 94,255,201,112,133,245, 90,157,116,190, 3, 94,205,168, -220,105,172,219,177, 8, 6,233,104, 14,142,132,203,244, 18,197,181,176,240,204, -153,195,132, 91,136, 49, 99, 77,140,241, 46,157,102, 99,202, 96,109, 13,127, 78, -124,194,178, 64, 24,211,248,200,205,188,117, 7,208,206, 53, 8,123, 16,134, 62, - 47,184, 35, 59, 16, 91,111,169,197, 81, 74, 63,213,175, 61,178, 79, 81,115,156, - 36, 40,202,219,170,215,182, 70,188,138,176, 50,211,122,168,157, 59,204, 19,177, - 69,204, 94, 15, 12,159,175, 98, 73,106, 20,214,137,232,140, 13, 65, 30, 76,142, -129,222, 23, 73,140,168, 38,251, 93, 30,175, 89,196, 38,198,193,218,184,192,117, - 8,172,136,208,211,246, 40,142, 44, 93, 13, 88,227,114,194,165,184,159, 17, 74, -181, 40,146, 3,252, 75,166, 16, 1, 23,236,142, 30,180,125,167,150, 48, 56, 93, -152,149, 28,205,226,228,118, 82,190, 58, 12,177,123, 78,142,108,214,171, 8,189, -140,152, 46,160,217,140,213, 91,222, 65,208,196,190,109, 22, 8,250, 23,146,164, - 39,233, 98, 89,164,177,193, 41,136,139,137,158,233, 52, 71,160,250,147, 89, 19, -139,128,139, 75, 79, 99,243, 57, 57, 55, 80, 29, 94,178, 96, 57, 1, 8,108,143, -229,224,254, 65,190,254, 92, 44,164, 38,138,145,210,154, 90,237,215,169,209, 3, -210, 29,182, 60, 83,212,187,199,219,245,216, 57, 24, 37,225, 99,101, 7,225,142, -199,161, 59,124,240,246,200, 56,143,171,191,123, 98, 17, 53, 89, 80,165,131, 85, -221, 96, 69, 73, 3, 65,153, 80, 16, 65, 24, 11,179, 39, 56,252, 79,107,213,200, -206, 79,174,221, 93,101,165, 97,185,176,212,132, 15,159, 52, 85,207, 81,127, 21, - 69,174,180,151,165,171,145,131,149, 45,180, 52, 7, 20,102,231,135,204, 16, 49, -118, 59,180,240, 1, 90,151, 93,124,248, 18,195,168,135, 67,140, 56,138, 68, 67, - 18,253, 88,145,232, 30, 54, 95, 79,201, 57, 40,253, 24,176,249, 75,182,235,200, -173,246,156, 14,204, 84,249,109, 7,208, 59, 9, 20,189,150, 82, 16,114,225, 21, -236, 15,192,203,168, 26, 28,194,217, 15,106,199,171, 12, 11, 88,218,213, 0, 51, -214, 98, 51, 23, 28,100,134, 94, 14,199,143,104, 47,131, 76,165,131, 62, 68,232, - 34,129, 27,189,115, 64,106,203, 43,241,146, 9,109,236,251,177, 95, 66, 30, 19, -244, 12,141,121,164,229,113,144,200,247,232,254,103,172,198,174,114,145, 25, 20, - 40,163,102,246, 93, 95,148, 96, 78, 24,169,163, 31,176,191,143, 21,103, 58,228, -226, 93,100, 97, 96, 77,146,173,215, 8, 95,240, 80, 93,116,169,203, 7,225, 92, - 95, 64, 84,116, 23,255,210,139,241,149, 5,189,214,168,204,118,221, 27, 13,160, - 19,116,170, 50,197,198, 66, 81,188,129, 37, 91, 18, 85,251,192,222,102,139,225, -173, 64,203,102, 71,120, 66, 7,128, 41,135, 80,185, 2,132, 69, 94,136,125, 10, - 91,227,197,203,148,197,162,220,103,197, 31, 48,206, 4,125,197,112,105, 22,162, -169, 18, 68, 15,137,242,188,199,204,177,249, 49, 62,168, 25,134, 48, 92,137, 96, -249,114, 96, 76,188, 18,254,163,132,190, 58, 84,216, 5,115, 11, 6,135,145,218, - 90,119, 93, 95,214,229,150,135, 52,107,170,222,125,108, 78, 5, 9,133,188, 2, -170,149,231,203,199, 11, 41,172, 46,102, 4, 45,105,219, 77,163, 25,133,138,237, -106, 30, 17,248,155,138,175,157, 48, 49,225, 88,248, 86,236,150, 56,107, 35,111, - 13,221, 78, 95,219,118,168,202, 84, 98,129, 12, 81,182,216,187,219, 96, 80,250, - 99,189,133,171,148,251,125,229,229, 12,146,103,104,209,190,227,159,241,176, 58, - 29, 70,200,161, 92,170, 70,125,210,193,213,255,109, 44, 38, 23, 76, 66, 80,221, -152,255, 16,109,159,112,144,251, 70,229, 77,205,249,153,140, 49,234,157,228, 92, -195, 47, 23, 65,104,208, 21, 61,124, 32, 2,222, 1,177, 9,223, 35, 40,248, 94, - 98,147,209,220,228,238,238, 57, 5,249,233,231, 13,232, 65, 59,120,202,198, 65, - 83, 94,211, 23,131,113,246,227,124, 37,156,182, 57,105,215,118, 12, 64, 4,151, -244,200, 38, 78, 93,117,248,117, 18,126,149, 20,193, 58,254,132, 84,202,137,109, - 29, 76,102, 12,190, 16, 26,132,130,252,102, 56,143,145, 71,227, 34, 17, 29,232, -121,131, 28,183, 16,152,175,144,246,248, 7,246, 41,124, 0, 45,253,155, 66,198, -222, 4, 37,228, 41,202,239, 46,106, 33, 44,185,182,187,153,132,176,156, 22,130, -113,166,245,249,182,203,147,230,176, 4, 20, 69, 27,108,204,131, 94,193,102,139, - 85, 53, 58, 39, 93,160,210,186, 49, 73, 98,161,111,154,115,252,185, 81, 83,119, -146, 34,229, 54,152,186, 74,250,226, 70,152,208, 64,187,104,131,139, 81, 23,179, -118,176,113, 78,139,203, 31,148,150, 23,101,106,140, 48, 43,154,133,109,116, 96, - 75, 95,101,255,188, 32,122, 93, 81, 52,113,173, 75,218,162, 46,105, 57,205, 29, - 22,214,198,211,188, 28, 16, 73, 37,206, 97,110,229,232,180,110,155,138,247, 29, -238, 18,214,130,169, 91,196, 73, 72,188,108, 86, 12,146, 3,229, 8,151, 5, 35, -237, 2, 84,131,203, 84,241, 34, 8,229,108, 5,169,232, 89,221, 81,251, 23,183, - 93, 26,102,247, 7,112,248,187, 99,215,158,163,222, 77,148, 50,158, 14,147, 5, -175, 24, 1, 2,255, 78, 31, 47, 12,236, 96,201, 26,245,169,210,136,227,188,254, - 64,239,206,226,245, 81, 70,195, 8, 2, 37, 23,127,148, 80, 55,187,125,154,156, -202,220,255,172,210, 75,202, 49, 7,216,253, 44,237, 27, 64, 3,135, 42,218, 45, -170,198,147,225,145,199,228,120, 41,168, 17,170, 62,228,205,138, 48,104,114,217, - 98,192,205, 5, 31,102, 25, 51, 41,146, 54, 73,215,122,126,164, 82,227, 64,161, -254, 84,254, 57, 58, 90,151,241, 58,217,242, 81, 60,137, 73,136, 25,174, 42, 45, -231,247, 97, 68,151,102, 68, 70,193,122,252,200,221,209, 81, 57, 9, 12,132, 96, -242, 64, 41, 35, 40,158,239,130,111,113,132, 46, 76, 97, 60, 94,192, 75,138,165, - 49, 85, 35,155,204, 51, 25, 27,230, 67,152,218,238, 33,236,192,146, 72, 90,114, - 39,102,110,219,143,160, 80,250,229,199, 77,129,120,187,185, 3, 97,110, 18,175, - 3, 40, 60, 83,212,161, 81, 94,157, 19,127,158, 85, 85, 90, 61,127,201, 77,134, -232, 69, 58,110,217,134,165,147, 32,243,134, 43,225,104,171,174,181,161,223,210, - 87,195, 3,132, 63,222, 55,115,107,106,151, 74, 97, 46, 28,209, 2, 28, 46,248, -136,227, 94,225,139, 4, 59,227, 69,163, 85,169, 74, 19, 86, 84,198,205, 27,208, -114,189,105,118,133,251, 35,133, 14, 44,134, 9, 90, 60,245,133,163, 6, 42, 11, - 4,137,242,204, 74,112,251,167,197, 16, 68,170,131, 15,224,108,130,250, 13,115, - 72,147,197, 4,181,238, 35, 29,205,129,128,228,208,224, 97,119,111, 96,101,114, - 93, 82, 3,212, 44, 11, 44,103,202,179,200,124,126, 67,142, 33,188,194,179, 20, - 7,117, 28,208, 44, 61, 83,196,180,126, 32,147, 3, 2, 6, 0, 21, 40, 78, 49, -156,151,110, 74,136,255,157,140, 69, 57,200, 31,241,133,198, 70,168,138, 38, 48, -165,166, 75,171,106, 25, 50, 53, 86,186,201, 88, 46,206,126,249,213,168, 33,178, -209,142, 42,219, 95, 37,202,133,154, 3, 1,208, 23, 81,107,220,172,205,219,142, -160,142, 18, 37,118,149,148,134,216,120,146,211,123,113, 26,110, 33, 73, 39,159, - 71, 21, 72,169,235,145,125, 27,113, 23,202,195,118,176,141,244, 29, 67,235, 23, -204,238, 28,180,139,224, 62,236, 62, 60,176,197,188,184, 31, 86,174, 77, 90, 47, -149,199,154,246,240, 31,110,125,143,248,157, 89, 78,209,210,144,213, 69,108,140, -228,118, 3, 41, 61,231,245,230,163,130, 19,163, 33,149, 17,195,109,132,233, 51, - 30,244, 29, 81,218, 95,109,234,107, 75,228, 60,190,173,109,187,211,223,172,251, - 13, 78,215,133,138, 7, 54, 83,230,178,227, 47,179, 29,213,108, 89,180,226,115, - 95,235,171,188,169, 84,154,175,123,147,115,239,218,205,203,132,164,176, 8,217, - 3,143,123,150, 13,250, 85, 58,145, 32,182,236, 98, 56,225, 47, 10, 47,250, 68, -165,145,152,209,179,201,245, 27, 89,197,126,156,143, 39,177, 26,173,218, 90,156, -224,153,218,116, 75,140,238,138,188, 76, 4,224, 57, 50, 69,196,102, 3,230,195, - 22,219, 19, 38, 86,221,154, 85,221, 16,216,134,121, 51, 42,244,198,117,167,139, - 76,170, 16, 17, 26, 55, 98,196, 55, 73,230,218,108, 50, 40,100,124, 92, 8, 73, -132,192, 48, 10,176,121, 44, 22, 1,185,189,255, 46, 69,197,190,213, 78, 62,117, - 24,211,210, 18,251, 47, 35,209,241, 72, 37, 98,204,177,191, 56,148,215, 1,233, - 31,110,222,180,124,166, 99, 84,220, 1,179,227,168, 92,164,215,234,176,239,212, - 37, 32, 25,209, 93,178,116,134,161, 33,163, 15,214,121, 84,166,172, 50, 90, 83, -113, 59,192, 56,215, 6,216,222, 69, 76,128, 28,205,228, 63, 71,231,196, 23, 63, -134, 40, 75,183, 83,109,154,139,155,125,154, 10,123, 9,211,150, 29, 7, 45,107, -161, 8,222, 0,134, 23,131,151,247, 59, 47, 7, 48,227, 19,143, 74, 9,224,147, -159, 43,159,155,255,211,164,232,233,207, 45,197,252,244, 54,187,236,255, 2,236, - 45, 74, 91, 92,236,226,166,166, 98,244,112, 42,198,231,219,193, 67, 92, 79,175, -113, 48,180,164,199,148, 20, 84, 19,194,247, 7, 10, 56,178,247,149, 61, 16,251, -113, 97, 36,116, 11, 25,224, 28, 85, 9, 63, 66, 84,182, 54, 23,233, 49,100,136, -246, 90,155, 36,225, 1,136, 59, 47, 24,120,109, 5, 82,127, 20, 68, 78, 10,101, -235, 95, 50,133, 3,110,126,251,120, 0,194,165,157, 73, 88, 15,224, 66, 61, 77, -195, 88,205, 64,220,184,162,250,127,212, 68, 84, 81, 26, 81,156, 15,138,101,240, -239,199, 79, 63, 11, 22,199, 58,177, 79, 70, 76,172,111, 52, 93, 21,186,218, 66, - 64, 24,177,207, 50,172,211,157, 8, 71, 34,227,141, 90,188,112, 82,228,157,231, -195,199,229, 97,240,114, 64,118,254, 40,186,152, 36,214,178,208,126,222,156,110, - 72,115, 54,111,154, 81, 51,178,138, 61,162,240,165,240,195, 0, 31,253,146,206, -223, 26, 97,102,171,196,228,164,222, 39, 24,180, 6, 40, 46,198,240,219,143, 52, -115, 9, 6, 72, 77,142,177,123,135,238, 4,205,239, 87, 33,208, 10,166, 17,112, -243, 44, 19,123, 42,224, 55,167, 4,212,103,156,107, 80,249, 69,155, 97,201,159, -240, 30, 44,123, 67, 71,191,229, 66,229,182,113,160,232, 1, 66,207,208, 33,182, - 90, 46, 46,156, 77,237,160,220,172, 34, 1, 38,207, 15,144, 43,133, 46,186, 27, -179,207,155,187,177,146, 60, 50,220, 63, 33,121, 47, 94,134, 18, 95,108,139, 45, -218,228,119,199,147,233, 83, 89,166,173, 64,248,168, 15, 10,239,250,163,134,251, -180, 67,170,201, 75, 8,246,157,149,206,246,233,110, 99, 3, 57, 55,162,150,243, - 53, 97,144,207,202,205,117, 99,179,153,193,253,133,247, 75,246,209,138,118, 90, - 20,242,229,138, 17,235,127,162, 69, 83,229,203, 50, 94,241, 4, 25,222, 23, 92, -147,207, 25,214,180, 21,150, 32,238, 50, 70, 45, 56,247,163,102,184,135, 2, 31, -229, 58,190,245,119, 29, 97, 82, 67, 26, 72,229, 82, 28, 49,179,186, 6,195,134, -122,110, 94, 40,206, 54, 31,195, 17,143, 3,228,104, 35,148,201,154, 40,150,241, -187, 38,112, 25,194,150, 28,136, 73,161,209, 69,165,160, 24,154,239, 55,156, 38, -243, 24, 1,168, 43,100, 8,114,232,133, 30,109,110, 14,139,209, 30,247,211, 60, -202, 47,134,240,102, 27,197, 55, 1, 5,122, 85, 25,234,222, 12,216,197, 63,166, -111, 64, 97, 23, 83, 40, 87,106, 75,194,104,204,144, 54,145,166,173, 3,218,208, -177,225, 77,153, 26, 19, 37,152, 65,128, 42,108,170,252, 8, 69,239,176,113, 23, -178,157,161,141,215,216, 37,112, 54,220,171,189,175, 22,134, 1,164,123,192,236, -136,225,188, 78, 50,193,128,191, 88, 71,166,131, 65,214,199, 92, 60,121,221,241, -177,229,133, 94,118,195,254,165,167,220,172,104,198, 81, 8, 66,156, 99, 1, 94, - 67,201, 37,229, 85,185,240,237, 4, 91,176, 15, 11,213,202, 12,176,193, 52,130, -160,156,186,196, 66,187, 98, 43,212,214,247,101, 97, 93,147,103, 38,209, 71, 31, -147,141,247,184, 34, 43,212,125,142,122,159,164, 6, 32, 47,241,130, 93,220, 11, -147, 44, 47,217, 5,165,176,110,248, 61,162,207,172,129,220,153,131,162,225,145, - 19,110,207,136,152, 6, 16,153,166, 64,191,222,226, 31,142, 91,254,217,255, 76, - 80,219, 98, 55,255, 34,153,204, 49,105,181,231, 48, 36, 80, 91, 43,191,237,249, -226,141,151, 89,152, 56, 46,108,127,247,181,163,179,245, 62,130, 7,148, 21,168, -191,117,171,164, 36, 97, 69,197,125,102, 37, 90, 95, 49, 20, 15, 97,143,182,135, -171,176, 58,192,122, 75, 28, 68,177, 76,226,113,159, 48,237,219,134, 91,102,189, -129, 42,229, 42, 43,202, 36, 24, 10,155,196,153,128,160,179,111,124, 36,206,186, -136,167,186,241,240, 74,225, 89,237, 84,124,178,240, 56,110,111,147,162,162,192, -143,134, 75,143, 33, 27, 62, 57, 9,127, 60,238,131,143,194,223, 61,163,155, 91, -162, 76, 78, 77,127, 86,209,155, 19, 4,155, 29,105,147,116, 10,249, 60,252, 9, -194,212, 39, 50, 92,189,167,234, 86,109, 75,149, 86,204, 17, 51,181,244,177,234, -181, 30,227,114, 85,153, 92,198,170, 4,235, 59,176,168, 96,216,180,248,171,197, -189, 49, 36, 80,174,218,226,182,109,118,253,237, 91,100,185,158,247,141, 77,112, - 86, 70,235,195, 31,139,165, 68,120, 32,219,172, 31, 50,213,183,224, 49,188,102, -166,190,182,127,198, 16,142,152, 47,172, 49, 65, 3,197,196, 48,136,178, 16, 58, - 32,128,118, 95,107,252,120, 8, 8, 14,117, 86,247, 31, 25,204, 23,111,197,232, -241, 79,115,235,250,239,108,153,226, 2,207, 27, 46, 76,116,196, 94, 23,188, 36, -137,231,129,207,110,237, 12,103, 1, 17,168, 43, 13, 8, 95,234, 51,111, 45,119, -216, 54,139, 67, 42,211, 97, 5, 12, 21, 3,109, 44, 95, 65,111,205,130,245, 44, -195,127,104,159,218,236,135,205,132,182, 94,154, 66,160,185,213, 7, 18,120, 67, - 87, 35, 39,125,123,117,139, 81, 36, 97,248,118,220, 2,233,220,198,169,208,218, - 38, 63, 24,244,141,197, 30,194,150,133,161, 74, 21, 90, 99, 98,234, 19,113,189, -140, 20, 32,135, 78, 95, 33, 23,230,231,172,184,253,112,144,239,120, 12, 94, 76, -128,107,136, 0, 25,129, 70,248,103, 97, 65, 14,220,182, 18, 11,250, 17,212,145, -216,247, 15,134,198, 80, 69, 88,129, 30, 95,140, 75,233,129, 7,135,180,211,239, -230,141,182,227,161, 47, 15,167,159, 11,181, 88,159, 86,115, 11,159,199, 83,187, - 98, 74,210, 35,195,246, 95,178,174, 38,145,237,198,203,128,197,237,118, 39,228, -173,231, 29, 1, 0, 77, 71,252,218,174,198,144,104, 41,233, 59, 74,123,180, 71, - 9, 79, 58,122,191, 92, 97,192,240,105, 87, 22,220,150, 29,131, 88,209,129, 95, - 86,174,214,181,205,223,144,174,142, 42, 31, 79,215,244, 88,240,221,241, 94, 45, - 30,153,250,101, 57,199, 82, 46, 72,252,160,185, 28,233, 82,203,211,158, 25,174, -160,242,191,178,178, 28,140,198, 84, 8,108, 65, 63, 6, 9,145,190,249, 29,114, -203,160, 13,225,139,248,121, 27,206,103,165,193,123, 99, 51,156,145, 28,166,121, -120,100,132,140,196,217, 11,172,140, 45,102,100,232,178,107,107,103,174, 70,223, -108,137,249,253,163,238,114, 20,188,177, 66,252,238, 0,250,236, 21,247, 94,161, -236,205, 89, 19,109, 5,103,154,253, 90,129,183, 78,192, 96,111,203,134,183,144, -130,174,246,237,161, 82,179,231, 84, 56,232, 72, 71,180, 48,208, 69,117,179,178, - 38, 61,123,196,135, 14,115,129,113,129, 71,189, 42, 38,103, 22,238, 22, 14,175, -208, 60,205,245,244,188,128,251, 2,140, 33,129,204, 40,232,190,196,128,141, 27, -143,238, 92, 3,122,131,248, 88, 59,244,174, 63,135,200, 16, 37, 67,107, 90,121, - 43,179,165,188, 23, 57,238, 90,206, 3, 86,242, 3,213,120,178,230,228,130,153, -197,216,135,120,232,152, 89,118,248,153,118,223, 13,216,203,190, 57,109,122, 5, -123,154,189,210,150,102, 30, 77, 67, 52,133,141,186,234,165, 81,204, 53, 11,240, - 37,238,162,242, 34,172,105,164, 63,223,147,151, 19, 85, 21,101,213,154,190,207, - 94, 78, 54, 15, 91,104,126,114, 67, 90,251, 9,230,112, 94,127,144,164,234, 67, - 43,224, 65, 82,154,171,209,141, 95, 57,240, 39,178, 42, 52,116,100,216,147,158, -160,191,101, 68,152, 81, 19, 92,208, 86, 92, 43,107, 32,236, 99,243,176,224,123, - 34,154, 87,181,209, 22,221, 26, 2, 51,238, 0, 6,249,119,152, 47, 88,168,245, - 15, 39,170, 6,222,231,230, 80,166,237,181, 5,230,254,176, 43,144, 90,208,135, - 9, 21, 64, 83, 99,236, 0, 77, 79, 78, 91, 89, 39,112,133,172,206, 91, 47,242, -189, 95, 3,128, 19,144,149, 66,169,202, 8,110,143,129,229,140, 74,145,186,144, -183,198, 86,254,224, 11, 56, 79,137, 34,175,160,123, 47,170, 12,174, 35, 44,196, -204,149, 79, 28,164,164, 24, 61,206, 1,149, 45,193,219,165,159,233, 22, 90, 7, -242, 30,203, 62, 84, 10,140,158,202, 50, 9,120,123,192,117,113, 93,224, 54, 1, -207,194, 52, 92, 36,121,211,134,192,126, 2, 16,129,176,222, 52, 83, 71, 18,230, -137, 97,104,208, 23,182, 62,206, 93,145,145,122,190,234, 89,120,253, 53, 97,222, - 22,116,252, 94,152, 88,183,184, 78, 48,144,129, 87, 86, 93, 41,139,216,188, 2, - +uint8_t GB_JITpackage_0 [56682] = { + 40,181, 47,253,160, 55,246, 8, 0,180,210, 0,202,186,212, 33, 45,176,174,172, + 27,186,140,104,187,228, 76, 62,247,248,153,136,243,110, 92,153,138,157, 64,114, +219,231,255, 7, 86, 85, 78, 24,194,179,248,215,172, 23,254, 41,253,105,112,118, + 60, 3,233, 1, 34, 2, 32, 2,254,221,111,187,255,217,233,161,254,232, 30,235, +181,103, 76,183,211,155,171,150,178,173,236, 85,120,107,110, 63,105,181,143,237, +124, 59,189, 65,233,252,104,212,178, 22,251,190, 70, 63,219,253,167,161,166,185, +229, 15,115,228,169,229,120,161,119,112,208, 60,114,157,161,243,214,232,241,227, + 44,143, 77,229,157,240,175,108, 10, 28,203,117, 58, 46,157, 16,223, 94,172, 92, +219, 51,185,255,127,251,116,155,178, 59, 24, 95, 24,234,189,183, 46,163,119,175, + 76, 2,194,224,251,113,227,200, 22,202,217,117,220,122, 33,106, 59,142,230,112, +141,146,219,191, 27,123, 99, 57,189,107, 99,100, 16, 72,117,227, 87,203,237,221, +105,254, 91,202,200,205,225,107, 43,223,255,188,208,253, 56, 12,155,114,230, 79, + 15,135, 40,141,114,214, 78,246,229,255,186,251,115,114,186,114, 38,193, 96, 80, +119,231,135,191, 41, 39, 86, 89,191,141, 63,189, 49,197, 60,181,246, 81, 89,103, + 0,182,210,251,191, 58,227,173, 86,114,211,185,241,207, 78, 51,189,244,186,187, + 53,114, 77,187, 90,214,250, 35,135,223,235,238,116,203,213,121, 99,187,228, 13, +183,159,246,162,111,220,158,249,223,222,161,223,230,253,177, 29,109,122,172,115, +247,187,181,105,244,204,175, 66,115,123,148, 19,126,203,144,172, 45, 35, 5, 45, +218,203, 90, 79,218,233, 68,174,221, 57, 96,158,190, 59,161, 91, 35,191,219,208, +237,233,209,195, 90,223,233, 77, 90, 63,190,111, 61, 26,185, 58,255, 99,248, 92, +157, 62,189,142,206,105,142, 70,173,181,218, 23,212, 92, 99,244,238, 88, 6, 77, +191,209,227,191,253,221,201,217,125, 24,106, 30,181, 26,239,111,150,227,173,237, + 77,238,219,180,227, 89,201,145,127,178,132,163, 59,138, 35,222,115,155,183,182, +118, 57,250,107,203, 73,113, 60,152, 96, 38,173, 61,222,223, 25,254,219,113, 51, +195,148, 82, 12, 39, 36, 30, 18,142, 3,144,135, 4, 75, 50, 98,248,211, 19, 39, + 60, 81, 28,234,174,245,166,134, 97, 67,115,113, 67,198, 14,119,119,217,237,198, + 95,237,188,179,206,173, 53,142,116, 19, 59, 34, 34, 26, 30,211,196,132,128, 49, +138, 34,233, 58,209, 49, 34,253, 30, 59, 88,223,249, 97, 28, 17, 17, 60,221,249, + 28,249,251,125,219,155,215,193, 69,222,144,221, 73,111,142,247, 85,251,185, 78, +173,219,202, 17, 11, 5, 89, 38,165,167, 50,117, 77, 46, 13, 75,150, 85,149,134, + 37, 99,254,143,118,228,253,118,233,202, 32,120, 0, 75,146, 71, 82, 20, 73, 81, + 36,225,113, 31,170,140, 21,137,201, 0, 75,201,125, 23, 12,129,244,103, 28,177, + 22, 77,178,139,236,110,118, 86, 26, 32,140, 93, 50, 21, 85,201, 48, 42, 67,154, +208,163,139, 7, 21, 1, 3, 10,154,114, 62,171, 85,240,205, 36, 38,170, 11, 86, +112,163,165, 91,130, 72, 68,187,127, 41,144, 3, 6, 84,217, 3,139,178,209,166, +147,239,197, 60,117, 83, 4, 22,209,210, 63,139, 69,116, 64, 17, 16,252, 5, 96, +136,136,134,204,194, 50, 20, 6,179, 52,215, 6,147, 62, 13,210, 16,189,181,221, + 63, 25, 49, 53,217, 84, 15, 10, 4,237,125,255, 13, 20,138, 7,129, 2,144, 7, + 5, 5, 5,132, 35, 20, 20, 18, 16, 8,132,242,128, 68, 14, 64,170, 44,179, 92, + 46,108,146,181, 39,118, 86,227,230,226,199,213, 72,161, 3,237,167,182,205, 7, +197,157,146,230,246, 19,234,141,134,136,221, 94,250,197,231,169,255,206,250, 73, + 19, 7,115,145, 90,239, 56,224,196, 77, 29,105,120, 10,121,244,251, 28, 61,235, + 27,195,234,210, 80, 26,140, 82,141,163, 44,227,234,246, 94,183,144,255, 99,181, + 58, 29,196,138, 53,153, 11,230,129,149, 81, 40, 19, 12, 11, 69,193,128,129,114, + 97, 42,151, 42,163, 88, 26,203,149, 69, 25, 75, 35,171,176, 74, 54,117,166,203, +111, 13,190, 54,109,181, 30, 67, 40, 73, 76, 96, 46, 50,108, 67,193,244,198,164, + 20,218, 39, 26, 57,150,122,164,178,181, 8,133,146, 92, 40, 24,222,116,110, 83, +171, 18, 73,255,166,159,118,128, 6,135,110,114, 0,129, 64, 15, 60, 35,129, 24, +102, 21,140,136,153, 37, 80, 52, 57,170,173,221,159,219,177,251,254,216,142,225, +211,174,222, 27,254, 73,105,191,173,230, 61,169, 71,111, 15,247, 91, 89,231, 51, +252, 88, 74,109,203,184, 45,208, 34, 34,152,153, 27, 36,182, 42,151,198,178,201, +100,154,139, 65, 6,128, 5, 8, 96, 41, 98, 10,165, 97,133, 56, 64, 0, 6,177, + 20,130,160, 72, 66, 67, 85,222, 55,210, 8,201,176,132,162,104,168,138, 23,107, + 59,231,241,214, 73,173,229,112, 38,213,170,123, 43,232, 38, 59,181,251, 9, 66, + 28,214,218,157,223, 34, 64, 67, 70,150,129,161, 50, 24,188,181, 86,183, 25, 64, +179,221, 13,149,203,228, 45,231,179, 4,180,200,105,207, 62, 87,192, 9,199,228, +178, 95, 71, 34,115,193,100, 90, 91,152, 52,114,237,135, 16, 7, 91, 76,172, 8, + 23,133,178, 92,150,205,127,177, 3, 53, 5,130,199, 1,182,192, 54, 84,198, 3, +171,161,191, 37, 10,112, 70, 20,132,176, 5, 91,155, 44, 82, 35,165,253,129, 15, +182, 96, 12,179,170,106,131, 93,104,240,200,154,202, 98, 32,185,100, 16, 52,152, +138, 53,177, 52, 23,139, 5,154, 12,120, 58,158,189, 30, 87, 99,231,121,239,171, + 29,210,166, 54, 49, 65,238, 87,219,147,219,173,199,219,247,252,241,179,221, 24, +185,250,119,219,105,156,214, 93,186,119,118,181,222, 91,133, 4, 97, 7, 75, 15, + 3,156, 32, 1, 36, 98, 41,138, 36, 15, 3, 19, 36, 32, 3,124,246, 71,163,231, +126,115,254,192,154, 88, 42,248,115,123,229, 79,111,106,112,114,245, 62,202, 31, +235, 17, 16,172, 80, 23,198,240,122,115,232,196,152,166,214,252, 0, 41,246,216, +117, 82,120,179,117, 82, 92, 59,221,128, 67, 94,123, 51,168, 60, 72,152,167, 13, +105,221,139, 20,106, 75,184, 26, 33, 48,245, 88, 49,140, 62,219,109,133, 31,250, + 45,131, 26, 41,157, 21, 89,225,123,173,196,254,222, 88,145, 31,253, 36, 92,167, + 22,162, 96, 4, 86,252, 63, 61,239, 78,245,246, 88,174,123,206,102, 56,177, 92, + 13, 24,130,133,226,139,107, 98,185, 84,156,185, 48,102, 81,153, 12,229, 32, 67, +115, 57,128,216,133, 81, 18,118,144,128, 93, 83,107,143,159,121,167, 59, 23, 63, +145,126,211,186,137,248, 8,206,237, 20,167,207,231, 83, 37,220,200, 28,203,252, + 89, 8,204, 83,203, 26,103,157, 18,212,161,232,241,103, 67, 92, 33, 57, 72,112, +144, 16, 49,100,214, 44,204, 98, 85, 23,197,161, 74,152, 66,119,214, 13, 87, 4, + 80,252, 17,212, 92,181, 88, 0, 79, 83, 98,236, 93,221, 78, 79,152,167,255,136, +136, 72,231,222,174, 74,112,112,208,108, 46, 18,138,195, 15,247,179,156,248, 0, + 27, 38, 13, 9, 72, 1, 8,123,172,229,193,204,146, 13, 54, 97,185, 16,112,230, +194,128,170, 48,124, 76,176,236,137,134,154, 56, 56,176, 85,161, 44,153, 36, 81, + 40,155,199,227, 1,129,144, 56,223, 67,183,117,122,208, 45,133,232, 69, 79,219, +211,212,155,235,203,145, 35, 17,246, 72, 63, 57,175,199, 78, 36,123, 16, 31, 19, +129, 9,242,128, 4, 32,196, 98, 85,174, 15, 77, 76,117, 78,211, 36, 77,192, 7, +148,136, 44, 76,100,195, 1, 21,239,225,246, 79, 66, 38, 32, 18, 21,130, 96,114, +101, 82,196, 7, 26, 88, 54, 25,149, 1,108, 66, 89,153, 12,141,229,223,118, 46, + 26,237,121,145,105, 30, 25, 34,131,168,223,199,210,175, 44,204, 45, 75,126, 35, +214, 96,148, 4,225,136, 35,120,127,214,142, 89,153, 43,123,219,154,171,213, 56, + 92,241,161,248,161, 49,226,170, 19,130,214,219, 66,140,215,222,207,240,158,176, + 90,246,166,246,186,253,126,240, 62, 10, 15,147, 99,228,107,107, 21,156, 84,200, +111,237,134, 15,210,164,216, 34,162,105, 74,239,157,212, 61,145, 12,203,137,210, +191,142,131, 70,205, 90, 78, 99,162,104,108, 25, 59, 47, 63, 34,114,240, 31,170, +253, 16,140, 88, 46,152, 6,133, 17,225, 79,217,218,247, 6,189,221,199,140,247, + 68,208,244, 56, 18, 85,204, 17, 8,152, 7, 20, 22,111,212,182,205, 58, 59,232, +247,237, 60,241,127,114,235,233, 28,140,207,237,253,162, 20,253,244,175, 59,255, +236,230,129, 60,208, 3, 61,144, 87, 39, 67, 9, 4,117,171,157,221,196, 2, 81, + 90, 71, 32,151,227,244,104, 48, 79,161,248,161,245, 98, 59, 95,163,195,159,142, +143,247,125,110,154, 7,134,115,163,214,222,218,124,206,198,191, 63, 35,212,249, +128, 17, 44,102,197, 95, 99,123, 12,177,240,220,214,219, 15,173,204, 70, 83,109, + 50, 26, 12, 54,192,168, 74,132, 10,126, 88, 84, 21, 17,166,164,129, 85,100,193, + 10, 42, 9,170,122, 77, 27, 31,189, 47,222,109,114,197, 21, 82, 48, 86,198, 45, +107, 40, 27,234,194,154, 68,166,183,211, 19,187,230,104,118, 2,193,151,155, 95, +191,169,126,206, 26,183, 57,137,187,125,227,118,134, 18, 74, 55,107, 11,243, 35, +150, 56,203, 32, 34,134, 96,109, 90, 15,148,183, 25, 74,143, 65, 82,131,173, 81, +231,227,235,241,190, 67,229, 80,145, 62,250, 88,138, 13, 6, 35,131, 92,157, 28, +209, 92, 80,153, 9,215,199,176, 92, 13,170, 11, 69, 98,169, 92,172,209, 99,171, +117,231,110, 77,237,237, 30,242, 36, 45,229, 48, 71,188,143, 60,133,236,214, 28, +230, 10,182, 91, 67,134,134,134,200, 6, 96, 1,108, 98,233,124,238, 63, 31, 29, +247,217,218, 28,138,238,209,170,168,171,186, 46, 46, 54, 88,200,173,215,158, 4, +132,204,165, 98, 85,178,139, 75,246,177,117,163,126,143,234,178, 80, 24, 4, 33, + 45,182,211, 3,154, 13,166,147, 6,174,235, 89,173, 64, 70,165,161, 42,216, 69, + 5,135,234,168,195, 41,138,148,132, 78,141,204, 72,146, 36, 25,198,147, 64, 16, + 8, 16, 16,149,141,168, 99,117, 25, 63, 19,209, 19, 57, 69,154,134, 50, 14,242, + 8, 81,132, 32, 66,132, 68, 68, 68, 34, 17, 17,145, 36,205, 3, 20,202, 92,133, + 53, 14,195,217,177, 63,128, 87, 90,240,111,155, 8,132,166,120,160,169,232,196, +124, 4,104,104, 94,138,126,240,121, 14,186,140,128, 55,202,137,211, 64,133, 32, + 36,215, 40, 51, 34, 66,143,151, 20, 59,230, 23, 30,178, 97,139, 16, 49,211,147, +188,216, 47,237, 23,129,154,133, 68,232,158, 91,102, 83, 3, 20, 76, 34, 52,225, + 66,170,208, 25,214, 90,109,224,224,198,249, 66,100, 85,120,150,249,254,219,225, + 81, 28,242, 41,185,196,142, 16,208, 57, 95, 70,164,190, 97,138,206,189, 10,116, +136,233,240, 98,120,240,123, 93,188,111,103, 22, 45,102, 46, 24,106, 90,144, 87, + 52, 87,215,192,183,229, 49,138, 98, 63,214,131,104,118,105, 12, 33,190,109,215, +145, 38,159, 68,150,128, 77, 99,178,186,164,153,194,116,132,248,202,135,207,125, + 44, 76, 77, 68,221,160,240, 42,230, 79,144,158, 92,176,163,248, 93, 56,185,156, +238,228, 20,160, 52, 2, 53,239,212,249, 2,175, 59,180,196, 52,254, 66,210, 40, +248,202,146,115,197, 45, 15,254, 7, 15,240, 74, 16, 53,182,161, 65, 16,130,214, + 83, 2,242, 46,155,251, 45,200, 73,195,134, 84, 57, 80,217, 27,201,246,231,221, + 3, 1,152, 22,247, 29, 50,121,118,193,147,241, 40, 26, 34, 77,131,166, 66, 63, + 52, 99, 78,113, 71,220,143, 5,232,138, 62,232, 86,254,123,237,213, 0,238,112, + 85,227,229, 84,193,178,114, 59,241,244, 25,100, 83,166,181, 97,186,165, 20, 23, + 86,125,199, 20,130, 48,113,215, 28, 27,223,141, 91, 49,110,146,234,106, 54,161, +225, 17,186,111, 9,112, 0,222,198,184, 43, 25, 34,236,103,195, 99,137,181, 91, + 59, 93,104,137, 71, 5,177,238, 20, 18, 16,111, 4,142,132, 3,144,228, 16,163, +164,213, 87, 17, 19, 36, 37,136, 33, 84,212, 21, 48, 44,161,196,171,171,237, 65, +220, 71,173,112,107,128,103, 11, 17,207, 94, 37, 23,126,252,225,166,179, 11, 74, +151, 78,134,113,179, 37,166,112,221, 79, 27,147,210,185,233,162,147, 96,192, 86, +114,255, 41,203,131,122, 57,132,250, 8,178,225,196,240,132, 28,191, 32,218, 3, +160,182,194,207,224,252,144, 5,226, 87,221,185,238, 89,176,178, 27, 17,143,168, + 58,142, 96, 29,203, 34,253, 10, 62,147, 92,193,133, 25,189, 86, 51,252, 76,219, +205, 26,166, 38,156,228,206,119,210, 48,218, 50,117,249,248,115,119,242, 74,193, +175,209,196, 65,135,138, 13,126,127,161,228,230,132,123,197, 26, 29, 2,164,239, +187, 44,150, 41,171,185, 90,160, 45,136,145,201,213,162,180,132, 38, 84, 48, 63, + 7, 39,245,121,164,154, 20, 84, 99, 21,204, 34,115,144,226,149,169,115,137, 34, + 14,209, 6,226, 19, 51, 0,220,120,154, 75,213,159,158, 44,140, 82, 22,191,115, +124, 29, 26,197,217, 53, 42,217,153, 94, 32, 67, 20,214, 26, 80, 96, 66, 11,216, +212, 37,120, 70, 78, 28,172, 90,222, 85,153,196, 74,110,136,186,218,252,248,120, +198, 3,192,126,180,228, 94, 9,146, 65,249,173,213,150, 66, 54,128, 11,201, 72, +130, 22, 11,168, 73, 75,219,131, 74,216, 5,185,202, 8,197,152, 89,144, 77,121, +162, 7,153, 89, 90, 51, 96,159,146,112,234, 36, 74,242, 43, 79,166, 20, 32,134, + 45, 51, 74,176, 95,232,133,116,118,218,158, 23,104,201,158, 69,167,135,207, 96, + 85,217, 56,102, 61,246, 94,207, 33,144, 44,195,118,129,114,239,164,124, 49,159, + 99, 80,196, 21,193, 82,133, 89, 12,183,130, 12,115, 37, 14, 0,176, 45,182, 65, +121,226, 26,205,134,134,235, 11,243, 90,152,192, 97,163, 74,160,186,128,252,112, +192,164,117,150,131, 24,206,145, 73, 55, 84, 24,114, 3,100,101,233,195, 29,101, + 72,116,138,239, 81,195,202, 78,131, 26,200, 11, 63,194,130, 42, 84,100, 64, 65, + 83, 35,154,132, 42,235,123, 22, 69, 55, 40,187,226, 8,119,179, 83,240,133,250, +252,126,221,180,224, 60, 97,148,203,163,100, 88, 52,155,197,171,164,168,130, 83, +185,145,112,206,105,201, 35,164,165,151, 37, 92, 90, 31,195,237,197, 86, 59, 73, + 82,202, 54, 35, 23, 81, 76, 1,137,125,190, 34, 0,171, 81,213,163,209, 16, 87, + 9,164,127,237,239, 28,132,134, 51, 94,183,165, 26,215,102,110,120,133, 39, 2, + 13, 23, 11,230,199, 83, 69, 72, 38,254,236, 19,137,215,208,143, 2,131, 91, 71, +129,249,164,110, 7, 65,189,113,169, 46,227,212,243,130, 78,242, 45, 95,160,198, +189,204,232, 59,146,226,217,131, 75, 76, 88,127,191, 49, 7,196,168,164,209,226, +122,240,135, 26, 56,191,225, 60,172, 66,154, 1, 15, 7,151,203,168, 29, 54,208, +157,227, 6,189,116,175,232, 27, 30, 38, 56, 27,131,161, 61,118,167,238, 50, 68, +198, 79,228, 99,131, 78,175, 31,201, 1,107,216,205, 8, 33,227, 99,214, 53, 86, + 62,121,173, 40, 66,229,232,193,194,144, 76,200, 50, 60,231, 46,100, 57,113, 55, + 25,161,206, 59,207, 77,255, 13, 40, 80,125,176, 45,159,130,159,124, 9,107,115, +168,113,245,170,152,176, 89, 32, 25, 10,154,136, 89,244, 27,189,212, 97,187,165, + 56,192,209,241, 6,150,123,159, 82, 61,159,246, 64, 38,255, 24,101,186, 42,182, +239, 63, 11, 36, 17,208, 87,115,111, 17, 82, 59,117,172,141,184, 22, 40, 3, 2, +224, 58, 33, 3,126, 0,175,180,102,158,153,246,164, 0,153,182,204, 2, 18, 25, +131, 24,167,230, 35, 80,100,217,114, 22,183, 9, 25, 51,109,124, 9, 4, 31, 81, +102, 37,136, 59, 77,183, 53, 33, 53, 4,133, 81,201, 36, 11, 95,234,241,178, 37, + 20, 92,204,172,130, 19,120,160,139,176, 19,145, 32,171,128,112,222,192,178,180, + 3, 24, 88,138, 15, 25,180, 42, 10,131, 5,182, 97,183,228,253,146,169, 94,224, +247, 99, 98,195,189, 16,231, 51,110,248,187, 79,154,103,184, 40,197,132,192,237, + 37,202, 45,204,182, 19, 75,239,205, 64, 44,146,237, 19, 14,197,207, 66,225,191, +253, 63,239, 68, 4,134, 97,113,149,185,205, 66,114,128,218, 30, 31,141, 36,168, +208,107, 51, 20, 67,234,115, 62, 43,169, 93,161,231,251, 87,189,108, 96, 15, 99, +185,177, 9, 82,146,220, 25,107, 2, 69,241,228,244,175,152,184, 2, 99,134, 6, +123,126, 33,234,143,144, 31, 12, 28, 17,249, 41, 4, 89, 36, 93,146, 81, 19,120, +244,149,191, 52,246,126,119,128,201,231,225,188,198,106,187,119,185, 38,247, 47, + 21,179,251,166, 95,160, 8, 35,248,192,156, 46,251,199,114, 17,185,142,125,199, +120, 76, 26,254,128,113,254,164,221,207, 59,254,216,201,249, 85, 87, 39, 26,197, + 83, 8, 68,138,108, 79,159, 58, 47, 27,210,140,231,201, 51, 98,254, 71,238,148, +208, 85,186, 15, 37,128, 29, 64, 17,222,209,124, 97,107, 86,123,184,139,245, 41, + 80, 93,182,158,239, 7, 7, 26,198, 22,184, 89,199, 18,159,230, 61, 33,206,176, +108, 59, 33, 50, 44, 69,130,211,177, 32,127,248, 56,189,214, 16,244,251, 39,193, + 16,169, 88,171,164, 54,111,198,141,160,188,215, 38,139,252, 9, 3, 16, 5, 69, +252, 85,153, 39, 31,247,194, 27, 64, 66, 44,144, 66, 24,110, 92,178, 66,145,154, + 89,253,123, 90,166, 11,167,193, 22, 77,164,228, 4,183, 27,180, 0, 10,242, 78, +161,233,217, 66, 23, 31,213,113, 36, 19,216,158, 21,188, 28, 48,189,161, 27, 48, +218,221, 70,196,175,108,187,140,206,171,141,128, 68,242,210,194,233,114,187,112, + 59, 60,130, 4, 37,154,189, 62,246,144,202,182, 37,127,218,158,122,189,198, 90, +135,129, 95, 94,176,101,216,140, 92,187, 32,201, 59,156, 53,233, 10,132,154,202, +209,155,108, 61, 1, 70,140,153,241,160,196, 21,252, 63,241, 6,111,180, 99, 78, +230,147, 5,215, 98,177, 14,181,159, 77, 33,178, 33,115,162, 13,157,127, 76,157, +213,103,145, 54, 20, 61,216,152, 15,140, 40,223,172, 43,247,126, 55, 28, 7,129, + 89,135,135, 54, 14,202, 34,196,138, 1,234, 68,240,243,199, 7, 11,169,159,194, + 75,194,251,177,128, 92, 19,218,217, 39, 0, 77,250, 58,225, 51,255,171,248,158, + 92, 19,125,213,132,117,136,148, 19,222, 94,177,128,150, 55,201,153,112,236,111, +109, 24,105,191,127, 76, 40,136, 8,135, 44, 18,154, 37,243,226, 68,115,128,194, + 99,118, 95,107, 36,100,212, 70, 90,184, 31,167, 88,216,154,237, 58, 96, 66, 99, + 3,130,196,154,231,107,135, 74,236, 98,255, 69, 86, 85, 37,223, 89, 9, 66,110, +148, 42, 0,159,251, 96,208,252, 20,236,225,245, 0,133, 40,154,158, 25, 0,103, + 16, 28, 14, 30, 88, 82,234,108, 80,107,115, 44, 70,230, 30, 81, 5, 35, 91, 31, + 47,201, 87,227,145, 95,144,166, 21, 26,245,229,215,100,153, 45,107,199,158, 20, +168, 71,111,177,254,243, 34,102, 51, 93,199, 48, 29,155, 39,122,135,184, 98,100, +196,143, 65,109,252,120, 61, 81,147,130,144,243,103, 22,203, 11, 86,211,207, 66, + 26, 21,228, 4, 70,179,247,128,136,229, 96,214,107, 45,130, 56,138, 12, 66, 81, + 78,187, 91,119,133,214, 46,126, 20,224, 76,157, 31,182, 10, 8,159, 58,155,194, +176, 62, 19,193,220,186, 75,168,148,159,241, 48, 31, 1,240, 48,180,236, 22, 18, + 13,150,152,191, 54,160,219,152, 49,214,244, 62, 99, 68, 48,193, 27, 83, 44, 5, + 58,122, 59,137,251,174,206, 19,252, 44, 38,184,202, 14,145,186, 77,196,174,254, +207, 28, 60,219,195, 1, 32,206,119,104,158,160,138,176,223,191,142,240,120,231, +119, 17,135, 65, 85, 58,125,144,246, 9,186, 10,101, 21,165,181,179,107, 63, 53, + 37, 5,116,216, 35,137, 8, 6,241,231,212,160,180, 25, 78, 52, 62,105, 14, 43, +199,190,198, 6, 80, 32, 5,214,248, 58,133,244, 72,232, 94, 68, 80, 22,250, 80, + 92, 4,241, 77,127,168,115, 89,139, 35,243,195,164,152,224, 89, 8, 64,154,153, + 77,147,243,169,218,215,203,251,236,164,202,185, 4,142,144,236, 33,228,248,238, +117,134, 52,165, 85,195,243, 35, 82, 87,227,200,152,244, 42, 10, 59,134, 78,170, + 47,105,144,252,197, 92, 21, 72, 25,149,232, 88, 7,104,169, 31,183, 12,179, 13, +105,143,120,122,170,102,127,205, 27, 90, 42, 34,253,139,152, 60,141,160, 48, 69, +179, 73, 73, 58, 37, 28, 26,210,166,244,219, 97,250, 34, 10, 81,142, 68,242,139, +247, 99,149,120,149, 33,142, 69, 7,107, 61,226,156, 42, 70, 53,184, 98,241,138, +173, 45, 58,121, 54,142, 68,102, 61, 49,243, 93,158,146,150, 2,254, 74,235, 50, + 61, 79, 77,186,199, 12,121,132,151, 23, 38, 32,186, 94,162,200,255,104,138,189, +193, 70,173,202, 61, 38, 7, 72, 91,251,237,178,189,187,244, 82, 76,141,249,117, + 80,114,100,163,116,186, 23,187,160,241, 98,167, 48, 52, 16,161, 19, 27,213,121, + 20,164,243, 36, 25,198, 54, 14,183,105,166, 54,107, 9,135, 46,133,167, 32, 70, +169, 82, 90,207,232,103,205,154,107, 0, 51,133, 94, 50, 8, 81,126, 70,120,213, + 89, 16,114, 87, 31,143,191, 22,115,144,137, 28,108, 26,200,131,195, 0,239,130, +169, 94,221,155,146, 81, 98, 58,122,152,104, 28,213, 54, 46,134,201,201, 6,105, + 74, 78, 58, 89, 29,189, 37, 24,172, 19, 9, 54,201,190,128, 13, 15,143,137, 40, +203, 97, 4, 21, 12,210,179,143, 37, 21,112, 87,208,142, 60,217, 53,166,227, 74, + 45,110, 64,102,156, 32, 27, 7, 6,172, 91,146, 31,129,155, 99, 23,139,236,160, + 50,122, 87,161,101,127,228,235, 53,226, 52, 89,209, 14, 46, 81, 82,222,248, 82, +255,134,115,186,217, 64, 49, 25,247, 22,154, 61, 46,198,116,141, 15, 33, 74, 15, + 64,251,240, 9, 12, 66, 51, 71,138, 18, 48,171,175, 44, 47,240,162, 49, 43,179, + 97,241, 26, 2,105,136, 35,158, 6,132,101,142,116, 40, 83,231,233,127,192, 85, +219,135, 90, 13, 75,170,188, 32, 38,182, 18,220,112, 76,204,129,204,100,150,187, +100,236,135, 2,250,244,223, 16,142, 46,184,163,145,166, 17,157,100, 65, 97,129, +159, 63, 66,234,120, 28, 12, 66,133,127,218,223,196,193,186,164, 4, 70,106, 56, +137,130,216,136, 81, 73,143, 18, 34, 56,125,220,175,149, 0, 88,164,211,125,149, + 68,179,132,211, 78,226, 4,211,201,244,190,108,132, 90, 56,117, 79,161, 41, 10, + 18,133,150,255,123,201,127,172, 71, 56,110, 85,223,244, 34,154,163,241,182,105, +205, 23,253, 24, 80,197, 46,108,194,164, 7, 19, 3, 98, 34,186,142, 94, 99,171, +226,178,254, 79,159,169,194,172,173,164,208, 13,206,129,144, 14,152,162, 59,210, +245,216, 97,169, 24,170,165,130, 13,138, 53,233, 4,237,247,253,244,103, 27, 62, + 80,198,103, 11, 65,100,185,168,174, 21,145,233, 37,154, 83, 70, 87, 70,242,136, +169,128,196,232,108,246,224,118,181, 55,186, 25,225,155,118,251,225, 15, 47,170, +210,117,201,149,195,216,246, 5, 49,192, 79, 69,164,243,190, 52,166,143,203,121, +232,240, 29,233, 0,182, 64, 35,135,175, 74,212,149, 42,245,182,210, 61,227,138, +101,249, 56, 39,171, 20,143, 98,215,121,171, 39,227,199, 74, 13,129,114, 28,248, + 31,184,169,105,119, 39,234, 66, 88,250,182,107, 4,150, 56,201,129, 84, 39,180, + 62, 86,138, 70,174,254,167,204, 91,153,228,164, 57, 23, 99, 21,148, 98,117,217, +129,143, 39, 8,133, 25, 33,135,101,194, 57, 91, 27,174,139,212,122, 22,253,159, + 99,190,140,171, 5,143,166, 6,148,211, 59,122, 41,212,250,139,206,195, 71, 59, + 12, 47,212,252,141, 23, 30,143, 22,196,210,214, 71,170,115,223, 80, 90, 73, 11, + 37, 29,108, 70, 79, 54, 72, 93, 11, 93,113,128, 8, 74,107,169,158,176,125,109, + 31,200, 91,154,168,187,156, 10,132, 25,107,138,148,160,146, 31, 21,206,130,113, + 70,210, 97,159,182,129, 8, 69,230,245, 88,109, 76,167,180, 80, 75, 23,196, 88, + 31,103, 44,117,131,188,173, 73,117,162,119,161,124,118, 92, 97, 62, 57,159, 70, +155,151, 85, 52,208, 5,167,222, 9,108, 50, 61,158, 89,182, 43, 51, 66,137, 72, +247, 79,203, 40, 33,138,130,141, 20,149, 47, 86, 55,133, 95,146,193,216,222,104, +197, 45, 37, 93,107, 53,217, 99,167, 86,246, 53, 78, 25,188,165,225, 49, 45,210, + 91,107,184,162,104, 14, 71, 89,114, 50, 54, 72,136, 11, 46,107,251,251,226,211, + 19,206,143,195, 14, 20, 26,117,148,176,144,147, 54,238, 8,102, 79, 50,155,242, +232, 99, 36, 40,240, 62,212,244, 18, 27,132,231,229, 69,249,250,140, 82, 77, 9, + 0,245, 13, 1, 36,101,150, 99, 14, 22,131,241,185, 26,230,131,169,250, 70,123, +110,192, 44,186,119,190, 44,186, 47, 34, 12,124,182,204, 63,212, 40, 59, 49,166, + 97,186,192,104, 12, 10, 35, 7,139,154,135,193,181,199, 60,157,214,130, 24,154, + 55,210, 85,191,199,249,102, 57, 97, 58,223,235, 6,131,182,236,186, 36, 63,155, +104,195,122,249, 12, 15, 78, 8, 81,166,133, 54,182,154, 38, 60,235, 65,194,168, +125,180,228,231, 9,111,134, 20, 77, 57,205,113,188,155, 82, 5,237,172, 43,115, + 50, 41, 17, 73,103, 71,148,132,215, 49,174,118,173,217, 36,199,216,196, 19,104, + 34,137,221,124,124,117, 28, 5,176,240,205, 90,145, 98, 53,219, 7, 25,238,188, +217,195, 72, 21, 69, 29, 45,114, 52,215, 53, 98, 40,241, 20,177,182, 91,126,193, + 55, 41, 90,252,187, 92,202,184,209,131,127,197,171,140,211,211,156,178,242,183, +116,104, 45,111, 63,237,202, 96,122,216, 33,201,202, 25, 75, 17, 97,149, 17,255, +132,101,178, 17,249,128,248, 24,249, 0,122,202,206, 71,123,149,126, 77, 45,246, + 79,194,179, 27, 8, 42, 43, 70,141,167,228,128, 25, 9,126,150,163,179,161, 68, + 7,163,228, 38,175, 31,254, 97,126,197, 73, 49,132, 63,225,247,235, 52, 98,151, +121,235, 47,156,163, 56,210, 35,235,146,126, 88, 62,165,244, 45, 8,189, 1, 67, +138,122, 83,110, 27,113, 5,163, 84, 13,213, 89, 71,215,153,172,106,247,254,197, +118,160, 0, 79,209,100,208,177, 67,214,192,202, 40,180, 72, 65,204, 54, 84, 47, +188,174, 59, 60, 1,175, 2, 25, 8,130,239,128, 27, 20, 37, 39,140,211,156,132, + 95, 43,213,155,226,219,218,237,120, 27,120, 43,175,148, 28, 60,160, 14, 16,157, + 63,119,234, 37, 34, 74,204,254, 95,135,255,101,204,198, 67, 46, 66, 30,179, 54, +177, 46,189, 5,112,163, 15,206, 12,133, 26, 72,121, 3, 53, 14,197,187,156,194, + 62,254,237,183, 35,174, 17,128, 30,184,120, 9, 73, 34,198,158,173,231, 73,230, +254, 45,229,118,240, 34,166,218, 81, 50, 93,213, 77, 70,189, 51,171, 31, 84, 54, +195, 65, 15, 97,139,167,126,236, 16,104,238,173,219,228,151,132, 98, 27,186,180, +145, 53, 22,213,175,218, 5, 15,130,193,210,233,165,165, 3,156,105,156,139,195, + 26,225,140, 76, 77,170,116,126,249, 80,130,240,116,250,173, 21, 99,233, 58,248, +193, 31,105,194,112,170,125,162,152, 29,247,113,144, 78,164,158,191, 16,212,226, + 59,143,171, 20,161,104, 98,218, 12, 48, 97, 22, 89,145,156,155, 91,187, 36,226, +135,184, 94, 98,131, 15, 87, 75,149, 91,153,112,159,253,240, 32,250,145,252, 12, + 77,178, 54,155,119, 31, 67,142,240,189,166, 68,148,131,109,195, 22, 88,182,197, + 20,156, 74, 20,145,225,130,148, 77, 8,128, 92,243,107, 56,192,180,157, 77, 34, + 46, 45, 34, 72,124, 89,163,205, 67,190,255, 60,180, 62, 80,231,101, 11,105,154, +131,212, 42, 61,236,175, 38,115, 79,183,141,246, 0,204,244,129, 4,109,207,150, +162,190,161,196,100, 78,101, 55,255, 61,196,182,106, 83,181, 45,189,125,249, 74, + 61,143,188,189,158, 14,154, 24,195,255,200, 41, 75, 13, 28, 6,185,136, 92,245, +161,128,242,152,114,162,133, 58,104,180,228, 85, 74,184,116, 76,159, 83,163,190, +240,187,251, 12,199, 40, 55,133, 4, 43,141, 11,155,161,171, 9,252, 52,130,112, +247,176,157,138, 17,106, 37,137,221, 77,116,102, 27, 40,164,208,131, 62, 96, 50, + 84,163,163,140, 41, 82, 46, 30, 84,251,185,116, 34,237, 27, 28,113,189,231,185, +206,241,242,147, 44,172,126,192,207, 94,210,245, 61,214,159,210,144,248,107, 53, + 27, 78,217, 24,223, 71,131,255,242, 26,108, 58,143, 4, 66, 24,138, 47, 66, 48, +238,154, 71, 80,140, 53,130, 63, 73,158, 29,235,229,131,136, 39,123, 79, 5,194, +138,111,144,179,217,145,165,169, 9,208, 23,133,135,191, 14, 60, 34,119, 4,108, +214, 1,179,177, 26, 74,132,104,112, 22,102, 60,110, 36, 53,240,222,209,147,203, + 97,207,210, 50, 65,122,151, 61, 49,182,232,237, 67,167,204, 44,127, 88,180,241, +175, 90,174, 13,167,111, 66,233, 24,245,105, 86,122,219,126,130,239,116,189,199, + 97,155,102,105,196, 35,183,230,120, 74,137,159,217, 75, 92,151,205,153,189, 8, +228,247, 61,160,121,148,149,147,194,170, 54,161,196,124, 86,185, 92,250,248,116, +244,190,125,163,104, 26,142,183, 43,155,234,116, 53, 60,221,111,187,134,153,110, +191,243,236, 2,204,119,111,124,116, 25,135, 38, 46,205, 27,233,100,143,245,244, +154,154,157,122,133, 71,167,221, 86, 66,202,166, 6,232, 63,145,243,216,117,199, + 98,102, 50,139,209,219,200,144, 12,192,132,226, 9, 72, 4,191,106,214,216, 28, +172,123, 59,165, 70,206, 33,180,136, 3,131,146,137, 42, 17,233,205, 58,234,250, + 67,139,153, 91,110,172,198,170,160,131,162,172,112,169,152, 98,205,241, 26,238, +145,164, 26, 37, 54, 62,164, 50, 96, 62,122,240, 75,172,201,218,172,124,209, 51, + 30, 41,226,193,128, 22, 75,165,216,183,242, 42, 8,199,218,125, 91, 40, 45,161, + 5,191, 16, 57,155,236,246, 12,233, 70, 5, 14, 38, 73,253,153,159, 84, 12,105, +148, 42, 46,253,216, 96,250,230, 6,162, 96,221, 51,128, 29, 64, 13,211,226, 53, +202,246,148,103, 90, 98, 10,101,197, 39, 98, 48,117,123, 78,221,176,207, 59, 62, + 47,206,192,205,172,218,165,106, 43,192, 80,162, 58,111, 49,214, 16,173,142, 12, +142,138,136, 28,105,131, 76, 12, 48, 65,171, 13, 81,244,195, 19,176,253,234,195, +102,237,124,209, 18,225, 4, 60,114,103, 47,128, 96, 21, 29, 68,154,103,152, 14, +127, 42,108, 55, 49,128, 39,245,120,114, 35,120,192, 12, 45,107,128, 24,116, 66, +247, 19,146,232,106,212,220, 25,179,183,129,224,138,122, 1, 47, 89, 53,233, 56, +131,139, 73, 85,248, 17,127, 32,165,126, 28,207, 79,150, 15, 26, 79, 82,132,185, +132,153,143,218,251,186, 97, 99, 20, 84,233,153, 14,216,178,117, 73,136, 88,109, + 69,125,241, 56, 14, 13,186,100, 70, 31,229, 70,235, 49,135, 11, 55,143,230,247, + 63,248, 20,105,214,187,201, 4,118, 37, 72,246,182, 79, 77, 9,160, 27,135,112, +221,220, 26, 85, 71,205,155, 79,209,173,164,212, 46,110,194,166,251,227,170, 87, + 60, 66, 65,172,252,228, 41, 12,248,149,186, 72,235, 6, 76,144, 0, 70,244,162, + 40,192,206,206, 3, 24, 97, 50, 34, 2,115,170,248, 5, 30,168,153,151,203, 37, + 7,202, 58,248,102,151, 19,188,204, 86,208, 49,173, 31, 96, 89, 4, 1, 34,168, + 64,150, 0,150, 0,149, 0, 20,234, 42, 93,189,208, 21, 59,159,154, 79,251,191, +182,157,159,143, 78,106,210, 78, 63,144,182,164,104, 61, 18, 77,169,137, 80, 17, +138,111, 16, 16,188,199,108,155,133,145,101, 6, 45, 75,154,158,206,184,115,197, +187,119, 4,253, 72,142,150,243, 75,103,139,226,128, 85, 36,173,174, 18,172,235, +176, 7,247, 28,214,117, 15, 12,123, 60, 40,229,109,176,174, 50,253, 63,245, 0, + 86,166, 74, 21,244,171, 72,198, 2, 49,248,223, 18, 83, 75,157,206,125, 91, 69, + 14,150,190,190,149,222,150, 22,149,204, 27,133,207,239,160,239, 63, 34, 14,244, + 7,147,167,226,217, 36,123,221, 19,173,116,201,193, 82,243,205,119, 18,173,130, +217,228,241,249, 21,105, 50, 88,134, 30,196, 31,142,109, 52,104,163, 65, 7,160, + 6, 51,171,165,133, 57,126,198, 75,126,162,146,248,142,193,239, 55, 65, 12,170, +201,252,166,138, 34, 68,126,242, 21, 65, 37, 69, 40, 90, 39,203, 27,141, 90,235, + 24, 85,204, 39, 81, 44, 49,221,218,114,176,234,234, 1, 17, 32,148,135,119,176, + 21,191,215, 17,218,148, 70, 37,196,193, 46,208, 27,223, 57,215,246,194,130,208, +249, 57, 14, 90,125, 57, 17,244,147, 7, 55, 97,150,160,167,112,153,195,252,172, +230,120,127,229,190,168,251,247,190,153,139, 95,125, 43,243, 94,130,196,105,244, +244,233,230, 31,122,235,163,184,242,157, 65,124, 33, 25,133,205,227, 26,186,135, + 60,215, 22, 59,170,160,143, 32,141,197, 63, 20,124,223,218, 3,112,181, 98,206, + 20,199, 39,139,246,138, 29,165,162,109,118,223, 15,191, 31, 47,197,252,111,113, + 30, 75,158,241,183,191,218, 49,234,109, 26, 38,187,104,132,119,241,180, 74, 66, +199,226,183,251,142,215,228, 55,122,252, 36,224, 59,244, 1, 5,212,212,207,126, +195,176,244,246,182,252,228, 29,146, 36, 97, 59,150, 29, 93, 43,104,138,246,130, +220, 86,247,179,211, 51,180,112, 39, 12, 39,231,151,111,145,155,169, 43,214,216, + 73,103,201, 17, 81,190,171,253,140, 35, 74, 57,207,193,217, 12, 15, 91,165,243, + 58,238,242,159, 76, 86,137,213, 20,111,195, 93,174, 12,128, 5, 25, 80, 27, 44, +200,163, 77,120,107, 59,147,154, 38,189,223,165,244,222,123,239, 39,153,105, 22, +118,122,210, 16,234,253,164, 39,149, 62, 2, 1,240, 71, 18, 52, 48, 96,121,171, + 61,174, 56,196,119, 95,238, 82,184,178,139,174,157, 58, 94,139, 65,219, 40, 42, + 16,156, 99,204,148, 99,139,115,221,251,114, 92, 71,171, 67, 10,215,159,133,243, +174, 44,187, 20, 48,161,230,117, 28,107, 71,212, 53,243,160,168, 12, 66, 62, 40, +106,132, 96, 26,199,109, 27,198,130,185, 84, 48, 16,235, 44, 94, 11,102, 26, 77, + 97,193,227,185,180,203,235, 54, 76,187, 4,135,234,168,243,156, 49,170, 73,210, + 1,195, 3, 17, 12, 46, 10,203, 99,114, 49, 12,115,241, 3, 83,176,130,112, 53, + 22,137, 75,113, 12, 37, 49, 16, 33,138, 24,226, 8, 33,132, 16, 9,100,132, 68, +100, 72,164, 14, 98,100,219,199, 18, 96, 40,128, 16,220, 17,205, 34,184,142,154, +100, 80,166,125, 20, 44, 84,184,165,147,252, 18,103, 87, 24, 33, 3,112,241,168, +215, 36, 96,245, 32, 32, 65, 78, 57, 65,133,178,170, 52,131, 17,183,113, 98, 7, +245,167,174, 87, 32,114, 16,161,177, 30, 40, 74,133,209,104,112, 25,125,202, 84, +110,117,204, 72,198,122, 81,108,217,143, 75,131, 33, 66,250, 34,212, 88,132, 45, + 0, 33,141,125,137, 92,233, 98, 7, 46,136,141, 2,193, 68,199,216, 8, 88,120, + 68,153, 93, 33,138, 68, 18,153, 2,239,169,202, 86, 79, 98,147, 64,173,104,192, +249,208, 72, 79,156,193,123,225,214,188, 20, 73,215,112,107,109, 51,185, 67,176, +100,152,211,157, 5,227,240,180, 38,189,220, 37,190,179, 99,191,188,128,206,136, +169, 82,181, 40,132, 3,238, 79, 11,175, 33,168, 77, 5,198,245,216, 14,220, 16, + 65,230, 55, 34,214, 90,195,220, 16, 68, 11, 54,210, 73, 0,123,142,142,151,177, +172, 85, 31,251,180,141,171,101,126,176,218,183,218, 5,126, 90,205,123,163,233, +178, 26, 93,109, 49,150,128,163,127,103,116,188,253,216,128, 47, 54,246,202,181, +226,162,248,137,131,205, 82,170, 19, 64,215,232,202, 53,136, 27,126,116, 92,107, + 10,253,153,136,140,183,214, 23,141, 47,215, 6, 20,181, 6,248,114,134,172,209, + 99, 13,120,119,102, 30, 88,131,186,169,219, 93,142,121,156, 93,110,237,105,193, +176,171,144,121,194,204,222, 50,169, 40, 70,247, 54,177,197, 88, 91, 48,160, 27, +163,174, 13,253, 20,255,135,249,120,157, 46, 75, 80, 0,162, 63,136,159,166,240, +214, 88, 27,244, 14, 65, 41, 12, 69,186, 81, 38, 88, 11, 37, 43,163, 56,255,241, +161, 86,164, 60,137, 5,220, 13,254, 61, 40, 10, 72,205,112,204, 66, 41, 37,197, + 58,246, 48,120, 12, 43, 34,101,150, 68,245,181,174,103, 94, 93,186,127,188,100, +250, 4,231,239,240, 35,251,225, 28,139, 86, 18, 61,113,118,117, 71,167, 22, 5, +228,132,220,106,190,197, 23, 56, 1,249,153,232, 97,140,161,223,176,107, 80, 54, +236,107, 86,190, 2,205, 74,169, 81,189,138, 94,113,127,231,241, 38,241,138, 58, +246,100,186,179,140,207,136,141,128, 25,245, 14, 69,106,143,103, 82, 43, 45, 99, + 36, 78,111, 67, 8, 72,156,159, 11,208,212,223, 44, 5,169,202,114,249,243,233, +202,206,237,200, 73, 67,199,178, 67, 1,138,168,195,108, 56, 55, 13, 31, 95, 48, +239, 30,152,113, 94,246, 78,187,129,122, 31, 21,168,130, 45,111,198, 69,147,185, +175, 97,164, 7, 65,103, 55,128,107, 84, 49, 44,187,195,139,130,161,134, 24, 4, + 83, 2,245, 61,103, 81,142,102,131,150, 51, 48, 87,187, 88,137,234, 9, 69, 55, + 77,109, 61,113,176, 50, 18,204, 40, 82, 59,215, 58,146,179, 19, 21,119,202, 34, +127, 9, 92,179,158,105, 47,124,132, 58, 1, 29,120, 7,186, 94,244,153,186, 35, +138,132, 80,144,123, 74, 90,237, 37,148, 98, 99,192,136, 62, 33,174, 80,151,194, +199, 12, 90,152,241,110,243, 86,158, 60,165, 29, 82,183, 9,180,205, 48,154, 5, + 81, 14,249, 68, 81,116,142,207,151, 9,108,226,199,144,133, 50, 20,173,113,234, + 17,113, 75,178, 90, 61, 30,221,227,221,175,249,148,250, 5,119, 96,219,243,129, + 45, 14,185,221, 36,241,147,155, 39,154, 48,172,104, 71, 25,243, 24, 54, 91, 32, +184, 53,118,155, 50, 54, 21, 86,162, 30,225,129,110, 10, 37, 18, 33, 48, 93,198, +204,193,196, 44, 65, 56,128,170,213, 29, 39,101, 92, 62,131, 99, 42,121,119, 48, + 91,198,163,111, 16, 54, 52,119,129,251, 84, 41,152, 25,123,250, 40,133,230,186, +207,131, 56,195,131,217,138,249,112,244,250,221,143,238, 49,186,167,186, 30, 12, +125, 39,117, 28,105,251, 19,135, 0, 27,195, 17,202, 25,207, 51,227,211, 52, 22, + 33,152, 51,247,209,121, 4,177,225, 93,121, 73,221, 13, 92, 81, 37, 4, 70, 1, +187, 70,222,176,112, 56,128,111,209,197,216,228, 1,222,144,252,148, 53,101, 18, +109, 66,186, 29,178, 20,137,134, 83, 47,168,117,202,207,107,210, 21, 35,139,163, + 7,153,197,104,105,164,112,228,201,240,167,223, 6,235,248,238,148, 9,168,212, + 9, 3,113,248,232,238, 9,176, 9,137, 0, 84, 41,252, 87,146,126,101, 27,166, + 84, 59, 72, 70, 32,112, 44,214,118,156, 78,114,106,131, 13,114, 10,231, 0, 97, +199, 2,104,195,209,202, 35, 8, 72, 80, 95,133,253,150, 60, 66, 6, 91,190,183, + 37, 40,151, 24, 84,213,107,250,101,247, 45,222, 85, 90, 98, 95,113,134,157,206, + 47,175,176,126,145, 20,201, 29,148, 7,254, 16, 74,147,237,185, 87,202, 67,126, +176,135,176, 92,150,105,200, 83,227,182, 43, 89,132,140,142,159,152,109,200, 52, + 40,200,147,119,118,129, 5, 89,175,248,248, 2,127,220, 18, 59, 21,165,105,137, + 61, 37, 1, 57,140, 34,148,136,197, 92,114, 3, 26,139,124, 75,113, 65, 71,211, +119, 62,145,241, 79,147, 44, 5,240, 40, 41,113,145, 37,136,107,179,169,144, 22, + 20,162,251,241,121, 26,205,189, 74, 94,179,117,210,189, 48, 62,129,152,244,232, + 77,100, 48, 35,149,161,124, 2, 15, 55,151, 11, 67,123,107,132,225, 67, 79,196, +198,193,208, 74,142, 10,114, 19, 27,137,134, 30, 79, 80,196, 7, 67, 55,158,234, +152, 72, 71,224,125,237,123,222,160,234,144, 99,168,183,188,216,193,139,141, 86, + 76,119,210,142,183,102, 12,146,100, 82, 51,204,245, 35,141,134,218, 23, 9,250, + 56,233,101,136,175,186,153,112,247,236, 72,245, 35, 2, 72, 53,250, 98,122,169, +167,234,240,232,242, 66, 96,240,165,107,171,157, 67,183, 74,147,139, 14,130, 56, +151,174, 9,218,183,246, 37,230, 6, 0,174, 98,201,133,153, 94,185, 52, 66,113, +252,123, 73,187,109, 54,241,201, 78,193, 47,109,141, 25,251,182,209, 19, 37,220, + 14, 42,172,222, 73, 70,134, 13,120, 23,192,193,128, 42, 58, 35, 96, 58,236, 9, + 2,151,100,209, 23,224,170,242,188,100, 41, 6, 63, 18, 52,192,111,185,119, 81, +135, 31, 83, 41, 21, 2,145,225,160, 85,226, 84,226,164,220,101,235,208, 61,148, +162, 27, 43, 91,240,246,151, 54,202,193,127,235, 64,234, 13, 21, 47,139,149, 1, + 18,248,141,246,165,196, 67,254,217,195,139, 35,250,240, 22,169,109, 20, 31,137, +102,170,150, 58, 66,120,240, 97,236, 33, 74, 73,172,250,109,172, 36,192,214, 81, +184, 47, 50, 45, 27, 74,106,117, 9,253,122, 99, 77,122, 22, 35, 65,250, 45,174, +172,220,210,189, 21,162,237, 28,201,156, 31,106, 9, 21, 50,241, 45,249,172, 91, +123, 72, 32,190, 47, 19, 35,126,236,208,232, 47,130, 50,248,203,181,157,101, 48, +199, 0, 80,198, 7, 24,212, 65, 52, 37, 60, 8, 65, 28,152, 75,249,197,195, 9, +202,252, 67, 22,143,155,199,210,231, 81,207, 94, 36,141,147,202, 6, 27,137,198, + 97, 4, 63, 19, 43,215,162, 53,194,196,146,138,103,151,184, 28, 14,235, 31,184, + 15,120,226,130,152, 79, 91,170,217, 53, 52,158, 74,162,137,124, 3,236,205, 71, + 47, 8, 39,164,251, 66,103,143,168, 51,210, 4, 16,117,193, 52,121, 12,237, 41, + 0, 43, 84,255,129,236,254, 8,133,220, 72,134, 56,166,135,175,164, 46, 3, 25, + 77, 36, 15,133, 10, 73,199,193,136,174, 90, 70, 9, 74, 29,254,173,135,129,198, +101,146, 81,199,207, 55,132,200, 89,141,194, 8,135, 25,164,150,135,226,204, 33, + 18, 25,102,133, 23, 10, 39, 65,147, 17,226,176,147,204, 96,157, 78,182,142, 19, +147,246,198, 71,147,122, 43,103, 33, 70,248,107,138,182, 9,206, 45,214, 52, 64, +164,161, 59, 75, 77,169, 46, 92,163, 76,109, 75,140, 59, 1,173, 13, 73,107,124, +198,194,154,223,253, 3,167,175, 87,130, 44, 59,221,186,153, 49, 48, 92, 92, 86, + 50,224,217,113,230, 72, 15, 4, 99, 80, 80, 37, 9, 95, 44, 68,119,222, 40,209, +150, 37,197, 82, 31,192,209, 12,235,152, 70,159,193,141,190, 92, 51, 90, 14,179, +238,166, 91,242,109, 83, 70,200,187,249, 35, 88,118,154,212,246, 8, 71,158, 21, +249, 23,122,167, 34, 25, 94,254,201, 9,202,198, 56,203, 69,164, 78,146,174, 75, +162,114,171, 45,251,210,105, 88,141, 37, 6,100, 63,236,107,191, 67, 93,128,209, + 19, 67,188, 5, 29, 68,193, 62, 67,245,110, 27,118,145, 22, 38, 37, 81, 19,252, +164, 17,145, 58, 65, 85,124,163, 87, 69,144,180,128,217,121, 74,178,126,115,218, +102,240,145, 3,164, 49,166,150,157, 81,200,249,177,165,251,236,253,180,115, 14, + 35,209,176, 26, 15,146,105,112,224,195,200,208, 22, 80,169,103, 15,109,231, 45, + 13,106,237,190, 89,184,144,249,192, 59, 53, 90, 33,229,244, 95,241,214,124, 86, +209,215,128,122,200,159, 6,212, 8,112,241, 31, 9,168,220,126,153, 94, 80, 2, +183, 94,178, 3, 98, 40, 22,197,235, 11,160,139, 19,253,107,103,200, 65,117,192, +177,233,145,120, 54, 36,137,242,103,147, 69, 95,212, 32, 54, 32,243, 75,227,114, +186,232,169,197,127, 15,209,175, 70, 94, 15,175,110,135, 43, 67,216,192,111, 68, +102,253,253, 70,239, 91,116, 60,254, 24, 49, 90, 60, 18,181, 0, 19, 52, 33,112, +204,196,130,239,239, 86, 53, 34, 66,210, 64,235, 74, 1, 67,204,236,136, 24,210, +234,153, 11, 39,168,122,243, 4,205,144, 94, 0,219,255, 96, 63,192, 96,100,173, +196, 99, 3,209,140,132,142, 62, 88,146, 17,111, 52, 97, 17, 22,113,210, 70, 80, +104, 64,166,157,236,175,210, 18, 31, 99, 84, 37,115, 33,192, 94,198,123,215,117, +230, 74,105, 42, 36,111, 24, 99,116,157,169, 70, 48, 22, 59, 50,175, 59,152, 52, + 10, 15,252,177, 12,104,143,243, 48, 24,236,140, 92,133,241, 40, 70, 61,222,205, +204,239, 8,225,232, 37, 41, 56,144, 42, 50,156,190,237, 22, 72, 57,144, 18,249, +137,217,126,150,113,129,121,105,179, 46,161,120,106,136,211, 96, 32, 12,170, 15, + 12,159,176,131,132, 79,230,185,205,101,221,188,130, 62, 2,192, 71, 80,104,189, +152, 64, 99,165,144,221,151, 25,207, 10, 32,142,111, 14,128,237,159,225, 4, 88, +109,111, 92,149, 37,197,122,133,215, 83,116,219, 92,255,114,184,209,166,182,216, + 68,243,154, 15,188,121, 95, 39, 65,117,104, 24, 18,145, 68,136, 71,175,159,130, +101, 87, 23,228, 92, 67, 9,188, 51,192,131,247,238, 70, 23,120, 3,206,172, 89, + 72, 3, 6,206, 12,245, 68,146,155, 53,226,221,104, 76,193,162,231,246,154, 71, + 22, 18,142,209,221,151,197,193, 77, 3, 8, 24, 72,181,208,126,191, 52, 20,153, +194,209, 73,117,182, 29, 56, 91,152, 82, 84,253,120, 84, 65, 99, 85,215, 8, 36, + 16,144,161, 79,216,170,131, 26, 63, 95,150,112,110,214,189, 25,221,133,207, 41, +143, 20,182,176, 48, 57,213,211, 63,236,167,161, 55, 47,246, 52,162,133, 75,110, +200,129,141, 2,254, 83, 67,190,102, 55,181,185,197,226, 97, 88, 25,171,114,172, +249,180, 49,116,105,155, 5,175, 46, 16,214,206, 35,136,129,144, 17,240, 91,224, +242,248, 53,244,103,182,178,185,160,234,202,235,160,207,225, 80, 76, 70, 0,238, +250, 41, 16, 58, 97,193,243,134, 88, 9, 1,241,150,150, 47,200, 99,175, 32,196, +194,129, 91, 11, 97,255,226,157, 70, 38,222, 40,253,204, 99,200, 37,172, 83, 37, + 41,182,156,111,105,172,102,149,135,118,109, 6,166, 33, 92, 30, 7, 68,101, 19, +232,203,105,209,135,205, 2,185,107, 75, 30,183,141, 73,179,129,219,131,173,132, +249,244,115, 92,157,153,247,128,221,221,220,123,196,190,198, 49, 51,121,101,169, +225,178,110,135, 48, 20,148,150,158,180,141, 61,139, 54,225, 0, 46,150, 30, 16, +120,222, 17, 44, 22, 97,123, 34, 68,114, 73, 80, 69,220, 51,232,137,124,235,197, + 77,252, 0, 51, 65, 48, 13,150, 5,240,155, 49, 15,153,128, 85, 19,174, 23, 6, +242,145,180,142, 84,218,206,236, 17,128,179, 46,215,240,140,160, 35, 43,123,243, + 41,187,108, 51,252,185,127, 29, 64, 46,109,118, 42,112,105,255,169, 39, 96, 84, +200,251, 13,252,217, 19,240,146,206, 30,160, 87,244, 62, 66, 42,114, 3, 66,136, +235,167,216, 26, 82,131,176, 74,156,171,242, 51,243, 50, 35,114,110,202,250,191, +221, 66,134,140,194,227, 3,235,160,215,213,221,206, 79, 62,204,252,188,176,199, + 15,172,161, 18,172, 3,237, 58,147,230, 40, 0, 81,231,231,146, 75,132, 8,206, +245, 89,239, 7,106,191,192,130,236, 91,191, 46, 27,137,208,130,231,213, 71,216, + 45, 90,156, 93,195, 94, 71,242,226,120, 47, 63,253, 95,192,178,245,178,187,229, + 27, 84,240, 94,191,130,108,246, 13, 21,198, 79, 57,110, 3,189,114,168, 3, 61, +140,209, 51, 96, 81,145,237,173,180, 97, 38,134,208,103,215,173,214, 49,134, 80, +180,176, 3,250,220,101, 20,210, 80, 76, 23,213, 85,112, 61,121,227,114, 76, 61, +217,127, 57,100, 40,171, 38,126,230, 18,218,213, 81, 13, 91,194, 55, 4, 46,206, +192, 69, 65,190,101,194, 54, 42,182,216, 83,175,244,213, 88, 64, 52,185,189,167, +213, 68, 0,165, 64,174, 17,234,167,132, 20, 34, 8,176,107, 4,125,235, 5,224, + 91,247, 96, 33, 70,147,201,186, 35, 83, 4,232,163,123, 68, 45, 86, 63,196, 62, +114, 88,235, 80, 70,150,123,176,244, 97,132,171,123,146, 74,233,162,249,236,225, + 67, 57,237,198,149,144,228, 69,128, 95, 53, 63,139, 77,238, 97,195, 11,253, 86, +101, 56,217,134, 8,181,245,137,197, 22,202,218, 99, 86,159, 76, 48,125, 35,169, +226, 70,227, 48, 19, 9,231,111,144,190, 58, 0,246, 4, 40,146, 84, 1,255,145, +138,157, 35, 5,172,255,136, 62,251, 84, 25, 83,227,210,237,170,173,252, 28,211, + 77,116, 40, 75,163,138,228,197,249, 66,164, 37,145,203,130,138, 1,117,156,145, +190,161, 48,230,243,133, 38, 77,196,152, 45, 59,169,110, 61,240, 22, 45,165,163, +125,162,174,212, 28,150,192, 9, 9,218, 3, 52, 54,183,215,221,255, 93,185, 41, + 65,160,179, 34, 42,174,208, 74, 77,143, 90,146,130,251,133, 77,244, 92,132,123, +192,139,190, 53,129, 89, 13, 39,115,214,236, 97,141, 94,163, 22,112,113,157,114, + 22,207,134, 38, 74,245,101, 12,140,130, 21,141, 22,167,250, 4, 23, 29, 51,224, +177,128,140, 61,158,133,162, 20, 85,182, 94, 49,195,104,173, 71,208, 19, 26,137, +232,233,134,214,208,137,145,148, 9,159, 15, 11, 33,212,197, 29,254, 54, 64, 46, + 9, 54,241, 27, 64, 14,207, 80, 64,214, 45,240,252,242, 82, 72, 6,188, 15, 5, +226, 78,210, 36, 35, 52, 33, 50,188, 72,107,116, 21,212, 77,189,233,224, 81, 61, + 90, 3,255, 72, 50, 47,182, 95, 72, 75, 24, 15, 46, 91,204,213, 74,226, 40,136, +164, 42, 58, 24,151,100,190, 35,233, 36,188, 89,177,158, 69,211, 69,143, 44,178, +191,205,176, 25, 63,145,161, 0,144,224, 81, 8, 68,160,237,243, 69,141,194, 92, +117,103,130,148,195,212,120,155,119,250,224, 98,182,217,218,119,158,201,194, 35, + 83, 86, 78,190,251, 12, 0,129,147,172,140, 82,105,112, 18, 19,155,156,176,244, + 84, 17, 92,205, 59, 85,194,214, 12,254, 26,124,239, 51,104,173, 68, 54,213,189, +118,230, 21,145,178,204, 4,163,184,136,195,232,106,188,182, 15, 83,251, 83, 53, +249, 58, 21,241,112,159, 36, 97, 51, 78, 9,130, 52, 53,167,207, 11,221,162, 12, +242, 36,121,155, 84,115,130,208,150, 25, 57, 57,114,217,112,195, 25, 53, 27,179, + 40, 3, 57, 38, 3,161, 39,192, 49, 72,134, 33,156, 39,217,225, 44, 70, 96, 18, + 68,131,206,235,127,111,166,228, 7,102, 59,213, 74,209, 92, 20,132,162,243, 97, + 73, 46, 37,161, 98, 16, 37, 1, 89, 33,131,180, 5, 18,185, 0,238, 1,160, 13, +135, 30, 94, 73,204,199,248,121, 14,191, 52,132,130, 15,216,139,153, 65, 8, 21, +214,136,184,186,221,196, 60,171,252,137,133, 65, 40,120, 69,181, 95, 72,253, 4, +118, 6,108, 49,165,213, 19, 81, 67,238, 79, 28, 9, 53, 68, 17, 74, 35, 4,205, + 70,129, 19,146,147,208, 51,124, 11, 11, 58,247, 33, 95, 11, 96,174,147,200,175, +188, 67,231,130, 29,199,112,167,187,113,165,196, 61,205, 46,194,175,136,237,233, + 34, 76, 58,155, 34, 20,172,215,152, 14,212, 53, 47,110, 25,200,249, 87,172, 75, +198, 8,168, 39,234,187, 54, 38,194,134,233,160,166,166, 95,180,123,114, 93,224, + 78, 83,139,114, 22, 61, 72,102,136, 52,206, 54,215, 34,156, 16, 0, 28, 99, 54, + 2,135,149,134, 21, 89,206, 83, 4,243,157, 36, 91,238,224, 13,194,248, 71,157, + 7,245, 50, 96,239,236,226,242,231,146,252, 0, 7,253,229,181, 63, 20,222,164, +222,135,213, 48,142,198, 68,142,108, 52,194,107, 44, 48,146,168, 84, 96, 60, 46, +168, 83, 24,177,139,163,201, 15,214, 84,172, 19,137, 61,108,251, 95,131, 93,216, +104,140,134, 79, 36, 51,156,203,228,100,209,175, 89,216, 27,229,250,102, 50,176, +100, 94,104,218,192,138, 43, 97,118,101,152,151,187,218,232, 91,205,197,223,254, + 18,178,142, 81, 29,193, 74, 8, 25, 29,105,105,234,201,133,144, 6,114,180, 53, + 63,212,182,197,212,110,100,205,154,178,147,140, 53,132,125,197,150, 76,144, 73, +232, 73, 34,180, 73,107,131, 12, 90,194,207,246,224,131,189, 66,109, 4, 4, 90, +212,163, 99,110, 39,101,127,247, 3,106, 7, 49, 3,147,211,185, 0,211,152, 73, + 10, 12,128, 53,125,233, 65,180, 91,239,238, 23,151, 2, 51,231,205, 0,246,202, + 21,199, 8, 40,192,210,129,128, 38, 21,240,238,141,221, 73,144,129, 59, 50, 4, +155,216, 68,195, 53, 70, 35, 4,235, 48,119, 23,222,100,125, 77, 14, 28, 58,126, + 98,176,114, 58,192, 57,216, 23,221,228, 68,225, 96, 28,250,150,129,213, 54, 21, +195,111,128, 42, 6, 30, 52, 71,121,164,254,133,205,153, 30,217,126, 89, 57,200, +145, 57,238,138,125, 44,120,194,142, 67, 61,145, 27, 32,180, 2,211,222, 50,183, +144,190,126, 32, 17, 45, 65, 15, 70, 64,101,105,249,163,196, 30, 1, 10, 75, 8, + 14, 40,192,150,113, 3,120,185,133,101,149,145,128, 56, 73, 8,166, 83,128,165, +194,200,227,193, 65,191, 76, 24,153, 68,180, 73,115, 24, 93,236,191, 41, 74,182, +233, 64,216, 0,217, 0,217, 0,149, 86,102,180, 84,111,142,216,105, 26,189, 44, +249, 39,211,201,108, 36, 86,226,150, 23, 22,255,100,250,200,163,243,127,114,253, + 77,186,199,143, 36, 9, 56,135, 46, 18,241, 84,210,202, 22,110,249,250,201,180, +239,104,155, 29,119,110, 29,163, 43,234,116,253,100,145,123, 83, 90, 34,160,136, + 77,130,161,161, 47, 70,245, 94, 94,150, 47,140, 29, 44,144, 68,226, 29, 10,118, +175,197, 50,123, 35, 39,253, 59,223, 79,103,131,161,113, 52, 38,209, 79,146, 10, + 77, 10,135, 52,124,245, 78,110, 36,123, 14, 11,136, 14,163,236,228, 76, 25, 10, +205, 67, 17, 1,242, 88,112, 72,116,147,163, 46, 79,179,227,234,201,171,158, 14, + 83, 77, 10, 63,158, 10,110,110,206,152,214, 80,102, 96,128,254,252, 11, 97,123, +204, 98,228, 73,253,164,117, 64, 28,135,135, 11,237, 98, 48,118,190, 73, 98,220, + 85,158,241, 50, 91,120, 78, 47,165,117,169,180,151,107, 45, 87, 99,131,184, 88, +215, 98,111, 65,208,227,190,208, 56, 86,154,194,173, 85,124,184,175,253,184,157, + 78,219,251, 49,159, 27,196,225,142, 21,134,205,249,156,161,100, 55,102, 86, 78, +143, 61,106,121, 98,172, 32, 3,180,228,207,204, 17,153,144, 96,176, 96, 16,187, +234, 78,158,170,144, 21,152,197,194, 61,162, 91, 1,118,137,156, 33, 36, 44,176, +166,105,219,228,166,231,205, 14,117,189,167,156,171,200,247, 92,198, 24, 25,139, + 24, 99,157, 75,212, 52,241, 36,121,224, 73,217,164,171,204, 22,179,133,229,137, +189,143,204,151, 26,124,208,255, 48, 87,247, 98, 33, 23,220, 57,242,223,144, 70, + 0, 26, 76,196,140,156, 36,250,254, 14, 12,144, 42, 70,230, 90,100, 64,136,104, +156,217, 53, 87,233, 75, 70,125,220, 75,148,101,209, 13,131,209,192,154,182,165, +210, 68,140,190,197, 56, 75,188, 83, 82, 2, 53, 86, 85,130, 97, 76,193, 54, 81, +141, 64,190,214,124,223,152,151,193, 1,130, 2, 63, 55,227, 65,136, 1, 95,149, + 74, 15, 14,150,101, 99,191,175,178,172,237,158,146,100,103,135,170, 46,170, 20, + 15, 28,142, 3,168, 19,160, 85,100, 64,206, 46, 52,190, 60, 90,158,102,177,224, +102, 24,255,104, 84, 3, 48, 40,212,247,144,241,145, 80,233,157,199,239,165,110, + 18,233,156,165,148, 85,183,192,225,135,163,181,155, 41, 79,122,110,114,145,188, +124,239, 85,171, 74,229,242,134,231,163,117, 58,158,141,229,188, 43,200, 21,223, + 82, 87,185,114,152,106,176,150, 58,230, 41,121,185,157,187,228, 18, 85, 77, 85, +116,241,188, 10, 85,161, 6,234,104, 32, 14, 64,123, 62, 90, 71, 68,132,135,147, +217, 32, 50,186,179,101, 16, 26, 40,179,209, 62, 22, 26, 4,228,191,247,222,123, +175,181,214,102, 90,223,203,215,170, 40, 92, 51, 83,117, 68,178,231,163, 19,230, +250,144,186, 70,195,153, 66,188,184, 51, 25, 81, 1,235, 87,218,125,222,201,142, + 75, 68,142,130, 23, 95,220,246, 70, 7, 91,185,252,182,194,121,168,110, 27, 43, +192, 13,161, 20,105,161, 29,226,174, 94,182, 17, 99, 24, 36,212, 41,189,121, 60, +232, 33,251,155, 38,191, 59, 63, 70, 42,101, 59,229,156,249,198,126,221,149,195, + 19,238, 10,194, 80,213,125, 2, 67,220,222,109,236, 23,218, 60,174, 66,166,145, +211,188,161,142,189, 65, 12,159, 48,103,150,255, 60,233, 61,215,247, 84,167, 26, +190, 19,140, 3,133,145,210, 78, 89,211,223,226,219, 66,104, 63,110,182,181,255, +154, 72,118,158,157,253,149,173,108, 63,188,186, 77, 87, 81,168,239,173,101,161, +221, 88,254,236,219,254,246,166,230,205,127,152,189,192, 36,145,159, 81, 69,238, + 42, 99,208,154,254,158,123, 34,249, 86,149, 34,127, 57,242,178, 59,107,120,249, +126,137,108,198, 29,199, 73, 11,131,223,217,251, 37,201,250,174, 42, 91,117,119, +119,119,247,229, 85, 74, 37,188,242,196, 77,105,170,184, 27, 66,120,177, 2,143, +213,168,244,250,245, 82,141, 64, 16, 0, 19,164, 0, 8, 28, 9, 10,100, 18, 53, +205, 20, 65,126,180,160, 72,131, 23,139,137,136, 21,130,162,224, 70, 16, 14, 32, + 32, 66, 1, 36,128, 0, 12, 0, 8, 0, 8, 48, 64, 0, 82,128, 97,246, 45, 51, +232,248, 74,102,129,219,234,170,188, 25,229,211,106,123, 33, 85,156, 57, 98,182, +181,128, 12,139,214, 60,192, 74, 36, 75,105,152, 73, 10, 60, 91,231, 50, 71, 55, + 44, 85,115, 97,117,176, 89,119,134,183,205,176,123, 19,173, 58, 32,146, 90,195, +155,119,180,111,155,225,174,102,203,100,171, 19,193, 8,124,185,101, 68,188,164, + 81, 48,148,168,153, 15,126,185,137,150,144,151, 29,154, 68, 85,213,176,221,185, +108, 32, 38, 76,150,131,128, 85, 37, 91, 48,115,146, 41, 35,229, 94,128,126,131, +200,200,205,173, 61,133,161, 37,243,111, 94, 23,156,140, 99,161, 98, 64,197,229, + 94,158,102, 76,208,109,221, 9, 24, 84,211,158, 23,252,138,201,217, 1,165,157, +196, 5,253, 67, 93,166, 40,198, 95,137,102,246, 76, 44, 55,121,132,188, 29, 67, + 2,223, 31,176,100, 94,128, 3,160,229,104, 54, 30,101,172,162, 84,222,216,233, +126, 48,253, 74,178, 62, 23, 89,241,200,143, 8, 88,131,232,163, 88, 52, 50,233, + 7,115, 29,240, 40,100,179,231, 56, 90, 6, 0, 62,212, 52,252,156,107,204,142, +154,233, 89, 26, 96,228,252,184,233,224, 5,224,159, 52, 1,229,120,101,141, 86, +170,169,176,132,191,230,190,188,138, 34, 85,114,117, 39,110, 51,205, 25,137,206, + 6, 3,169,153,119, 82,156,227, 48, 0, 87, 8,119,231,140,217, 66, 8, 28,159, +164, 55, 20,120, 1,174,108,199,161, 54,201,117,198,234,226,107,226,187, 96,223, + 26, 66,165, 60,234, 59, 75, 33, 56, 31, 56, 38,140,195, 70,136,143,141,182, 22, +123,220, 89,236,123, 68, 65,147,103, 28,230,233, 35,123,226,222,163, 72,129,177, +159, 57, 75, 98,180,107,184, 88, 0,239,165, 72,118,187,202, 7, 47, 70,153, 88, + 25,115, 9,151,167,227, 41, 82,202,199, 53, 93,182,152,111, 69, 46,142, 55,239, +226, 31,124,120, 83,165, 18,108,157, 74,169,182, 87, 44, 79,164,212,195,209, 53, + 74,144, 21, 54, 60, 64,109,226, 63, 41, 20,215,128, 64,249, 17,209, 39, 97, 56, + 18, 81, 54, 79,198,177,156,224, 82, 4, 45, 67, 22,155,255,103, 41, 42,142,198, + 71, 50,215,147,157,177,253,145,240,216, 19,163,183,223, 67,240, 99, 72,184, 62, +136, 37, 52,227,229, 62,105,252,132,235,109, 41, 99,234,239, 61,158,138,122,204, +140,254, 68,108, 72, 62, 49,220, 1,101,138,176, 77,194, 84, 15,148, 5, 66, 59, +127, 49, 71, 80,226,133, 23,231,101,255, 65,201, 21,130,163, 11, 64, 8, 69, 42, +153, 76,146,203, 10, 37,134,200, 55, 45,111, 54, 20,129, 33, 33,178,112,114,253, + 62,150, 53,246,208, 42,162,192, 9,245,189,149,249,222, 10,218, 33,214,125,223, +149,247,202,125,127,210,159, 34, 21,189,178, 60, 65, 16, 66, 9,133,204,122,241, +138,238, 43, 1,126,189,146,147,155, 61,193,162, 66,107, 10, 48,179,165, 36,125, +218,218, 12, 73,160,250, 0,142, 98, 89, 1,178,229,138,229,172,129,107, 9, 76, + 82, 93, 33, 73, 59,200,160,120,123,200, 46,205, 34, 88, 76, 36,184, 92, 22,233, +140,226,208,105,103, 53, 58, 55,169,100, 3,141,207,222, 5, 79,231,148, 98,135, + 16,233,219, 9,193,248,137, 43, 24,222, 44, 78, 69,210,241,150,254, 92, 64, 91, + 82,207,241, 83,151,139, 93,123, 14, 63,189,210,235,132,118, 13, 95, 3, 8,222, +222, 97, 16,254,212,103,150, 71, 46,130, 10, 93, 23,113, 25,120, 60,160,150, 63, + 57,169,197,176,161, 99, 34, 16, 52,119, 6, 91,204, 47, 19, 18,122, 92, 48, 78, +178,102, 50, 66,121,207, 71,183, 63, 41,221,112, 52,189,234,247,242,218, 93,102, +152,241, 20,168,232,188,122, 21,208,131,172, 48, 41, 67,196,232,128, 38, 65,228, +155, 80, 88,131,191, 6, 28,106,164, 76,100,164, 54, 48,156,223,105, 98, 88, 88, +115,167, 86, 36, 82,190,201,239, 72,105, 76, 46,240,196, 83,236, 69,165,164,208, + 71,190, 15, 99,118,199,189, 22,201,139,248,124, 83, 24,217,136, 36, 17, 54, 24, + 96, 94, 67,118,127, 74,233,163,208, 92,142,206, 84, 46,228,161, 82, 47,179,145, +235,184,155,139, 19, 53, 2,188, 40,203, 14,177,165,214,148,130,219,175, 61, 38, +236,201, 33,155,247, 89, 30,174,238, 96,146,239, 16,180,155,200,164, 61,116,216, +156, 8,201,200,183, 26, 29, 8, 57,166,108, 32, 59, 79,197,245, 69, 33, 19, 79, +200, 96,200,231,145,105, 82,150, 55,180,100, 52, 93,190, 69,164,178, 31,219, 50, + 13, 93, 12, 66,117,155,171,205,239, 26,143, 36, 39,179,177,110,125,205,180, 44, + 41, 69,113, 24,114,185,103,237, 40,106, 19, 6,216,206, 85,212, 86,134,237, 47, +143,168,178,236, 13, 97,237, 52, 11, 97, 94,151,122, 97, 41, 87,191,213, 72,157, +140, 94,223,197,201,234, 50,105,254,114,248, 85, 59, 23, 67,156, 70,152, 75, 1, +209,130,209, 83, 49,136, 37, 48, 2, 99, 74,154, 65,187,156, 40, 48,196, 68, 60, +188, 11,226,235,178,253,225,137,212, 33, 33, 82, 21,100,252, 50, 77, 52,188,166, +151, 64, 5, 63,145,169,239,254,125,188, 76, 37, 72, 75,248, 31, 25,225,103,137, +127, 13, 15,193,174,223, 47,217, 39,129, 88,195, 38,141,213, 46,155,242, 28,162, +221,111,214, 58,204,206, 27,145,100, 14, 85,217,175, 57, 39, 6, 38, 15, 79,231, + 42,147,187, 68, 4,164,186, 46,230, 35, 47,117, 27, 22,109, 51,197,247, 81, 25, +117, 78,168,208, 45,222, 36, 58, 53, 38,243, 38, 76, 23,254, 30,194, 47, 31,158, +238, 86,211,139, 80,112,228, 55, 70,153,206, 35, 91,183,193, 80,129, 82,152,104, + 24,245, 34,219,231,179, 1,187, 99, 24,152,147,213, 17,104,135,150,140,160,157, + 81, 74, 25, 17, 47,169, 29,240, 93,198,140,222, 29,172, 25,110, 7,164, 59,184, + 20,137,187,131,132,179,192,221, 73,194,118,174,221, 33, 21,239, 5,138,187, 10, +235, 29,191, 78,180, 2, 48,211,230, 93,211, 7,244,197,218, 60, 14,150, 19,210, + 1, 53, 77,107,208,130,228, 20,143, 12, 93,106,184,136,173, 54,185,165, 30,215, +145, 87,198,143,219, 92,175, 16,180,160,241,153,203,222, 2,228,230,100,180,135, +175,120,136, 92, 20, 32,195,129,228, 50, 36, 25, 50, 70,233,100,114,123,191, 97, +228,232,108, 25, 9,180, 53,243, 25, 56, 38, 94, 23,149,129, 82, 12,183,171,106, +147, 8, 71,119, 8,246, 29,109, 92,246, 29,236,118, 23,175,204,140, 38,111,140, +209, 10, 72,210,110,197, 56,168,222,141,215,104,195,128, 69, 10, 45,139, 55,101, + 2,233,225,110,106,158,162, 12,222, 22,248, 89, 99,223, 36, 5,216,134,134, 9, +168, 52, 43,210,178,164,187,171,216,113,181, 69,103, 56,163,162,246, 95, 91, 83, + 90, 68, 36, 40, 89,107,139,218,207, 50,216, 79,177, 44,148, 41, 75, 85,110, 44, +237,112, 97,121, 71, 56,190, 18, 16, 35,232,186, 18, 78,254,117, 42,158,120, 39, +122,132,130,235, 88,141,200, 36, 81, 34, 94,113,125,196,140,248,175,210,249,204, +154, 18, 66,149, 36,113,166,146, 92,167, 4, 98,213, 66, 40, 66, 82,172, 59, 42, +161, 20, 66,213,107,199,152,102,120,224, 9,228,201,133,154,137, 13,247,214, 97, +139,127, 95, 2,233, 55, 95, 80, 18, 13,246, 86, 28,172, 34, 1,253, 43,175,134, +211,145, 39,138,232, 61,143,181,103, 98,136, 72,110, 47,175, 96, 69,218,207, 25, +107, 94,109,138,164,134, 76,180, 84,180,121,209,118,206,113,183,148,187,163, 36, + 29,114,152,197, 21,231,186,144, 72,240,133,188,210,129, 51, 34,126, 60,183,136, + 16,228,103, 15,195, 72,229,169,192,113,200, 14,101,139, 41,139, 54, 36,129, 19, +156, 36,177, 53,236, 6, 71, 66,198,139,148,249,200, 9,145,247,115,172, 61, 18, + 44, 83,144,141,115, 30,201,110,152,147,130,172,135,175,189,191,202, 81,182,109, +202,130, 33, 84, 74, 66,229,237,179, 2,239, 87,191,179,232,135,192, 53, 59,206, +208,241,209,118,240,235, 4,187, 16, 59,242, 67,148,161,161,235, 32,222, 14, 73, + 16,166,180,131,204,196,230,226,241,197, 25, 74,107,189, 35,140,181, 67,255,116, +112, 18, 12,113, 83,218,212,178,218,167,234,233,214,108, 67,203, 49,142,116,213, + 47,115,219, 1,167,206, 17, 4,233, 8,252,155,237,232,120, 71,196, 62, 67, 50, +190,204,107,195,242,190, 34,141, 7,220,119,250, 88, 51, 33,236,192, 8, 48,160, + 60,186,224, 20, 67, 58,202,215, 54,132,235, 89,202, 68,104,132, 50, 47,226, 19, +230, 51,154,193,212,159, 74,196,190, 30, 55,219,198,221, 29, 31, 40, 25, 7,169, + 11,202,154,244, 5, 95,246, 36,171, 73,179, 94, 5,208,105,120,161, 97, 8, 71, + 25,156,145,230,215,105,116, 38, 29,119,137, 79, 84,101,115, 99, 83, 40, 53,179, +111,223, 41,120, 1,158, 48,151, 7, 27,196,121,162,143, 5,137,160,112, 96,130, +148,157,168,168,184, 0,119,194,251,216, 87,188,215,100,208, 25,195,168,174, 71, +209, 79,243, 38,126,185, 96, 70, 70,252, 14,188,207, 62, 23,198, 90,186, 7,149, + 94,161, 55,132,159,170,208,193,142, 9, 36, 7, 89, 98,172, 29, 56, 97,135,135, + 79,183, 35,184, 62,255,120,237, 33, 50, 33,135,179,237,118, 35,110,100,238,193, +105,161,177,243,151, 38, 29,216, 22,159, 23, 88, 16,215, 15,236,136, 47, 4, 0, +176, 83, 21, 99, 35, 82,219, 83,151,180,187,160,118,222, 60,213,221, 60, 33, 10, +113,106,135, 25,158, 27,219, 35,104,164, 56,199,232,235, 82, 53,252, 73,155,252, +185,233,225, 26, 34,157,186,235,110, 54,123,129,211,206,109, 90,222,146, 72, 69, + 4,140, 8, 4,231, 34, 0,189, 60, 86, 36,176, 11,107,230,132,234,238,248,174, + 81,155, 79,230,210, 68, 50, 76,118, 92, 92, 19, 68,102,167, 97,207,113, 51, 15, +163,170, 0,230,140,113, 54,223, 53,236,113, 92,205,124, 37,244, 56,227,232, 36, +129,113,111,136, 10,175,109,203,211, 73,248, 91,106,158,143, 60, 84, 11,163,211, + 90,154, 35,207, 76, 85, 98,245, 80,120, 53, 31,220,253,195,219, 85, 27,227,197, + 91,182,216,234, 69, 62,174, 30,209,103,113, 1, 16, 17,172, 5,230, 60, 4, 0, +157,140,115, 61, 50, 18,154,178,102,100,108, 14,149, 31,126,157, 72,228,160,209, + 41, 37,202, 95, 49,133,132,111, 86, 49,242, 15,149, 12,189,217, 85,157, 74,211, +160, 60,134,100, 74, 23,238,205, 96, 70,230,138, 16,205, 20, 11,133, 19, 61, 38, +153,246,113, 33, 37, 19,190, 52, 50,150, 12,141,156, 81,184,176,223, 52, 17, 70, +165,239, 16,149,225, 27,112,146, 63,232, 42,191, 32,171,112,146,186,200, 74,114, + 5,232,161,189,154, 72, 80,236,113, 48, 97, 14, 85,158,104,169,137, 47,208, 38, +137,208, 13, 92, 39,245,147, 84, 82, 0,113, 20, 36, 36,198,108, 17, 2, 54, 22, +248, 35,146, 20,147,172, 59,150,240, 48,139,203,154,177,126,243,209, 83, 98,228, +140, 85, 55, 32, 36,224,101, 49,242, 45,183,142,161, 53,167, 17,139,227,100,105, +117,163,218, 87, 58, 46,241,219,195,232,222, 42, 65,110,187, 78,169,161,192,163, +158, 59, 58, 9, 95,235,160,155,113,196,164, 81,104,228, 73,207,132, 70, 37,121, +251,109, 13,203,157,163,126, 43, 31, 73,204,178,194,162, 99,217, 78,214, 77,244, + 13, 47,147,190, 46,116,217,111, 27,156, 33,217,246, 63, 60, 50, 75,189,119, 70, +203,246,139,144,203,173, 52,192, 21,119,240,228, 60,153,134, 40,160, 78,195,137, +139,225, 8, 85, 7, 14,166,136,154,139,196, 29,136,178,116,153, 75,165,159,163, + 42,203, 76,199,232, 98,211,242,249,126,101,118,209,200,195,165,221, 14,194,137, + 66,189, 79,147, 75, 4,251,211, 15,209, 89,240,182, 53,125, 16, 32,135, 27, 63, +167,209,124,166, 42,162,215, 8,249,154,170, 50, 20, 3,191,116, 54,151,239,173, + 28, 45,184, 90,185, 33,182, 97,245,215,244,188, 21,128, 27, 22,208,174, 64,171, +195,190,160, 72, 33,201, 60, 64,118,183,224, 93, 66,132,121, 34, 3,180,247,155, +146,215, 97, 3, 28,159, 78,181, 7,152,203,138, 83,206, 58,212,107, 91,143, 88, +115,143,255,181, 88,113, 64,204,148,102,105,230,228,112, 75, 60,189,104,196, 8, +114, 6,208,183,128, 28, 7,166, 2, 0,226, 65,129, 9,236,247, 99, 87, 4,206, +116,191,140, 21, 18,188, 98,102,123, 38, 1,250, 65,227, 47,203, 32,119, 72,229, + 40, 16, 11,158,213,195,226,180,232,157, 56,188,133, 74, 62, 14,136,115,112, 39, +139,229,140,129,180,158,117,149,196,145,136, 92, 7, 80,228,129, 57,199, 83, 14, +199,189,110, 83,184,105,151,228,163,148, 44,146,242,124,201,102, 57, 3,122, 37, +179, 77,237,120,243,213,224, 14, 29, 94,129, 60, 33,241, 49,152,238,168, 79,175, +107,199,109,188,203, 19, 38, 28,219, 68, 14,160,195,131,207,131,252, 11,242, 71, +136, 14, 90,132, 53,184, 58,193,178,111,156, 78,190, 2,229, 94,231,227,124,145, +167, 30,179, 55,212, 36,122, 20,243, 5,234,100, 30, 99,218,161,142, 61,199, 20, + 63, 93, 32,126,210,229, 36,203,128,142,210,149,182, 18, 13,149,139,171,198,114, +142, 24,237, 9,143,185,157,158,187, 1,207, 91, 33,153, 99, 3,159,189,232, 51, + 53,211,177,225,181,217,172,198,236, 33, 80,151, 20,189,172, 42,180, 58,228, 51, + 2,247, 1,214,109,156,104, 97,125, 97, 44, 5, 59,114,191,176, 53, 38,215, 14, +218,232, 49,137, 33, 95,169,203, 28,186, 31, 18,124,169, 62,228, 77,183,150,161, + 56, 85,153,196,226,199, 73,250,255,195, 74, 2, 31,214,101, 77, 32, 8,244, 43, +145,136,159,247, 67,186,191,252,246, 7, 20, 88, 71,214,142, 65, 2, 23,163,235, +116, 9, 98,249, 70,155, 71, 67, 79,130, 24, 54,163, 50,184,224,251,162, 8,112, +100, 59, 56,154,119, 39,140, 20,115,250, 14, 65, 26,174,231, 73,229,181,145, 29, + 72,217, 29,224,245, 11, 8, 25,117,177,111, 36,175, 34,224, 45,235,234, 36,172, + 32, 79, 58, 99, 69,166, 35,233,238,114,234, 66, 94,179,101, 36, 2, 14, 55,201, + 43,210,146,239, 31,209,142,179,202,201, 71, 7,176, 25, 65,229, 31,109,234, 96, +164, 18, 75,251,127, 71,114, 56,176, 56,248, 10,237,115,195,176, 24,109,164, 3, + 77,202,140,171,174,121, 44, 68,109, 71,245,156,207,236, 43,146,200, 31, 75, 35, + 59, 64,135, 40,235,138,203, 24,147,158,255,244,230, 52, 70,218,219,135, 64,218, +210, 38, 15,141,208,151,117, 84, 9,182,233,198,105, 43,122, 99,207, 99,134,100, + 9,100, 72, 68,161, 39,177,135,218, 15, 33,215, 10,135, 67, 92,216, 82,198,154, + 76,223, 72, 64, 20,110,172,224, 21,172, 1, 19,199, 21, 66, 41,132,134, 8, 7, +243, 40, 2,105, 40, 17,250, 77,199, 30, 55,200, 47,121,161, 60, 22,202,194, 72, + 29,195,203,231,163, 87,202,112, 60, 65,139,188,224,142,146, 29, 30,106, 97, 41, + 4,172,138,158, 26,169,201,166,229,129, 34,185, 24,157,140, 76,182, 40,122, 85, + 22,237, 19,158, 14,129,132,221,132, 70,168, 48, 44, 90, 27,111,158,161, 69, 43, +120,113,186, 86, 7, 95, 82,197,215, 80, 54, 42,110,103, 24, 15,166,133,207,115, + 1,121,203, 78, 87, 18,156, 7,195, 57,240, 75,109,171, 24, 82, 42, 42,104, 61, +220, 41, 76,127,158,213,211, 25,137,248,204,134, 18, 52,127,209, 92,131,121, 1, +187, 22,139,220,160,161,130,107, 5,186,192, 58,128,139,148, 84,204, 5,108,145, + 86,185,201, 23,163, 62,134, 83,250, 41,220, 38, 50, 18,166, 42,248, 32,162, 25, +235,219, 55,250, 17, 32, 80,187, 53,130, 92, 11,198, 71,156, 72, 23,172, 88, 60, +165, 1,163, 3,208, 81, 36,150, 23,129,234, 22,137,153, 97,168, 90, 58,152, 45, + 41,240, 74,109, 38,200,218, 43,174, 80,163,112, 73,190, 3,116,124, 34,204, 25, + 38,186, 5, 13,231, 7,210,110,184,184, 83,214,197, 87,168, 6, 99,197,205,154, +207, 9,144, 90, 11, 27,219,179, 63,210, 47,235,206,150, 22,193, 52,133,201, 7, + 66,189, 77, 93,131, 54,219, 98, 53,132,225, 69,161,111, 80,231,193, 25,180, 8, + 3,207,162,205,128,192,118,176, 2, 8,200,106, 6,205, 74,247,173,190,123, 69, +217, 36,255, 17, 35,196, 51, 51, 14, 81, 8, 3,117,188, 82,121,233, 60,215,118, +174, 82,152,172,163,127, 37,235,255,200, 22, 1, 3,185,157, 93, 7,238,112,140, +146, 37,233, 44,195,113, 19, 50, 7,121,206,101,168, 15, 9,210, 59,169,157, 24, + 2, 4, 50,131, 0, 67,169, 86, 86, 27,157,132, 27,147, 40,203, 21,159,202,162, +247,101, 21, 83,140,142, 78, 55,170,161,138,243,255, 40,216,139,244,109,106, 93, + 71,210,105,180, 26,128,234,234, 13, 74, 59,165,148,244,250, 98,187,255, 80,236, + 14, 75,222, 92, 19, 60, 11, 39,102, 76, 50,197,238,187,214,250,153,218, 39, 16, +188,166, 95,136, 45,246, 56,164, 27,127, 1,188, 36,144, 21,253,250,158,214,244, +245,144, 95, 18,106,245,158, 28, 79, 85,134,146, 40,200,227,244,188, 94,226, 9, + 48,201,155, 50,247, 92,111,255,164,254,136,218,186, 11, 25, 95,255, 38,137, 64, + 50,183, 43,212,184,122, 40,191, 34,242,100, 92, 53, 81,158,160,245, 1,188,237, + 45,145,177,186,123,120,108, 68,125,167,134, 29, 14,133, 10,224, 82,228, 53,127, +218,173, 31, 16,182, 79, 21,150, 84,211,176,227, 63,209,253,190, 37,133,207,118, +109,197, 31,245,214,142,110,100,190,216, 38,162,136,248,198,211,252, 62,212,173, +159, 71,113,222, 16,177, 39,195, 21,184,157,198,149,206,185,179, 6,197,207,145, + 2,144, 26,136,230, 18,144,209, 96,219, 25,193,217, 36, 63, 11, 5,127,206,244, + 46,206,213,243, 4,204, 9,160,103, 92,191,183,237,225,208, 78,236, 73,246,132, + 3,240,253,161,166, 31, 43,145, 69, 44,187,121,104,248, 67, 50, 39, 30,123, 59, + 33,244, 58,225, 61, 63, 86,193,204, 4, 39, 15, 31, 86, 72,209, 60,111,249,177, +165, 41, 69,231, 64, 57,106, 64,148,105,123, 70, 79, 71, 45, 41, 29,225,218,213, +231,155, 6,203, 95,110, 89,194, 70, 57, 28,176,223,189,109,249, 75,127,200, 22, + 60,197, 79, 20,107, 0,139,223,111,246, 97, 36,168, 82,133,137,236,130,173,251, + 17,121,126, 39, 64,234, 11,230, 92,205, 32, 55,107,130, 27, 52,162, 51,150, 26, +196,252, 81,132, 56, 44,108,158,176,183, 73,123,149, 22, 74, 7,210,184,157, 58, + 3, 44,163, 9,250,131,130,161,208,189,195, 91,185, 87,255, 93,183, 65,254, 87, +236,211,117,191,174,105, 47,198, 29, 23, 40, 19,153,114, 27,209, 13,111,217, 71, +243,243,243,122, 58,242, 2, 28,136,136,100,169,197,101, 93,229,140,223, 54, 18, +252, 89, 21,197, 21, 63, 41,219, 84, 57, 52, 33, 87,199,112, 94, 77,200,129,134, +209,141, 20, 44,178,123,115,122,221,227, 32, 7,242, 35,218,178,174, 76,226,178, +230,181,126,175,231, 40,103,221, 85, 33, 30,230, 92,151,109,148,231, 30, 80, 68, + 80, 12, 90,255,152, 73, 54, 81,229, 4,211,241, 78, 50,146,183, 17, 56,130,184, +206, 83,134, 64,156,174,119,247, 48,129,227, 1,180, 14, 9, 18,161, 87, 88, 60, + 54,170, 31,168, 6,137,139,163,105,176,108, 56, 22,197, 91,248, 50,135,145,155, + 7, 43, 41, 35,163,200, 5, 59,149,105,142, 31, 26,234,183,118,148,174, 0, 87, + 61, 84,249, 51,151,115, 10,183, 9,253, 65, 71,187, 47,208,173, 79,125, 40, 59, + 81,208,241,247, 39,166,117,197,147,105,139, 33,140,156,232, 8,131, 1,206,108, +148, 1, 20,110,173, 76,131,211, 43,246,164,191, 87,182, 84, 62,158,161, 69, 45, +189, 94, 24,157,161, 79,224,233,163, 17, 79,166, 87,157,107,125,115, 75,201,171, +162,111, 60,186, 78, 90, 49, 72, 61,220, 87, 52, 53,213,137, 26,174, 61,177, 82, + 41, 82,127,100, 47,133,216,193, 5, 8,187,161,205,128,220,113,193,121,224, 22, + 55,169,159,194,133, 10,132,214, 83, 45,170,174,209,196, 9, 79, 39,237,168, 14, + 24, 83,224,212,154,236,203, 80,105,162,174,108,217, 81, 76, 28,209,209,167,230, +250,133,174, 8,166,162,192,196,255, 20,244,115,159,115, 67,118,212,191,104,112, +216, 97,217,186, 15,159, 67, 12,101,171, 50, 8,158,238,114,159,195, 68, 56, 55, + 61,196,250,110,235, 67, 40, 56,135,104,249,242,173, 9,166,175, 78, 85, 42, 95, + 94, 19, 3,151,224, 69, 78,169, 12, 57, 47,176, 93,191,167,192, 42, 88, 15,194, +212, 28, 55,169,183, 32, 73, 25,172,219,147,218,228,125,248,177, 42,154, 15,247, +147, 65, 39,248,238,173,129,176,141, 82, 70,114,118,205, 78, 7, 30,159,104,189, +109,233, 9,198,202, 59,117,119,108,247,155, 50,156, 13,229, 18, 39,217,250, 11, + 47, 32,149, 30,108,146,150, 93, 24, 58, 56, 94,207,253,157,191, 35, 54, 61,179, +187,152, 32, 88, 44,105, 0, 1,217,168, 39, 48,176, 82,212,219,187, 13,218,125, +174,167,249,162,158,236,129,180,118, 16, 2,250,214, 70,132, 24,165,214,167, 45, + 27,192, 92,199,211, 84, 47, 78, 27,207,129,200,169,156,153,234,102,242,144, 97, +244, 1,170, 62,121,107,204,188,228, 16,234,230,204, 72,228,132, 64,242, 18, 56, +207, 83,146,248,113, 67,250, 70,142,161, 14, 45, 35,183,166,226, 36,228,113, 45, +137, 90,150,104, 23, 5, 67, 14,159,112, 76,196,233, 49,191,203,231, 74,254, 41, +148,119,225, 19,228,130, 91,186, 14,228,240, 18,182, 52,103, 43,228, 23, 52,184, +244, 56,160, 95,109, 13,194,253,244,183,190, 5, 25,166,227,130, 63, 57, 85, 29, + 63, 24,156,116,102, 38, 64,147, 28, 9, 13,196,151,242,136,255,140,105, 27, 71, + 50,108,196, 21,147, 26,232,115, 56,142, 25, 97,111,185,113,226,198, 61,206, 46, +227,109, 92,144,177,113,111, 35,243,139,251,243,158, 67, 47, 46,118,173, 12,119, +113, 64, 51,183, 92,250, 81, 62,105,175, 10,106, 44,116,100,126, 30, 15, 89,235, +236,200,143,184, 25,176, 27,144,235,140,194,104, 70, 84,173,198,164, 69, 34,171, +156,110, 11,207,122, 94, 3,229, 23, 64,208, 18,225, 2, 47, 95,178,104,205, 20, +234,133,196,211, 45,192,190, 41,235,219,186, 3, 59,153,110,158,198,239, 59, 64, + 82, 55,173, 13, 72,139,175,126,123, 99,174, 51,194, 64,193, 55, 56,204, 55,223, + 10,134, 15, 91, 5,211,108,156,126, 60,140,159,112, 11, 39, 43,100, 53,174, 52, +173,207,230,232,173,230,184, 97, 12,148, 34,241,148, 37,222,242, 38,222, 42,143, +206, 63,208, 56,116, 80,206, 93,119, 79,215,251, 72,148,143,234,206, 24, 21,252, + 40,242, 78, 29,114, 14, 62,200, 25,203,247, 51, 31,166,150, 32,224,134, 55,138, +142,206,240,250,235, 98,200,189,134,163, 61, 51, 26, 32,126,210,231,245,111, 26, +160,193,208,130, 16,182,151, 94,200, 79, 68, 42,144,102,131,232, 15,114,150,163, + 69,228,221, 68,114, 38, 17, 23, 94,146, 15, 75,133, 4, 27,220, 21,152, 74,157, + 20,221,208, 66,118,189,135,164, 53,148, 97,156,209, 27, 37, 72,148, 79,246, 63, +243,105,168,167,191,142,170,224, 23, 4, 69,161, 13,252,123,100,216, 58, 84, 63, + 53,123,233, 53,134, 59,128, 47, 61,246,225,139, 90,200, 97,221, 32,168,199,224, +220,140,108, 39, 92, 3, 78,135, 69,225, 2,107,188, 20, 91, 37,151,246, 56, 28, +216,241, 20, 2, 36,173,125, 54,204,222, 37,163,237,247, 24,114, 91, 13,233,247, + 23,216, 97,200, 51, 94,173,240,174,201,202, 4,197, 78,229, 8, 25, 74,117,100, + 66,209,213,117, 92,215, 85,190, 5, 72, 62,134,128,135,118,124,109, 45,106,209, +117, 32,218, 48,100, 94,228,116,137,246, 40,210,212, 50,253,135,100, 64,169,157, +208, 0, 40,213,167, 54,164,184,150,220,122, 44, 29,118, 57, 73,144,127, 80,179, + 80, 59,168,161,182, 95,234, 98, 44,151,211,214, 2, 95,166,110, 60,124,202,176, +169,170, 59,248,202,157, 72, 56, 61, 87, 38,182, 9,167, 67,241, 0,142, 94, 51, + 68, 89, 94,124, 14,147,196,243,182, 34,164, 25,231, 15, 97,129,104, 91,132,169, +237,154,125,198, 9,136, 30, 25,140,187,245,250, 58,230,178,176, 28, 72,148, 34, +235,202, 97,251,181,136, 53,109,222, 94,121,212,234, 85,128, 22,169,143,249, 81, + 96,175,199,102,168,182,108,254,226, 47,132,143,116,239,139, 88, 72,188,126, 2, +185, 59,212, 95, 80, 47, 10,183, 71,221,146,230, 62, 77,214,185,247, 0,166,239, +217, 45,255, 29,244,169,194,175,167,128, 30,224,111,203,234,128, 53,108,146, 29, + 15,139,208, 94,120,142,255, 81, 47, 81,167, 8,176,209,230,252,197, 74,208,195, + 49,247,206, 9, 16,194,212,223, 52,201,121,224, 11,173, 1, 26,196,163,140, 23, +158, 12,156,244, 88,209,146, 26,149,168, 32, 1,112, 36,180, 45, 20,144, 15,133, +109,185,227,246, 49, 54,160,190, 10,239,197,231, 65, 46,187,232,110,237, 72,249, +120,252, 3, 43, 25,219,248,238, 18,101,224, 75, 76, 56,226,208, 52,244,132,153, +193,121, 8,227,231, 71, 2, 56, 14,247,228,143,221,200, 1, 28, 21, 90, 37,193, + 51,212, 66,240, 97,128, 32,155, 41,238,215,196, 34,135,121, 84,118, 7,215,172, + 6,238,187,214, 83, 28,150,151,175,192,227,152,223, 85,143, 92, 75, 41,119,158, + 48, 52,252, 11,155, 18, 61,216,227, 61,252, 85,164, 38,120,164, 91,145,125, 64, + 88,255, 47,253,155,100,254, 12, 9,126, 48,241, 22,239, 92, 90,221,222,119, 45, +192, 19, 55,247,208,249, 88, 50, 39, 56, 11, 83,242, 84, 14,102, 38,232,150,141, +107, 16,177, 76,198,193, 16, 17, 22,146, 90, 1,208,221,121,240,242,168,194, 92, + 31,228,246, 91,226, 20, 92,130,104,138, 14, 10,124,209,126, 81,106, 52, 55, 78, + 0, 88,123,231,251, 22, 91,153,109, 18, 20, 46,178, 0, 10,241, 64, 78,137, 7, + 57, 9,196,232,225, 52, 55,149, 62, 84,215, 30,233,101,167,242, 92,218,115, 18, +200, 65,141,107,161, 49,109, 51,144, 25, 28,207, 39,125,202, 45,196,253, 86,106, +172,220, 73,239,143, 22,233, 13,157, 64,196, 58,212,102, 80, 54,172, 80,153, 17, +101, 0, 32,189, 22,185,203,121,242,121,135,132,143, 32,158,198,119,248,129, 93, + 41,132, 28, 17, 93,161,238,151,225, 5, 32,246, 63,169,249, 47,169,234,228,167, +179, 72, 29, 19, 8,119,116, 19,203,139,219, 58,155,152, 59, 88,172,198,173, 2, + 76, 40,150,136,218,139,212,249,224,208,179, 53,122,198, 84,101, 29,146, 27,177, + 89,176,205, 90,207, 71,170, 21, 13, 46,111, 58,154, 83, 38, 61,117, 76, 44, 80, + 37, 8, 23,164, 89, 80, 69, 22,210, 38, 71,185, 90,194, 50, 36,228, 46,110,164, +167, 8,244,145, 75,111,156,240,169, 35,152,167, 62,160,227,234,141,219,198,164, +144,192, 67,220, 29, 78, 44, 37,233, 38, 48,120,212,245,230,182, 20,252,128,162, +168, 77,172,198, 37,157,206,124,106, 93,164, 45, 35,199, 3,140, 34,100, 28, 83, +218,230, 9,121, 19, 81, 63,118,255,197,195,242, 46, 9, 68,105,135,240, 11,247, +115,162,255, 96, 62,185,184, 8, 38,108, 85, 96, 75, 73,237,225,203,160, 80,104, + 59,141,245,232,169,213, 71,166,207,203, 63,254,107,154,181,181,108, 39,188, 49, + 69, 64, 21, 19, 56,195,122,205, 82,216,172, 94,226,246, 86, 53, 26,201, 33,214, +145, 0,117,107, 29,213, 99,145, 60, 94, 77,113, 85, 99, 18,166,204, 18, 33,230, + 35, 35,163, 84, 88, 77,145, 74, 28,218,201,201,130, 66,128,229,245,212, 5,128, + 66,161, 40,174,135, 2,186,150, 57,182,255,137,135, 99,226, 7, 2, 63, 6, 76, +195,177,137,103,128, 54, 14, 58,229,141,254,244, 82,187,105,115, 54, 15,174,236, +119,105, 34,159,110, 26, 17, 30, 45,120, 48,128, 12,156,136,178,129,187,146, 35, + 34,217, 4, 88, 7, 21,138,248,172,200,147, 19,157, 81,252,126,207, 78, 73, 16, + 96,120, 82,187, 92,158,209, 15, 77,183,222, 42, 9, 68, 72, 81, 13,129, 11,239, +184,169, 30,126, 66,173, 60,213,205, 45, 57,156,240,132, 4,105, 14, 2,176, 51, +205, 78,218,238, 12, 65,191, 85, 24,212, 40, 49, 21,189, 95,184,226,189,156, 30, +128, 6, 18, 45,203, 9, 20, 89,217, 32, 65, 50, 71,143, 58, 75,108, 63,224,130, +243,177,171,105, 10,228,208,186,139,142,224,249,205,122, 59, 42,135, 4, 59, 68, +162,103,229,240,206,225,167, 69,122,207,220, 88,102,152, 11, 22,156,162,206, 14, + 58, 66,224, 15, 0, 96,144,230,104,100, 95,176,191,148,133,144, 86,236,193, 74, + 6,113, 98,110, 10,159,215,117,169,136, 94,215, 6, 29, 20,111, 54,124, 79, 90, +240, 27,166,241, 29,181,228, 84, 58, 98, 25, 45,108, 33, 23,253,108,195, 9,179, + 20,162, 41,181,233,183,154, 30,181, 93, 27, 54,161, 95,161, 74,214, 74,115,214, +169, 55, 69,119,174,169,101,203, 84, 94,133,226, 98, 2,105, 58, 32, 48,134, 35, +132, 1,209,199, 7, 95, 11,165,231, 81, 68,113,216, 3,236,221,221,210,106,112, +100,215, 29,190,207, 29, 19,193, 58,126,105, 69, 99,164, 72, 51,197,219,106, 55, +230,155,227,193,113,143, 10,141, 14,189,240,132, 79,206, 4, 1,144,237,237,244, +252, 28, 80,143, 33,179,111,203, 54, 92, 90,225,110,163, 44,226,120,208,175,175, +132,243,252,183,235,206,254,164,147,103,235,123, 25, 84,100,194,164, 19, 66,177, + 79,135, 86,174,230,188,211, 53,230,187, 30, 52, 15,210,192,136, 59,188, 27,180, +150,122, 78,248, 79,103, 81,154,123, 44,231, 12,206, 10,245,165, 45, 29,111,178, +143, 52, 31,165,169,162,176,154,205,102,150, 30,202,173, 23, 27, 79, 2,145, 65, +122, 62,107,168,202,198,145,243,198,110, 23,194, 22,162,181, 16,143,177, 71,171, +228,201,154,255,159,240,133, 37,230, 97, 69,137, 63,245,183,222, 39,233,116,213, +253,134,107, 30, 23, 95,148,178,184, 11,106,132,100, 52, 68,221,248,254,169,158, + 81,184,223, 44,164,221, 62,121,191,188,228,147, 28,144,214,235, 44,213,173,194, +196,220,117,201, 69,237,214,162,187, 24, 57,246,211, 40, 61,132, 41, 38, 21,222, +216, 19, 85, 25, 97, 40, 83, 54, 90,254, 30, 60,225, 25, 58,225, 81,210, 14, 39, +213,177,125,220,194, 41,114,102, 26,146,186,135,174, 52,228,131,206,155,142, 85, + 11,170, 66,163,126,168,235, 27,212, 18,117, 34,173, 99,111,232,245, 64, 86,127, +248,233, 37,105,116, 50,106,115, 84,177,100,199,116,213, 93, 59, 63, 50,146,144, +252, 16, 56,173, 71,120,218,168, 35,160, 28, 6,225, 68,103,109, 15, 29, 42,149, + 39, 71, 44, 41, 59, 78,172, 32,123,202,207,198,132, 37, 67,118,240, 94, 26,180, + 16,162,232, 96, 69, 14,140, 90, 31,202,198,219, 99,110, 51,220, 97,183,141,191, +183,185, 22, 58,151,213, 13,228,215, 73, 42, 97,242,214,147,156,100, 5, 47,108, + 81,209, 22,167, 17, 97,192, 41,181,235,171, 10, 93, 40,134, 19,146,147, 87,238, + 53,151,243,117,177,112,222, 93,152, 93, 4,186, 51, 19, 18, 96,132,218,103,194, +121,247,251, 97, 86, 56, 71, 76,196, 15, 91,135,198, 71, 8, 79,193,229,163,102, +176,212,115,238,240, 12,185,102,229,166, 82,161, 95, 53,151,226, 56,176, 25, 15, +114, 0,245,122,126,121,199,225,142,203,118, 61, 70, 65, 38, 9,136,219,220, 90, + 15,190,251,146,215, 50,137, 13,132,121,144,170,134,116, 58, 63,188,179,142,195, + 90,213,102, 21,254,185, 76, 36,195, 63, 2, 58, 28,106, 78,222, 40,227,210, 73, +111,210,215,191,101,236,177,209, 38,133,151, 37, 52, 45,198, 23, 86,235, 13, 89, +171, 69,163,114,231,173, 14,135,174,224,223, 96,139, 75, 68, 21, 30,204,254,172, +228,223, 64,162,233, 88,253,230, 25,133, 77,241,202,116,198,246,135,189,175,245, +123,116, 49,165,231, 66,209, 5,150, 12,194,157,183, 65,242,229,189, 64,122, 61, +193,142,235, 70,236,142, 45, 76,115, 32, 84,200, 59, 9,219,184,163,158, 83,221, +139,148, 46, 72, 87,224,254,248, 83,238,109,198,225,108,172,150, 5,233, 44,172, +102, 4, 67,144, 5,206,105, 23, 37,236,233, 30,137,167,106, 22,149, 73,188,163, + 85,153,140,196,118,236,255,168,246,171,184, 58,126, 43, 7,206, 95,115, 29,111, + 99,231,180, 5, 68,234,135,145, 90,101,244,169,224,109, 69,241, 98,226, 10,227, + 49,248, 21, 76, 88,121,252, 63,224,209, 76,145,173, 18,132,139,226, 27,173,228, +145,113, 49,208, 5,195, 81,157, 55,142,154, 1,212,109,105,173,148, 41, 22, 59, + 91,154, 8, 16,192,174, 37,149,102,125,145, 13,192,199, 74,221, 65, 17, 8,109, + 81,137, 35,109, 24,100,179, 83, 98,116,124,230, 4,192, 48, 27, 68,145, 36,105, +184, 29,163, 17,243,189, 34,182, 1, 42,244, 24,180, 76,163,139,131, 49, 78,132, +212,253,212, 70,216, 88,223,211,111,128,145,158,145, 3,204,212,215, 69,236,141, +201, 3,234, 90,130, 65, 52, 62,160,223, 86,161,251,200,118, 54,211,204,223,208, +179, 90,183,104,129, 7,149,108,162, 33, 91,147, 69, 47, 23,145,142,246,104,146, +104, 70,238,122, 48,209, 15,166, 64,182, 0, 49,251,227,225, 48,232, 4,136,232, + 30,144,132, 78,187, 75, 99, 62,225,203,167,176,107, 39,124,124,177,238, 24, 41, +220, 97, 31,232, 50, 82,233,122,118,217,115, 77, 87,164,165,245,235, 39,194, 90, +160, 26,141,237, 40,116,229,251, 28, 51,235,178,110, 40, 61,214, 13,187, 43, 87, +154,121, 85,165, 66,226,230,248, 47, 15,100, 14,229, 38, 43,221, 69,190,198,162, +234, 39,216,235, 33,183,219,109, 92,199, 87, 37,248,159,182,196,142, 23,113, 84, +127,152, 28, 89,149,195,158,222,183, 3,162, 39,178,159,225,249, 3,128,151,103, + 36,168, 62, 45, 62, 33, 16, 18,115, 83, 58,245,155, 60,117,201,207,204,145,242, + 95,224, 10, 63, 36,109, 60,129, 16, 77, 95,215, 22,199, 51, 56,184,234,143, 39, + 57, 43, 18, 26, 9, 60,246,160,187,109,116,119,243, 61,232,224, 51, 33,107,239, +180, 7,159, 21, 76, 97,237,189, 70, 8,126,174,157,120, 95, 4,238,239,113, 28, +236,243,194, 94,227, 16,232, 98,216,117, 77,205,134, 64, 24, 79, 83,233,212,249, + 79, 28,186, 55,246,131, 82,120,116, 27,155,249,160,244,254, 80, 56,175, 56,130, +210, 20, 38,117,202, 65, 68,121,144, 39, 60, 0, 63, 63, 17,175,183,120,163,194, + 73,139, 96,200, 86,117,198, 36,225,131,156, 58,110, 37,247, 67,136, 87,169,113, +207,152,116,210,191,124,241, 18, 62, 78, 40,248,182,236, 28,133,154,211,100, 0, +159, 39,184,193, 13,105,225,150,206, 98,208, 25, 75, 88,239, 73,138,217,137, 61, +133,199, 46, 20, 12,201,110,114, 23,163, 9, 66,228,253,211,225, 11, 42, 62,196, +102,120, 55, 70, 5, 29, 51,191,252,221,207, 14,152,228,157,212,215,182,233, 89, +185,179,103, 94,144, 72,244,130,131, 50,166,148,169, 92, 11,190,211, 36,171, 33, + 89,132,240, 57,210,148,138, 53, 81, 65,184, 39, 52,121,224,220, 70,112,134,169, +250,151,166,240,171,123, 47, 14,168,120,201, 21,113,215,175, 87, 37,171, 2, 17, +213,136, 6, 18, 78,112, 4,180, 78,249,123, 12,174,104, 6,192, 76, 42,254,183, + 66, 36, 65, 24,156, 32, 57, 41,129, 2,216,239, 68, 90,194,230,102,220,244,112, +177,119,131,139, 7, 46,146,118,236,212, 48, 50,133,181, 38, 58, 43,132,118, 83, +192, 51,140,201, 86, 83, 90, 75,227, 57, 73,121,215,255,115,139,138,242,235,134, +158,163,136,118, 92, 80,197, 14, 94,143, 60, 70,149, 18, 29, 57,105,182, 93,145, + 67,186, 39, 46,238,128,142, 68,129,121, 69, 6, 43,128,203, 98, 30,179, 63,191, +189, 8, 38,162,230,251, 25,189,237, 37, 0,163,228,206, 37, 30,119,165,150,106, + 57,218,149,144,249,135,141, 78, 83,200, 44,119,185,134,204,189, 51,137, 46,240, +104, 60, 48, 85, 61, 39,128,193,228,197,211,215,154,108, 73, 49, 80, 30,226,196, +218,184,109,163, 39,108,129,163,156, 54, 11,136,117, 82, 86,208,214,117, 41,175, +116, 98, 47, 68,211,109,240,255, 32,143,249, 66,122,206, 51,234, 47,247,104,247, + 62,152,223,112,226, 80, 49,136, 97, 54, 94,175, 22, 90,159,209,243,149,235,182, +233,241, 19, 52, 77,118,190, 75, 90,132,178, 44,206, 4,204,247, 54, 4, 5,116, +191, 18,112,120,232, 9,203,170, 93,242, 99, 51, 11, 75,133, 13,162,194, 68,180, +220,123,117,147, 40,155,115,136,237,118,143,239, 7,105,186,139, 89, 56,130,215, +157,128, 65, 69, 7,168,156,231,149, 40, 46, 88, 35,160, 27,250, 57,111,236,222, +129, 94,132,107,242, 18, 67, 88, 78,161,241,130,137, 32,203, 46, 32,191,135, 18, + 20,219,157, 94,195, 24,193, 37, 83,125,253,176,244, 42, 10,240,108, 41,154, 92, +135,218,131, 38, 65,140, 37, 57,103, 2,240,105,238, 24,242,184,136,165,108,192, + 22,243, 80, 35,100, 95,151, 8,160,237,218,186,162, 81, 90, 7, 71,152, 79, 24, + 20,191,102, 19, 37, 29, 94, 36,101, 51,119,113,172,123,179,137, 66, 19, 65,198, +203,194, 14,238, 65,223,100, 44,238,166,198,166,141, 6,244,226,116,188, 60,180, + 44, 54, 29, 78, 3, 37,129, 57,161, 70,246,133,103,156,163,158, 85, 98,218,152, + 94, 57, 33,160,108,201,210,192,172,252,242,224, 33,253,128,164,198,142,103,140, +143,170,195, 29, 73,236,211, 59, 79, 99, 28,177, 25, 97, 83, 88,112,232,209, 78, + 68, 59, 14,197,175, 46,236,152,236, 98, 76, 30,113,177,215,171, 39,222, 38, 26, +126, 52, 40, 35,121,121,195, 81,121,104,120,161, 68,230, 34, 79,239, 90,216,136, +182,191, 8, 95,220,113, 26, 31,110,161, 52, 64,176,106,254,109, 20, 21,148,209, + 99, 26,151,155, 92,114,195,187,125, 8, 31,129,188,114, 66,138,125,189,152,211, +170, 28,239,117, 88,148, 33, 24,105,241,241, 52, 55, 78, 16, 13, 48,168,194,185, + 47, 68, 3,141,227, 73, 73, 25,224,225, 59, 10,163,123,209,176,102,120, 22, 64, +126,224,147, 69,159,177,110,183, 3,116,234, 28,192, 48, 36,215, 52, 13, 14,138, + 22,161,120, 75,185, 83,252,242,129,223,200,174,143,116, 92, 1, 42,103,196, 19, + 41,192,240,108, 3,250, 31,141,146,212, 35,245,104,138, 81,190,178,156, 50,111, + 1,189,255,118,143,244,230, 0,223,157, 36,227,247,168, 33,219,166, 40,186,174, +115, 1, 36, 1, 63, 1, 47, 1, 10, 88,244, 78,180, 36,182, 22,151, 89,234,191, +166,111,125, 69,241,180,122,159, 80, 71, 43,250, 20,179,244,108,170,208,159,160, +155,114, 76,223, 16,235,252,166,199,131,132,100, 16, 19, 36, 63,137, 98,102, 61, + 48,249, 68, 99,175,158,181, 46,247,163,230,123,166,247, 76, 38,136, 21,175,233, +241,122, 99, 19,165, 69,246,145,175,169,191,194, 88,204,229,104, 29,205,219,228, +254, 89,128,122,145,103,215,159,255,230, 50,156,212,145,189,121,131, 50, 8,217, + 97, 19,160,210, 4, 8, 79,228, 76,102,139, 12, 75,139, 81,159, 37, 70,173, 95, + 85,159,202,252,228, 91, 17,139, 86, 89,108,252,164,209,198, 21,218, 79,150,220, + 88,228,111,150,148,223,208,146,225,173,112,201, 86,165,138,122,141,169,113, 44, + 97,143, 51,121,106,211,142, 52, 14,173,123,249,218, 26,167,151, 3,114, 8,153, +101,153, 70, 6,201,215,117,105,153,187, 6,246,216, 68,119,197,171, 53, 48,234, +190, 25,247, 43, 28, 75, 18,230, 8, 78,250,118,210, 6,149, 30,217,194, 19,110, +150, 37, 75, 66, 50,246,112,188, 36, 18,251,229, 57,246, 80, 57, 95, 60,158,244, +182,163,180, 98,170,106,122,169, 87, 76,173,102, 90, 75,254,158, 71,165, 94,114, +239, 49, 30,198,195,120, 24,143,212,213,171, 86, 57, 34,209,202,189, 66, 41,128, + 2,213,227, 75,185,128,255,134,222, 56, 56,227,183,164,198,118,164,239,152, 79, +255, 71, 4, 82, 81,156,239, 58, 7,208,218,255, 43,199,243,169, 30, 27,145, 63, +165, 69,147, 2,187, 85,148,107,153,127, 27,200, 33, 67,219, 1,174,145,197,254, +215,212, 86,239,108, 53, 78, 8, 51,136, 23,222,255,201,182,150,202,201, 68, 38, +218, 7, 60,221,124,154,157, 79,109, 8,111,104,203,113, 28, 59, 13, 0,128,199, +182,207,224,123, 2,137,199,219,124, 18, 66, 30, 39,147,169,213,100, 32,235, 56, + 73,193,111,175,125, 70,153,165,255,246,161,144,128, 28, 16,252, 58,237,235,124, + 76,150, 28,101,157,143,161,106, 72,219,158, 34,152,196, 83, 27, 66,223,130, 87, + 65,207,198,171, 9,223,197, 4,223,197,148,241,200,176,209, 29,133,154, 73,240, +220,243, 50,109, 37,150,175, 83, 43, 89, 40,195,225, 52,132, 72,250, 28,179,133, +206, 39, 67,177, 51, 54, 79,152,150,224,217, 92,192,134, 17,222,186,204, 6,153, + 10,248,169, 84,151, 38, 77,249, 36,165, 79,105,208,228,123,226, 52,104, 54, 95, + 3,135, 32,227,192,129,108,203,178, 75, 67,205, 66,109, 43, 30,203, 12, 10, 50, +224,135, 96,219,144,211, 14, 9,229, 3, 21,181, 69,128, 21,172, 92, 50, 55, 44, + 37,159,133,163,137,232,188,142, 23, 1, 59,175,121,170, 6,228, 36,100, 13, 85, +227,185,148,251, 49, 12, 35,184, 60,116, 66,224, 7,208, 93, 29, 1,192, 8,159, +244,241,120, 60,200,128, 71, 62,195,176,158, 74,170,250,206,191, 58,149,221, 87, +158,187,123,245,149,175,127, 42,253,247,185, 79,118,196, 93,149,226, 65, 41,251, + 66,173,235,244, 82, 64,120, 3,116, 89,129,237, 41, 52, 45,105, 67,236, 1,214, + 21, 80,177,174,135,104,206,138,158,251,130,180, 28,167,127,133,163, 2,173,132, + 21,239, 28,150,195,241,112, 60, 69, 34,159, 85,197,170,110, 94,180, 67, 83, 18, +253,110,135, 14,125, 41,172,134,124,247, 21,117, 77,150, 19,234,202,248, 1,252, + 70,136,190,163,200,110,125, 55,182, 21,223, 89, 79,125, 25,203, 70,103, 81, 20, +197, 80,168,163, 0,214, 80,117, 8,133,188,251,234,186,174,207, 68,211, 82,150, +181,205, 82,103,217,195, 95,100, 89,239,127, 89,161, 15,189,101,158, 34, 43,181, +100, 40,107, 11, 52,225, 34,139,116,165,118,103, 11,253,214, 44, 77,129,167,172, +221, 26,107,141, 67,191,162, 21,243, 21,223,202,252,230,242, 0,224,178,100, 64, +206, 67,200, 3,241,141,204,179,212,221, 78, 47, 5,214, 5, 47, 34, 68, 89,140, +106,220, 22, 68,184, 44,146,111,197,189,126, 64,227, 48,241,205,210,234,124,191, + 77, 39,162, 62,100,202,221, 17, 16, 64,112,109, 43, 11,187, 53,135,100,101, 75, +243, 44, 83,150, 84,129, 20,216, 44,115, 73,185, 30,173, 53, 93,248,234,206,159, +170, 1,233,198,109,220,198,109,156, 38,209, 36,154,196,236, 58,179,235, 76,252, +221,128,251,119,239,213, 64,154,166, 30,203, 26, 71, 27,241,188,132,141,219,184, +141,219, 56, 77,162, 73,210, 90, 75,249, 61, 47, 97,227, 54,110,227, 54, 78,147, +104,146,243,252, 72,164,105,117,158,216, 98,220,120,132,211, 39,237,201, 59,208, + 68,200,225,192,245,252, 52, 61,211,138,224,105, 9,251, 99, 44,233, 56, 49,133, +224, 32, 43, 74, 48, 59,201,211, 51, 48, 25, 25,151,140,203,211, 80, 30,126,209, + 35,182, 20, 94, 93,168, 10,215, 29, 38,177,190,188,238,183,252,152, 82, 69,168, +194,199,249, 47,127, 62, 89,238, 72,105, 44,189, 18,174, 46, 84,166,153,214, 39, +254, 32,201, 62,137, 38,246, 7,105,190, 57,231, 5,142,101, 19,126, 71, 89,167, + 65, 58, 44, 43, 51, 70,185, 62,195,115,227, 44, 90,210,219, 92,180,142, 5,172, + 15, 12, 94,173,100,144, 10,162,106,190,148,175,146,222,152, 92,134,159,229, 2, + 82, 42,237,215,167,176,169, 22,103,203,230, 3,109, 46, 10, 95,229,242,218,229, +157,146,203,107,148,113,120,195, 42,204,183,203, 88,188, 34, 74,162,253, 4,147, +201, 84,202,165,163,198, 49, 87,154,242,248,196,138,206,238,191,146,254, 91,210, +105,180,118, 95,145,246,223,218,138, 42, 87,143,247,209, 61,106,165,114,138,188, + 90,215,216,109, 14,144,147,168,212,217, 86, 41, 27, 18, 0, 20, 0,179,178, 0, + 8, 10,139,141, 69, 18,137,156, 7,138, 82,123,148,128,199, 67,149,140, 9,137, + 20, 3, 6, 3,211, 96,224, 0, 12, 18, 3, 3, 48, 1, 6,128, 16, 2, 6, 0, + 64, 0, 3, 32,128, 3, 1, 73, 35,242, 1,144,198,118,200, 75, 37,144,105, 6, +161, 76,127,238,121,247, 38,234,224,135,128,201, 86,203,136,224, 11,189, 98,220, + 54, 0,133,198,120,224, 72,210,131,202,198, 20, 80,244,175, 65,112,219,217,116, + 65, 12, 51, 68,183,141,100,174,216, 76,235, 7,222,113,186,190,128,180,228, 62, + 94, 11, 28,216,133, 47,191, 70, 11, 4,137, 93, 0,180, 19,186,184,128,110, 31, +212,187, 64, 20, 39,184, 40,136,129,208,133,218,243,175, 7,106,231, 12, 72,152, +237,234,130, 23, 32,119, 73, 1,187,155,251, 10, 96,250,174,111, 9,176,135, 61, +171, 65,254,217, 11,177, 60,184,174,248,116,171, 33,128, 62,206,159,192,240,120, +163,121, 56,159,108,251, 6,195, 24,142,214,169,228, 15,140, 64,122, 68, 35, 12, + 79,125,147,138,251,224, 72,193,136,166,209,194,148, 20,249, 97, 1,146,109,217, + 43,135, 33, 53,250, 51, 52, 96, 90,172,180, 7, 9,186, 55,175,101, 12,245, 74, + 34, 67,157, 74,138, 49, 80,133,115,107,163,135, 50,212, 27,185, 12,245,213, 54, +210, 75, 89, 8, 96,154, 41, 30,214,129,116, 60,114, 32,192,195, 79, 0,247,201, +177, 58, 5,105,135,114,245,149,163, 84, 82,174, 41,255,148, 82,241,194, 54,169, + 90, 42,147, 28,165, 25,106,160, 36,244, 64,145, 38,208,248, 74,223,160,200,154, +103,112,231,100, 30,176, 85,200,250, 16,232,125, 54, 40, 40,146,104,101, 14,154, +176, 65, 53,138, 47, 27,184,115, 40,212,253,195, 98, 68, 48,121, 63, 52, 83,232, + 69,125, 46,190, 1,186,206,188, 2,137, 56,110, 15,124,218,237, 44, 38,204,182, + 3,160,113,112,233,173,201, 25,203, 51,238, 57,210,102,128,225,112,139, 68,102, + 34, 9,164, 4,165,209,233,174,200, 87,240,137, 68, 23,144, 28,192,164, 33, 63, + 9, 38,241, 66, 18,229,244,198,182,144,175,189, 6,113,244, 34, 47,206, 34,132, +246, 87,105, 38, 25, 62,120,164,248,117,161, 32, 29,167,207,241, 69, 48,140,112, +243,241,214, 13, 66, 92, 33,244,169,176,181, 5, 89,150, 60,105,248,194,228,111, + 23,133, 80, 34, 17, 54,143,180,162, 43, 62,113, 71,230,140,149,132, 23,107,213, +174,106,113,198, 34,139,170, 31, 30,166,150, 97,106,136,112,158,112, 50,110,235, + 92, 37, 98,172, 29,183,179,149,180, 43, 98, 35,215, 82,250, 87,145, 46, 9, 35, + 43,157,189,233, 41,137, 35,118, 84,185, 26,197, 50,164,241, 30,193,132,139,226, + 76,161,242, 14,192, 37,132, 78,176,212,228,232,227,102, 16,102,126,244, 61,157, + 1, 13,226, 40,128, 18,190, 94,188,217,128,118, 40, 37, 81,108,108, 16,100, 61, +178, 75,134,169, 1,236,144,105,152,132, 80, 9, 33, 65, 19,141, 58, 68, 55, 30, +194, 49,136,236,137, 71, 21, 21, 17,225, 49,148,146,104, 8,199, 63, 93, 5, 15, + 80, 23,198,111,202, 29,136, 11,227,246, 8, 41, 5,238, 25,129, 47, 32,104,175, +104, 82,128,165, 86,160, 13,140,239, 0, 57, 46,136,162,205,136,208, 26,107,175, + 86,173,107,130, 32,171, 18,193,195,205, 13,217,254, 50,142, 88,145, 96,146, 65, + 59, 54, 88, 74, 83,173,118, 94,107, 88, 64,227,168,211, 16,214, 80, 27, 42,222, +157,202, 63,195,105,152, 32, 62, 44,106, 96,216,131, 82, 80,192, 74, 85, 69, 67, + 9,226,218,100, 48,133, 65,176, 24,211,194, 13,150,245, 66,212, 33,140, 8,217, + 43,164, 22,132,101, 9,226, 83,200, 66, 96, 17,134, 8, 84,161, 99,242,142,164, +214, 12, 70,216,136,180,245,129,160, 49, 97,147, 92, 41, 21,172,181,254, 80,168, + 10,211, 66,160,120, 15,161, 18, 65,151, 54,216, 57, 66,244, 15, 67, 56,218,213, + 98, 79, 48,130,100,158,117, 92,144,107, 18, 21, 6,186,188, 44,185, 99,193, 66, +220,250, 13, 41, 2,216, 87, 55,244, 12, 86,155, 77,129, 11, 66, 40, 60,128, 73, + 62, 9, 97,186,201, 94,114,244, 2, 65,119, 56,179,214, 8,118,216, 20,145, 8, +104,100, 38,126, 48, 52,183,214, 84,198,236, 17,195, 33, 43, 17,221,217,104, 79, + 93,137, 69,155,196, 25, 0, 46,141,106,112,242, 68,246, 98,142, 3,119,242,246, + 93, 9,245,211,141,100,139,147,201, 1,116,180,248,221,223,119,204, 55,223,119, + 31, 90,205,235, 86,107,155,167, 52,251, 71,241,167,179, 31,253,174,249, 78, 74, +126, 80, 84,235, 68,147, 33,239,164,233,254,250,154,229, 69,190, 12,149,122,161, +232, 5,119,246,183, 64,203,149,233,157,118, 74, 21,134,150,118, 3, 3, 31,110, +117, 92, 39,114, 2, 80,185, 25,129, 74,242,148,148, 93,185, 36,138, 20, 8,140, +103,162,123,112, 13,174, 9,142,233, 99, 81, 76,204,161, 25,195,152,165, 22,252, +148, 57,152, 47,249, 17, 5, 93, 90,201,130, 88,253,175,183,238,103,218,184,112, +235,229,242,134,217,146, 61,142, 30,112, 45,126,127, 18,184,123,176,210, 50,209, +190,249,151, 79, 75,172,213, 1,131,184,108,228,228,192, 64,160,122, 69, 59,189, +112,214,176,130, 53,160,196,107, 75,242,215,104,110,102,241,145, 38, 45,227,181, + 79,154, 70, 73,220, 9,125, 44,231, 21, 68, 4, 58, 75,138,150,158, 12,183, 85, + 13, 70,247,145,109, 59,176,133, 75, 61,203,129, 32,143,128, 5,105,247,149,218, +158,232,156,183,188,105, 79, 47,168, 23,196,121,179,204,246, 14,188,138,166,133, +121, 88, 89, 13, 39,142, 99,160, 21,115, 13,158, 44,106,187,183,103, 82,162,100, +209,197, 48,165, 99, 66,101, 7, 13, 73,131,172, 72, 34, 35, 60, 5,179,208,222, +226, 3,232,179,143, 72, 2,229,230,223,100, 38,236, 24,180, 14, 92,162,212,125, + 36, 53,242, 92,198, 97,119,232,106,252, 73,198, 82,213,134,120, 49,125,198,141, +131,156, 39, 10,224,191,103,193,113,115, 3,201, 96,219, 3, 53,148, 0,138, 34, +165, 66, 30,113, 95,195,129, 51, 39,145, 73, 8,197,157,230, 15,208,223, 7,130, + 60, 53,180,108, 88,220,140,248,184,253, 6,210,163, 33,131, 14, 1,241,236,103, +161, 56, 18,255, 90,223, 45, 86, 12,172, 74,176,154, 22,137,198,141,230, 13, 18, +240,144,174, 8,168,133,155, 67, 94,235,184,250, 1,255, 20,201,137, 77,174, 26, + 93, 48, 8,223,250, 22, 6,225,128,163,168,152,169,219,255,163, 58,162,141, 69, +193, 3,130, 11,162, 51, 94, 32, 43,232,175, 39, 18, 25, 24,226, 30,220,225, 40, + 24,170, 66,169, 13,189,177,110,233, 10,240,186,242,115, 78,208, 9,249,225, 50, + 78,130, 83,194, 86, 6,210,163,149, 23,174,204,236, 33, 78,193,210, 74,142, 19, + 16, 19, 24, 24,116,211, 30, 22,236,204, 19,181,118, 37, 61,209, 36,110,125,214, +178, 52,199,115, 82, 36, 72, 76,132, 13, 40,227,121,137, 78, 49,190, 50,179,118, + 4, 84,145,112, 97,131, 5,128, 2, 42, 23,169, 32, 57,128, 21,162,196,252,126, +234,170,171, 0, 87, 85,122,234, 57,128, 86,191,168,128, 17,117, 8, 85,105,240, + 75,227, 61,133,119, 62,103, 36, 36, 20, 32,248,110, 56,218, 17,195,102, 42, 85, + 63,207,225, 2, 10,160,249,180, 41,113, 95,250, 83, 68,135,214, 65, 68,111,139, +140,160, 82,214, 44,190, 7,172, 57,138, 31,147,250, 26, 20,204,179, 77, 95,113, + 90, 8,254,198,234,102, 90, 77,150,123,198,208,181,243, 11, 82, 33, 39,242,129, +135,151, 32, 70,216,164,166,145, 3,134,242,120,228,226,147, 23, 21, 35,191, 68, + 10,167,165,183, 14, 15,102, 61,235,118,121, 66, 68,235,167, 41,136,179, 66,119, +183,187, 98, 89,229,146, 27,243,158,228,216, 9, 68,217,168,136,128,237,253, 14, +239, 68, 34, 67,228,127,172, 88,176, 12,180,124,202,175,244,216,236,253,254, 51, +233,250,129, 92,149, 24,182, 70,147,142,238,250, 26, 65, 9,176,252,224, 59,184, +168, 50,207,141, 76,145, 42, 23,149,165,247,226, 91,120,123, 81,200,139, 64, 84, + 13,121, 86,152,212,143, 38,170,112, 0,172,174,123,227, 15,244,150,161,148,160, + 56, 71, 91,217,203,187, 23, 14, 33,207, 2,253, 46,129, 86, 13, 62,158, 77,132, +109, 78,192, 75,147,138, 15,155, 86,133,120, 1,184,188, 50, 54,160,175,230,247, +161, 50,177, 33,210,182,198,133, 59, 16,208,233, 43, 69,157, 33, 45,225,196,114, + 33, 50,155,139,251, 4,113, 33,238, 19,130, 35, 72,198, 26, 69, 72,100,125,224, + 84,123,158,125,217,151,223,249, 83,197,239,143,133,182, 63,176,147,112, 82,195, + 58,165,212, 52,200, 2,163, 68,137,192, 54,222,103, 94,195, 70,193,240,250, 39, +114,150,121,169,245, 9, 32, 48,217, 57,226,163,213,197,200,120,229, 24,238, 7, +110, 82,200,102, 55, 41,138,158, 77,103, 73, 14, 99,187,219,226,218,169,190,146, +212,244, 89,102,234, 72,235,111,173, 55,134,190, 44, 85, 88, 7,219,173,240,221, + 28, 80, 61,142, 72,165,240,255,198,177, 46, 65,244,184, 81,245,199,207,131,201, + 72,113, 40, 24, 43,192, 8,181, 7, 99, 82, 22,215, 5,147,163, 70, 82,125, 19, +216,206, 28,107,125,178, 90,212, 37,208,129,125,209, 16,128,222, 49,219,133, 82, +207,252,101,208,100,204, 85, 85, 5, 64,121,140,211,138, 89, 80, 82,189, 80, 80, +237,125,183, 63,110,204, 23, 72, 18,145,174, 81,163, 76, 13, 82, 32, 7,233, 5, +216,109, 92,253,149,186,196, 24,147,138,204,146, 99,111, 94, 15, 29, 68,143,138, +116,238, 97,220, 55, 43,156,176,195,162, 57, 76,210, 83,176,239, 1,150,243, 87, + 5, 38,238, 84,103, 72,222, 27,181, 38,125,163,215,140, 20, 91,151,188,202, 49, +134,106,182,189, 34, 49, 79,222, 5,181, 21,226,123,115, 32,193,105,242,151, 8, +185,188,137,248,205,199,137,192, 91,136,197,148,242, 67, 80,183,190,115,114,157, + 16,157,245,144,207,165,109, 69, 10,161, 55,112,139,141, 19, 34,193, 41, 57, 26, + 99,162,241,174,195,236,236,213,139, 35,169,250, 9,146,126,166, 10, 84,230, 26, +128,228,144, 76, 61,154,192, 89, 85, 77, 17, 50, 90,226,115,161,176,188, 87, 81, +191,174,249,224,182,133, 18,157,164,135,101,242,238, 71, 6, 6,149,107, 74,128, + 73, 67,208, 94, 44,134,168,197,138, 5,176,139,185,105, 79, 19,198, 9, 57, 92, + 97,191,158,140, 65,214, 79,102,239, 97,146,110,175, 23, 91, 71,239,127,157,102, +221, 19,231, 58,175, 3, 6,157, 51, 74, 54,186,146, 39, 66,249,109, 42,112,107, +202, 5, 39, 55,198,174, 51,207,115, 54,135,175, 62, 93, 70, 62,184, 52, 69, 62, +127, 75,248,144,137,103, 5, 17, 35, 25, 57, 43,178,178, 18, 19, 29,125,160,177, +203, 68,160, 67,114, 16, 84, 0,190, 69, 49, 55,193, 2,203,125,152,138, 53, 72, + 83,118, 71,163, 81,111,178,239,190, 71,131,204, 72, 71,228, 84,218, 22, 86,153, +203, 40, 58, 37, 43, 94,100,137,102, 91,193, 46,206,157,248, 91, 61, 18, 39, 47, +122, 11,139, 74,174,150,147,139,241, 63,126,104, 36,249,156,236, 50,166,251, 68, + 39,152, 42,183,237, 79,117,185,169,206,184,143, 48,222,103,183,246,255, 50,136, +239,254,108,225,224, 37,160,195,224,162,251, 17, 51,165,212, 76,132, 22,185, 14, +163,222, 32,158, 12, 32,236,132, 38, 1,216,105, 39,203,255, 37,178, 16, 35,176, + 48,167,232, 83, 10,122,176,137,183,132,131,131,130,167,118, 65, 27, 37,195,156, +171, 70,168, 57,103, 77,116, 16,181, 51,170, 34,202,138, 66, 95, 18, 5,249,212, +208, 63,229, 7,241,164,223,144, 15,185,175,146,252, 64,163,176, 68,168,219, 70, +121,148,161,119,106, 37,184,253,122, 2,200, 74,250, 19, 88,252,112, 42,128,239, +217,172,176, 19,240, 29,152, 8,148, 22,220,154, 38,211,104,132,157,233,130, 62, +255, 20,203,132,250, 88,158,243, 79, 37,239,159, 48, 2, 27,111, 9,230,131,234, + 13, 86,171, 10,203, 91, 16,173,186,137,254, 31,173, 19,203,190, 32, 45, 24,243, +232,148,202, 92,222, 62, 23, 39,194,107,185, 68,160,200,197,142,249, 90,116,244, +133,108,216, 43,170, 47, 33, 88,228,175,160,103, 53,119,106,172, 57, 45,161,155, +179,205,118, 85,104,205,149,183,243,141,108,112, 55, 0, 50,149, 73, 36,182, 33, + 7, 91,151,106, 15,223, 8,167, 25, 12, 71, 24,124, 20,137,165,198,244,218,116, +188,247,230, 14,140, 46,112,244, 54, 56, 40,138, 13,245,120,220,144, 17, 52, 1, +212,210,122, 3,169,201, 19,121, 5, 44, 22,146,176, 16, 85,240,183,152, 95,163, + 92,215, 86,184, 57, 89, 72,231, 27,104,204,109,204, 54, 29,130, 46, 71,163,221, +110,187,139, 4,141, 73, 42, 81,147, 63,139, 45, 0,195, 56, 62, 20,249,240,158, +129, 11,213, 57,196,194, 99,220,108, 62, 64,186, 62,168, 36, 5,141, 98,179,129, +198,254,167, 64,243,169,128,129,179, 51,173, 53,222,224,100,200, 53,210,197, 62, + 85,157, 23, 54,171,147,126,245,168,110, 87,133,249, 45, 59,247,148, 9,117, 10, +103, 93, 33,173, 93, 55,153, 2, 91, 97, 46, 46, 48, 75,225,168, 90,213,239,143, +111,147, 98,134,229,213, 67,194,242,169,241, 10,249,105, 37,252, 52,114,108,231, + 81, 96,208, 16,228, 70,140,113,148,132,168, 26,152,140, 34, 88, 25,239, 62,108, + 75, 1,149,169, 76, 51,103,232, 94, 42,138, 1, 55,164, 21,223,208, 14,160,102, +142,233,184,133, 7, 93,170, 22,195, 16, 78, 37,122,241,208, 90, 94,148, 35,196, + 39,107,161,191, 28,137, 70,167,191,104,134, 61,189,127, 82,148,208,160,181,185, + 74, 88,241,102, 24,238,218, 66, 44, 51,255, 14,106,223,229, 80, 45, 93,130,184, + 81, 45,130, 56,145,216, 72,203, 60,104,105,207, 64,177,142,130,175, 45,133,108, + 35,213,172, 34,252, 12,230,201,165,244,237, 3,169,233,154, 90,174,244, 75, 45, + 52, 40, 43,141,208, 44, 54,176,139, 15, 38,154, 69, 43,146,197,160, 5,201,239, + 66,176,152,165,179, 45,168,165,105,112, 43,212, 26,170, 72,253,181, 19,165,177, +160, 0,198, 51,163, 0, 7, 3, 69,251,152,251,207,206,228, 51,215, 84, 17, 21, +252,106,154,106, 80, 63, 51, 85,166,130,178,112, 72,228, 82, 15, 68, 89,183, 60, +132, 72,219,178,102, 25,183, 74,249,168,151,182, 61, 95,235,225,108,162,167,231, + 83, 98,236,252,108,146,205, 52,209, 74,163, 68,195,114, 49, 32, 69, 10,153,248, + 77, 9,252,227,109,198,165,112, 78, 35,141, 61,253,221,224, 18,182, 75,219, 13, + 81, 66,188,172,202, 91,163,118,132, 7,163, 76,132, 1, 9,130,155,105, 86, 35, + 4,126,188,121,178, 92,147, 36,131, 68, 51,179, 92,153,176, 16,177,104,169, 4, +188, 34, 42, 2, 50,173,238, 28,134, 13, 86,125, 37,199, 56,169,238, 99, 41,212, +111, 78, 29, 5, 51,121,216, 40,197,102, 27,140, 98,148, 18,133, 1, 33, 6,161, +210,135,179,191, 4,194,167, 16, 14,184, 41, 25, 85,178, 2, 58,107,216,130,149, +138, 57,233, 85,227, 3, 25, 88, 42,238,222,180,109,179,145,170,206,224,254,158, +124, 37, 62, 4,205,123,245,230, 84,130, 15,181, 87,182, 84,180,184,133,147,236, + 62, 46, 35,162,108,183,213, 26,153,185,104, 93,180, 64, 9,187,153, 2, 57, 37, + 38,192,185,250, 60, 28,189, 52,111,174,238,180,206, 78,119, 92,244,237, 78, 87, + 58, 84,153,117, 12,180,169,244,157,243,246,174, 43,157, 86,108,151, 58,161,224, +177, 92,133, 71, 65, 87,219, 57, 59, 71,192,172, 22, 85, 94,203, 9,210,139,148, +113,250, 62, 7,147,153,173,157, 67,122, 93,208,249, 18, 30,184, 60, 42,240,139, +184, 47, 91,221, 92, 96,116,164,135, 26, 20,253,252, 14,212,222,126, 59, 40,102, +175,121, 73,124,161, 89,217,125, 52,222,204,214,121, 87,129,136, 2, 81,231,227, + 26,169, 8, 69, 15, 58,144, 25, 4,204,198,216,137,152, 7, 79, 24,173,186,200, +195,141,106, 92, 33,183,230,104, 77, 46,159,182,203, 80, 68,193,181, 44, 46, 50, +127, 69, 84, 74, 32,253, 90, 41,251,102,191,131,218,246, 94,216,159, 50, 73, 32, +217, 23, 8,210, 65,139, 96,232,165,235,141,218, 61, 61,202, 19, 55,107, 46,219, + 0,250,190,163, 54, 78,122,175, 84,224, 70,197,180, 79, 52,150,170,239,174, 84, +188, 75, 18,204, 82, 79, 38,232,211,195,231, 49, 0, 37,240,233,214,193,208, 30, + 18,214,130, 8, 14,246, 45, 84,220,149,119, 82, 39, 24,214,171,228, 54, 47, 94, +224,244, 49, 91,178,122,220,232, 63,203,168,152,161,182,243, 29,165,234,230,153, + 78,101, 45,105, 96,162, 15,155,166,185,146,196,191, 88,249, 68,105, 17,187,200, + 22, 29,246,205,231, 71, 40,218, 33,161, 70,167,169,121,132, 74,198,164,110,209, +205, 82,176, 90,252, 84,144, 29,227,140,209, 30,141,214,210,173,186, 58,231,194, +210,176, 13, 83,168,246,218,192,231,143, 68,232, 55,225, 23,140,190, 79,149,154, + 95, 41,102, 37, 48,104,105, 2,255,211, 97,145,218, 60,155,253, 8, 58,215,129, + 31,173,119,112, 21,193,181,234,237, 74, 59,177,246,216, 75, 42,166,186, 13,204, + 85,130, 57,217,120, 56, 11,206, 87,102, 98, 2,145, 88, 44,223,156,217,150, 99, + 69, 61, 62, 49, 27, 78,186, 68, 82,107,240,225, 2, 23, 21,153, 74,137,117, 44, +216,185, 98,244,181,236,117,182,217, 42,152,209,118,234,207,164,191, 18, 83, 3, + 97, 0,173, 15,185,202, 99,232, 23,255,238, 92,117,204,145, 34,191, 43,184, 59, + 7,151, 35, 80, 39, 79, 77, 82, 65,191, 21,230, 54, 75,237, 93,146,145, 1,100, + 50, 51,112,167, 46, 8,160, 20,241,161, 19,166, 38, 22,164,171, 12, 43, 11,214, + 15,145,169,171, 70, 56,232,147,223, 18, 99,168, 34, 10,242, 26,226,182,196, 26, + 32,122, 93,209,148, 64, 56,194, 11, 3,193,158,160,132,112,106, 2, 5,201, 65, + 91, 46, 19,243, 9,190,131,167,172,215, 12, 50,223, 66,242,230, 40,143,137, 42, + 48,124, 31, 21,229,120, 45,157,226,183, 19,180,225,186,186,163, 99,190,178,175, +201,218, 79, 47, 63, 8,132, 66,122,162, 70,171, 71,134, 97,254,187,234, 29,245, +133, 46, 33,105, 36, 98, 66,197, 5,197, 29, 86,248, 83,228,189,216, 34,255, 94, +221,206,168,154, 79,101, 72, 8,140,123,184,248,150, 9, 76, 48,156,218, 96, 27, +220,156, 27,206,226,204,107,125, 15, 96,197, 15, 78,218,105, 37, 48, 96, 11,170, +208,102,143,196,165, 94, 58,219, 81, 25,173,147, 86, 8,132, 4,200, 51,199, 64, +175, 93,251, 8, 96, 54,158, 23,232, 1,220,111, 48, 66,116, 90,131,139,100,141, + 14,139, 45, 23,224,173,236, 30,169, 4, 80,209, 45,127,166, 3,243,153,166,113, + 80,220,229, 40,243, 39, 55, 30, 42, 20,213,117, 51, 92,136, 19,209, 30, 2, 41, + 55,185,155,225,200,184,105,113, 47, 34,178,155, 92, 81, 24, 12, 39,230,109,218, +246, 20, 75, 40,222, 96, 27,194,121, 16,189,107,177,132,186,191, 32, 89,103,154, +114,125,170, 57,145,101, 50,126,173,147,154, 7, 45, 86,156, 18, 65, 90,251, 3, + 25, 16, 62,157,137, 72, 9, 64, 81, 16,166, 52,127, 96, 46,229,200, 5,117, 25, +223,148, 52,101,126,211,254, 50,137,191,117, 95,243,160,195,176, 30,202,128,251, + 97, 94,125, 67,168, 26,208,176,248,129,172,123,200,238,128, 91,211,174,208, 57, + 36,160,107, 64, 24, 13,137,247,195,231, 38,177, 9,113,157, 59, 8, 39,125,231, +181,105,191,100,167,233, 37,102,172,132, 47,167, 68,164, 62, 53, 75,187,190,253, +229, 53, 8, 30, 81, 55,246,144, 28,210,128,110, 39,245,249,139, 60,232, 60, 72, +141, 12,186, 10,176, 20,152, 1, 82,242,100,222, 70, 12,200, 66,247, 81, 10, 17, +148,135,248, 64,253,240, 64, 24,132, 61,199,228, 10, 96,106,254,178, 66, 91, 85, + 3, 11,104,113, 80, 85,204, 38, 80, 6, 17,207,162,252, 88,207, 45,207, 7, 0, + 75, 98,221,108, 58,132,151, 22, 27,144, 56, 29,148,200, 5, 56,101,143,207,183, +217, 59,250, 50,154,164,229,162,143,131,144,142,134,158,117,210, 20, 4, 79, 6, +161, 14, 83, 26,154, 40,210, 34,196,133,131,149,129,250,198,200,139,189,164, 98, + 13, 92, 49, 49, 99,168, 3,221,144,169,216, 4,166,187,146, 36,247,209,249,118, +154, 30,103,102,146,174,232,224, 93,109,196, 80,174, 28,149, 58,175,105,155,145, + 13,133, 31,162,211, 59, 86, 63,168, 2,226,224,141, 4,218,128, 82, 40,135,201, + 3,175,210, 17,152,124, 14, 75, 15,160, 9,124, 46,104, 69, 16,127,194, 65, 48, +235,128,139,193, 92,224, 0, 31, 82,201,161,223, 8,108,100,186, 56,221,185, 12, + 13,210, 18,172,248,104,198, 1, 97, 43,146,240,240,173,163, 49,233,221, 3, 28, +222, 42,252,192, 49,187,171,109,115, 68,166,232,180,193, 29, 66,138, 15, 35,202, +131, 69, 66, 12, 27, 15,214,231, 32,158, 65,117,131, 81, 24, 59,136,127,243,133, +180,231,223,205,234,113, 9,199, 95, 23, 87, 53,245, 94,192, 25,160,140, 18,130, + 98,234,114,232,114,201,155,101, 64, 96,187,107, 66, 55,146, 18,226, 24, 83, 56, +139, 24, 94,235,194,165, 22,254,218,176,164, 29, 47,121,224, 75,135,144, 12,178, + 57,194, 84, 7, 82,231, 67,185, 24, 49, 15,197,254,138, 73,181,128,106,228,115, +236,234,108, 42, 79, 64,105, 43,225, 78,162,242,166, 79, 5, 98,208,101,164, 48, +168,244,223,146,146,131,142, 15, 62,242,142, 78,167, 92,163,138, 94,224,160,204, +219, 73,250, 77,143,241, 15,128,140,128, 99,119, 18,168,157,241, 38,182, 4,124, +132,171,200,172,122, 56,157, 22,121, 22, 98,114, 22,113,217,128, 21,171,120,131, +135,140,115, 25, 19, 87,241,103,132,253,138,248, 12,161,204,143, 9,221,221,171, + 54, 65, 48,205, 89, 98, 54,169, 88,252, 97,250,200, 30,195,157,177, 37, 50,245, + 96, 94, 94,183,130, 93, 18, 49,157,113,173,221, 87,208, 82, 19,104,187,222,157, +227,175,232, 14, 68, 68,144, 97, 95,111,166,132,152, 10,131,174,164,146, 30,171, + 1,235, 26, 39, 22,189, 54,112,226,114,101,143,251, 81,185,128,132,108,123,216, +175,116,168,117, 34,126, 69,121,129,247, 26,141,234, 65,174,216,225, 44,104, 2, +221, 96, 44,150, 47, 84,225,254,142, 9, 19,170,255,196,211,221, 46, 62, 18, 63, +196,204,221,201, 86, 88, 96,126,193, 79,244,161,229, 22, 30, 59,104, 57, 52, 32, +134,138,161,193,108, 89, 13,231, 37,216, 45,156,181, 29, 55,102,148,230, 92,200, + 60,191, 57, 57,135, 10,142,153, 31,180,135,205,117, 41,115,135, 56, 85, 57, 12, + 1,208, 26, 95,227,102,223,196, 41,128,104, 32, 7, 43,106, 85,105, 0, 56,132, +148, 49,216, 84, 34,108,240, 66,150, 25, 34,241, 57, 12, 36, 48, 45, 4, 61, 51, +160, 64, 42,170,107,155,132,116, 21,222, 2,218, 16, 63, 86, 49,127,143,236,189, +196,163,170,218,226, 95, 82, 70, 7, 32, 77,209,185,137, 25,159, 68,129,216,165, +215, 82, 55, 30, 68,183, 21, 89, 22, 39,132, 99, 14,253, 30,198, 98,105, 20, 56, + 73,164,249,222, 43, 74,149,113,225,111,195,188, 0,167, 54, 29,251,165,214,100, + 39, 47,161,113,167,224, 28,125,227, 54,162, 77,249,153,214,199,206,146,145,149, + 48, 87, 76,229, 27,190, 63, 53,137, 1,106,141, 20,159, 32, 86,121,219, 72,130, +199,184,234,205, 92, 0, 94,253,142, 70,209,145, 86,133,249, 75,224,155, 9, 52, +162, 43,157,184,166,222,249,125,236, 57, 91,158,234,139,121,137,141,179, 59,179, +162, 36,202, 29,252, 77, 29, 49, 64,233,163,255, 39, 30,248,177,141, 78, 0,166, +241, 9, 89, 95,132,164,146,112,144,171,123, 41,132, 78,130,122,210,162, 56, 84, +171,100,205,118, 8,196, 75, 22, 79,103,172, 32,231, 92,237,210,181, 83, 90, 69, +143,185, 31,101, 81,216, 52,188,157,106,112, 88, 43,131, 63,144,199,238,158, 27, + 42,220,123,171,227,143,239, 79, 4,168,127,156, 35,182, 68,215, 33,243, 83, 73, +105,240,143, 38,110, 72,108,195, 57,141,108,204, 43,251, 95,125,212, 11,225,170, + 20,161,165, 8,201,178,195, 77,101,134,245,156,234, 10, 77,125, 65,188,192, 22, +201,184, 72, 99, 34,145, 12,100, 89,227,161,163,229,106,103, 4, 55, 40,110,247, +234,250,217, 62,239, 73,165, 93,142,238,116,131,141,219,152,173,147,220,214,254, +188,178, 99,148, 11,108, 17, 36, 25,142,184, 19, 8, 70,101,141, 61, 42,178, 32, + 31, 71, 84,180, 48,106,157,179,222,182,127,203,233,193, 11,242,154,238,202,250, +200, 85,243, 5,200,224,147,180,107,103, 98,163,231, 27,236,193,137,120,102,127, + 8,183,252,197, 15, 8, 43, 70,203,247, 11, 6,156,165,243, 60,164,205,213, 12, + 6,171,192,126, 33,219, 5, 32,149,127,215, 91, 14, 68,198, 59,105, 36, 38, 40, +102, 98,237,199, 6,119,143,212,116,192, 89,185,148,112, 98, 18,225,207,101,202, + 37,157, 5,226,202, 31, 90, 12, 48,118,169,116,150, 90,144, 28,147,203,149, 13, + 88, 83,135,241,105, 1,209,254, 37, 72, 59, 63,161,174, 54,221,162, 92, 66, 76, +110, 9,138, 28, 39,218,228,114,100,240, 25,147,239, 7,248,203, 76,171,165,117, + 41,185,144,111, 49,247,124,244,202,146,191, 24,118,190,172,227,200, 19, 27,227, + 79, 22, 49,215,106,153,220,108,122, 88,162,139,159,192,169,236,195,111, 93, 93, + 55,208,231,211,150,214, 11, 4, 23,224,139, 7, 15,218,166,143, 84,189, 57,171, +117,149, 45,142,205,183, 60,231, 66,204, 79,202,249,158, 13,110,205,234,213,215, + 35,236,190,135,120, 60,228, 66,171, 96,175,183, 37,125,186,158, 10, 30,215,240, +251, 33,177, 59, 22,171,228, 1, 27, 1, 75,143, 93,112, 46,110, 17,103,203,217, +158, 68, 5, 82, 70,122,218, 24,113,208, 44, 6,246,237,214, 27,143,146,100,167, + 68,195,249,199,186, 5,156,198,120, 11,213,121,112, 44,134,184,201,207,223,224, +192,241,190,102,144,140, 20, 57,182, 4,185, 7, 70,239, 44,106,189,229,237, 66, +101,225,218,211, 55,205, 83,142,197,220, 8,243,186,124,145, 67,243, 76, 90, 28, +234,154, 12, 51, 90, 12,174, 16, 87,110,126,141,123,138,211,139,142,250,228, 72, + 54, 69,170,225,231, 5,194, 73, 5,196,179, 6, 24, 78,229, 93,152,188, 90, 51, +164,208, 86,109,230,143,228,208,146, 68,139,226,150,121,135, 53,199, 54,190, 73, +140, 90,103,209,194,118,192, 50,194,108, 84,149,145,202,215, 42,140,164, 50,179, + 86, 72,206,101,247,217, 56, 71, 48, 41,198,146, 31, 99, 87, 89, 57, 68, 27,218, +185,202, 75,244,238,187,135, 89, 59, 67,146, 19,105,126, 59, 76,192,102,157,253, +253, 64, 7, 34, 90,172,128, 23,217,189,128,230,217, 51,128, 81, 48, 70, 2, 84, +183, 71,229, 14,227,249, 43,182, 1, 65,158, 68, 16,216,128,244,184, 15,190, 69, +157, 42,155,113,195,219, 11,102,143,203,254,170, 59, 67, 5, 36,205,241,188,228, +199,163,169,207, 41, 64, 26, 35,151,222, 13,206,232, 35, 54, 17, 31,156,187,181, +148,251,117, 5, 37, 59, 35, 43,126,131,146,201,189,182, 77,177,128,159,158,209, +234,222, 50,222, 81,167, 68,223, 55,103,121,158, 6,163,147,139, 85, 28,166, 36, +102,151,183,134,132,232,199, 68,187, 70,237, 66, 18,119,131,123,219,128, 72,128, + 71, 41,102,105,247,234, 57,163, 46,150,223,135, 62,207,122,151,252,214,162,247, + 25, 89, 76, 96, 64, 93,174, 50,124, 72,203, 34, 88,219,109, 29, 15,166, 47,116, +184,166, 19, 99, 14,127, 28,131,148,141,126,185, 6,241, 30,189,104,255,153,109, +239,224,252,198, 85, 71, 16,214,241,165, 68, 75,227, 29,222,211,254,151, 99, 64, +139, 72, 78,254,143,189, 56,200,166,211,200, 11, 62,168,138,122,140, 17,111, 31, + 3,195, 49,117,125,122, 56, 74,101,202, 82,102,195, 85,253, 61, 77,195,199,123, +108, 2,230, 7,183,224, 92,237,141,178,221,207, 23, 76,125, 39,104,157, 81,237, +180, 41,230,188, 37,215,149,120, 49,177, 75,219,158, 58,181, 27,158,126,128,100, +216,220,225, 88, 88,102,232, 63,133,250,242,175,145, 6,183, 67,155,104,238,122, +212,146, 72,238,121,148,243,135,141, 60, 76,128, 88,108, 10,102,136,161,148, 18, +178, 47,169,205,236, 13, 65, 52, 58,147,132, 27,232,220,158, 54,153,127,119, 41, + 99,113,167, 76, 57,144, 73,195,227,158,154,232, 81,145, 40,107,203,124,150,113, +215, 28, 44, 68, 39, 85,208, 95,160,220,239, 95, 92, 96, 43,186, 48,227, 98, 67, +225,163,226, 57,189, 98, 16, 18, 6,154, 87, 84,209, 91, 18, 44, 3,253, 53, 33, +200,239, 15,119, 2,207, 69, 81, 92, 23,198, 58, 11, 21, 16,229, 79,159, 60,164, +148, 70,128,169, 1, 94,235,139,123, 51,122,146, 25,232, 16,231,170, 27, 36,131, +178,174,177, 92, 74, 22, 71, 46,114, 84,157, 82,132, 50,170, 97, 97,221, 32, 89, +138,206,108,214,251, 65, 75,118,220, 12,238, 7, 67, 90, 63,219,212,153,192,173, +117, 43,140, 3,137, 76,158,148,104,144,166,146, 18,235, 72,182, 84, 65, 89,199, +125,215,212,189,245, 4,140,129,239, 88,107,120, 86, 6,190, 29,106,199,134,117, +117, 97,211, 30,188,127, 76,201,170, 19, 37, 97,245,163,111,234,123,138, 13,126, + 68,213, 73, 2, 76, 82,171, 53,133,238,200, 42, 7, 96,132, 4,148, 80,208, 5, +123, 17, 76,156,248,193, 14,179, 12,234,182,141,138, 73, 68,111, 93, 72,141, 61, + 35, 9,112, 18, 99,226, 92,223,133,165,161,184,211,146,198,232, 37,139,166,134, +186, 83,199,233,120,244, 36, 92, 31,129,140, 54, 21, 65, 97,104, 78, 78,233,192, +145,183,216,187,102,169,246, 53, 71,202,211,196,161,179,135, 75, 58, 93, 61,173, + 32,176, 92,232, 49,245,168, 1,195,239,107, 36,157,176,210, 0,165,200,207,226, +201, 87,192,177, 84,182,165,173, 29,246, 66,234,199, 97, 12, 38,161, 44,190,199, +195,246,211, 3, 24,224,131, 4,142, 86, 8, 93,131,234,214, 21, 83, 13,124,135, +103, 56,128,105, 98,181,141,248, 92, 10,109, 28, 0, 58,237, 45, 35,118, 77,152, +196,147, 12, 38, 49,252,216, 22,123,106, 60, 74,222, 17,120, 60,240, 77, 92, 11, + 42, 38,179, 28, 43, 18,223,210, 65, 40, 19,112,133, 63, 82,130,101, 10,171, 85, +135, 10,230, 59,228,189, 64,157, 0, 41, 63, 34,152,122, 81,253,183,167,100,183, + 77,157,241,232, 28, 45, 53,156,216,127,212,209,119,161, 16, 45, 22,137, 45, 25, + 56,115,202,143, 40,158,219, 48, 13, 48, 29,169,171,122,241, 8,215, 35,151,210, + 93,149, 4, 14, 49,135, 98, 21, 84,239,128, 30,130,140,203,176,167, 80, 49,244, +242, 43,245,213, 88, 66,248,117, 27,219,199,114,113,201,194,204, 80,193, 15,179, + 48,125, 51,152,244, 58, 75, 74, 40, 67,162, 41,192,161,146,232,164,148,161,188, +164,121,104, 20,133, 87,214,249, 66,149, 37,185,234, 65,133, 65, 4, 58,158,228, +180,120,189,200, 67,196,170, 74,202,233,229,135, 52, 34, 68,123,211,178,125,239, +250,250, 5,109,139, 29,186,146, 44,202, 58, 53, 17, 2, 74, 40,128,197,203, 59, +240,220,208, 32,122,192, 92,224,204,132, 41, 27,176,232,143, 33, 77, 38,132,225, + 67,167,149, 73,111,242, 36, 54,207,243,230,162, 18,115,100,103,141,225,117, 75, +192,130, 4,234,215, 68,152, 5,163,102, 73, 75,122, 87,162,251, 98, 97, 8,168, + 11, 42,242, 37,114,202, 84, 34,191,155,161, 94, 71,121, 19, 97, 5, 76, 47,223, +109,109,245, 83,135,224, 15,116, 5,180,118, 30,244, 41,149,252,187,233,175, 21, +132, 15,230, 31,181,239, 27,117, 76,224,214,240, 85,225,251,183, 59,136,182,188, +213,135,145, 45, 16, 90, 49,145, 98,120, 67,222,142, 78, 36,210, 4, 9, 42,105, +197,188,171, 43, 51, 94,137,216, 11, 13, 50,159,250, 82, 18,194, 26, 74,250, 2, + 56, 98,124, 59,106, 30,178,150,228, 59,153, 18, 44,196,104, 36,252,234, 25, 87, +153,100,153,126, 45, 20,103, 72,161, 78,180,162,123, 88,105, 74,222, 13,162, 33, + 21,134, 51,207, 2,217,177,168,174, 39,139, 8, 41,153,148,138, 6,117,119,139, + 18,151,104, 89, 60, 89, 74,106,130,133,124, 76, 1,249,156, 93,150, 56,207, 56, + 59, 13, 84,168, 28,183,132,131,170,180, 14,210,217,141,181, 28,234,232, 60, 33, +172, 44, 25, 99,230, 1, 83,234,242, 62,148,238,197,164, 40, 48, 33,139,252,232, + 68,231, 87, 18,221,150,163, 75,220,233,190,201,242,214,213,225, 98, 57,175,146, +137,251, 86,245,210, 13,151,248,220, 5,108,124, 25, 23, 47, 97,100, 50,124,232, +209,206, 68, 7,198, 69,160,136, 68,228,101,136, 17, 60, 73,144, 17, 58, 12,157, +228, 11, 20, 52, 13, 64,236,236, 45,255,165, 17,172, 91,184, 71, 27,190,110,161, +135,157,151,150,214,234, 49,226,219,146,157,218, 89, 18,161,122,125, 3, 11, 18, + 99, 18, 68, 78, 29, 31,134, 56, 77,196,197,241, 56,107, 49, 26,160,226, 4, 4, +242, 23, 95,184, 5, 66, 75,185, 51, 24,136,191, 11,131, 31, 59, 81,126,183, 9, + 86, 67, 97,144, 89,137,240, 37,162, 78,225, 40,134,163,133, 73,165, 4, 99,124, +192,191,104,121,165, 0,160, 19,153, 13, 20, 2,215, 73,162,232, 42, 64,199, 92, +166, 12, 14, 64, 96, 14,199,223,182,120,248, 66,248,107, 69,191,215, 18,190, 33, +229, 31,181,137,211,154, 48, 21, 81, 92,152,202,185,162,133, 5, 14,171,157,132, +208,202,212,206,112,170,235, 58, 50, 12, 14,241,119, 24,180,188,235,239, 71, 12, +138,204,119,171,177,122, 98,228,200, 20,213,226,214,174,251, 44, 83, 27,104,108, +221,140, 96, 6, 71,143, 93, 87, 63, 20,125,161,208,119,155, 46, 87, 62, 4, 53, + 89,219,215, 64, 52,195, 80, 31,254,236,184, 12,211, 64, 68,135,187, 94,165, 51, + 14,164, 82, 82,180,192,106,214, 41, 31,245,232,198, 29, 57,108,144, 44, 54,108, +108,136,207,228, 16,241,134,112,161, 11, 3, 38, 77, 12,139,169,145,150, 82, 34, +230, 0, 41,228, 79, 50, 1, 80,180,124,237,136,112, 17,103,175, 70,118,178,100, + 32,155, 51,164,144,127,107,203, 15,151, 71, 35,174, 97,212, 74,203, 41, 1,253, +224,125,136,177, 66,199,174,163,126,239,216,153,198,244, 88, 83,246,178,235,235, + 61,156,114, 68,170,203,102,202,215, 74, 82,137, 5,135,186,158,216,241,235,151, + 27,113,237,198,154, 80,134, 48, 23, 71,104, 28, 97,106, 17,243,229, 93, 16, 92, + 78,132,227,239,169, 19, 7,211, 15, 3, 27, 39, 70,149, 62,240,222,144, 29,127, + 15,121, 87,159,157, 93, 20,195,238,233,192, 58,212, 67,208, 22,135,205,143,100, +135,196,189, 19,172, 18,219,156,244,114, 92, 50, 63, 54,140, 68,151, 12, 84, 82, +208, 99, 10,187, 66,222,245,180, 29,161, 10,141, 31, 86, 34, 10, 57,136, 92, 94, +145,255,228, 32, 65,220,163,147,247,223,140, 29, 33,155,228,141, 23, 51, 38, 80, +183,249, 74,112,189, 40, 65, 21,111,145,117, 12,175, 61, 41,167,218,210, 63, 87, +131,222, 93,188,209,106, 49,123, 9,197, 20, 46, 83,179,215, 60,125,130, 30, 93, +112, 29, 14,122, 93,148,168, 27, 26,158,160,221,229,212, 62,110, 2,132,163,195, +128,179,218, 98,216,173, 23, 52, 9,102,182,149,108,112,190,237, 26,181,225,191, +203,165,194,191,130,105, 85,146, 29,235,147, 4, 23,192,113, 28,203,150,211,235, +254,192,188,137, 30,245, 77, 79, 68, 28, 94, 41,249,211,107, 95, 39, 50,145,136, + 35, 64,172, 95, 55,187, 4, 30,175, 91,224,106, 5, 71,213,226,203, 45,255,147, +213,150, 87, 58,210, 16,158,112,175,170,137,180,254,168, 70,254, 8,112,130, 59, + 12, 4,162, 51, 55, 30, 1,130, 73,115, 98,220,177,138, 74, 34, 89,113,128,148, +105,244, 59,125,124,186, 14,118, 39,164,215,134,167,233, 73,212, 4,245, 37, 18, + 20,172,150, 58,177,215,212, 28, 50,235,136,125, 32, 15, 43, 70,140,160,168,165, +209,141,190, 82,203, 86, 52,172, 44, 3, 57,254, 9, 45, 32,219, 0, 90, 28,181, + 29,160, 82, 34, 66,249,220,166,187,164,176,210, 26, 38,230, 70, 66,234, 23,251, +205,138,231,202,175,210,161, 67,255, 72, 8,171,143,183, 97, 72,252, 46, 39,122, + 38, 1,202, 12, 35,137, 76,128,133, 18,224,219,225, 16,198,210,149,226,139,148, +213,167,120, 38,103, 90, 40, 95,213, 84,146,134,237,132,181, 84, 32, 19,243,215, +181,141, 47,248,178, 13,121, 1,169,115,181,208,218,220,134,183, 22, 58, 8,195, +222, 55,185,193,205, 85, 65,202, 65, 52,217,244,114,190,193,251,134,117, 60,250, +250,124,115,176, 61,235,127,112, 22,136,214, 80, 7,214, 44,181,161,188, 1,250, +142, 77,166,125,178,250,217, 1, 62,158,253, 54,149, 8,203, 28, 24,126, 6, 15, +105, 69, 65, 59, 84,235,150,130,125, 66,189, 77, 28,106, 27, 72, 80,121, 92, 38, +128,115,144, 63,156,153,184,123, 45,130,235,126, 26,112, 97,200,192,102,232,254, +174,243, 84, 48,149,144,181, 11, 82, 51, 23,117,132, 8, 29, 84, 59,176,231,115, + 92,218,211,179,196,116, 71,217, 26,179, 30,128,138, 88,228,252,193, 58, 0, 30, +240,170, 67,234,209, 32,142, 9, 10,144, 18,160,120,145,235, 42, 80,121, 63, 73, + 88,128, 48, 82,120,175,170,233,163,227, 34,123, 88,148,226, 87, 13,232,133, 33, + 45,251, 21,166,107,166, 83,219,194,170, 91,230,238,191,148, 10,109,201,137,140, +115, 32,123, 10, 74,218,106,211,205, 16, 47,248, 23,196,120,167,115,204,224,120, + 2, 28, 59,151,178, 36,111, 51, 52,216,146, 97,242, 20,112, 47, 24,148, 36, 22, + 61, 12, 68, 98, 66,211,195, 13,197,107,166, 82, 28, 27,188, 43, 76,141, 68, 36, +202,194, 72, 81,161,157, 38,240,222,120,249, 0,194, 50, 6,170,183,116, 45, 36, + 16, 52,211,155,200, 77,176,191,117,100, 21, 90,252,148, 54, 15,252, 80, 1,102, +178,235,215,177,123,149,211, 69,122,229, 58,251, 21, 93,239,177,124,198, 26,120, +126,100,180, 45,113,231, 3, 18, 4,145,244,174,252,159,136,124, 39,215, 6,196, +233,198,113,156,202,106,200, 38,190,118,249,212,202,122, 98,137,150,235,241, 58, +120, 25, 87,248,209,180, 55, 50, 33,176,112,152, 69,164, 25,249,128,140, 2, 45, +182,108, 8,129,112, 97, 64, 73, 54, 27, 34,196,221,216, 42,138, 97,219,176,143, +181, 4, 57,142,180,173, 17, 34, 40,165, 8,248,180,234, 34,210, 92, 16, 36, 91, + 76,132,165, 95, 59, 83,100, 45, 76, 23, 23,200,156,158,166, 41,108, 30, 3,120, + 41, 65, 73, 83,114,253, 24, 53,153, 57, 11, 11,242, 43, 29,252, 2, 99, 84,158, +188,208,240,203,137, 25,124, 20,183,139, 22, 49,230, 32,188, 90,241, 58,185,208, + 24, 19,198, 1,115,239, 5, 24, 41, 77, 64, 88, 83,115,140,223, 9, 56,142, 69, +188,100, 78, 82, 81, 69,156,116,211,161,176, 59,209,188,101,227, 74, 87,190,107, +219,107,147, 16, 20, 31, 27,197,151,125, 54,139, 34,141, 90, 2,130, 95, 34,167, + 58, 66,147, 11,161,145,233,134, 63, 42, 58,196, 22, 37, 88,189,211,215, 87,210, +200,204, 11, 16,190, 53, 79,136,154, 12,212,239,251,109,164, 62,126,122,132,139, +196, 39, 21,195,164,219, 50,199, 31, 42, 68,189, 39,141,127, 46, 30, 53,165, 16, +233,114, 29,114,170, 21,120,134, 68,139, 37, 66,176,207,241,138,244, 95,105,178, + 2,130,110,133, 24,195,118,247,141, 24,213, 43, 33, 30,121,147,199, 12, 99,188, + 9,152, 78,113,122,167,113,121, 81,185,157, 3,174,203,249,145, 63,146,187, 70, +182,139,190, 4, 88,105,207, 65,235,100, 99,214,189,118,195,135,164,198, 51, 78, + 50, 21,140,135,245, 20, 18,106,123, 19,121, 33, 54,102,126,244,170,239, 40,104, + 50, 24, 94, 90,147, 18,115,186, 65, 12, 25, 4,110,207,232, 37, 94,193,226, 75, +183,220,128,138,118, 38, 88,197,248,140,139, 3,243,224,163,134,194,252, 70, 61, +177,115,232, 24,168, 82,148,135,184,249,127,101, 53,177, 95, 92,166, 1, 29, 39, + 79, 64, 61, 27,206, 49, 0,166,115, 93, 68,223,188,198,145,210, 54,166, 61, 12, +222,185,174, 87, 16, 70,205,202,203,234,207,129, 20,175,160,152,122,205,171, 69, +172,219,252,128,208, 15, 70,253,175, 54, 78, 72, 0, 82, 68, 18, 72,191, 76,184, + 85, 97,113,252,196,185,107,242,185,146, 8,130,140,133, 32, 82,153, 86,148,209, +176, 23,113,231, 64,126,176,111,242,165,130, 78, 59, 96,118, 30,185, 95, 7,215, + 35, 28, 59, 95,218,184, 71, 21,130, 39,139,121,174, 40,160, 98,190,155,253,122, +242,211,197, 84,250,145, 52, 70,151,113,172,139,146, 59, 14, 4, 27,108,212,201, + 48,160,248, 92,198,233, 3,236,194, 80,165,112, 12, 25,110,255, 95,186,227,238, + 56, 0,236, 45,158,247, 72, 52,207,246,182, 93, 51,131,219, 8, 61,130,118,191, +107, 95,157,179, 67, 91, 52,110,121, 45,177,151,243,232, 63,179,125, 89,211,141, +235,249,186, 42,217, 32,179,207, 59,179,163,173, 96,108,173,150,222,198,233,244, +147,120,125, 95, 83,215,234, 35,117, 71,193, 90,223,211,187,114,250,179,176,193, +225,125, 54,101,253, 61, 65,130, 66,100,209, 68, 18,196,128, 12, 25, 73,221,152, +235,195, 81, 29, 82,147,234,104, 47,168,128,130, 45,188, 64,245, 24, 30,144, 14, +156,250,108,233,171,240,230,212,100, 87, 18,181, 20,236, 34,102, 11,130,219,212, +211,205,228,211,132, 78, 52,239,110, 64,135,145, 39,118, 34,161, 9, 82, 75, 23, +180, 21,213, 40, 3,181, 52,145, 82,141,159,248,128,154,162, 54,199, 47,154,250, + 43,197,244,154, 20, 96, 32,152, 22,232,180,177,124,225, 97, 89,252, 9,156, 95, + 58,224,169, 56,122,105,144,209, 19, 22,254,111,251, 15,174, 97,193,175, 13,111, +183,233,115, 19, 84,151, 46,177,140, 91, 11,249,180,163,207,100,139,133,250,101, + 0, 71, 71,101,113, 34,109, 22, 42,180, 59, 68,208,254,110,162, 89, 80, 99, 99, + 37, 31,253,144,248, 51,219, 68, 79,192,249, 21,173, 57,192,108,109,243,139,230, + 46,197, 28,133,118, 53,148, 12,224,106, 58,203, 56,188,169,237, 31, 26, 14, 49, +115, 58, 80,124,100, 89,175,109,105,239, 18,141, 67,204, 57, 61, 40,218,248, 72, + 50,254,107,104,164, 19,236,134,139,125,130,159,213, 64,252,229, 24,109, 99,103, + 30, 21,166,228,240,191,194,205, 40, 22,108,121,194,162, 56,185, 56,225, 5,130, +140,229,186, 4,155,251,112,154,164,169,148, 60,191,220,190,132,180,204, 26,154, + 77,205, 88,240,224, 47,142, 21, 28,190,150,173,169, 65, 27,237, 84, 92, 15,216, +131,243,116,192, 20,156, 7,184, 64, 89,101,135, 81, 0,251, 48, 20, 94,164,147, + 72,251, 4, 5,143,167,150,115,134,145, 20, 60,178,128,125,128, 41, 78, 26, 81, +157,128,219, 49, 41,207, 78, 20, 18, 58, 22,197, 16,102, 3,214,205,229, 15,254, + 40, 84, 20,195,123, 95,175,121,214, 5,126,209, 34,242,202,123,106, 41,215, 10, +192, 37, 43,119,143,225,187, 37, 49,166,126, 84,151, 9, 35, 90,149, 59, 4,215, + 92,160,128, 40,219,203,176,226,226,154, 67,222,141, 58, 13,135,241,237, 62,188, +142,153,110,104,162,109, 69, 33,145,185,149,195,207, 93,123, 14,250, 20, 63, 89, + 86,202, 56, 62,126,181,157, 52,180,247,179, 74, 32,181,248,201,225, 11, 48,123, + 27, 96, 30,233,101, 35,158,163,216, 28,135, 32, 83,140,165, 76,135,114, 9, 15, + 60,128,189, 13,178,208, 90, 68, 54,150,229,176, 39,218,207,188, 99,104,254,179, +148, 22, 52, 33, 91, 65,118,216,195,254,216, 38,120,255,166,152,196,188,253, 51, +232, 8,116,221,145, 1, 63,246,106, 48, 36,216,251, 84, 5,239, 99,103,225,108, +233,221,129, 97,143,157,188, 13,159,156,183, 95, 26,192,176,225,104,230,232,249, + 10, 5,147, 81,156,203,215,189,151, 63,125,139,154,107,165,128,112, 35, 88,136, +126, 90,171,190, 88,139,236, 76,176,134,173, 98, 93, 14,110,153, 70, 58, 70,248, + 87,174, 41, 58,253, 13,158, 54, 68,114, 16,145,233,182,132,122, 25,184,120,236, +185, 20,151,172,244,194, 29,135,214, 42,117, 75,152,174, 32,142,135,202, 73,123, +201,245, 79,232,226, 48, 28,105,180, 4, 41, 18,236,120,116,127,228, 44,249, 10, +194, 24, 7, 53, 28,221, 75, 40,232,128,171,239, 88, 56, 62,104, 11, 20, 18,211, +170, 81, 18, 26, 34,194, 3,239, 78,102,173, 14, 16,186, 81, 12,109,142, 79, 62, + 32,209,114,108,146, 50,210, 0,105,167, 23, 74, 32, 66,208, 55, 97,130, 88, 62, +104,142, 23, 65,207, 57, 31,112,203,128, 63, 77,237,102, 43, 19, 44,150, 87,130, +217,157,133,150, 54,162,227,163,106,155, 80,170,215, 67, 72,113,233, 79,114, 21, +254, 61,143, 54, 39, 28, 42,217, 74,244,160,203,103,138,104,203, 38,205,186,148, + 92,144,205,108,122, 85,107,207,237, 22,193,121,183, 56, 96,124,108,205,210,128, +225,239,104,166,229,136, 37,233,179,174,119,129, 25,232,194, 37,143,139, 46,231, + 91,151,134,195,200, 41,227, 52,215, 39,247, 6,204,155, 49, 39, 15,199, 86,161, +242, 23, 75,164,231, 23,201,230,122,219, 73, 67, 33,130,113, 54,252,171,235,178, +164, 40,156, 59, 43,117, 81, 71, 40,164, 77,230, 67,130,249, 73,198, 55,186,145, +183,253,153,226,145, 9,182,222, 79,192, 43,113,159, 59,213,232,133,192, 9, 96, + 33,158,236,139, 18,167, 44, 97, 73,223, 44,222, 75, 9, 88,121, 60, 65, 6, 97, +106, 29, 90,212, 7,139, 21,175,111,154,144, 21,216,235,111,235, 34,221, 79, 7, +176,111, 1, 91,234, 2,238, 35, 31,142,203, 60,224,107, 87,112, 38, 83,240,133, +251, 30,185,151, 96, 1,108, 96, 0, 70, 82, 57, 30, 48,145,115, 6,152, 92,230, + 51,121,235,211,155,168,114, 93, 49, 39,214, 93,162,203, 94,207,131, 8,165,129, + 1, 15,226, 47, 0, 47, 0, 47, 0,236,158,123,252,100, 24,159,162,215, 88,107, +173,181,214,207, 90, 89,110,138, 34,229, 7, 50,100,247,220,227,135,206,150,105, + 30, 13, 20, 5,159, 78,230,106,103,255,253, 49, 12,195, 34, 13, 22, 39, 90, 52, +173, 42,245,147,254, 32, 69,166,205, 92, 86,183,234,147, 18,165,148, 18,242, 20, + 73,200,238,213, 11,186,167, 40, 82, 9, 25,178,123,238,241, 19, 5,111,173, 35, + 63,144, 97, 86, 54, 49, 27, 8,180,109, 77,230,104,208, 33,231,253, 9,224,108, +211,204,138, 22, 36, 4,100,200,238,221,217, 67,151,108,109,137, 1,137, 18,109, +107,219,127, 47, 57,173,167,175,172, 74, 84,255,194, 12,176,107, 31,221,125, 10, +163,144, 33,187,231,222,172, 40,138, 90,201,149,237, 41,106, 13, 6, 67,227,176, +251,200,162,227, 64, 66,200,253, 0,210,138,118,185, 76, 8,147,108,242,130,181, + 9,132,193,168,227, 77,149,179, 27, 19, 53, 17, 8, 6,134, 70,130,241, 72,146, + 99,195, 26,238, 1, 83, 80, 81,216, 48, 28, 8,140, 65, 65, 96, 10, 64, 40, 8, + 4, 4, 97, 16, 18,130, 32, 16,130, 48, 4, 8,132,112, 8,131,112, 20, 66,113, + 12,151,126,171, 54,236, 68,138, 20,161,135, 16,197,149, 97,140,134,234,213, 62, +113, 81,110,194,144, 80, 68, 67,147,245, 77,146,133,118,144, 76, 76,156, 74,144, +151,160,189, 62, 35, 89,245, 62,107, 56,133,117, 54,235, 49, 75, 24, 78,244, 69, + 1, 31, 32, 38, 56,198,155,209, 32,247,181,192,195, 72,184,126,155, 87, 71,182, + 4, 37, 99,227, 54, 50, 48,173,229,106,222, 7,178, 6,204,139,169, 71, 74,140, +164, 37,180,107,127,138, 52, 98, 94,184, 91, 28, 4, 86,179,222,198, 2,132, 87, +169, 73, 50, 73, 92, 1,247,132,236,199,201, 66, 64, 1,171, 24, 33,120,178, 60, + 51,131,102, 9, 81,219,251, 80,250, 21,169, 34, 69, 38,137, 17, 29,189,215, 52, +144,167,228, 54, 70,254, 19,101,103, 9,214, 45,133, 94,221,254, 15, 53,198, 78, +126, 94,111,221,166, 29,166,113,124,123,135,171, 34, 9, 55, 56, 67,208,245, 28, +196,207,245,154,230,242,190,235, 15, 14, 59, 67,125,174,165, 39, 37, 70,214,181, + 98,153, 1,108, 86, 28, 82,120,211,183,155, 62,131, 26,105, 27, 7,191,219, 32, +238,198,157,213, 7,173, 49,183,112, 90, 79,150,118,126,212, 66,146, 73,166,102, +212, 26,114,166,212, 77,244, 68,226, 51,180,176, 88,252, 48,149,233,208, 30,154, +133,106,198, 73, 98,171,141,234,103, 3, 74, 90, 40,220,192,235,225, 24,124,144, +200, 77,170,133,245, 3,162,205, 8,170,107, 19,229,226,116, 84,125,173,154,198, +213, 83,188, 66,141, 83,168,168, 45,117, 55, 85,172, 72,146,167,135,124, 43,198, +105, 49,241,110,146,111,118,207, 42,228, 76,134,241, 6,233, 89, 26, 47, 44, 75, +134,167,165,157,196,104,208,157, 6, 54, 78, 53,210, 83, 17,227, 40, 60,154,205, +151,101,221, 25,227, 15,146,187,171,221,189,255,217,186,129,169,202,171,235, 50, +189,241, 40,100, 47,226,241, 22,146, 17,228, 7, 8,159, 48, 75, 75,177, 17,177, +254,127, 19,176,229, 15,213, 93,133, 66, 12, 6,196,212, 64,113,235, 65,167,122, +120,142, 6, 1, 37, 80,167, 83, 70,207,173, 30, 55,181, 46,156, 59,245,218,104, +228, 9,115, 84,102, 72,186,238,131,180, 97, 57,141, 88,163, 53,157,253, 8,130, +209,212, 10,134, 94,255, 97,208, 59, 72,113,228, 82,162,220,146,164,129, 92,201, +233, 48,174,249,183, 29,177,198,229,151, 41,131, 24,237,219, 0, 29,226,232,130, + 87,229, 22,135,186,145,208,207,149,158, 92,167,219,155,170,129, 46, 1, 57, 13, + 15,193, 90,100,184, 3,176, 40,210, 37,106,252,128,225, 58, 34,236, 82,119,240, +126, 63, 52,173, 31,132,213, 80, 10,101,191,179,218,129, 65, 35,164,206,230,103, + 23,209,171,209,153,250,211,185,109,105,246,250, 80, 41,233, 50,116, 7,222,184, +124,216, 1, 93,101, 8, 52,209,144,180, 21,215, 5,231, 33,218, 10,226, 84,209, +234, 94,238,151,218,192, 18,155, 5,192, 70,174,244,111,205, 2,142,121, 57,188, + 11,212, 23,220, 15,186,160,228,152,117,130,102,252,152,150,111, 8,247,149,112, +169,223,219, 25,252, 29, 53,232,128, 8, 84,112,227,191, 46, 84,240,227,146,159, +190, 65,204,216,227,194,123, 55, 48, 99,131,209,197, 27,145,167,140,110, 22, 44, +174,199, 2,131, 2,105, 65, 52,184,217, 33, 98, 52, 79,151,115,198,130, 71,183, +207, 71,119, 89, 87,161,102,125,144,212,129, 62,172,106, 17,132, 40,120, 45, 89, +202,171,225, 68, 66,231,168, 23,178, 18, 86,219, 25,251,236,171,113,202, 34,163, +130, 56,201, 21, 6, 85,120, 23, 97,164, 92,160, 68,147,131,164,172,223, 6,253, + 45, 81,141,113,114, 33, 57, 21,105,206, 0, 2,131, 9,215,188, 54, 9, 34, 47, +190, 54,226,231, 81,159,161,177, 57, 94, 51,117, 12, 34, 57, 52,200, 87,252,108, + 0,249, 9,190,210,171,165,138,214,142,173, 9,138,118, 3,207, 54, 48,250,103, +102,174, 47,190, 66, 67, 73,116,131,134, 38,172,207, 98, 81,211,222,170,127, 42, + 70, 21, 30,251, 4, 92,178,167,108,122, 4, 55, 18,156, 96, 21, 29, 32,186, 5, +164, 75, 76, 8,108, 10, 56, 75,191, 84, 32, 18, 14,214, 82, 22,133,156, 28,186, + 37, 22,168, 65, 46,169, 1,225,191, 10, 57, 8,187, 36, 1, 64,252, 47, 42, 54, + 3, 68, 23,227, 63, 32, 83, 24,241,148,152, 3,234,134, 65, 45,229, 97, 10,125, +216, 49,224,151,133, 56, 32, 46, 26, 50,224, 9,133,207, 64,167, 10, 40,147, 58, +211,128, 89, 2, 51,105,129,172,204, 41,215, 64, 27, 22,112, 38, 93,182, 1, 53, + 20,128,166,198,230, 12,236,230, 13,248, 53,132,143,243, 74,249, 48,200,113,171, +252,160,200,249,160,124,136,228,120, 86, 62, 96,114, 58, 81, 62,124,114,184, 43, + 31, 76, 57, 62,149, 31, 90, 57,254, 41, 31,104, 57,175,148, 15,187, 28,111,149, + 15,194,156, 15,202,135,100,142,103,229, 7,104, 78,126,197, 81, 62, 92,115,230, + 42,130,114,193,155, 83,111, 35, 60,142, 24,168,124,146, 17, 51,170,130, 86,153, + 77,165, 84,188,178,101, 4,105,127,166,135, 86,249,127, 80,127,141,168,126,111, +218,102, 13,178, 67,117, 53,217, 57, 58, 9, 68,210,186,212,176,226,107,198,158, + 73,199,175,117,117,195,178, 11,118, 29, 76, 71, 75,138, 2, 62, 76,233,149, 55, +251, 89, 87, 22, 53, 12, 80, 68,143, 35,141,102,171, 13,212, 48,166, 79,160, 60, +232,205, 92, 85,227, 28, 29,194, 46,183,116,196, 42,202,143,145,200, 7,118, 49, + 29,125, 69,234, 95,116,145,128, 42, 68,140,211, 91,184,172,230,238, 44,120, 13, +117, 32,110,104, 3,113,184,139, 89,169,208, 75, 50,154, 19, 25,148, 43, 73,115, + 16,172,127,240,165,132,150, 53,137,225, 67,239, 74, 42,155, 7,172, 20, 53, 0, +155, 20, 77,119, 66,138,130,103,132, 99,198, 57,244,134,103,174, 85, 38,109,140, + 45,133, 50,212,251,131,189,153, 87,181,115,246,153,196, 71,122, 14, 8, 7,104, +195,139, 95, 92,217,250,100, 91,161,196, 90, 8,179,142,230,116,108, 52,151, 77, +130, 43, 21,212,252, 99, 60, 0,183,231,128,235,193,141, 71,172,118,175,108, 0, +116,188, 79, 25,250, 26,231, 91,106, 82,245,126, 93, 24, 68,125, 85,177,242, 23, +254, 0, 91, 67,241,194, 61, 14, 31, 97, 24,153,251, 3, 76, 87,130,152, 74,108, +229, 15,202, 95,164,198,128,255, 40,146,100,135, 49,128, 50,243, 25,121,164,182, + 55, 20,164, 47, 99,185, 39,207, 10,131,217, 72, 77, 18, 48,157,176, 95,237,240, +223,235,128,164,157, 36, 24, 5,131,128,234, 89,151,215,251, 39,223,247, 5, 10, +228, 24,147,218,180,121,252,141,151, 25, 0,172,240,254,115, 89,169,134,140, 87, +200, 2,193,185,152,147, 5,137, 13,220, 66, 15, 22,181, 0,248,123,193,125,169, + 23, 25,184, 16,251,119, 22, 4, 49,149,158,177, 11,119, 51,120,139, 88,169,241, + 5, 96, 15,218, 34, 85,202,130, 1,120,131,181, 8, 86, 26,196, 0,134, 65, 90, +228,205, 83, 4, 74,182,169,208,133, 50, 80, 3, 77,194,169,186,139,102,120, 5, + 58,115,170,173, 6, 52, 36,254, 64,237, 84, 45, 99, 26, 8,125, 47,108,243, 84, +229,128, 53, 80, 27, 95,130, 97,118,161, 38,181,178,124,170, 54,232,206, 33, 21, +239,169, 49, 62,144, 80, 4,125, 36, 60, 33, 14,123,160,198, 95, 64,247, 72,110, +144,193,166,134, 66,143,240, 13,158,177,223, 81,236,123,228,120,196, 62,176,134, +213,146, 65,220,145, 93,129,151, 97, 11, 36, 86, 33, 21,247,133,207,176, 17,193, +254, 18,171, 66,103,212, 52,204,113,196,174,176, 25, 2, 69, 54, 44,191,228, 95, + 11,153, 97, 74,244, 14,194,138, 33, 58,248,143, 42,123, 24, 64, 30,180,116, 24, +139, 10,224,129,233,226,199,211, 51,242, 28, 88,195,109,149, 79,137, 55,160,142, +122,179, 66,247, 33, 25,249, 25,148,150, 97,105,244, 72, 32,198,114, 83, 26, 86, +116,166, 59, 25,109,109,176,190, 64, 82,131,199,106,170, 48, 9, 72, 80,165,194, + 82,117,226,148,134,221, 23,235, 47, 59, 83,245, 22,225,144,229, 57, 85, 39, 46, + 58, 3, 39,173, 29,250,169, 98,135,106, 92,224, 17,217,204, 47,170,174, 12, 57, +195, 82, 71,204,117, 95,170, 34, 31, 61, 99, 4, 86, 94, 33, 85, 71,206, 16,194, + 26,167,170,170, 71,205,176, 0,219,216, 70,200,212, 29, 49,195, 1, 48, 20, 69, + 95,140,131, 40,210,171,146,119,216,168, 8,212, 78,194,195, 15, 85,206,185,120, +243, 83,174,154, 28,170, 33, 91, 17, 81, 62,229,190, 3,234,208,165, 5, 91,133, + 72,164, 97, 98, 80, 60, 69,121,153, 8, 70, 80, 66,113,178,216, 68,202, 28, 69, + 14, 78,180,199,206,248, 85,215,161,146, 16,116,129,201, 39,215, 30,133,114,107, + 17, 86,146,253, 98,219, 0, 70, 5, 64, 86,149,108,214, 86, 13,192,160, 1,112, + 97,141,149, 9, 6,188,129, 24,134, 46, 34,198, 9,139, 49,244, 7, 49, 12,109, + 47,145, 12, 28, 67, 25,110,202, 64, 34, 20,204,128,212,112, 47,102,205, 96, 53, +204, 17,115,242, 67, 6,113,207, 31, 35,192,144,142,136, 87, 6,216, 64, 10, 81, +217,192,173,140, 65, 68,152, 59, 44, 16,213,136,142,118, 4, 66,212, 83, 38,230, +241, 24,154,214, 99, 82,112,192, 57, 48,139,174,128, 0, 41,161,195,191, 50,146, + 1,234,160,147, 60,242,215, 3, 33,187,153,166,122,192,215,224, 51,232,245, 91, +147,216,143,154, 77,221, 51,201,100,164, 36,201,164,170,200, 21,148,164, 94, 16, + 1, 36,175,121,249, 49,221, 79, 51, 24,102,128,164,161,104, 15, 96, 86,232, 77, + 88, 95,177, 13, 38, 79, 26,185, 39,236, 77,152, 17,113, 20,176, 28,158, 85,111, +210,134,184, 26, 88,215, 8,177, 34, 62, 79,230, 40,226,120, 18,131,141,169, 8, +174, 58,207,214, 33,181,218,124,217,138, 68,239,230,195, 41, 18,202,197,175, 55, + 1,197, 29,159, 65, 4, 72, 64,100,168, 23, 18, 97,219,155,196, 16,113, 16, 64, +137,169, 91,209,132, 1, 60,158,142, 20, 5,214,222,215,194, 18, 13,191,110, 2, +116,218,164, 36, 7, 2,199,208, 86, 8,124,135, 45,163, 49,248,219,188, 76, 18, +115, 33,223,140, 54, 20,147,144,208, 13,140, 57,211,168,116, 63,162, 50,204,164, +145,221, 76, 14,170, 30,189,220, 6,166, 54,246,171,222,186,218, 57, 90, 9, 7, + 35, 51,155,105,174,163, 11, 43,173,198, 85,126, 86,207,239, 76,207,136,126,206, +100, 74,148, 30, 54, 28,153,222, 43,153, 55,188, 36, 7,156,193,194,214,103, 38, + 69,124, 77, 48,197, 41,237,245,102, 98,170, 86, 36,169,102, 37,130, 49,237,147, + 68, 52, 59, 90, 9,199, 44,171, 79,219,148, 72, 26,136, 99,105, 5, 93, 82, 85, + 7, 95,113, 47,153,140, 45,101, 90, 48, 11,226, 91,142, 76,251,114,204, 78, 53, + 99,118, 77, 87, 56,190,176,230,141,185, 6,236,159, 53, 33, 3,130, 48,181,110, +200,248,169,251, 14, 98,157,238, 70, 66,165, 99, 88,102,198,148,245,185,158,237, +144,121, 58,229,237,224, 57,143, 92,231, 15,148,136,100, 86, 23,156,133,133,124, +252, 16,202,207,229,118,183, 75,220, 37,199,120,108,153, 27, 80, 48,148,134,186, + 72,228, 54, 1,225, 17,123,238, 99, 57,174,114,210,148, 64, 85, 49,139,241,101, + 97,215, 33,239,143, 46,112, 2,211,117,214, 11, 11,221,253, 84, 16, 50,121,174, +203,149, 12,102,211, 59, 87,159,121, 74, 55,232, 35,135,163, 39, 84, 83, 80, 96, + 9,100,185, 49,140,135, 49, 59, 32,222,249, 46,154, 72,163,147,144, 47, 13,139, + 5, 9,138,230,222, 45, 65,128,123,197,204, 56, 3,110,105,232, 68, 74,208,128, +121,110, 20,242,105,114,242,113, 54,192, 17,176,239,103,168,191,153,152,136, 31, +243, 64,135, 6,236,162,163,105, 27, 92,161,243,213,149,111,172,150,102, 10,193, +115, 86,182,194, 69, 86, 4,240,180, 74, 27, 33, 14, 6, 27,176,188, 3,179, 32, +246,109, 53,245,198, 7, 14,252,113, 64,189, 77, 3,126,131, 24, 80,115,188,136, +204, 44,114, 46,132, 88,179, 82,198,115,151,246, 66, 16,169, 47,173,110,186, 39, + 16, 65,137,149,110,106,128, 33,188,238,152, 62, 43,189,160, 66, 71, 16,228,108, +178,247,175,235, 64,240, 93, 33,137, 17, 40,180, 94, 73, 2,157, 23,229, 0, 38, + 80,194, 43, 17,228, 96, 81,129,245, 96,191, 64,181,194,100,141, 21, 6,218, 4, + 47,243, 0,105,225, 57, 44, 55,144,100,129,204,133,130,181, 7,170,199, 66, 75, +241, 17,112,131,133, 8,142, 18, 48,113,126, 24, 51, 99,172, 74,208,110,194, 42, +125,161, 69,233, 27,149, 40,136, 22,180,145, 82, 30,173,122, 5,213, 66,103, 41, +233,120,169,120,193,120, 97, 62, 33, 33, 85, 85, 50,232,180,208, 18,206,169,195, +145,197,178, 6,243,160,188, 50, 32, 73, 88,227, 32, 66,240,108, 21, 28, 80,172, +118, 16, 34,208, 95, 68,170, 29,235, 30,228, 9,242, 50,127,109, 76,142, 20, 14, +206, 13, 8, 63, 37,200,153, 9, 39, 57,234, 88,217, 58, 92, 87, 0,102, 85, 69, + 32, 16,181, 27,149,166, 60, 86,192, 89,132, 59,143, 99, 71, 2,136,201, 20, 31, +180,223,237,133, 8,182,220, 20, 17, 0, 0, 80, 32, 60, 0, 59, 0, 62, 0,217, + 10, 90, 67,117,230,217,212, 49, 30, 21, 74,101,210,185,119, 90,196, 87,118, 70, +209,207,124,146, 61,167,194, 19,178, 35,221, 89,182,159,207, 94,156, 63,128,202, +125,118, 86,171,233,243,155, 93,133,235,182, 5,134,145, 72,252,203,196, 23, 84, +229, 87, 7,247, 63,206,159,131,205,113,141, 16, 52, 55,114, 94,175,139, 62,230, +208,151, 50, 54, 26,163, 98,102,217, 25, 11,176, 44,153,248,122,210,178, 81, 58, +139,155,158,222,186, 94,165,168,205, 35,167, 95, 81, 32,239, 54,199,230, 98,198, +158,247,174,103, 65,237, 81,200,131, 66,168, 63, 10, 25,103,198, 12, 85,104,111, + 11,171, 42, 67,181,174, 78,100, 57,215, 11, 51, 14, 41,189,174, 77,210,152, 38, +189, 26, 10,121, 29,144,174, 23,142, 29, 69,183,205,113,113,159,154,236,236, 3, + 78,152,166,249,201, 22, 86, 85,140,186,119,230, 3,251, 93, 11,122, 24,130,226, + 63,232,149,214, 87, 45, 96, 86,237,128,246,156, 12,138,246, 31,160,149,192,230, +186,238, 31, 63,219,219,165, 95,140,255, 69,112,244,101,240, 19, 4,132,194,168, +163,109,147, 36,133, 76, 7, 99,228, 16, 16, 28,142,137,131, 2, 77, 73, 41,168, + 12,247, 1, 99,128, 81, 16, 73, 40, 24,151,193, 65,160, 19, 4, 67, 24, 12,161, + 8, 40, 1, 33,132, 8, 12, 33,142, 40,193, 16, 99, 82,167, 3, 32, 45, 16, 50, + 98,181,146,103,150,180,163,243,194,168,184,213, 13, 32,188,108,166, 14,218,175, +170, 93,159,148, 92, 99, 29, 76, 62, 23,238, 70,121, 7,135,199,109,216,244,118, +116, 5, 87,216, 69, 42,131,153,248, 65,177,149,177, 91,186, 93, 93,249, 29, 81, + 73,211, 48,195, 6,246, 83,123, 40, 76,148,102, 19, 37, 62,241, 74, 29,144, 90, +215,153,221,156, 21, 95,136,148, 71,160,178, 33,165, 93,184, 51,212,144, 38,119, +250, 32,121,216, 10,132,203, 85, 29, 33,213, 14, 72,208, 26,132,195,165, 15, 1, + 70,175, 36,196, 2, 54,209, 76, 4,109, 2,136, 43,159,156, 92,195, 68, 86, 57, +129, 44,166, 99, 61, 74,147,121, 44,160,201,183,201, 11,118,149,205,118, 9,184, +106, 59, 64,143,169, 21,136,219,243, 51,230,169, 4, 35,219, 84,202, 47, 6,229, + 48,137,175, 86, 37, 80,247, 23,166, 28,169,107,187, 94,173,182,166, 18,158, 16, + 41,160,132, 22, 69,147, 46, 71, 6, 21,164,157,149, 78,136, 67,218,192, 56, 61, + 97, 81, 56,151, 78,196, 33,218,192,156, 80, 65,164,178, 97,138,110, 39,115, 77, + 47, 52, 94,251,162,253,201,188, 75, 35,220,235, 88,228,177,198, 67, 13,173, 87, +219,247,252,252, 29, 57, 30, 6,118,141,201,163,155,216,211, 50, 12,221,118, 66, +155, 73, 49,104,126,115, 43, 42, 35,172,158, 47, 13, 13, 72,133,165,218, 80,212, + 45,238,121,114, 50,175, 37, 32,186,128, 22,213, 29,149,184,189,165,179, 83, 6, +240,131,151, 63,162, 45,229,125, 62,198,211, 13, 6, 89, 61,157,226,239,156,239, + 36, 94,101,136,127, 90,125,140, 26,177,121,103,255, 30,207,165,114, 27,102,119, + 12,106, 25,133,143,220,160, 95, 31, 20,195, 93, 68,251,109, 18,172,182, 0, 21, +148, 85,228, 48,135,167, 46,156,237, 97,185, 66,144, 13,135,120,166, 5, 8, 31, +143,110,238, 26, 59,111, 53,254, 46, 35,201,224,240, 85,178,239,172,237,167, 42, +103, 27, 62, 88,114, 16,243, 0,159, 6, 24,244,210, 70, 81,251,208,172,203,199, + 10, 54, 82, 53, 83,176,114, 15,116,183, 96, 89,200,120,176,171, 22, 90,114, 16, +153,233,221,245,244, 68,194, 72,111, 82, 75, 47,144,215,121,183,116, 19,187, 31, + 3, 7, 39,188,103,105, 78,111, 65,215,120, 55, 55,102, 64,186,105,221, 53, 15, +184,131,130,127, 56,215,119,175, 43, 49,137, 56, 97,166,164,166, 63, 66,255,193, +228, 59, 9, 27,214, 58, 30,133, 3,145,200,171,135, 64,234,102,196,249,222, 95, +119, 90, 94, 92,242, 52,206,213,227,111,115, 84,225,249, 78, 47, 57, 35, 98, 9, +251,217, 42,199,101,202,250,243,162, 75,179, 46, 70, 58, 73,128,231, 61, 50, 14, + 62, 93,197,105, 73, 18, 89, 78,176,170, 95,183, 58,214, 96,207, 62, 65,148, 55, + 23, 68,116, 99, 63,156, 58,115,188,194,242, 83,126,102, 48,130,122,178, 92, 48, +172,128,135, 91,130, 61,112,235, 90,232,105,129,190,221,191,160,224, 32, 30,240, +146,108,238, 93, 39,150,240,244, 49, 74, 25,146, 57,126, 5, 67,182,224,170,168, +154, 56,129,174,182, 88, 16,246,240,234,135,150,206, 61,116, 24,179, 61,138,201, +211, 59,124,108,222,140,249,190, 45, 89,185,166,104,158,121,232, 37,192,100,245, + 15,159, 23, 11, 13,160, 32, 7,253,204,166,118, 32,169,165,196,113,162,207,126, + 87,101,243,170, 90,167,201,234,176,213,118, 54,216,170, 55,207,237,138,197, 74, +152, 98, 37,184,171,102,186, 39,182, 70,216,170, 40, 70, 79,146,241,199,208,180, + 64,118,242,236,137, 38,191,230, 56, 21,251, 14, 96,206,206,104, 68, 11, 50,140, + 89,252,246, 24,252,101,166,231,143,146, 93, 39, 10,209, 98, 74,102,193, 71,226, +103,110,177, 9,238, 34, 89,151, 66,204, 11,250,207,217,211,249, 76,233, 89,222, + 58,191, 32,188, 18, 12,230, 23, 1, 41,182,254,136, 8,136, 56,183, 98, 61, 93, +127,255,191, 84,128, 63,219, 12, 51, 14,142,253,234,114,244,196,223,101,181, 82, + 23, 87,156, 1,236,102, 1,200,124,123,143,215, 59,144, 90, 88,170,253,216,228, +238,215,149, 47, 25,182, 16,211,161,160,167,171, 68, 90,101,120,166, 42,130, 37, + 68, 17,195,197,189,139,163, 75,188,117,230,148, 20, 75, 10,161,111, 70,130,191, + 21,144, 8,225,198, 42, 97, 12,160,222, 69, 29,129,228,205, 66, 12,127, 32, 89, + 27, 77, 94, 26, 83,190,146, 93,216, 26,114,127, 43,187,106,192,192,116, 0,114, +108, 80,168, 44,152,235,233,136, 1, 90,234, 71,222,152, 6, 43, 92, 73, 57, 80, +108,219, 61,108,190,252,254,120,127,213,127,235,185,156,111, 14,216,254,175,137, +162, 52,223, 94, 94, 24, 97,231, 99, 45,228,246, 25,112,255, 33, 83,110,156,165, +245, 10,204, 5,197, 73,125,230,134,243,225,225,167,221, 98,246,148,249, 35,236, +237,177,101,104, 10,203, 22,118, 67,241,224,228,102,135, 89, 82, 28, 29, 6,211, +153,188,253,174, 36, 35, 28, 79,192,135,194,246, 14,108,244,171,114, 77, 46,253, +123,172,203,206,157,251, 83,139,150,244,225, 43,176,169, 49, 60, 90,195, 59, 92, +142,197,139, 51,254, 26, 90, 46, 6,141,252, 90,189,192,249, 96, 90,101,116,127, +132,113, 54,231,200, 65,147,205,181, 15, 27, 97,151, 17, 79,178,129, 68, 1,239, + 61, 75,110, 54, 32,218,195,132,244, 51, 75, 90, 90,107,244,179,214,240,158,145, + 77, 93,152,205, 31, 83,132, 19,191, 40,141,205,235,174, 36,124,111, 62,177,247, +138,190,239, 76,152, 16, 38, 64, 79,136,194, 92,100,100,237,202,225, 81, 39, 58, +218,175,128,135,225,192, 76,201, 0, 58, 68,158,216,130, 59,154,118,139,231,223, +186,191,183,169, 79,225,173, 54, 44,157, 40,125,154, 84, 2,218, 79,161,124,225, + 55, 71, 10, 35,189,188,226,138,140,143, 45, 31, 26,114,112,138,199, 95,102,219, + 28,217,230,253,241,160,162,230,219,239,241,236,177,144,220,220,203, 72,175,116, + 86,123, 87,181,154,205,146,182,101,249, 30,249,241,152, 12, 0,240,100,199, 4, + 68,199,145,184, 72,239, 72, 18,233,113, 70,215,190,175,208, 72, 44, 61,184, 22, +205,159, 52,121,170,231,145, 89,121,148,138,207, 26,126,147,105,241,212,221,227, +164,117,238,216,195,103, 49,168,228,185,104,213,115, 7,217, 64,116, 0,172,158, + 73,200,220,200, 26, 69,108, 3,106,209,242, 97, 89, 35, 73,203,169,247,148,183, + 83,104,238,232, 76,184,244, 26, 30, 46,109,248, 17,137, 80,177,252, 17,106, 4, + 66,206, 39,136, 37, 34,120,148, 14,205,142, 95, 57, 87, 10, 89, 6,168, 73,162, +117, 70,182,152,191,148, 5,189,223, 4, 76, 35, 13,114,202, 22,153,151,218, 55, +174,246,136,131,116, 46,170,137, 62,150, 69,116,197,156,212,160,193,184, 95, 34, +190,196,148,255, 92,114,168, 82,157,112, 95, 64,156,203,225, 41,210, 33, 25,156, +151,177,216, 31,235, 89, 89,248, 13, 26, 31,148,187,190,106,180,136,250, 8, 19, + 74,243,213,209,146, 93,248,217, 2, 65,135,151,200,236,112,122,154,176, 60,205, + 43,162,132,160,225,193,190, 61, 10,176,113, 39, 1,187,224, 5, 98, 35, 31,237, +228, 26,147, 85, 21, 21,167,104,169,185, 45,142, 21, 2,141,174,144,232,150,136, +181,118,138,242, 30,246,238, 88,110,154,244,189,222, 69,175,246, 98, 17,253,178, + 45,238,125,178,133,131,140, 18,207, 28, 19, 0,173, 84,246, 17, 46,136,117,158, +182,210, 72,162,171, 23,247, 71,179,151,192, 62, 18, 22, 53,178, 75,249,113,195, + 14,241,195,233,205, 49, 7, 24,237,157,145,233,144,139, 13,107,207,242,158, 9, + 72,188,195,183,173,166,140,119,116,117,195,140,102, 89, 97,179,129,232, 44, 97, + 19, 25,126, 52,187,103, 34,158,206, 10,123,221,216,206,173,249,109,220,199, 84, +166, 30,126, 55,169,138,242,217, 74,217,191, 37, 82, 43,232,107,111,219, 80, 93, + 96,215,167, 13,199,200, 90,161, 60, 52,143, 1,153,247,203, 96,188,182, 73,242, +234,174, 79,250, 52,178,121, 72, 40,236, 57,136, 8,109,176, 79,134,132,147,122, +181,149,132, 0,128,113,127,179,212,241, 7, 17,114,209, 89,175,241, 49, 82,102, + 67,184, 38,196,113,244,176, 18,143,209,153, 59,149,163,232,229, 64,201, 45, 81, +162,211, 52, 69, 83, 33,216,246, 27, 13, 62,219,207, 71,149,132,106,225, 52,199, + 77, 67,242,228,140,152,132,237,255,243,145,147, 15, 45,153,166,231,140, 45,118, +106,154,103,148, 35, 63, 19,164,144, 82, 70, 73,221,174,100, 29, 13, 49, 31, 20, + 59, 59,124,169,177,157,179,239, 38,207,114,145,194, 22,247,130,170,211, 49, 87, +206,215,142, 30,242,161,200,141, 6,111, 7, 1,137,214, 82, 60,144,119, 2,243, + 71,168, 57,180,193, 88, 96, 34,167, 1,112,213, 24,122, 94,239, 68, 14,181, 59, +189,105, 7, 73, 77,172, 65,170, 17,107,144,234, 68, 44,216,130,225,254,232, 66, +243,118, 4,113,100,183,131, 10,249,160, 14,159, 7, 25, 20,231, 23,141, 8, 39, +164,152, 54, 5,210,240, 8, 54,138,138,137, 58,188, 98,132,145,253,108,252, 40, +179,147, 66,166,145, 98, 42,245,220, 30, 93, 32, 9,149,130,138, 88,226, 36,206, + 38,141,223, 36, 53, 69,130,139,183, 96,236, 98,178, 58,229, 67,138, 11, 40, 82, +146, 96, 6, 53,174, 25, 89, 69, 56, 32, 73,171, 51,226, 70,202, 58,200,158,192, +168,116,182, 41, 20,181,158,162, 74, 34,230,249, 43,208, 53, 33,163, 8,119,133, + 41, 21,133,111,145,148, 45, 17, 81, 65, 15,233,230,194,142,243, 96, 41,175, 52, +138,240, 60,123,180, 45,245,130,210, 57,131,113,110,176, 95,190,160,121, 12,179, +248,244,202,173,140, 35,226,222,248,227,138, 95,192,217, 49,213,232, 12, 85, 31, +217, 48, 35,138, 61,215,190, 17, 66,126, 63,164,203,193,121,103,100,168,201,202, + 47, 63, 46, 63,185,112,156,232,108,227, 3, 35, 53, 53,201,121, 89,115,226,217, +195, 3, 23,220,253,179,193, 3,225,233,191,238,242,128,197,174, 52, 92,233, 46, +172,104,235, 14,138,219, 49, 24,251,104,211, 25, 12,226,135, 68,152, 61,163,189, +127,227,250, 5,203,190,166, 94, 76,190, 0,125,162, 23,202,181,121, 18,177, 0, + 82,150,146, 98,115, 48, 78,220, 22, 13,195, 55, 20, 74, 7,178,188,199, 24,218, +224,104,104, 60, 79,239,214,224,233,171, 82,247,150,153, 56, 51,153,206,217, 73, +176,255, 25,174, 17,143, 42,150, 42,166, 0,201, 4, 21,224, 54,131,200, 29,161, + 73,160,249,198,153, 21,186,217,254, 8,201,237,202, 76, 99,207,221, 48,119,204, +241, 52, 26,178, 27, 78, 18, 89,172,167,102, 13,225, 61, 8, 5,175,156,232, 77, +122, 26, 14, 83,122,122,153, 11, 41, 19,116,205,135, 68, 8,125, 93, 6,127,119, +117,138,127,174,171, 34, 84, 64, 6, 89, 80,189,164,215, 42, 74,112, 32,172,134, +252,196,205, 37,116,219,191,203,253,218,245, 28,203, 10,135, 0,198,194,137,112, +104,176,126,208, 12,178, 37,137,239,180, 80, 60,226, 68,251,179,241,160,227, 15, +229, 20,148,105,208,144,113,170,105,196,139,239, 40, 30,113, 22,106,199, 35, 18, + 44,219, 19,195,145,240,220,215, 62, 61,228,163, 52,174, 20,184, 78, 57,182,160, +169, 35, 75,171, 64,150,184,124, 44,167,172,189,134, 82,186,103, 47,244,178,122, +240, 27,232, 56, 86,185, 58,217, 73,147,227, 86,164, 27, 0, 72, 82, 71, 84, 76, + 76, 71, 69, 76, 76,134,143,168,243,207, 1, 99, 77, 68,192,142,208,136,154,230, + 35, 64, 16,224, 65, 32, 40,168, 8, 18, 1,216, 3,153,104, 2, 9, 72,146,242, + 74, 27,232,225,110, 0, 26,129, 66, 44, 41,220, 33,200,170, 83, 9, 75,138, 73, + 13,238,184, 42,128, 86,163,179,163, 92, 44,227, 74, 38,155,148,106, 14, 50,171, +247, 33, 5,148,148,200,180,162,104,103,164,232, 19,146,176,166,158,214, 29,120, +232,157, 3, 94, 44,104, 11,176, 86,139, 81,133,147, 81,107,233,168,173,192, 4, + 67,132,221,154,137, 71,105, 21,164,159,144,132, 53,117, 81,107, 51, 81,159,211, + 53,157, 5,155, 37, 37, 37, 15, 49, 25, 47,212, 28,234, 8,200,170,221, 75, 47, +137, 9,107,234,105,221,217, 47,152,107, 58,244,163,165, 0,215,232,247, 65,138, + 23,117,196, 65,206, 0,201,239,164, 43, 98,116,169, 77, 88, 83, 23,181, 54, 19, +103, 57, 93,211, 89,176, 89, 82, 82,242, 16,147,241, 66,205,161,142,128,172,218, +189,244,146,152,176,166,158,214,157,253,130,185,166, 67, 63, 74, 10,112, 13,226, +170,192,128, 51,242, 51, 34,149,218, 29,163,181,132,135,218, 9,234, 10,136,214, +121, 36,152,171, 34,253,173,138,162,101, 15,163, 74, 38, 75, 74, 53, 7, 41,105, +222, 1, 16,150, 18,153, 86,108, 34,245, 81, 62, 76, 72,194,138,114, 90,199, 58, + 30,170,214,202, 5,173,173,209, 91, 45, 70, 39, 20, 93, 35,136, 85, 1,222, 66, +246, 47,139,138,144, 75,147,220,135,221, 50,129,202, 60,213,229,107, 62,202, 51, + 16,168,232,107,199,126, 77, 65,121, 6, 2, 21,125,237,216,215, 20,148,103, 32, + 80,209,215,246,181,242, 92, 3,129,234,189,182,175,149,231, 26, 8, 84,239,181, +125,173, 60,215, 64,160,122,175,237,107,229,185, 6, 2,213,123,237,248, 90,225, +140, 65,160,232, 12, 93,161,211,235, 39,137, 2, 84,134,120, 82,112,192, 49,250, +145, 72,197,110,133,164, 61,210, 7, 89, 73,232,162,246,107, 49,197,183, 42, 33, +180,182, 70, 85,183,186, 76,209, 98, 73, 73,201, 65,102,245, 62,164,130,130,146, +152, 90, 54,162, 53,128, 0, 75, 39,132,102, 5, 98,107,196,195, 26,178,162, 91, +208, 22, 96,173, 22,163, 11,213,152, 81,100,216,165, 96,192, 65,196,117,141,212, + 35,117, 20, 92,113, 73,224,166, 91, 45, 32, 90,196,213, 51,212,182, 70,184, 90, +188, 50,232,209,122,128, 62,112,235,220,169,164,166, 69, 21,210, 39,172,172, 82, + 83, 33,101,220, 9, 70, 2,164,140,225, 52, 65, 59,216, 28, 73,191,202,213,243, + 22,179,115,146, 30,115, 5,208, 14, 54,207,124,134,110, 74,184, 67,232, 81,199, + 42, 34,176, 84,201,173,238,100,193,202, 37,213,221,227, 10,125, 33, 1, 66, 13, +161, 23, 38,169, 79,224,185,202,211, 10,103, 35,165,175,210, 18,117,141,145, 36, +164,163,131,174, 0,183,103,115, 36,189, 19, 37,229,232,194,207, 75,218, 24,106, +192,180,231,185,198,103,160, 69,210,222,130,124,117, 97,108, 57, 79, 68,184, 80, + 33,183, 78, 92, 35,120,162, 66,135,231, 86, 69, 81,153,113, 5,147, 37,167,146, +133,152,141, 38, 43, 14,117, 36,188, 72,125,148,111, 81,191, 8, 31,120, 16,141, + 58,209, 38,143,176,115, 60, 0,205,197, 34, 7, 64,171, 34,135,182,126, 51,134, + 62, 27,167,230, 28,157,176, 50, 76, 34, 80, 83,112,123, 49, 18, 34,173,167, 90, +188,157,200,230,213, 61, 98, 5, 99, 23,124, 6, 82,245, 80, 15,218,195,230,133, + 73, 37, 98,133,176, 15,198,130,123,181,184,148, 76, 47,248,108,221, 77,139,149, +203,158, 25, 25, 77, 90, 28, 9, 22,115, 71,223,237, 12, 87,125,166,184, 19,181, + 71, 76, 31, 99,110, 52,105, 6, 24,156, 11, 85,122, 80, 96,111,133, 33,204, 89, +165,235,141,228,170, 91,217, 9,115, 86,233,122, 35,185,170,104, 64,206, 85,157, +174, 51, 13,169,138, 2,163, 92,171,116,189,145, 92, 37,218,144, 15, 62,101, 99, + 26,194, 86,234, 90,137, 68,233, 70,242,250, 86,141,250,225, 71,153, 17, 2,164, + 56, 0,130, 69, 20, 24,128,205, 3, 32,248, 29,213,214,227,236, 37,152,164, 21, +126,178, 37, 30, 7,236, 95, 98,116, 37, 2,191,184,152, 3,247, 56, 12,197, 60, + 66, 90, 41,153,211,137,204, 34, 62, 87,107,115,188, 76,171,181,200, 27, 96,187, +177,108, 89,214,234,179, 0,248,223,222,254,159,120,226, 77,155, 70, 80,116,116, + 91, 90, 51, 69,229, 3,134,144,168,115,111, 51, 28,115,122, 4, 8, 83,194, 24, +131, 10,205, 76, 74, 7, 51,144, 32,136, 32, 16, 6, 34,130,132, 32, 59, 32,136, + 16, 70, 38, 48,129,136,136, 72, 32, 18,164, 32, 77,218, 72, 92, 22, 28, 98, 81, + 11, 76, 20, 83,201,201, 5,194,255,168,203, 60, 53,160,203, 15, 94,102,130,254, +200, 97,125,200,245,234,174, 49,129,135, 28, 84, 92, 29, 21, 30, 32,111,184, 83, + 71, 82, 46, 51, 32,107,112,125,241,221, 58,199,183,213, 13,100, 77,173,215, 62, +173,234,134,210, 85, 80,132, 27,235,131,250, 27, 28, 59, 20,175, 64,249,214,161, + 72,128, 72,249,199,117, 32, 92,143,172,252,120,169, 5,228, 36, 80,184, 58,150, + 80,130,215,208,174,153, 15,170, 73,222,200,151, 59, 80,153, 56,224,232,138,227, +170, 7,112, 26, 88, 95,124, 89,149, 61, 90,157, 0,181,181,213,218,199,117,251, +122, 93,189,250,188,186, 64,221,250,234, 2, 16,156,106,164,126, 96, 0,132, 64, +178, 48,112,185, 73, 37, 38, 15,116, 12,216, 82, 33,216,128,177, 82,219, 73,190, +200, 27,164, 11,210, 10,220, 36, 24,162, 32, 72,170, 77,113,195, 22, 88,170,155, +108, 65,233,148,238, 54,223,200, 26,151, 14,181,195, 24, 91, 91,227, 2,153,145, + 25, 31,178,246,151,223, 58,192,218,204,157,161,233,157,161,126,211,169, 57, 65, +253,174,123,202,197, 21,237,163,168,161,110,150,131, 20,186,218,178,220,229,218, +232, 88, 41, 91, 46, 60, 84, 26, 20,193, 43, 74, 60, 66, 61,200,121,218, 56,140, + 40,213,179, 16, 23, 7, 50, 4, 55,238,195,250,178,160,123,252,133,187,104,151, + 61,118,109, 3,206,234,251,244, 55,213,133,207,175,150, 38, 36,161,144, 8, 72, +128,223, 13,248,192, 73,156,223,102,187,253,103, 74, 76, 19,168,131,198,103,138, + 1, 9,136,110,171,180, 19,188,100, 62, 46,230,156, 21,230, 40,138,239,159, 55, +189,162, 43, 67,139, 39, 25,122,132,145,149,187,115, 46,244, 91,105,167,204,198, +243,104, 37, 60,223,114,211, 27,118,189,176,171,254,140, 5,160,187,195, 67, 6, +174, 12,208,232,250, 91,247, 66,131,224,180,200,178,169,223,133,213, 40,249,182, + 75, 12, 43, 67,139,103,224,129, 98, 86,151, 59,193,100,141,187,168,202, 7,247, +139,249, 20, 11,206,184,242,120, 44,137,170,164, 48, 20, 89, 36,139, 28,201, 5, +165,150,138, 47,153, 84,196,112,246, 55,121,125,168,105,119,255, 2,221,161,108, +157,180, 1,227, 98,186,232,108, 95,156,118,152, 23,204,242,161, 20,183,205,139, + 66,170,114,182, 46,249, 28,224,187,125,160,142, 29,128,124,173, 6,251,201,139, +208, 53,208, 59,116,126,227, 36, 22, 44,243,188,105,220,213,255,216, 54,155,251, + 10, 18, 54,131, 2,211, 80, 45,157,167,117,141,231,155,202,157,123,139, 97,178, + 74, 72, 31,207,235,190,141,239,218, 99, 70, 2,129, 80,120,219,208,232,220, 58, + 12, 20, 82, 55, 32,203,172,131, 35,114,110,235, 19,167,114, 72, 0,215,178, 46, +240,197,204,100,208, 54,140,229,205,233, 61,160,183,187,140,249,128,186, 44,116, + 64,235, 64, 60,219,188, 54, 86,223,123,205, 76,250,165, 27, 6,248, 24,248, 12, + 11, 71,230,207,151,133, 42,109,101,224, 47,215,239,131, 83, 19,255,208,157,174, +205,235,229,178,243, 9, 21, 66,204,117,115,124, 61,187,136,181, 38,195,174,251, + 79,204,239,255,211, 98,197,130,255, 98, 44, 40, 23,250,247,220,199,130, 30,112, + 81,193, 99, 89,237,139,121,246,141, 85,252, 40,121,196,116, 44,151,156,188,155, + 90,101,205,192, 61, 53, 62, 94,105,220,117,248,248,151, 96, 85,145,199,253,250, +143,158, 43,204,198,219,189,211,141, 47,106,117, 60,184,149, 58, 43, 87,150,191, + 84,190,165, 69,141, 42, 22,198, 9, 31, 91,236, 44, 90,175, 50,160,252, 88, 82, +241,186,136,108,141,207,194,216,116,101,213,207,134, 37, 84,224,163, 56, 86,234, +253,103,168,121, 85,120, 47,248,139, 44,179, 4,110,201, 34, 77,143, 92,218,250, +247, 24,220, 48,241,149,190, 92,109,197, 47, 56, 75, 34,127, 38, 78, 40,212, 62, +242,164,255, 98, 61,104,240,149, 25, 50,121,127, 52,109, 85, 62,126,165,204,219, +144,222, 50, 78, 61,208,138, 30,220, 59,136,228,102, 69,213,166,188,158,100, 42, +173, 91,106,162,224, 58,114,145,133,223,201, 63,178,157,239,144,248, 82, 88, 85, +220, 73,108,251, 22, 34,122, 14,148, 98,172,152, 77,225, 0, 8,162, 99, 74,215, +219, 92,175, 47,169,137, 56, 29,240, 18, 95,107,130,124,231,253,193, 82,100,244, +134,180,129,228, 80,207,182, 78,182, 97,180,162,197,105,211,237,212,184, 13,149, +253,119,105,236, 84,212,164, 53,229,116,116,132,105, 43,208, 64,250,211,212, 12, + 32,177, 7,167,201,170, 17,254,254, 8,210, 64, 62,208,157,131,253,117, 50, 63, +143, 11, 3,227, 79,152,232,228,194,123, 43,236, 49,195, 28, 22,229, 94,105,165, + 43,240,160,114,241,165,158, 46, 18, 8,174,219, 94,142,159,129,126,155,109,152, + 26, 48,220,141,196,134,170, 98, 86,177,225,131,196,176, 60, 81, 21,142,235, 14, + 16,188,119, 90,168, 27,117,181,220, 10,142,172,120, 12,184,215, 65,117, 44,134, +209,211, 98,161,234,180, 80,181,158, 7, 97,254,113, 82, 53, 77,128, 90,199,225, +109, 39,188, 7,163,249,204,156,197,219,166,195,249,147, 9, 40, 64,205,205,239, +167, 42, 33,198, 34,169, 10,249,224,202,190, 81, 63, 24, 92,235,145, 94, 24,220, +229,105,166,201, 8,220, 19, 69,154,252,191, 89, 23,185,118,147, 66,112,192, 88, + 23, 24,189,232,110,110, 20, 4, 47,208, 12, 52, 0,213, 67, 82, 0, 57,177, 82, +174,180, 12,118,136, 70,113,214,225, 50,199, 13, 22, 11, 24, 9, 14,254, 60, 76, + 57, 27,152,194,151,228, 12, 55,106, 67,130,232, 46, 76,195,141,194,146,144, 93, + 67,242,205,113,189,190, 2, 38,116, 87,145, 51, 50,168,230,100,116, 13,141, 12, +185,197,204,102, 9, 51,138,170,125,178,154, 99, 87, 26,193,113,157,161, 19, 11, +125,200,181,207, 78,228,152,240, 9, 62, 44,250, 42, 30,229,167, 83,140,104,138, + 17, 39,210, 17,220, 34,162, 52, 85,211,224,124,213,136, 26, 46,189,232,108,227, + 71,122,146,200,166,109,112,121, 17,207, 92, 61,228, 70,106,154,146, 5,157,171, +216,182, 9, 6,138,216, 22,179, 38, 97,199, 52,193,112, 69,163,147,131,175,128, +115,206, 46, 25,197,142, 96, 72, 95, 50, 49,211,192,248, 34, 56,253, 52,161, 79, + 19,244, 23, 77,224, 74,164, 26, 96,214,122, 30,212,164, 29, 55, 90,232,116,192, +143,112,237,187, 21,120,162,106,131, 28,201,245, 9,243,240, 93,180, 96,133, 22, +172,168,106,132, 83, 68, 13,109,213, 20, 62, 31, 53,178,197,113,233, 53, 23, 75, +215, 28, 35,185,105,103,133, 73,249, 90,251,143,141,193, 25,108, 36,209,197, 21, + 44,165,136,119,246,160,234,238,146,155,101, 62,176,205,170,245,136,150, 20,134, +173,234, 65,213,125, 50, 53,203,206,103,203, 80,235, 21, 41, 53, 85,201, 71,147, + 11,118,102,189,198,172,112,218,102,128,189, 46, 94, 67, 66,156, 52, 89,107,101, + 9, 82,232,139, 32, 9,168, 95,247,178, 54, 23,186, 87,183, 34, 17, 54, 53, 30, +116,145,156, 48,240,109,218, 45, 61,196, 96, 4,128,240,175,244,164,175, 93,140, +192,145, 48, 53,176, 20,240,157,186,172, 73,231,127,225, 64, 72,206,240,195, 77, +130,106,132, 93, 37,161,218,171, 43, 40,251, 96, 93, 89,169,165,201,237, 69, 71, + 16,162, 18,168,145, 35,234, 76, 98, 86,168, 27,170, 75,153,158,133, 68, 16, 50, +164, 64,203, 34, 93, 4, 33, 88,209, 33, 27, 86, 33,184, 43,248, 11,201, 21, 11, +240, 97,177, 81,143, 92, 81, 67, 45,124,169, 69, 95,153,232,215, 17,186, 39,136, +246,162,163, 86, 1, 99, 28,232, 18,104,212,113,239, 96,254,253,173, 24,171,233, + 11,165, 89, 69,171,157, 39,186,150,225,108,104, 43, 6, 92, 12, 1, 86, 54,164, + 38,224,148,232, 1,112, 98,217,166,252,186,190,238, 5,248,152, 29, 52, 60, 61, +186,108, 89, 31, 78,165, 62,108, 52,245,128, 74,235, 24,198,152,102, 8, 33,157, + 0,149, 0,149, 0,246,127, 94,141,109, 7,119, 30, 88,188, 71, 53,245, 29,237, +218, 31, 58,225, 41,158,136, 36, 84, 40, 2, 19,141,204, 3, 66, 52,241,209,228, +111, 52,208,194,130, 3,115,190,228,246,210, 61,242,163, 81, 8, 90, 13, 72,228, +139,216,161, 35, 4, 45,219,104,167, 62, 83,181, 98,159,203,223,198,133,150,121, +182,127,233,248, 35,175,236,177,247, 22,153,207, 82,219,222, 71, 56, 82,163, 27, +117, 61,199,152,179,200, 54, 65,208, 99,138, 69,166,208,184,128, 51,115, 64,177, +196, 40,101, 75,155, 90,248, 71, 65, 28, 81,161,101,124, 77, 59, 43, 66,158, 49, +183, 97,111,238, 50, 73,135,123, 62,197,152, 89,226, 63,181, 16, 40, 35,130,193, +227, 18,119, 66, 8, 20, 11, 37,161,106,170, 49, 11,161, 16,231, 59,163,230,186, + 54, 9,205, 3,127, 38, 90,163,129,253, 5,207,119,203, 23,186, 9,125,159,192, +126, 22, 85, 1, 58,211, 53,223,106,119,126,250,179,142,225,181,142,175,244,148, +244,227,184,182, 32,183, 67,238, 9,114,103,144,187,130,153,238, 45,170,196, 27, +225, 94,197,101,250, 51,151,212,166,157,255, 21,155,214,103,135, 51, 61, 95,167, +126,112,192,105,114,210,153, 96, 46, 82,255, 41,173, 56, 88,117,231, 55,185,254, + 92,149, 86,169, 81,128, 39,221,231, 9, 50,175, 94,155, 35,178, 71,252,194, 26, +115,158,120, 38,152,164,116,228,172,180, 25, 10,150,121,154, 98,140, 49,198,105, +138,177,170,220, 99,188, 86,231,194,170, 85,135,104,125,233,148,206,132,239, 62, +111,135,110, 78, 13,219, 56,208, 52, 89,139,177,150, 41, 38,173,181,214, 90,183, + 29, 99,196, 68,200, 24,200, 42,136, 49,198, 88,225,118,171,192,153,242, 17, 32, +167,169, 39, 8,181, 55, 88,149, 34, 70,247, 24, 35, 20, 99, 28, 25,105, 96, 15, + 37,131, 93, 93, 42, 88, 85, 85,229, 78, 43,147, 80,141,101,185,229, 49, 70,119, +200,161,199, 24,227,187,133, 16, 31,196, 63, 50, 16,175, 32, 24,144,143,134,232, +245, 99, 91,223,107,181,187,144, 45,235, 65,175, 50,153, 48, 4,133, 64,157, 25, +124, 47,146, 37,186, 72, 23,233, 34, 89, 34, 75,100,137,164,138, 84,185,125,208, +152, 13,110,248,224,171, 30,170,161,123, 90,188, 24, 18, 23,201, 18,113,108, 82, +229, 34, 93, 36, 75,100,137,164,138, 84,241,123,253,101,254, 28, 75,176, 37,147, +137,214,105, 52, 48,145,172,238,248, 43, 69, 81, 0,154, 85, 79,146,104, 36, 63, +193,195,159,207, 27, 15,131, 69, 90,198,108, 24,179,225,248,203, 7,230,141,220, +180, 52,184,188, 31,124, 57,194,145,189,145,117, 98,148,122, 38, 10, 28, 24,184, +126,189,234, 12, 14,212, 13,247,102, 0,115, 61,247, 28,128,182,137, 96,254,185, +102,149,238, 23,252, 19, 21,164,217, 54, 66,233,181,113, 48, 8,141, 32,168, 4, + 59, 70,107, 3, 1, 65, 3,211,114, 0, 0, 10, 11,138, 35, 82,153, 72, 10,163, + 40, 6,253,196, 32, 7,194, 23,140, 11,138, 24, 67,132,128, 5, 16,143, 97,104, +134, 2,128, 0, 1, 24, 6, 32, 0, 48,160,136, 49, 72, 17,227,152,250,214,150, + 2, 79,243, 63,207,164,148,104,132, 80, 16,243,148, 69,169,185,255,238, 66,129, +223, 33,212, 27,213,139, 41,162, 23,127,143, 67,200, 79, 77,246,211, 16,254, 62, +229, 0,236,197, 13,245,216,221, 18,128,161, 21, 49,227, 47, 58,208,143,180, 19, +249,248, 26,247,126, 87,132, 6,115,196,156, 47,132,161,205,244,139, 26,187,232, +105, 88, 8,132,227,243,200,206,120,166,192, 99,136,127,108,197,157, 90, 45,232, +123,146,129,195, 79, 59,244,121,118,128,186,160,241, 19, 43,247,208,215,113,168, +135,196,237,145, 90, 71, 20,167, 60,232,158,130, 58, 67, 9,108,227,204, 63,197, + 69,226, 42,218, 82, 77,129, 79,242,168, 90, 23,252, 58, 17,247,206,227, 27, 14, +130,212, 79,223,116,252, 45, 21,220,121,190,167,235,215,113,154,236, 88,233,223, +174, 14, 94,130, 26, 95,231, 41, 98, 89, 52, 53,203, 73,122, 48,142, 14,196, 15, + 77,146,220,132, 77, 86,117,168,152,186,207,147,215,157,111,120, 47,159,161, 13, +116,235, 5,164, 79,179, 28,163,117, 69, 34,118, 16, 19,119,118, 14,109, 46,187, +152,155,164, 86, 43,241,143,218, 1, 18, 65,152, 55,208, 33,250, 80, 34, 70, 51, +148, 17,131,113, 39,101,204,211,182, 87, 55,200, 26,242, 44,189, 2,123, 6,181, +215,135,162,223,243,196,104,150, 46,120, 67,132,227,126,101,127,228,180,105,192, +182,205, 91, 46, 78, 66, 99, 39, 41,161,147, 98,105,182, 77,165, 24, 26, 34,242, +120,211,157,202,228, 44,137, 92, 77, 1, 39,100, 25, 92,251, 70,207,211, 16,142, +184, 5,118,116, 18, 40,134,150, 40,187,144, 37, 34, 97,130,235, 36, 44,236,107, + 2,188,143,176,183,232, 42, 42,159,220,121,229, 66,147, 74, 50,164,205, 50,242, +221,207, 83,137, 20, 99, 85,147,181, 28,111, 60, 18,132, 20,202,222, 16,115, 33, + 93, 79,226, 46,144,188,234,101, 8, 21,139, 2,129, 36,146, 16, 64,234,125, 78, +113,161, 54, 84, 26,135,213, 15, 15,161, 94,221, 34,194,108, 86, 70, 7, 21,186, + 91, 62,121,108,163, 94, 2,214, 69,115, 11,222,220, 43,207,193,197,103,140, 30, +230,190, 87,124,193,180, 48,130,128, 17,174, 10,218, 48, 89,140, 10,127, 39,194, +218, 72, 78, 69, 99,161,189,111,222,251, 30,198,224,131, 14,104,154,148,134, 88, +145,235, 89, 19, 72, 31, 89,152,143,133,116, 34,160, 47,159,210,195,251,156, 62, + 14, 26,190, 67,251, 64,231,206,250,153,125,233,138,199,151,223, 97,125,185,157, +121,229,175,187,220,199,236, 29,245,105,237,144, 62,185,134,126, 58, 50,253,255, +208,195, 79,235, 79, 52,144, 97, 56, 31, 35,162, 85, 96,136,163,241,102, 25, 69, + 35,103, 43,195,159, 63,132, 7,232,214,195,121,172, 99, 72, 69,106, 18,128, 25, + 97,206,214, 4,137,126,102, 48,240, 75,138,136, 33,236, 75,195,217,102,188, 54, +116,252,150, 67,250,220, 9,238, 4,217, 86,128,151,241,109,168, 55,165,244,129, + 62,214,214, 34, 3,134, 51,194,176,218, 36, 48,154,120,150, 45,111, 25,118,228, + 7, 32, 25,211, 26, 70,121,223,232,136,176,109, 59,153, 4,233, 22,181,224,145, +122,126, 71, 7,137,104,250,201,245,173, 84, 78, 56,132,190, 55, 49, 16,150,173, +128, 77, 96,187, 4, 12,131, 75, 22, 37, 84,170,244,165,144, 52,121, 52, 51,126, + 75, 79,153,179,213,184, 32, 76,245,112,118, 71,170,213, 38,246,144, 33,159, 13, +197, 21,245,185,145, 62,219, 74,144,201,170,100,141,112,151, 62, 98,189,225, 54, +111, 96,207,107, 48,250, 2,177, 32, 53, 43,168,102,221,127,225, 0, 5, 80, 80, +112,132, 56,169,235, 95,180,171,129, 90, 51, 63,234,138, 85, 9, 4, 45,140,167, +157,160, 38,107, 35, 40, 14,111,179,202,122,123, 68, 46, 4,183,130,193, 92,193, +187, 12, 75, 47,203,189,219,170, 73,211, 53, 15, 25,111,241,160,250, 28,175,180, +103,160,241,208,132, 4,144, 10,249, 81, 20,113, 29,223, 85, 49, 99,149,222, 16, +234, 56, 95, 57, 91, 28,218,132,211, 48, 22,182, 87,200,248,143,234, 9,193,133, +192,130,206,107, 37, 51,245, 89,161, 72,154,190, 80,188,122,208, 89, 33,121,139, +210,112, 21, 10,251,250,110,183, 86,240,202,110,211,235,135,128, 83, 53,137,133, +137,115, 55,245, 3, 73, 68,238,212, 21,179, 94,170,101,160, 60,170,234,234,229, +254,165, 92,195, 60, 9, 94,182, 84,149,135,218,249,164, 9,232, 71,166,236,174, + 98, 21,229,253,229,250, 26, 44, 50, 88, 81,195,225,240, 94, 2,241, 78, 51, 1, + 54,211,132, 8,160, 5, 38, 82, 5,189,108, 59,244,208, 85,154,138, 75,231, 58, + 23,212, 63,144, 42,134,174,143,103,104,104,116,211,182,152, 19, 92,187, 87,151, +118,196,134,118, 21, 0, 55, 98, 54,122, 48, 50, 58,246, 80, 12,177, 90,206,207, +234, 12, 46, 77, 29, 11,115,198,160,220,102,171,124,151,158,198,100,194,176,222, +200, 58, 17,126, 53, 59,180,181,251,165,114, 55,205,231, 77, 21, 37,127,255, 22, +221, 6,120, 96,242,162,222,192, 74,238, 80,199,219,101,142,194, 41, 24, 45,223, +173,223,167, 21,188, 48, 79,189, 74,223,230, 95,108,207, 32,239,155,184, 74,189, +121,108,163, 14,106, 53,118,138,197,213, 26, 10,207,228,221, 23,231,101,143,230, +179, 90,166,209,202,221,105,153, 52,138,138,218,215,248,173, 80, 4,201, 35,174, + 80,217, 83,148,227,176, 48,115,128, 32,204,182, 18,200, 89, 65,255, 49,103, 54, + 7, 8,123,221, 52,167,200, 34,160,219,183, 98,227,165, 85,189,235,229,114,233, +158,226,121, 6,184,186,156,222,166, 27, 3, 83,164, 2, 54,225,132,151,172, 4, +223, 14,190, 0,112, 60, 76,242,244, 79,147,170,122, 59,120, 44,241, 26,109,168, + 87,132,162,235, 86, 2, 53,228,239,128, 37,162, 43, 99,234,254,203,141,116, 19, + 94,122, 8, 47, 9, 75, 51, 21, 14,166,220, 44,164,145, 39,137,177,187, 34, 11, +187, 66,192, 38,149,150,141,109,173, 34, 37, 22,141,238, 41,107, 60, 35,111,171, +232, 63,196, 80,118,214, 23, 11,229, 45, 70, 69,215,222,140,143,251,155, 10,139, +128, 63,104,177,127, 98, 18, 63,203,113,107,192, 0,182, 93,180,147,212,148, 68, + 73,166, 26,109,124,121,187,166,218,151, 16,153,239, 62,184,226, 14, 8, 53, 8, + 59, 0,120, 66, 71,153, 3,145, 47,234,163,116,161,171, 9,104,197, 90, 5, 19, +202,142, 96, 18,221, 28,104,155,196,116, 10,110,147, 8,158,111,172, 88,174, 15, +233, 89, 80,140,236, 73, 28, 20,228, 92,146, 92,234,116,158, 14, 62, 47,127,194, + 50,105,240,244, 16,168,181, 65,210,245,186,219, 21, 37, 21, 44,190, 29,206,174, +194,141, 43,142, 62,137, 25, 45,191,200, 88, 33, 69, 87, 48,206, 51, 49, 41,203, +124,164,201, 31, 95,207,113, 8,222,105,164, 72,219, 58, 21,110, 11,169,229,174, +135, 20, 53, 36, 5,167, 97, 32,187,212, 8,174,243,159, 61, 36, 7,115, 24, 4, +201,143,231,233,143, 98, 48, 59, 63, 20,188, 0, 99, 69,141,227, 54, 53,192, 11, + 35, 0, 63, 71,124,214, 66, 69,253, 16, 50, 62, 47,243, 11,234,161,117,135, 87, + 24, 74,220,159, 74,192,115,138, 35, 21, 27, 20,143,227,184,209, 60, 69,190,145, +160, 35,216, 12,131, 62,145,123,128, 15,145,184,215, 62,166, 11,103,233,239, 75, + 14,137,166, 84, 88,150, 73,233,120,147,149,218,204,142,100, 89,166, 85,163,196, + 71,178,218, 76,168,254,155, 14, 57,242, 11, 47,152,183, 46,223, 71,216, 66,145, +129,187,209,171, 34,143,112,249,243,140, 30,201,109, 14, 71,122, 54,193, 19, 74, +110, 35,206,226,100,108,200,217, 84,250,192, 33,164,254,155, 84,144, 58, 77, 67, + 81,127, 16, 3,215,170, 51, 57,173,102,250, 77,127,215,135,199, 56, 28, 92, 23, +174,225, 28,211, 67, 82,246,228, 32,137,174,255,134,134,141, 93, 85, 9,128, 1, + 27,176,168, 15,219, 60,178, 45, 1,217, 80,130,146, 51, 48,111, 99,103,157,109, +170, 7, 87, 56,137, 53,187, 70,133,186,222, 19, 95, 58, 37, 61, 39,235,213,204, + 19, 80,216,168, 96, 97, 77, 92, 85, 87,105,125,172,218,141, 15, 62, 85,195,149, +158,148,161, 6,165, 86, 19,112, 20, 17,179,102, 58, 84,236,215,110,230,127, 86, +206,124,105,188, 94,156,162,204, 69,148, 5,244,167,141,106, 61, 27,154, 68, 77, +222,158, 11,243,145, 31,136, 4,232, 68, 97,198,133,202,165,146,123,102,162,146, +107, 48, 23, 64,237,250,135,128,178,110,173,188, 17,216, 81,219,181,145,188, 27, + 13,159,142,142,180, 38,211,236,239, 11,219,224,192,202,246,234,141, 65,180,116, +190,148,168,162,152, 42,126, 74,247,126,186,199, 5, 24,139,173, 55, 5, 82,125, +101,123,238,189,121, 1,135, 25, 56, 1,126,153,230, 54, 70,157, 91,233,163, 2, + 66,242, 25, 95,236,168, 6, 25,246, 50,253,248,101,117,217,105, 27, 0,190,197, + 28,218, 12,122,134, 77,120,206, 80,180,110, 25,154, 64, 48, 84, 91, 33,155,154, +191,164,104, 43,142,223, 28, 64, 41,108,210, 5,132,155,236,222, 27,139,141,222, + 44,107, 7, 64,231,166,154, 1,133,117, 67, 28,104,141,197,251, 75,118, 61, 22, + 29, 95,153, 33, 3,236, 12, 96,168, 75,244, 63,233, 0,217, 72,175, 35,186,163, +180,115, 58,249,143,234, 65,176,194, 25,208,202,201,211,206, 77,160,148,210, 87, +237,202,232, 99,123,194, 46, 82,228,169, 47, 78,234,154, 0,162, 96,235,129, 99, +212,175, 41, 24, 42,187, 81,229,197,244, 48,117, 41, 81,200,117,164, 89,203,105, +180, 60,120,233,235,205,137, 77, 16,147,205, 23, 6, 6,129,239,166,128,230,155, +155, 31,204,137, 8, 77,133, 98,127,158, 14,182, 19, 45,139,181,134,107, 80, 94, + 25,118,174, 14, 87,183,164,164,255,211,168, 93, 92, 56,250, 82, 67,195, 97, 91, +205, 22,191, 92,191,100,188,129,245, 82, 31, 64, 76, 45,184,227, 30,200, 13,230, +201, 82,230,195, 29,161, 10,234,112, 95,156, 33, 28,170,158, 18,215, 32, 51, 79, +238,111,174, 60,116,188, 78, 38, 56,127, 7, 60,145,188,134,163, 59,194, 36,208, + 62, 48, 12,143, 35, 20,207,203,136,111,102,165,191,249,195,158, 13, 52,186,185, +110,210, 47, 75,123,198,206, 28,103,181,249,244, 1,164,110,240, 47, 83,203,129, + 47, 5,156,229, 21,205,223,152,148, 43,132,226,103,119,236, 43, 29,250,215, 15, +142, 15,155, 17, 11, 56, 63,153,191, 13,207, 23,172, 65,251, 26,209,156,128,107, + 28,127,146, 35,144,114,197,242,148, 2, 16, 38, 41, 58,255,166, 10,245, 78, 21, +244, 70, 84,172,224, 51, 27, 93,214,155,147,194, 22,104,196, 64, 16,163, 84,197, +176, 85,241, 15, 92, 85, 37,175,149,182,236,131, 26,225, 59,219,153, 27,116,150, +197,168, 21, 66,132,251, 34, 49,227,113,226, 67,226,204, 30, 49,184, 51,134,136, +170, 20,208, 93,201, 12, 49, 41, 70, 45, 89, 97,126,237, 36, 3,166, 61, 71,132, + 38, 49, 17, 25, 86,242, 93, 69,250,250, 81,140,123,130, 40, 9,214,196,252,216, +180, 83,220,253,157,254, 16,121, 26,207, 4,148,143,232,154,112, 0,171,234, 72, + 48, 8, 65, 91,192,186, 25, 41,143, 0,164, 85,246,116,158, 96,179, 41,160,129, + 45, 1, 61, 4, 69, 60, 60,198, 41,203,127, 9,241,219,191,136,249, 99,112, 38, +246, 60,138, 20,173,144,234, 53, 0, 55,166, 68, 59, 2,182,138,176,148, 97,191, + 66, 42, 25, 83,132,232,204, 36,149, 18,159,206, 0,144,203, 83,232,254,199,127, +213,206, 41, 47, 99, 0,254,163, 60, 83, 47, 61,167,137,224,165,254, 48, 21, 45, +251,144,225, 77,252,178,147,163,199,161, 42, 8,169,195,171,215, 88,156,252, 0, +164, 58, 54,175,193, 26,188, 76,210, 67,231,196,219,244, 24,125, 10,206,163, 71, +112, 64,122, 46,170,170,110,225, 60,186,217,240, 48,213, 82, 5,103,146,122,196, + 19,145, 32,131, 51,110, 33, 69,245, 53,153,220,225, 87,249,239,133,115,200, 88, + 84,144,166,190,228,235,188, 22, 98, 26, 21,149,178, 35,226, 48,147, 51,241,111, +184,168,125, 18, 19,228,121, 12, 41, 45,194,250, 20,184,225, 89,112, 32,177,217, + 32, 20, 20,184,115,195, 90, 31,135, 75, 91,193, 15,230,117, 79, 83, 20,162,180, +253, 33, 48,155, 76, 2,197, 19,248, 40,118,237,184,241,211, 48, 71, 64, 12,244, +216,131, 28,203, 15,242,129, 97,180,156, 8, 2, 27,198, 42,121, 66,170, 25,139, +220,218,185,130,124, 95,255,145,158,135,226, 16,111,129,159, 17,232, 18,184, 82, +141,143, 46,206,124, 47,196, 86,135,213, 2,216,202,164,115,192, 75,126, 67,170, + 5, 18,168,149,172,252, 4, 65, 55,226,231, 88,237, 36,160,111,124,109,226,101, +117,211, 33, 77, 67, 86,146,180,223, 53, 60, 48, 10, 80,129, 32,233,153,153,193, +171, 72,195,137,234,249,250, 60,167,201, 78,244,133,237,241, 1,166,156, 74,120, +242, 62,246, 56, 40,129,164, 1,173,205,188,207, 93,198,234, 45, 63,206,121,181, +154,252,171,131,213,224,197,170,126, 74, 62,202, 26, 68,164,151,108,159,233,224, +208, 32,119,168,246, 76,158, 84,164, 22, 60, 85,243,229,122, 41,176, 49, 91, 98, + 13, 43, 4, 32, 31, 93,165,230,161, 62,124,159, 3,101, 74,231, 94, 0, 62,178, +167,197, 32,144, 15,164, 84,198,158, 44,108, 50,152, 71,202, 59,226,166,185,160, +136,212, 0,230,150,110,248, 74, 92,123, 26, 67,236,219,240, 40, 48, 87,243,215, + 55, 37, 49, 88,219,100, 5, 40,205, 42, 73,144,240,230, 19,130,107,182,176,246, +184, 49, 30, 71,137,134,119,118,141,132,163, 23,214,166,146, 99, 11,121,212,175, +223,135,147, 90,224,227,236, 50,168,184, 85,148,220,137, 57,164,141, 59, 26,107, + 37,151, 13, 56, 25, 38,252, 90,176,227,180,130,129, 75,104, 51,253,180, 48,155, + 83, 72, 91,190,118,160, 72,110, 14, 84, 54, 70, 90,231,198,122,162,216,109, 88, + 74, 15,140,204, 73,226, 92,178, 11,240,106, 38, 77,222,140,206,153, 48,206,133, +208,101,255, 94, 54,151,110, 18,148,227, 22,130, 38,147, 87, 71, 98, 72,183, 75, +149,109,117,232,151,121,231, 18,158,125,102,238, 61, 63,155,251,193, 28,227, 83, +188, 47,213, 14,145,136,248, 51, 36, 11,243,167,231, 28, 12, 19, 23, 78,201,132, + 37,107,201, 87,193,214,168,205,122, 90, 19,128,189, 57,192, 26,101, 13, 19,199, +163,159, 35,144,108,214,166,215,121,223,105, 15,169,241, 86,204,199,182,125,172, +205,134,239, 17, 85, 7, 43, 98,252, 79,238, 36, 68,156, 79, 83, 27,119, 61,229, +238,152,127, 3,105,149,242, 62,242, 91, 28,227,178, 53,219, 85,173,200,170,148, + 11,237,120,243,160,157,141,197,230,104, 55,232, 96,187, 67, 7, 45,255, 84,131, + 19,132,231,160, 60, 75, 93, 48,136,198,232, 86,143,218,185, 34,111, 5, 61, 59, +132,102, 9, 27,129,143,193, 80,216, 8,115,242,122, 41,218, 92,156, 21,109,116, + 45,218,226,248,253, 17, 21, 98, 94, 45,149,119,108, 12,237,121,249,184, 65,141, +109,141,233, 46,112,239,204,137,194, 53,212, 77,116,204, 54,120,121,167, 44, 94, + 12,182,119, 3,173,126,214,205,192,247,218,218, 82,211,225,159,212,213,128, 27, + 34, 90, 13, 95, 82, 76,190,142, 59,109, 41,211,209,108, 71,202,174, 25,220,133, +254, 45, 2,154,159, 60, 44, 43,154,121, 6,254,128, 34,218,242,100, 92,128,171, +121, 79,204,112,175, 4, 8,215,140, 54,182,251,155, 41,124, 34,154, 55, 93,154, +113,218,196, 6,208, 51,192,235, 44, 61,149, 43, 70,122,142,187,249,107, 65,252, +206, 63, 98,254,245, 62,119,225,148,124,134,134,172,192, 18,123, 81, 29,204, 24, + 80, 3, 97,146,189,218,207,254, 75,159, 56,215,210, 19, 82,163,238, 93, 19,136, +162,135, 50,190, 80,169, 87,159, 3,160,199,208,180,179, 38, 36, 87,123,147, 94, +108, 8,252,241,195,114,237,195, 84, 69, 38, 2, 38,138,230, 55,212, 17,237, 50, + 9,101, 14, 87,213, 79,132, 41,232, 31,152,143,231, 90,184,121,223,210,221, 7, +225, 17, 62, 62,219, 60, 21, 80,227,185,225,117,248,201,121, 55, 38,235, 41,222, +150,125, 68,153,115, 22,214, 2, 51,224,234,178,145,237, 34,205, 39,249,193,196, + 41,173,222, 37,225, 22, 35, 3,155,209, 66,178, 59,171,101,242, 8, 67,165, 62, +236, 70,205, 24,102,184, 24,177, 83, 53,152,157, 49, 73,217, 16, 61,131, 65,144, +239,134,105, 18,253, 72, 16,204, 28,185, 78,170, 48, 90, 76, 29,210,244,102,202, +222,110, 5,247,139, 13, 68, 81, 91, 71,244, 37,174,223,232,146,114,235,109,122, +110, 25,119, 39,138,110,140, 52, 64,248, 66,186,133,155,152,176,218, 1,116, 18, + 52, 53,184, 13,134,139,155,149, 69,220, 82,147,138, 9,224,142,175, 52,124,137, +219, 58,189,133,184, 69,222, 75, 78, 26,108,107,198,202, 72,237,184,161, 54, 83, +130,219, 92, 29,226, 34,140, 29, 27,110, 23,191, 28,241,185, 55,140,126,141, 62, + 57, 27,112,251,174,193,205,211,117,110, 26, 78,183,171, 37,144,172, 25, 90, 42, + 53,205, 71,186, 1, 12,106,147,177,163,177, 69,164, 50, 93,184,235, 18,137,185, + 91, 16,197, 44,110, 12,220,106, 43,129,156,233, 39,130,255,117,210,249,160,109, + 47,250,213,226, 16, 90, 41, 34, 32, 56,137, 69, 82, 57,215, 34, 78,145,140,219, +102, 43,154,221,128,125,193,248, 67,210, 59, 4,206,246,177,236, 15, 41, 34,226, +208,249,137,129,237,117,222,222, 59, 82,236,202,190, 48,245,132,113,197,140,117, +197,163, 92, 76,186, 41,188,250,106, 9,181, 47,144,123, 87, 99,227, 47, 68,162, + 83, 1,219,193, 24,139, 83,160, 1,154,169, 85,121,185,145,209, 51, 96, 24,101, + 52, 77,180, 2, 40,239,145,169, 33,119,235, 14,126, 16, 11, 49,224,198,229, 33, + 54,128,170,242,105,219,192,180,231,198,178, 93,232, 86,219, 16,175,233,227, 85, + 34,177,208, 18,207, 13,197,123,111,123,204, 13, 67, 72, 13,230, 98, 98, 98,149, +146, 48,163, 11,253,184,159,135, 4, 78,180,210,231,224, 42, 30,195,152, 97, 93, +124, 33, 76,159, 2,173,200, 48, 60, 69,168, 24,196,225,176,102,235, 45,253, 74, +232, 12,144,232,205, 13,110,249,149,181, 54,179,141,156,255,229,108,217,142, 96, +221, 45,218, 63,208, 38,250,207,116,255, 82,242, 66, 0, 5,207,237,117, 77,181, +207,191,244,136,147,221,228, 30, 87,157, 26,165, 99, 1, 3, 48, 51,119,119, 62, +102,135, 80,152,216, 6, 70,234, 55, 57,236, 58, 0, 98,237, 45,241, 69,194, 1, + 45, 81,244,135, 57,246, 4,101, 14,102,234,196, 93, 9, 56,238,230, 63,182,103, +157,178, 10,225,123, 86,182, 50,232,198,175, 66,147,184,204,255, 40, 61,115,108, + 88,179,174,222, 82,231,152,241,120,145,223,255,222,150,222,237, 97, 64, 86, 23, + 68,185,205,138, 0,131,215,122, 88, 57,176, 82, 4,223, 43, 98,136,214,191, 40, +229, 81,235, 53, 67, 22, 15,176, 31, 62,174,254, 1,252, 90,197,201, 72, 92,209, + 92,222,156, 90, 89, 32, 0, 29, 80,184,122, 52,228,120,172, 94, 28,178, 17,208, +201,187, 18,136, 26, 30, 60, 92,213,157,129,158, 65, 83,152,184, 18, 16,236, 50, + 53,217,149, 5,139,169, 19, 53, 76,170,209, 35,130,123,223,201,190,234, 45, 72, +222, 5,162,177, 85,221, 21, 64,159, 78,208,229, 36, 45,201, 88,154,148,167, 32, +233, 83,140,220,201,252,198,147, 26,136,213,150, 96,233, 37,167,185, 83,219, 15, + 47, 45, 82,159, 24, 14, 30,181,177,183,177,178, 53, 24,121,113,200, 93,155,137, + 9,245,180,235,219, 52,176, 35, 56, 68, 16,229, 58,175, 56,234, 36,216,186,157, +156,254, 62,221,249, 65,184,128,127,168,117, 42,114, 75,196,113, 52,171,162,124, + 62,159,169, 65,230, 31,197, 4, 70, 93, 24, 95, 29,145, 94,146, 84, 67,194, 59, + 16, 72, 62,206, 17,210, 41,235, 21, 1,218,118,249,157,114,188, 75, 16,157,180, +253,103, 2, 89,156, 92,157,205,124, 75, 57, 98,222,126,116,114,201, 39, 50,180, + 37, 59,121,238,122, 76, 92,152,102, 97, 62,218,203,130,113, 98, 87,204, 33,213, +196,233,204,206,214,119, 60,127,180,246,156,136,234,198,120,171, 4, 86,196, 69, + 28, 71,202, 28, 58, 69,108,213, 54, 57,128, 21, 81,132,168,199, 68, 25, 68, 95, + 50, 65, 23,209,112, 85, 16,121, 98,212,165,160,157,189,166, 1, 29,148,170,192, +112, 24,167,213, 15, 88, 92, 88,111, 37,136, 60, 93,151, 40,241,166, 53,184,203, +194,127, 24, 99,178,118,130, 1,205,166,241, 23,171, 87,234,219,136,248,189, 3, +133, 16, 11,146, 12, 29, 68,218,188,220,254,181, 79, 3, 20,248, 4, 91, 42,118, +199, 60,119, 96,208, 49, 85, 14, 75,183,114,189,249,144, 12, 0, 31, 39, 66, 29, +197,211,223, 90,132, 52,140,101,165, 37, 22,160,237,125,252,159,176, 23, 3,245, +140,226, 42, 18,174, 29,229, 67, 10, 87, 8,117,221,179,171,245,146,228, 65,241, + 5,188, 96,178,191,133,163,100,204,231,135, 51,226, 21,227,107,115,181,160, 89, +226,244,138, 43, 75, 68, 45,154, 76,213,139,187, 1, 29, 49,217,205, 31,146,190, + 72, 89, 11,194,128,249, 19, 2, 29, 75,172, 8, 32, 31, 13,212, 44,146,170, 43, + 46,232,245,240, 24, 14,238, 9, 20, 10, 32, 33, 46, 36,156, 40,207, 52,209, 21, + 36,251,103, 75,205, 14,115, 58,211,195,252,113,102, 67, 48,153,101,253,249, 59, +108,182,202,174,131, 55,151,147, 78, 25, 41,220, 23,215, 28, 80,187,139, 14,168, +189, 58, 32, 26,175, 30,115, 47,243, 29, 56, 28, 89,236,124,238,228,116, 16, 56, +196, 30,246,126,228,205,215, 91,152,231,171, 77, 90,228,210,124,117,141, 17,177, + 76,144,250, 37,233, 70,220, 3,205, 85,191,136,188, 33,225, 38, 84,253,238, 80, +152, 7, 20, 26, 18,158, 16,239,130,196,125,230,176,122,105, 45, 57,250, 16,253, +149, 71,178,170,152,173, 40, 31,225,215,143, 80,170,118,133,187, 15, 13, 96,165, +129,215,112,176,172, 5,213,177,186,229, 40, 61,201, 73,123,221,121,185,217,200, +172, 33, 94,171,188, 27,104, 61, 24, 7, 90,165,223, 28, 6, 84,251,131,117,186, + 6,191,100,158,226, 89,249,188, 84,215, 81, 94,218,154, 91, 23,126,196,189,211, + 48,225, 40,179,126, 42,134, 51,152,119,244, 95, 93,209,121, 44,170, 37,192,233, +176,132, 15, 7,181,136,177, 66,168,131,158, 73, 81,158, 73,201, 51,229,211,152, +221, 22, 46,208,249, 32, 18,216, 2,193, 22,237,158, 8, 26, 78,136, 81, 92,198, + 30,149,207, 62,152, 32, 65, 42, 89,231,254, 40,106,163, 51,121,215, 50, 41,176, +191,211, 40,210,146, 12,142,190,243, 23,204,163, 90, 86, 0,186,141,173, 63,104, + 78,165,226, 48, 93,251,109,170,249, 11,180,177, 7,166,212, 64,105, 63, 89, 17, + 19, 93, 43,245,168, 70,151, 0, 84,178,179, 14, 78,208, 78,138,101,109, 99, 90, +145,205,128,203,236, 32, 94, 99, 64,154,124,166,172, 25,232, 80, 83, 44,129,203, +127,226, 95,191,149,250, 60, 48,205, 82, 90, 45, 61,137,186,181,203, 31, 9, 91, + 8,113,183, 25,188, 31,189,120, 31, 29,235,241,207, 0, 58,100,198, 95,159,152, + 19,153,114, 71,239,131,169, 78,152, 43,169,158, 9, 6,248,121, 30,238,220,229, + 72, 84,192, 65,100,174,222,165,212,228, 22, 16,199, 71, 83, 89,184, 38,172, 91, + 88,100, 10,130,133, 21, 4,211, 95,210, 6,230,219,190, 82,124, 6,205, 93,149, +138, 78, 7, 57, 47, 62,190, 85, 0, 6, 66, 2, 89,140, 78, 89,172, 80,210, 4, +217, 20,121, 81,210, 95, 56,238, 17,242, 29,219, 72, 28,217, 30,229,172,255,218, +195,190, 51,154, 42, 12,114, 28, 43,200,126, 48, 25, 11, 65, 4, 96,183, 49,124, +162,110,195,198,156, 24,101, 46,215, 71,114,148,169, 99,209, 40,115, 78, 76, 52, +153, 67,226, 27,207, 71, 29, 71,121, 10,250,150, 91,115, 84,248, 9,153,192,215, + 72, 77,251,198,254, 8,136, 54, 38,196,171,119,104, 23,174,158, 71,239, 59,193, + 16, 37,180,215,214,195, 36,189,142, 92,112,101,103,141,191,244, 5,192, 67, 91, +181, 27,101,243,126, 39, 59,117,206,146, 32, 5,171, 66, 39, 9,178, 56,253,140, + 79, 89,195,156, 81, 56,176, 98,237, 16,168, 97,130,130,227,218,193,200,221, 29, +238,114,175,225,228, 18,214, 84,170, 87, 80,192, 5,127, 12,111, 4, 12,107,157, +174,136,108, 45,123,131,166, 18,219,122,180,177, 7, 10,217, 74, 20,162, 58, 29, +233,232, 65,245,123, 80, 65,206, 33,162,245,203,196,148, 55,209,227, 85,165,126, +101, 18,214, 57, 16,255,172, 59, 13,185,116,208,141, 68, 27,126, 62,229, 5, 1, +102,126, 98,105,104,206,200,170, 21, 98,145,160,131,155,222,186,249,105,212, 34, +201,219,213,152,161,194,200,243,176,220,213,113, 35,173, 54,116,194, 93,192, 99, +213,214, 6,130,222,204,117, 2,226,133,193,225, 45, 10,173, 70, 81, 17,237, 84, + 66,240, 78,226,148, 24,138,190,157, 99, 79,130,161, 61,215,163,131,101,165,145, +131, 50,183, 85, 28, 28,184, 38, 79, 37,124, 35, 93,165,135, 29,187,167, 4,118, +110, 32, 23,198, 60,229,212, 4,158, 20,227,221,240,229, 92,115,111, 28, 24,228, + 18, 8, 15,184, 71, 92, 35,246,107, 89, 72,170, 17,192, 79, 11, 16,171, 96,152, +168,208, 51,129, 64,252, 17, 22,181,152, 5,192,182, 54,186,200, 8,176, 34, 16, +134,233,122, 14, 15, 82,213,105,231, 31,204,205,153, 99,243,174, 42, 0,121, 13, +225,118,211, 67,109,148, 90, 58, 97, 8, 48,100, 88,165,204,236,167,154, 60,107, + 82,103, 57,145, 73,119,194, 29,185,132, 38,240, 10, 79,112,233, 12, 17,171,102, + 22, 83,144, 43,117, 48,158,108,211, 77,146,252, 41,114,218,133, 43,181, 6,164, + 96,218, 10,231,156,159,244, 6, 92,234,159,238, 52,129,210,102,142,221, 31,106, + 68,164,202,161,180,186,209,181,200, 34, 91,116,147,125,124, 16, 83, 99, 43, 67, +146,196,185,118,185,230,215,126,104, 35, 53, 65,197, 1,114,155,192,200,155, 19, +133,164, 29, 47,215,106, 88,229, 68, 18, 57, 49,109,152,204, 89,139, 47, 1,218, +170, 43, 5,171, 35, 94,126,129,139,121,214, 70, 81, 57,189,125, 23, 30,146, 96, + 21,251, 7,148, 61, 21, 40,193,187,249,135, 64, 97,101, 32, 83,178, 71, 65, 17, +158, 12, 1,184, 25, 80,127, 70,159,238, 34, 15, 40,163,165,211,180,242,119,109, + 5, 24,171,103,172, 55,166, 33,239,197,106,242,128, 7, 52,241, 96, 32,196, 36, + 25, 4,159, 15,108, 98, 96, 19,249, 46,156,245,222,106,197,106,253,103, 38, 22, +180, 97,208,190, 37, 15, 81,163, 84, 14,194, 90,220, 59,147, 10, 24,131, 9, 55, +182,231,104, 15,121,206, 65, 64, 35,187, 19,110, 38, 61,182, 60, 93,152, 45,168, +139,146,188,141,184,115, 10,231,117, 72,129, 35,234,187,178, 59, 96,134,218,210, +209,142, 89, 70, 39,168,249,166,107,230, 15, 50,136,218,199, 78,209, 44,228, 97, +138,241,158,211, 24,146,165, 37,229,238,226,254,227, 74,240, 25,206,177, 50,224, +215,112,231, 76,199,154, 14,245,201, 20, 64, 41, 75, 2, 58, 23, 37, 32,211, 78, + 29,184, 25,129,254, 4,178,243,204,120,196,198, 30,170,187,178,185,253, 49, 73, +186,251,154, 33, 74,188,105, 10,244, 51,133,125,159,192, 34, 49,165,233, 5,117, +129,193, 81, 8,212, 77, 44, 49,217, 63,210, 91, 90, 55,251, 19,105,137, 2,197, + 16,198,233, 81,100, 78,246,248, 24,133,227,138, 64,143,145,212,188,102, 81, 3, +237, 92,242,193,184,235,142,182,108,154, 65, 88,148, 43, 92,199,166,215,105,204, + 44,127,139, 19,175,233,253,129, 54, 63, 38, 34,201, 51,182, 57,205, 17,209, 62, + 52,230,232, 3, 37, 98, 68,165, 51,226, 4,165, 77,153, 28,226,224,223,156, 23, + 30,145, 42,255,129, 27, 68,251,114,241,160,136,193, 44, 71,208,123,146,255,167, +112,208, 57,142,252,199, 19,194,219,194, 52,167,135, 28,157, 77,195,225,129,170, +179, 25,156,196,236,224, 89,246,237,138,124,163,142, 53, 92,187, 9,104, 92, 9, +245,108, 12,131,104,215,100, 30,200, 19,208,223,201, 66,251, 46,209,172,195,132, +212,168, 9,204,179,145, 99, 48,198,118, 53, 94, 44,142, 33, 47,211,132,201, 8, + 84,225,106, 57,248, 75,211,237,238, 17,251, 7,122,151, 38,149,102, 36,220, 39, + 59,247,193, 97,206,151, 35, 70,149, 31, 10, 3,250,171,173, 55,116, 78,192, 65, +151,241,167, 18, 15,169, 50, 36, 58,105,235, 48, 81,173, 56,171,217, 41,104,123, +254,129,121, 38,131, 3,198, 34,159, 45,112, 45, 43,226, 54, 87,204,132,110,101, + 1,145,166, 82, 46, 29, 38,235,139, 41,126, 80,100,168,120, 23,205, 15,163,236, + 10,250,132,217, 38,242,125, 33,233,203,246,195, 86,205,133, 79, 14,106,115,100, + 72, 90,134, 95, 68, 44,178, 45,118, 21, 5, 58,106,132,151, 86,232,213, 61, 70, +129,192, 65, 55, 89, 65, 64, 81, 74,161,168, 59,159,168,188,181,233,176, 19,225, + 91,254, 33, 55, 46, 57, 32, 38, 26,237, 47, 72,105,141,239, 8,139,190,248,193, +187,224,212, 24,129,149, 93,252, 52,200, 96, 71, 20,163,189, 91,236,150,106,225, +115,219, 10,164,126,254, 24, 16, 49,119, 58,153,137,207,121, 64,209, 78,103,243, + 40, 9,180, 60,169,117,250,220,216,170,134,224,131,207, 0, 1,229,248, 73, 40, + 66, 19,194,126,230,252, 26,121, 62,158, 55,192, 17, 71, 4,202, 97,150, 69,119, +131,145, 86, 60,188,107,254, 21, 46, 7,231,196, 73, 0,194,250, 60,205,181, 84, + 29, 94,212,193, 39,237,120, 70,157, 81,146,236, 5,152,130,101,230,247, 74,243, + 64,101,225, 75,206, 26,174,238, 87,154, 24,188,182,133, 15,112, 13, 84, 76,252, +165, 44,204,153,196,241, 58,205, 1,147,101, 13, 45,171,213,236,253, 16,151, 17, +154, 1,196, 84,104,170,175,148,151,192, 7,114,185, 17,213,161,152,118, 47,231, +129,143,218, 70,133, 92,181, 21, 34, 12,222,217,212,228,168, 57,210, 99,139,125, + 86, 32,254, 69,243,218,162,124,120,214, 42,226, 52,235, 60,184,253,204,202, 11, + 42, 78,112,198, 44, 4, 75, 39, 51,157, 21, 21, 3,236, 25,253,138,244, 75,167, +206, 1,117,184, 89,228,123, 30, 45,110,173,161,141, 3,253, 37,157,237, 7, 5, + 73,234, 48,162,186,208,150,202,109,153, 27, 1,150,162,152,161, 15,165,213,105, +156, 36,252, 38,151,113,208, 44,244,223,132, 43, 48, 95,201,212,173,123, 91, 22, +149, 24, 3, 85, 5,167, 52,236, 83, 72, 48,116, 69,187, 70,121,197, 7,245, 34, +240,127,243,142, 18,219, 73,149,246,254, 48, 26, 78, 34,116, 49, 92,162, 4, 94, + 95,167, 67,225,159,121,133, 91,163,100, 36,226,231, 2, 65, 87, 18,180,231,235, + 73, 67,141,114,159,168, 89, 61, 44,145, 13,228, 46, 23, 1, 0, 98,127, 59,185, +209, 86, 68,177, 77, 37,228,157,204, 54, 23, 14, 44, 42,121,124,249, 58, 46,224, +103,171, 8,181, 83,178, 29,240,150,144, 39,129,142,187,205,162,121,147, 41,236, +174,216,138,122, 81,233,124,178,215,157,183,175, 34, 28,161, 96,150,214, 30,102, +205, 36,150,242, 20, 61,230,120, 0,116, 68, 13, 80,163, 14, 32,246,182, 57, 29, +160, 16,232,106,247,118,131,218,155, 12,251, 29,169,187, 85, 96,241, 4,167,224, +218,175,252,128, 96,138, 13, 16, 53,115, 54, 55,136,176,129,121,193, 78,215,108, +210,142,140,232,188,194,231,174,234,121,123,193,146, 44,235,111, 10,126, 75, 61, +139,235,214,134, 1, 24,168, 49, 36, 54,105, 68, 70, 66,190,242,130, 49,176,101, +171,232, 17,246, 58,149, 73,201, 63,128, 74, 79,192,163, 68,162, 19,141,165,238, + 95,179,228,177,255, 86, 35,205, 65,150, 14, 14,189, 57,244, 9, 71,219, 0,238, +126,182,136, 15, 94,221, 33, 13,136,104, 18,232,124,235, 62,181,204,248, 31,135, + 76,218,135, 90,253,143, 54, 14,118,110, 44,179,200,223, 24,199,101,210,235,230, +198, 92, 18,212,195,169,157, 72,247,125,118, 78, 39,232,132,181,124, 92,102,178, + 18,151, 28,169, 82, 64,191,238, 19,216,126, 36,237, 18, 42,219,125, 6,213,127, + 69,147,181,223,185, 97,203,129, 77, 67,234,201,198,235,115,119,166,224, 61,153, +125, 80,168,192, 31, 73,184,179,106,191, 35, 81,236,132, 59,213, 60,224, 18,150, +210,142,247,107,224,119, 70,203,149,112, 11,240, 85,173, 97,223,221,203, 28,227, + 12, 73, 8, 92, 80,190,214, 61,173, 77, 15,140,161,248,242,121,135,121, 87,228, + 95,110, 41,141, 20,231,117,185, 17,145, 93,214, 66, 94,139,142,176,184, 62,176, + 1,124,170,221,247,239,244, 54,160, 82,238, 44, 45,204, 76,186,240,218,244,147, +162,230, 51,243,211,105, 31, 24,197,180,153, 7,109, 4, 25,135,133,173,110, 81, +180,126,145,220,160,166, 89,160, 27,249,117,117,160,253,235,193, 86,114,165,119, + 17,244,126,152, 13,206,234, 3,227,151, 97, 75, 45, 25,250,102, 46,111, 71, 96, +157, 30,123, 37,123, 24,120, 30,191, 93,156, 41,100,242, 89,148, 54, 41, 30, 7, + 62, 8,217,110,145,180,130,171, 27,185,116,112, 52, 82,217,220, 46, 8, 33, 59, +177,249,207,113, 94,176,112,106,101, 73,119,142, 26,227,117, 0, 80,144,117, 76, + 67,189, 54,190,119,162,246,137,254, 9,167,188,218,159, 2, 47, 87,166,177,191, +217,190,233, 65, 26, 34,100,230,223,180, 84,241,191,179, 64,184,248,235, 59,197, +160,226,248, 12,209,229,148,178,184,252, 57,115,195, 10, 29,103,254,173,226,119, +140,208, 62, 78,229,192, 91,227, 55,199,142,174, 63, 18,219,212, 13,132, 11,208, + 87, 17, 73,149, 70,119, 97, 14, 25,119, 37, 41,175,208,245, 70,173,196,135, 16, +212,255, 31, 92, 67, 61,246,225, 89, 52, 43,217,237,127,111, 94,222,172,237,198, + 34, 29,227,239, 77, 28,126,202,233, 18,132,158, 43, 98,210,185, 66,139, 14,139, +217, 60,117,248,133,178,217,100, 92, 55, 93, 16,135,115,122, 20, 68,104,191, 47, + 4,132,201,234,162,237,229,213,168, 82, 26, 34, 74, 25,185,220,156,212, 51,143, +183, 97, 90, 48, 23, 62,158, 85,104, 68,176,126,101,226, 21, 83, 42,152,243, 15, + 60,146, 99, 10, 72,145,190,161, 39,248,216,211,154, 63,225,111,120,221, 0,181, +104,224,114,217, 67,213,204, 7,198,192,183,155, 56,147,170,217,109,139,219, 62, + 92, 53,133, 17,226,154,177,181,122, 78, 61,160, 77,172,204,128,114, 1, 80,246, + 66,209, 81, 6,171,171,212,117,220, 6, 90, 7,198,140, 26, 88, 90,132, 58,100, + 41,254,138,157,171, 43,251, 50, 36, 24,131,139, 67, 7,162,135,145, 5,168, 23, + 92, 49,154, 7, 53, 39,133, 20,145,199, 59,234, 15,176,178, 47,151,184, 12, 30, + 90, 61,135,142,170,122,232,207,187,173,177, 65,170, 97,128,209, 98, 64, 48, 34, + 42,209,163,230,229,162,250, 44,186,226,224,142, 55, 57, 24,239,115,209, 9,158, +131, 68, 35,140, 53, 26,215,209, 18,115,105,114,105,198,126,154, 5,147, 1, 34, +206, 71, 82, 84,147, 1,106, 42,132, 29,194, 89, 7,165, 12, 11,243,130, 94, 56, + 84,197,160, 72, 33,203,182,162, 23,190, 26,242,143,129,151, 50, 26,151, 50, 26, + 23, 97, 32, 29, 77, 41, 27,173,105, 77,181,234,189,181, 20,112,222,186,247, 15, + 77, 37, 42,216, 64,181, 2,237, 96,184,158, 48, 97,123,138, 94, 43,205, 70, 75, +239,154, 16,196,251, 80,203,157,102, 54,224, 62, 80,176, 23, 35, 44, 97, 58, 65, + 58,187, 41, 65, 61,228, 10,103, 47, 3, 9,111,147,201,110,186,232, 47,226, 32, +125, 85, 45,125, 79,225, 85, 41,164,119, 41, 9,198,213,173, 2, 6, 22,240, 84, + 51,176, 12,236,140,216, 2, 42,117,144,170,117,218,212, 55,114, 16,243,148, 30, +253,142,216,213, 16, 8,210,183, 84,105, 30,221, 43,176,187, 57, 61, 0, 57,213, + 37, 76, 30, 13, 44,235,234, 90,139,163,236,186, 42, 10,142, 93,135,122, 26,181, + 84,163,102,146, 91, 45, 1, 17,218, 72, 64, 12, 43,171,124, 7, 62,251, 39, 29, +213,211, 23,248,186, 27,242,118, 60,234,242, 19, 98,221,212, 10, 81,235,169,106, +101,221,179,194, 6,137, 85,127,181, 64,212,186,172,234,234, 23,181, 80, 91, 47, +224,186,128,182, 30,219,181,248, 81, 35, 84, 52, 68,190,174, 65,127, 26,108,175, +186,228,254,244, 35,248,159,183, 87, 38,171, 91,166,140, 79,128, 21,152,192,148, +144, 43,117,146,157,243, 0,230,118,165, 40,224,208,232, 1, 52, 2,127,225,100, + 89,191,195, 77,134,165,233, 69,250,165,232,111,225,155, 8,133,116, 97,237,127, + 57, 65, 75,183, 41,131, 25,102, 24, 94, 8,155, 0,153, 0,153, 0,121,115,107, + 70,243,222,250, 62, 68,220,224,114,247,202,146,124,225,194, 32,177,112,112,137, +105,246,115, 71,215,140,237,119, 11, 69,150, 87, 98,149, 99, 78, 99,243,126, 25, + 89, 12, 45,224, 51,122, 15,147,113,225,149, 44,221, 34, 45,110,209,119,211,108, + 54,209, 39,196, 69,207,109,197, 23, 27,120,148,233, 19,139, 50, 44,218, 58,119, +153,107,105,115,165,171,179,105,227,118,103,186, 42, 2, 42,239,231,166,250,209, + 80,212,212,161,253,246, 42, 92, 8,122, 14,222,141,190,143,133,126,252, 65,240, +197,252,161,109,203, 84,191,111,244,114,252, 85,251,157, 44,107,222,170,181, 81, +230,110,153,168,102, 84,124,219, 62,131,158, 8,150,110, 52,195,253,147, 60, 44, +136,220,160,167,219,189,120,229,237,202,249,127, 21,128, 74, 2, 78, 89, 61, 76, +171, 29, 53,119,219, 83, 14,135,239, 59, 26, 74,241,183,184,187,255,168,111, 91, +183, 56, 67,219,229,129,185,132,105, 41, 29,190,120,247,117, 85,215,117, 89, 86, +196,242,235,178,188,186, 34,149, 95,149, 91, 21,196,132, 46,147, 43,211, 31,209, +238, 19,119, 10,180,163, 35,176,207,124,101,173, 81,116,129,215,238,127,151,126, +220, 41, 31,178,155,114,191,117,245,201, 39,234,239,140,119,203,103, 57,214, 39, + 73,224, 16, 2, 58, 89, 19, 68,185,105,176,241,233, 29,141,206,181,195,121, 6, +219, 93,206,118, 1, 28,251, 82,155, 17, 74,142,177, 3,248, 99, 63, 95,211, 26, + 62,183,166, 41,158, 26,149,107,241, 63,132,192,249,158,180, 32, 50,131,218, 76, +233, 26,212, 30, 4, 66, 69,223,188,140,148, 54, 49,157,237, 83,147,159,124, 15, +138,206,171,245,140,113, 70,239,192, 48, 12,230, 26,244,153, 14, 70,249,204, 67, +163,173,155,135,130, 40,167,191, 78, 60,161,166,186, 2,127,132, 32, 69,148,162, + 98,190,153, 86, 13,145,253,214,113,157, 6,115,160,239,225,212, 76, 54,104,180, +230,140, 67,104,189,231, 51,193, 97,228, 93, 18,167,162, 37, 93,211,194, 23, 2, +145,100,255, 36, 15,195, 57,230,174, 83,142, 67, 51, 14,144, 89,213, 4, 29,208, + 37,132, 17,226, 16,190,231, 33,172,129, 23,201,228,138, 64, 56,189,186,250, 47, + 28,130, 48, 24, 95, 39,153, 92, 17,247,199,227, 34,153, 92,145,137,197, 81,187, +101,244, 25, 41,199,114, 35,100, 93,110,108,128,166, 2, 15, 39,121, 60,158,247, +252,243,120, 98,190, 87, 99, 9, 93,217,200, 85,186,141,196,116,193,254,128,198, +107, 80,206,135, 77,186,187, 29,231,110,212,190, 68,140,180,222, 92, 45, 66,150, +178,193,151,144,162,221,172, 98,252,154,214,159, 47,117,169,105,150,148, 39,204, +161,180,239,209, 39,197, 39,165,130, 64, 65,240,127,247,121,192, 77, 76,178, 1, + 19, 70,109,187, 57,231,207,154,233,199, 20,139, 58,172,196,250,101,145, 48,128, + 0, 35,113, 0, 8, 12,141, 75, 68,130,161, 56,158,231,105, 30,210, 15, 43, 10, +195,122,202,126,214, 22, 93,105,172, 81,188,231,225, 24,101,145,211,206,244,169, + 70, 81, 36, 72,220, 28,210,204, 44, 34,122,136, 92,136, 64, 43,231,216, 91,148, + 3, 46,181,183,214,183,128,102,120,145,122, 73,125, 93,196,139,222, 87,155,127, +179,100, 72, 63, 52,191, 20,209,175,231,169,156, 20,128, 70,183,246, 76,117,157, + 18,158,221,175, 24,228, 58,199, 69, 74,176, 28,226, 3, 82, 34, 49, 75, 15,115, + 82, 73,157, 85, 30,146, 80,198,104, 67, 1, 15, 77, 31,233,106, 22,126, 9, 4, +234,135,224, 74,135, 20,252, 79,101,100,180,161,166,154,144, 4, 79,207, 15,141, + 96,112,135,126,204, 71, 83, 1, 61,139,136,179, 65,253,161,177, 72, 96,245,137, +211,193,149,140,245, 20, 66, 18, 75,120,252,233,157, 98,127,175,154, 3,167, 59, + 33,236, 50,110, 25, 38,174,156,132, 11, 6, 17, 93, 48,255,183, 48, 0, 39,150, + 91,227,168,170,124,247,167, 63,143,149, 95,115,128,226,245, 51, 99,178,211,214, + 70,181,176,145,170,106, 29,101, 61,238, 5, 10, 58, 94, 53,241,253,207,152,236, + 72,139, 87, 56, 78,195,249,236, 18,114,221,139, 8,155,240,177, 53, 45, 17,205, +252, 72, 55,240,190,151, 48, 62, 7,171, 90, 86, 31, 35, 64,232,143,157,198,235, +134,222,210,126, 26,254,233,199, 20, 89, 28,122,138,239,121,181, 79, 35,147, 76, +236,105, 36, 48,212,198,103,185,159,127,122,235, 9,193,123,189,237,188, 64,105, + 23,162,151, 42,102,200,138,175,134, 18, 82,130,158,120, 3,227, 4,160,204, 48, +238, 36,107, 67,185, 89, 78,161, 9,134,177, 38,167,150,239, 83,154,227, 57,228, +151,110,124, 10, 4, 87,210, 4, 0,160,166,252,150, 11,175,233,197, 16,221,157, + 92, 57,149,192,222, 37,122, 79,174,112,235, 11,238,129, 92, 45, 52,169, 20,196, +100, 25,224,145,113,184, 33, 22,198, 1, 56, 7,106, 95,192,108,238,206,255, 53, + 25,109,107,254, 61, 50, 86,138,108, 26,195,214,200,147,206, 31, 93,255,239, 32, + 62, 80, 67, 41,110,236,218,215,140,154,100,180,203,117,186, 19,167,124,199, 46, +235,147,149, 0,226,192, 38,201,121,206, 83, 30,158, 37,228,100,126,110, 72,172, +167,168,115,119, 22, 31,126,248,238,230,184,210, 74, 25, 69, 3,153, 34,169,251, + 0, 5, 52, 32,175,188,154,129,188, 1,184, 60,254,137, 13,191,107, 95, 69,212, +137,110,250, 33,190,217,174,223, 96, 74,158, 10, 65, 33,233, 68,161,185,253, 82, +113,134,212,214,193, 86,196,147,211, 88,144,123,253, 74,153,212, 73, 58,168, 15, + 36,179, 9,211, 57, 9, 90,191,143,209,218, 5,158,232,240,146, 50,223,249,111, + 53,123, 24,251, 56, 49, 38,114,120,222, 48,181,206, 82,151,253,152,189,132, 11, + 70,216, 80, 38, 88, 51,131, 44, 80,155, 11,119,137,173,174,188, 46, 15,134, 25, + 95, 84,188, 21, 6, 27, 98,130,216,221, 53,100,226,190, 69,164, 7, 98,174, 60, +241, 44, 65, 14,193,209,114,239, 67,158,201, 1, 94, 40,165,121,151,207, 11,124, +116, 58,210, 89,173,107, 20, 17, 47,102, 43, 23, 41, 1,203,215,203,150,123, 33, +232,129,221,169,179,114, 45,229,160, 49,202,193,248,196, 98, 36,246, 93, 80, 69, +178,219,153, 71,243, 13,171, 2,200,181,182,115, 14,202,242, 21,131,127, 96, 18, + 62,217,255,121, 51,126,217,249, 68,123, 54,186,110,121, 60,219, 50, 8,150,180, + 84,195, 43, 68, 92,144,197,223, 2,162,218, 94,176,194, 68,149,252, 43,189,244, + 62,192, 64, 57, 96, 37,253,213,164,107,202,115,143, 49, 38,151, 95,170, 2, 46, + 48, 87, 61, 26, 24,192,155,164,218,122,217,162,176,126,176, 83, 48,157,100, 39, +253,163, 30, 44, 29,232, 42, 31,158,145, 6,251,165, 98,237, 42,178,125,194,118, +125, 61, 52, 68, 10,161, 84,152,153,171,137,130,112, 74, 2,203,245, 75, 36,238, + 94, 75, 10, 5, 27,150, 84,138, 73, 90, 31, 97, 45,190, 29,192,221,118,172, 46, +204,222, 90, 42,169,116, 59,204,215,138,138,107, 13,101, 53,228,221, 12,125, 70, +252,190,168, 79, 35,157, 82,218,218,159, 42,158,140, 45, 14, 53,213, 48, 61, 35, + 93,245,120, 93,237,232, 43, 29, 33, 83,202,155, 32,198, 6, 22, 78,159, 38,219, + 56,146,139,206,162,182,249, 36,197, 66,187,177, 28, 18,123, 26, 42,133,135, 14, + 89,250, 23,158, 39, 34, 84,248,224, 69,211, 3, 15,101,183, 38,162,125, 13, 13, + 57, 19,145,187, 46,202,132,152,114, 33, 47,191,194,115,233,185, 74, 65,136, 12, +107, 95,204, 25, 48,193,206,251,199,204,132, 2,137,240, 5,191, 64,144, 16, 80, +156,174,145,145,205, 94,128,220, 77, 4, 42, 15, 62, 46,216,111,153, 83,222,115, +200, 53, 78,199, 5, 33, 84,194,152,149,253, 54,153, 77, 43,113,193,226,206,163, +212,237, 71, 8,167,199,242,253,162,180,211, 43, 18,118, 64,186, 46,186, 94,235, + 17,170, 72,148,227, 35, 75, 13, 55, 49,111,100, 62,243, 43,253, 37,128,163,104, +128,117,228, 0,246,110, 4,154,164,185,115, 39,166,168,189,177,217,146,207,200, + 54, 44,212,148,136, 52,102, 15,250, 16,207, 82,235,221,216, 14,216, 43,130, 11, +167,110,196, 16,185,132, 49, 11, 12, 56,139,204, 81,107, 20,238,252, 73, 99,123, +169,155, 24,222, 61,175,163,108,184,175,221, 8,206, 15,144,223,225,153,148,108, +119, 66,233, 35, 46,151,132,210, 35,109, 52,104,154, 96, 53,224,247,174,155,249, + 85,135, 45, 51,153,141,124, 7,253, 6,208, 58,224, 41,161,200,206,122,104, 42, +132,254,125,152, 30, 40,198, 7, 42, 68, 71,228, 11,237,138, 75,222, 45,155, 92, +178,206,171,154, 25,225,228,213, 30,146, 87, 86,158,246,191,171, 36,227,167,251, +216, 20, 79,215,193,247,222,121,134, 64,129,178, 33, 80,136,199,135,214,168, 98, + 92, 5,136,166,243,119,190,103,218,157,233, 31,123, 2,163,184, 22,185, 88, 41, +190,224,245, 33, 30,141,228,250,183, 0,213, 22,177,251,121,220,135, 47,210,129, +227, 66,141,130,175,206,110,178, 14,228,160,181,175, 91,169,179,203,117,123,250, + 36, 64,172,187, 98,177, 16, 9, 72,136, 64,124,116,103,200,228,203, 5, 91,203, +170,153,165,198,126, 87,250,115,182,155,165,100,143, 86, 67, 66, 20, 33,131,245, +212,235,249, 74,138, 91,228, 62, 20, 77,103,138,165, 55,251,177,151, 83, 79,251, +194, 42, 0,200, 77,139,108,214, 43,167,204,164,169,234,141,166,127, 1,183, 67, +220,213,189, 90, 2,232,139, 34,182,216,249, 34,211,236,141,159,190,139, 68, 47, +161, 23,245, 0, 18,242,130, 1, 49, 14, 66, 49,208,174,111, 57,103,158,200,128, +162, 82,105,255,208, 96,251,228, 97, 77, 26,171,247,167,176,118, 87,203, 69,232, + 95,124, 37,206, 51, 54, 88,251,172,150, 82, 49,208,206, 11, 82,188,158,207,107, +246,100, 66, 42, 88,178,213, 53,250,236, 5, 49,179,135, 60,138,209,196, 1, 8, + 24,130,255,103, 81,233, 0,153,175, 77, 61,136, 17, 33,210,116,149, 64, 20,223, +148,224,221, 43, 27,117, 14,149,213,195,152, 84, 16,112, 54,138,142,146,196,104, +231,213, 23,178, 8,224,140,143,156,110,162,235,148,182, 13,102,177,176,142,248, +208,169,132, 45, 95,155,194, 2,233, 33,246,209, 78,136,145,207,246,216, 77,235, + 52,164, 14,114,136, 88,132, 91,189,178, 91, 87,231, 16,231, 16, 43,249,202, 87, +227,101,110, 87,223,111,116,156, 97,155,238,177,164,105, 46,151, 40, 48,182, 71, + 78,171, 23,198,250,217,121, 14, 48, 0,128,108,193,206, 95, 46,250,242, 8, 86, +202, 80, 57, 82,220,232,194, 19,221,122,188,111,124,163, 94,141, 30, 27,201,239, + 58,197,194, 32,130, 96, 66, 24, 83, 11, 66,130,248,126, 99, 52,186,236, 95, 47, + 32, 94, 73,205,152,182,235, 98, 5,235, 8, 42,241,217, 34, 10,152, 63, 29, 87, +159,226,145, 57, 29,100, 40, 42, 49, 78,155,176,143,177, 17,204, 55,195,159,169, +167, 40,140,253, 95,205, 74,225,146, 19,196, 75, 65,231,183,109,182, 45,137, 20, +254, 45,129,195,234,183, 19, 36,241,128,229, 42,228,150,136,141,193, 72,191,174, + 59,226, 9,195, 87, 41, 76,203, 68,171,227, 79,133,177, 47, 41,210, 80, 14, 10, + 71, 99, 13,208,100, 29,218, 80, 86,221,144,137,221,232,107,247,172,254, 23, 58, + 4,224,170,231,113, 96, 91,149,185, 54, 52, 10, 14, 68, 7,196,248,243,225,193, + 19,160,193, 75,138,180,163,183,224,100, 79,187, 10,229,119, 88, 0,197,125,141, + 61,145, 18,249,220, 1, 30,178,237,202,218,143, 25,228,174,128, 52, 62, 1,110, +164,250,180,234, 93, 63, 43, 14,145,200,130, 36,208,163, 73,209,196,181,211,190, + 95, 64,209,209,237, 93,145,160,217, 54, 61,222,105,127,223,254,163,249,180,113, +137,255,235, 33,167,144,218,208,184,146,251,111, 3, 50, 83,233, 41, 10, 8,223, +121,206,145, 43,221,100, 23,201,147, 90,224, 43, 82, 31,132,196,103,196, 88,246, + 68, 30, 87,194,222,151,174, 98,213,228,163, 19,105,174,134, 22, 53,118,187,165, +154,123, 96, 16,218,194,188, 50,149, 51, 42,190, 48, 3,113,190,196,245,172,205, +227, 16,101, 30, 60,123, 59, 41, 96, 80,161, 39,172, 32,178,161, 86, 18, 97,154, + 90, 34, 81,139, 64, 4,192,108,255,230,156, 74,100,168,255,112, 20,247,160,225, + 2,121, 27,174,161,198,244, 46,225,184,130, 36, 20,130,128,253, 94, 88,245, 54, +227,111, 45, 86,120, 65, 50,213,185,231,178,100,189,150,142,152,212,116,186,242, +233,203, 44, 4,127,228, 83, 94, 75,146,102,250,246,187,177,210, 23,204, 21,226, + 59,102,215, 36,153,232,101, 78, 37,231,120, 82, 88,232,108, 2, 86,133,205,215, + 7, 22,211,106,204,106, 18, 51,125, 78,251, 91,196,181,227,231, 81,108,118,190, + 19, 69, 7,160,150, 3, 50,226,203,180,218, 3,200,136,103,101, 21,169, 97,250, +152,220, 63, 94, 48,108,141,155,156,166,114,110, 48, 30,122, 98,184,150,153,152, +227,166,152,196, 71, 18, 90, 86,128, 1, 37,238,249,136,185, 63,103,130, 99, 26, +226,117, 95,189,139, 36, 61,109, 28, 80, 0, 58,126, 55,200, 5,202,112, 54,199, +235,151,102, 13, 11, 49, 11, 24,105, 75,140,228,220, 74,253, 82,180, 20, 60,239, +215, 7, 30, 73, 72,171,197,212,133, 63, 43, 54,240,152,119, 46,131, 96,112,184, +114, 36,172,130,227,123,118, 43, 87, 55, 33,247, 19,235, 76, 89,156, 74,130,233, +183,110,173, 94,167, 65,100, 82,159,226,218, 8, 69, 94, 1,160,190,132, 46, 55, +178,217,250, 89, 11,251, 27,198,178,144,173,244,164,131, 64, 43,218, 18, 5,214, +220, 99, 92, 67,155, 48,104, 61,192, 76,242,237, 12,120, 83, 57,109,179, 42, 21, +182, 52,147,121,114, 75, 80,227,144,106,251,137, 12,248,127,244, 18, 55,247,112, + 48,211,241,147, 14,171, 81,210,147, 89,151,113, 2,236, 76, 96,124, 28,171,242, +245,155, 84,161,184, 41,217,181,119,185,120,163, 17,217,185, 56,133,228,191,176, +147,104, 78,149,233,203,164,170,211,255, 50,182,141,233,161,189, 84,185,253, 98, +126,122, 39, 46, 55,218, 39, 90,142, 58,126,134, 8, 8,221,131,146,242, 57, 16, +182,242,145,134,199, 11,159, 67, 17,248, 89,127,250,109, 61,232,173, 65,125,187, +253,251, 53,223,227, 51, 28,201,187,227, 4,102,192, 12,115, 82,127, 27,254,140, + 79,196, 84, 41,218, 79,244,113,235, 73,137,230,198,111,141,185,102,104,166,183, +106,240, 73,131,121, 59,115, 88,237, 12, 25,167, 9,225, 48,157,137,166,133,224, +204,154,113,118,176,228,114,197,237,189,166,136,176,164, 64, 60,183, 79, 79, 74, + 74, 80, 14, 52, 9,137,195, 6,125,178,150,105,248,229, 65, 48, 6,210,215,118, + 92,131, 61,180,123, 20,210, 55,134,153,212,159,170,219, 78,246, 66, 18, 94,137, + 68,209,157, 51,162,207,186,211, 47, 94,150,111,184,142,169, 6,126,220, 18,191, + 63, 96,172,163,129,125,158, 13,138,248, 94,136, 73, 92,218, 21,195,162, 5, 85, +201,158,127,211,211, 50,127,149,210, 28,252,125,240,254, 18,235, 93,231,110, 85, + 77,102, 1, 56,222,165,144, 92,116,164, 79,100,130, 85,189,215,241, 61,138,161, +124,166,136, 18,129, 40,116,238,168,142,183,115,169,117, 33,193,115,158, 39,132, +147,160,140,147,118, 80,107, 68,161,192, 89,253, 9,201,151, 59,104,167, 65, 73, +102, 2,135,211,186, 68, 39,179,179, 58,145,204,155, 50, 95,116,230,213, 98,236, +159,215, 60,216,249, 67,200, 35,187, 36,167,234,226,122,197,130, 66,246,119, 15, + 81,134,205, 76,241,251,167, 20, 90,121,177, 47,222,250, 2,206,237,232,232,112, + 50,134,179, 75,151, 8,228,154, 88,128, 9,228,152,184,167, 88,241,168,189,252, +189, 32,172,148, 20,244,136, 37, 64,208,210,156,154,191, 88,199, 32, 64,232, 27, +142,144, 24,184, 64,215, 24,211,200, 34,248,161,128,208,124,171,248,122, 65,246, +102, 3, 83, 27,129,117,105,105, 1, 45,174,239,151, 61,133,143,221, 31, 55,165, +149,242,227,184,216, 3, 15,217,159,160, 14,142,144,215, 47,189,139, 56,129, 89, + 13, 31,165, 40,146,161, 93,243, 62,174, 49, 2, 24, 51, 89, 75,112,214,236, 68, +141,229, 98,241,109,149,187, 17,228,232,109,123, 78,210, 73,227,233, 15,248,127, +202,238, 84,192,223,113, 71, 85,130, 95, 10, 36,183,224,192,112,129,211,240,201, +117, 2,144,240,230, 24,125, 84,156, 94,241,204, 61, 78,245, 91,113,222, 62,198, +168, 15,253,236,220,130, 25,227,120,191,195,151, 5,232,236,212,212,143,232, 25, +208,255,163,168,218,247,172, 73,121,180,130,117,153,255,192,105,136, 59,237,121, +183,138,188,192,215,116,211, 14, 38,252, 68,230, 69,254, 89, 9, 60, 10,237,130, + 71,163, 1, 25,207,240, 50,207, 9, 54, 60,146,152, 47,170,217, 31,155, 11,147, +187,247,151,203, 16,212, 17,232, 36, 30,236,239,117, 65, 12, 95,250,137, 87,197, + 18,244,142,233,200,118,237,229,166, 83, 42,231,117, 28,117,121,113,132,129,204, +123, 76,174, 12, 18, 49,119,195,209, 69,175,152,165,240, 75, 7,144, 1, 97, 56, + 13,217,178,201, 16, 61, 32,247, 23,186,155, 84,146,240, 27,209, 16, 44,172,140, +242, 80,237,106, 71,193,139,116,201, 15,155,190,141,217,118,128, 88, 14,233,195, +203, 42, 83,200,142, 48, 86,160,173,122,119, 63,204,163, 30, 0, 57,255,251,188, +229,199, 15,245,170,247, 9, 5,136,116,123, 49, 98, 92,126,194, 90,171,159,239, + 58,254,207,186, 30, 78, 12,164, 80,221,213, 36,227, 14,185,153, 50, 38, 13,175, +205, 69,211,139,247,191, 42, 47, 10,183, 50, 65,224,134,212,108,174, 24,193, 74, +206, 41, 51,193, 87, 35,247, 19,223, 55, 44, 31, 32,236, 51,248,165,211,137,240, +154,140, 58, 49,157,216, 22, 77,101,176,188, 48, 75,199, 8, 23, 56, 75,160,139, +205,226,177,232,156, 36,185, 77,140,153,125, 96,116, 10,199,124,108, 20, 5,107, +110,252, 57,230, 75, 88, 88,174, 5,227,107,179,153, 75, 58,128,107,175,121, 97, +100,194,116,196,226, 59,192, 14, 45, 91, 82, 9,144,163,108,241,244,121,109, 6, +124, 70,115, 18, 45,230,164,220,150,191,126, 80,116, 89,141, 13,204,180, 72,181, +243,168,109,161,180,159, 21,241, 58, 37,190,122,159, 21, 70, 74,170, 67,179, 78, +163, 15,155,148,224, 71, 55, 6,253,139,176, 24, 37,148,221, 43, 15,190, 39, 98, +147, 3, 7, 75,221, 1,210,205,234,126,117,203,128,104,218, 76, 18,176,245,171, +203,250, 43,199,210, 4,232, 39, 76,145, 28,113, 12,130, 95, 99, 10, 19,112,104, + 87,161,241,218, 39,106, 63,130,195,134,217,134,163,172,184,167,214,143,175,194, + 20,254,200,132,216,181, 38,199,107,214,184, 8,213, 59, 76,135, 75, 54, 51,171, +112,112, 16,232,228,220, 54, 62,132,254, 21, 18, 91, 19,133,164, 42,212,213,153, +104,112, 48,227,162, 16, 79, 47,205,113, 94,127,250,107, 2, 36,177, 75,122,159, + 70, 96,210, 59,215,175,138,117,201, 90,103, 37, 64,232, 0,150,209,251,139,248, +250,183, 98,207, 49, 81, 29,138, 70,170,105,159, 23, 24, 61,122, 65, 94, 23,133, +210,227, 23,122,160,241,139,250,251, 52,217,203,122,165,134,237, 14, 32,121,123, + 78,206,227,221,223, 9,196, 16, 53,126, 80,135,194, 42,139,173, 34,121,129, 0, +164, 60,132, 12,140, 37,221, 59,142,192,171, 20,214, 72,199, 79, 46,115, 35,188, + 34, 89,174,109,111,227,149,143, 60,192,252,166, 40,107, 37, 63,139, 74, 18,185, +118,103,161,149,181,128, 98,118,102,100, 26, 33,193,238, 16, 45,114,221,235,111, +139, 15,231, 98,128,212,203,212,249, 72,132,125, 68, 37, 81, 36, 59,188,230,247, + 47,114,238,148, 26,166, 82,255,226,193,245,158, 38, 41,167,155,190, 84,254,209, + 1,244, 91, 87,132,180,150, 42, 11, 79,160, 4,131, 29, 40,201,168,162,231,144, +250, 31,212, 45,175, 49,172,215,210, 92,248,203,111,102,197, 47, 56,144, 35, 57, +126,199, 52,252,119,237,101,250, 31,244,185,198,240,133,183,115,232, 64,203,107, +205,147, 9,201,137,239,135,183,132, 63, 38, 16, 12, 63,229, 17, 49,225, 32,105, +237, 81,228,215,103, 25,219, 31,137,204, 86,224,100, 52, 51,101,157, 7,235, 56, +193, 66,157,250,128, 21, 35, 89,241,191, 14,161,123, 81,126, 2, 43, 33,182, 46, +137,234,130,183,140,152,210, 92,222,249,206, 23, 18, 16,238, 17,230,207,220, 91, +134,245, 27,175,117,134,177, 94,203,163,161,253,137,231,143,117, 66,121, 10, 21, +123,163,218, 90, 66, 20,246,225,178, 54, 32, 68,182,130, 38,145, 29,115, 83,172, +253, 18, 9,127, 10, 42,220, 43,250, 66,132, 41, 52, 24,247, 50,166, 12, 65,123, +223, 40,209,252, 98,137, 32,108,224,242,173,135, 70, 75, 33, 93, 60,218,246, 30, +125,108,249,241, 17,168, 73, 1,239, 91, 41,232,246,114,117,140,243,112,254,209, +182,255, 60,112,219,189,145, 5,131,121, 72, 81,235, 86,245, 7,184,220,176, 62, +179, 56,148,186,143,213, 83,209,162,232, 2,160, 42,230,201,242, 69, 33, 45, 16, +125, 35,194, 52,218, 6,123,180, 67,193, 58,187,186, 79,130,148, 62,119,237, 8, +194, 45,177,128, 22, 98,183, 41,202, 46, 89,203,237,200,196,172, 34,177,237,188, + 6, 61,137, 73, 25,140,201,220,119,195,109, 65, 97,141,245, 32, 87, 73, 1,234, +171,116, 50,200,125,208, 74,135,142,191,251,209,129, 62,207,236,208,133, 95,227, +247,201, 89,151,255, 95,105, 81,134,214, 38, 66,255,150,127, 25,173, 68, 66,152, +204,215, 5,222, 36,166,207,144,135, 81,155,165,240, 86, 2, 44, 29, 66,171,254, +165,136, 28, 34, 24, 5,208,166,243,222,110, 10,140, 75,252, 50,138, 54,185, 46, + 59,167,172, 71, 7,161,167,228, 29, 88,167,172,147,103, 74, 49,248, 98, 27,103, +175,161, 87, 2,138,205, 9,104,109,221,253,225,201, 84, 71,174,119,234, 40,194, +235,150, 48,181,212, 11,214,253, 19,138, 73, 29,214,150, 88, 98,198,248, 14,161, +105, 22,228,196,195,114, 4, 60, 18,141,250, 56,208,110,191,191,113,171,238,248, + 74,136,135, 32, 48,101,225, 91,182, 26,111, 34, 25, 27, 32,236, 35,123, 19,201, + 43, 33, 18, 92, 36,215,177,155, 81, 8,193,104, 87, 5,103,134, 43,190,141,162, + 19, 57,204,254, 67,209, 21, 27,103,151, 87, 92,126,196,234,123,156,115,103, 0, + 84,162,138, 19,162,124,115,195,198, 63, 62,154,138, 36, 41, 63,183,173,202, 85, +220,197, 1, 34,129, 6, 84,162,101, 91, 76,131,205,154,237,140, 51, 45,150,127, +255,182,202, 72,187,177,206,188,191, 44,140, 93, 3, 43,245, 5,184,231, 21,221, +215,181,229,137,139, 76,164, 45, 55,145, 22,106,115,112,194,210, 25,153, 7, 3, + 52,164,196, 3,198,206,142, 78, 27,111, 83,233,125,113,151, 48, 92, 76,122,113, + 58,233, 30, 15,148,245,131,212, 55, 57,186, 40,193, 72,198, 1,213,248,152,162, +186,136, 86,161, 90, 65,158,244, 37,248,163,240, 26, 59,129, 38, 92, 52, 27, 96, + 77,221, 29, 71, 58, 35, 53, 70,138, 22, 62,205,177, 16,202, 48, 82, 16,136, 6, +125,212, 99,177,227,156,210,104, 62, 89, 74, 60, 1, 45, 40,189, 11, 32,175,175, + 20, 93, 39, 40, 39, 21, 19, 38,161, 34, 48,124,134,144,202,126, 80,149,111, 0, + 13,162, 28,235, 0, 64,103,233, 20,254,103, 92, 70, 69, 80,173,140, 39,105, 66, +158,141,199, 11,183, 70,163,122, 28,231,235,152, 65,239,146,173,129,220, 92,152, + 48,203, 24, 71,145,244, 73,130,227,249,111, 74,159,124, 66,103,207,117, 64, 21, + 80,171,148,191, 68,219,116, 42, 5,113, 18, 34,163, 85,179, 69,252, 46, 12,209, +242, 41,209,240, 96,106, 16,185, 7, 99, 84, 66, 1, 72, 64,136, 28,174,191,177, +146,230, 59, 5,149,159, 15, 83,143,145,209, 63, 48, 21,240, 4,192, 74, 35,160, +201, 53, 71, 46,153,122,208, 79,152,133,229,176, 58,138,119,146, 24,194, 9, 56, + 55,182, 64, 56, 7,253, 30,205,152, 10,113, 45,220,177,194,196,203,167, 3,148, +188, 63, 52, 72, 35,205,231,255,159,192, 85, 70,237,135,191,121,155,116, 29, 9, + 45,129,240,112, 17,107, 18,100,222,240, 82, 89,230, 3,174,181,202, 55,240,213, +130, 0, 33, 80, 55, 76, 28,109, 29, 82, 41,186,133, 19,122, 66,129, 11, 72,145, +106, 87,188, 24, 65,151,185,104,135,149, 10,147, 19, 69, 69,124,136, 97,205,155, + 73, 69,181,207,236, 13,229,111,142, 28,116,130,220,110, 28,197, 64, 84, 38,202, +237,190, 84,196,172, 18,172,255,191, 11,161,253,211,193, 20, 30, 28,168,187,118, + 28,162, 92, 76,101,158,221,216,209,196, 41, 4, 4, 16,133,182, 99,235,171,139, +127,128, 42, 29,129, 13,155,202,138, 24,197,175,209, 24, 66,210, 28,163,184, 22, +227, 32, 58,233, 9, 59, 76,147,177, 49,217,183,162, 0,160,109,226, 4,133,121, +105,190, 9,113,177,200, 24, 20, 7,185, 30, 95,171,108, 42,114, 33,224, 96, 82, +223,205,246, 42,235,156,230,198,186,185, 56,229,178, 7, 70, 67,100,232, 56,138, +223,180, 8,209, 31,214, 28, 23, 0,105, 8, 87, 99,159,182,188,175,102,206, 97, + 40, 89,167, 50, 50,222,204,147, 66,239,133,228,215, 66, 72,146, 79,187, 23, 32, +193,199, 99, 87, 54,134, 2, 74, 52,227, 96, 99,236,119, 14,173, 47,192,108, 46, +147,157, 62, 16, 42,111, 30, 75,218,177, 31,208,159, 49,105, 83, 44,132, 39,241, + 79,138,142,159,227,141, 83, 4,105,187,106,229, 52,230,187,253, 10, 82, 51,247, +122, 51, 89, 42,115,186, 59,202,104,113,187, 67,187, 25, 31,213,142,159,246,119, +155,146,218,118,157, 7,180,181,251,238,250, 55,154,126,213,222,186, 81,119, 96, + 90, 20,115,193, 90,101, 54, 32, 76, 91, 49,178,106,216,107, 73, 85, 94, 62, 74, +107, 92,153,219,187, 22,242, 50, 45, 41, 42, 65,110,224, 49,179,140,175, 71,233, + 8, 18,108,142, 45,150,132, 43, 45,120, 17,255,148,230,243,201,126, 30,176,165, + 32,174, 26, 12,221,113, 8,171,198, 80, 93, 22, 31, 60,160,246, 83, 9,203, 93, +253, 47,211, 52,220, 26,162,238,110, 43, 32,207, 89,160, 63, 54,136,210, 69,113, +186,228,110, 75,198,255, 22,247,198, 44,251,233, 22,168, 98,205,160, 89,134, 70, + 50,146,100,179,155, 76, 32,191, 20,141, 75, 68, 2, 57, 38, 83,254,154,194,226, + 67,200,157,251, 15, 80,236,237,173,236,140,167, 94, 15, 45,141,179,127,121,136, +142, 68, 33, 17,227,188,254,202, 76, 89, 51,200,213,225,198,158,241,153,204,161, +130, 41, 24,112,247,228, 98,148, 35, 71,226,210, 53,109,100, 48,182,100,120, 30, +134,162, 12,241,145,242, 24, 83, 83, 66,180,127, 97, 49,192,236, 3, 11, 48,174, +155, 12, 1, 58, 0, 37,253,137, 59, 39,214,127, 12,117, 81,143,159,105,219, 98, +230,102,159, 78, 97,199,194,240,183,222,160, 85,237, 49,193,185,146,225, 66,101, + 44,190,243,245,104,115,108,101,203, 9, 96, 89,231,202,215,204,191,129, 79,132, +217,223, 45,125, 83,109,120,150, 61, 70, 32,180,197,229,111,166,216,201,166, 67, +229,185, 65, 84,204,198, 26,137,151,164, 74,175, 81,110,232,100,239, 40,105,186, + 38, 68,146, 15,212,106,100, 55, 49,118, 32, 34,171,133,177,208,233, 48,192, 80, +171, 18,107,132, 88,111,230, 92,160,196, 64, 8, 79,176, 54, 34,194,187,182,115, +194, 82,198, 9,188,152,198,168,175,222,134, 36,136,137,129,127, 89,156,151,144, +249,112,115,138,198, 37,143,144,176, 21,192, 87,227, 52,201, 10,154, 41,103,111, +133, 64, 63, 74,141,136, 70,198,129,240, 81, 93,142,254, 61,237,249,101, 65,146, + 88,247,165,100, 20, 82,243,141,248,140, 66, 31, 27, 4,120, 17,208, 38, 67, 34, +221, 25,224,236, 50,230,143,245,242,144,232,163,121, 78, 2, 87, 30,106,129, 3, + 70,169,237,170,234, 37,179,243,179,191, 98, 90, 25,210,110,154, 56,241,168,121, +153, 98,159, 0,124,249,172, 48, 16,160,131,123,243,247,250,203,140,173,152,164, +215, 27,214,130,214, 72,241,197, 51,204,115,182, 50, 23,196,136,253,228, 65,212, +238, 80,202,158,140, 35, 85, 72,183,130, 97,131,193, 60, 11,151, 78, 5, 22,233, + 20,229,250,172,112, 13,199, 47,162, 30,214,241, 4, 94,193, 50, 90,113,170, 49, + 46,111, 89, 27,231, 6, 7, 72,212,185, 16, 80, 22, 43,112, 49, 53,181,106,208, +102,133, 29, 47, 57, 54,128, 68, 41, 37,209, 54,203, 78,118,220,181, 74,106, 41, +220,234, 97, 69, 99,188, 85,134, 14,223, 94, 43,142,211,212,194, 9, 79, 86, 61, + 89,198, 48, 10,216, 71, 53, 61,120,100,215,108, 4, 8,114,170,153,220, 4,193, +165,153, 51,240, 53,189,232,197,153,219,200,129,136,175,161, 32,247, 13, 55,143, +164,195,230,188,246, 55,145, 95, 26, 73, 31,197,105,154,237,229,190, 62,213,191, +161,138, 70,202, 87, 40,191, 34,114, 48, 60, 52,216, 68,158, 59, 79, 19, 15, 88, +178,223,253,163, 86,219,231,231,124,248, 12,182, 30, 5,112,189, 53, 49, 92,233, +167, 97,147,178,228, 18,219,153, 89,183,141,153,161,153,132, 23, 66,244, 94, 96, +113,152,183, 0,134,175, 17, 90,200,112,129, 37,218, 12, 19, 4, 12, 84, 75,222, + 37,178,104,132,185, 40, 64, 8,253,163,134, 3, 10, 27, 67, 77, 82, 10, 25,202, + 11, 45, 70,127,207, 77,251,136,177,240,246,243,162,130,103,130,240,253, 12,197, +179, 4,212, 0,160,202, 80,247,135, 81,227,226,223,253,153,137, 22, 61, 40, 43, +106, 75,141,104, 17, 82,223,103,186,171, 6,180,235,216,116,156,108,109,135,178, +167, 32,100, 32, 54,232, 63, 98,161,238,176, 26, 11, 27, 66,103, 44, 92,114, 24, +115,248,159,247,211,189,240,141,244, 74,153,193,103, 72,193, 9, 88,103, 0,193, +112,196, 98, 48,200,244, 11,134, 39, 67, 2, 46, 27,121, 1, 47, 27,166,127,185, +190, 8, 23,173,248, 8, 33,105,230,230,149, 53, 20, 17,164,188, 51, 22,126,153, +112, 21,208,176, 24,161,140,183, 26, 76, 92,144,224,169, 59,191,208, 44, 82, 61, +109, 81,190, 44,233, 52, 57,126, 17, 61,108, 79,178,113,207,251,173, 66, 57,177, + 81,103,214,168,145,230,238, 89, 48, 4,121, 97, 36,229,154, 1, 48, 58,100, 35, +165, 71,176,136, 43,201,215, 36,202,100,161, 57,145,243,220,197,230,193,212,164, +167,108, 15,182,228,253,191, 74, 89,190,117,207,149, 8,203,162,188,190,136, 51, +178, 27, 90, 5,120,179, 8,196,224,202, 80, 83,190,192, 5,228,141, 73, 28,219, +181,175,122,173,202,183,199,223,110,253, 88,113, 75,111, 93, 62,199, 83,202, 84, + 84, 78,103, 54,190,234,207, 66, 69, 16,134,219,246,156,238, 85, 71,121,182,196, +104, 11,122, 89,169,145, 15,230, 15,103,100,203,173,217, 64, 89, 87, 47,227,196, +170,222, 66,158,203,153,143, 32,227,173,238, 72, 16,120,185,167,244,118,120,127, + 20, 7,237, 84,247,140,255,244,192,111,109, 81, 45,190,143,150,160, 55,170, 26, +126, 27,127,255,150,172,160,181,221,239,128,160,155,161, 50, 38, 63,246,253, 68, +191,155,231,191,102, 44,218, 46,230,183,120,254, 62,161,157, 90,240, 11, 29,216, +169, 10,160,237, 63, 65, 43,166,137,153,106,244,177, 10, 89,179,116,185,234, 78, + 18,175, 10,132,250,190, 17,149, 2,251,128,245, 82,119,115,131,221,228,202,143, + 59,181,227, 66, 46, 32,249,233,178,234,243,225,177, 41,132,192,232, 77,120,228, + 88,146,131,135,157,205,251,125,169,142, 97,142,233, 52,146,237,103,251,243, 73, +248,115,158,135,198,182,134,238, 25,195,208,100, 65, 25,131, 32,198,125,181, 6, + 59,143,242,236, 88,179, 14,169,200,160,105,198, 51,209, 63,153, 71, 23,128, 25, +127,224, 10,146, 27,126, 46,194, 34,174, 75, 40,145,196,236,149,103,149, 51,195, + 59, 47, 9,244,149, 6,137, 79,249,204, 88,203, 58,252,114,197,146, 82,139,175, +192, 95, 98,160, 43,203, 27,129, 91, 51, 98,157,203,240, 21, 93,188, 86,201, 48, +250,208,142, 30, 18, 2,103,115,231, 35,240,184,174,206, 79,251,237,103, 3,140, +170, 9, 75,118, 13, 10,228,230, 54,161,230,107, 27,252, 81,208,227, 35,198, 26, + 99, 22,126,138, 42,236, 54,137, 86, 78,198,240,114,152,128, 10,134,124, 37, 63, +152,103,173, 86,238,164, 9,104,224,120,204, 68, 15, 3, 1, 48,170, 89,132, 15, + 95, 40,144, 67,117, 23,109, 55,174,126, 66,229,200, 45,249, 7,189,152, 95, 68, +117, 56,121,174,110,137,123,115,191,113,230, 80,104,178,127,237,192,217,203,207, +214,231,152, 22,145,211,137,175,240,207, 68, 41, 97,241,109,211,134, 33,166, 47, +217, 38, 36,145, 22, 40, 84, 50, 4,186,141,114,149,171,242,216, 0, 64,211, 75, + 93, 27,116,166, 9,102, 89,239, 17, 42, 72,112,168, 61,223, 90, 21,190, 5,174, +236,218, 18,145, 58, 6,201,222,160, 33, 27,154,166,118,233, 13, 65,229,168,102, +206, 78, 23, 4, 87,112, 80,226,189,144, 55, 50, 3, 12, 58, 66,101,229,151,223, +103,164,229, 64,141,218,221, 78, 67,243,242, 39, 29,190,102, 78, 14,218, 59,169, + 48, 96,130,158,175, 6,241,129,242, 59, 47,203, 0,113,240, 5, 10,186, 13, 36, +190,130, 81,212, 16, 12,156, 65,243,165,105, 79, 59, 2,253,195,217,172, 85,217, + 56,195, 72, 44,101,215,233,114, 28,215,122,179, 93,230,243, 15,194,181, 81, 88, + 44,147,223,174,177,199,112,144, 37, 76,123,143,171,208,112, 89, 3, 33,251,102, + 74, 34,179,130,166,154,160,152,222,214,125,183,128, 7,186, 24,234, 33, 45, 6, +157,119, 51,116, 71, 46, 17, 97, 0,117,202, 81,197,243,157,247,141,154,236, 77, + 3,120,153, 60,201,149,183, 84, 44,220, 91,189, 33,250,225,105, 82,146,231, 21, +155, 11, 48,216,140,198,210,235,168, 18,211, 31, 3, 41, 46,209, 10,155, 13, 93, +192,218,107, 6,252,137, 67, 90, 40, 67,160,166,161, 78,200, 12, 72,247,114,179, + 93,187,173, 1,219,157,254, 41,213,187,223, 15, 21, 99, 27, 14,120,140,119,150, +104,254, 19,233, 11, 1,251,111,119,145, 31,174, 96, 78, 97,175,240,200,204,103, +211,132, 98, 3,123,174,154,205, 40, 38,204, 66, 40,132,187,136,170, 72,151,138, +244, 88,240,228,171,140, 21, 10,157,106, 77,222,103,179,114,130,135, 45,164,126, +164,233, 83,190, 9, 42,156,247, 98, 72,210,210, 67,165,240, 32, 63, 77,119,116, +227, 48, 58, 19, 22, 61, 9, 85,143, 12,203,176, 39,136,109, 25, 57, 97, 20,128, + 16,154, 73, 23,137, 63, 72, 43,155, 7, 46,124, 79, 29,243,170,120,218,134, 88, +163,195,236, 96,193,200,255, 95,251,146, 51,212, 26,196,137,194,192,251, 94,150, +155,105,123, 23,129,140,134, 93,148,169, 5, 51, 76,168, 6,160, 44,195, 78,226, +164,230,180,181,162,193, 21,102,208, 73,242,137,124, 84, 93, 3,208, 23, 32,235, +125,169, 10, 34,183, 71,138,130, 70,165, 2, 44,228, 9,108,176,124,240,203, 59, + 79,193,162,233,198,189, 55, 81,117, 63, 35, 44,196,205, 21, 79,171, 71, 82,252, + 41,230,180,208,150, 96, 58,234,103,186,129,214,129,112,143,101, 15,149, 90,214, + 83,169, 38, 2,110, 52,224,194, 28, 86,184,205,158,103,225,122, 94, 36,153,185, +105, 96,158,152,188, 64,216, 55,205,148,104, 18,201,116, 49, 76,208, 23,230, 30, +145, 89,145,177,125,190,180, 81,246,250,235,242,188, 13,179,235,101, 66,172,163, + 88, 39,152,166,129,172, 84, 81,237, 20,168, 43, 21,107, 64, 3,109,132,182,154, +105,209,190, 41, 82, 9, 24, 15, 12,144,219,251, 62,232, 42,218,205,148,219, 93, + 59,171, 53, 51, 46, 99,137,139, 58, 91, 27,204, 21, 16,183, 82,159,112, 70,164, +173,243,156, 76, 71, 39,194,149, 7, 35,243, 22, 69,236,162, 36,116,176,218,160, + 99, 3, } ; // ../Source/JitKernels/GB_jit_kernel.h: @@ -15300,7 +15309,7 @@ uint8_t GB_JITpackage_216 [925] = { GB_JITpackage_index_struct GB_JITpackage_index [217] = { - { 586665, 56500, GB_JITpackage_0 , "GraphBLAS.h" }, + { 587319, 56682, GB_JITpackage_0 , "GraphBLAS.h" }, { 1567, 562, GB_JITpackage_1 , "GB_jit_kernel.h" }, { 677, 308, GB_JITpackage_2 , "GB_jit_kernel_AxB_dot2.c" }, { 712, 328, GB_JITpackage_3 , "GB_jit_kernel_AxB_dot2n.c" }, diff --git a/GraphBLAS/Makefile b/GraphBLAS/Makefile index 9e434ad527..d90747690b 100644 --- a/GraphBLAS/Makefile +++ b/GraphBLAS/Makefile @@ -65,10 +65,10 @@ demos: all # diff the demo output demodiffs: demos echo "Comparing demo output:" - - diff -w Demo/Output/simple_demo.out Demo/simple_demo.out - - diff -w Demo/Output/complex_demo_out.m Demo/complex_demo_out.m - - diff -w Demo/Output/wildtype_demo.out Demo/wildtype_demo.out - - diff -w Demo/Output/gauss_demo.out Demo/gauss_demo.out + - diff -w Demo/Output/simple_demo.out build/simple_demo.out + - diff -w Demo/Output/complex_demo_out.m build/complex_demo_out.m + - diff -w Demo/Output/wildtype_demo.out build/wildtype_demo.out + - diff -w Demo/Output/gauss_demo.out build/gauss_demo.out # just do 'make' in build; do not rerun the cmake script remake: diff --git a/GraphBLAS/README.md b/GraphBLAS/README.md index 20c35c4901..752513b53e 100644 --- a/GraphBLAS/README.md +++ b/GraphBLAS/README.md @@ -36,8 +36,8 @@ QUICK START: To compile and install, do these commands in this directory: make sudo make install -Please be patient; some files can take several minutes to compile. Requires an -ANSI C11 compiler, so cmake will fail if your compiler is not C11 compliant. +Please be patient; some files can take several minutes to compile. Requires a +C11 compiler, so cmake will fail if your compiler is not C11 compliant. See the User Guide PDF in Doc/ for directions on how to use another compiler. For faster compilation, do this instead of just "make", which uses 32 diff --git a/GraphBLAS/Source/GB_casting.h b/GraphBLAS/Source/GB_casting.h index fbee069554..e6cc7b4edb 100644 --- a/GraphBLAS/Source/GB_casting.h +++ b/GraphBLAS/Source/GB_casting.h @@ -29,7 +29,7 @@ GB_cast_function GB_cast_factory // returns pointer to function to cast x to z //------------------------------------------------------------------------------ // The GraphBLAS C API states that typecasting follows the rules of the C -// language. However, the ANSI C11 language specification states that results +// language. However, the C11 language specification states that results // are undefined when typecasting a float or double to an integer value that is // outside the range of the integer type. GraphBLAS handles this case by // typecasting a float or double that is larger than the maximum integer to the @@ -196,9 +196,9 @@ inline void GB (_cast_ ## ztype ## _ ## xtype) \ // typecast to boolean //------------------------------------------------------------------------------ -// Typecasting a NaN to a bool results in 'true', as defined by the ANSI C11 +// Typecasting a NaN to a bool results in 'true', as defined by the C11 // standard (NaN converts to true, since Nan != 0 is true). GraphBLAS follows -// the ANSI C11 standard in this case. +// the C11 standard in this case. #undef GB_CAST #define GB_CAST(ztype,x) (ztype) x @@ -215,12 +215,16 @@ GB_CAST_FUNCTION (bool , uint32_t ) GB_CAST_FUNCTION (bool , uint64_t ) GB_CAST_FUNCTION (bool , float ) GB_CAST_FUNCTION (bool , double ) + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #undef GB_CAST #define GB_CAST(ztype,x) (GB_crealf (x) != 0 || GB_cimagf (x) != 0) GB_CAST_FUNCTION (bool , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) (GB_creal (x) != 0 || GB_cimag (x) != 0) GB_CAST_FUNCTION (bool , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to int8_t @@ -242,11 +246,15 @@ GB_CAST_FUNCTION (int8_t , uint64_t ) GB_CAST_FUNCTION (int8_t , float ) GB_CAST_FUNCTION (int8_t , double ) #undef GB_CAST + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #define GB_CAST(ztype,x) GB_cast_to_int8_t ((double) GB_crealf (x)) GB_CAST_FUNCTION (int8_t , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_int8_t (GB_creal (x)) GB_CAST_FUNCTION (int8_t , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to int16_t @@ -267,12 +275,16 @@ GB_CAST_FUNCTION (int16_t , uint64_t ) #define GB_CAST(ztype,x) GB_cast_to_int16_t ((double) x) GB_CAST_FUNCTION (int16_t , float ) GB_CAST_FUNCTION (int16_t , double ) + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_int16_t ((double) GB_crealf (x)) GB_CAST_FUNCTION (int16_t , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_int16_t (GB_creal (x)) GB_CAST_FUNCTION (int16_t , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to int32_t @@ -293,12 +305,16 @@ GB_CAST_FUNCTION (int32_t , uint64_t ) #define GB_CAST(ztype,x) GB_cast_to_int32_t ((double) x) GB_CAST_FUNCTION (int32_t , float ) GB_CAST_FUNCTION (int32_t , double ) + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_int32_t ((double) GB_crealf (x)) GB_CAST_FUNCTION (int32_t , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_int32_t (GB_creal (x)) GB_CAST_FUNCTION (int32_t , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to int64_t @@ -319,12 +335,16 @@ GB_CAST_FUNCTION (int64_t , uint64_t ) #define GB_CAST(ztype,x) GB_cast_to_int64_t ((double) x) GB_CAST_FUNCTION (int64_t , float ) GB_CAST_FUNCTION (int64_t , double ) + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_int64_t ((double) GB_crealf (x)) GB_CAST_FUNCTION (int64_t , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_int64_t (GB_creal (x)) GB_CAST_FUNCTION (int64_t , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to uint8_t @@ -345,12 +365,16 @@ GB_CAST_FUNCTION (uint8_t , uint64_t ) #define GB_CAST(ztype,x) GB_cast_to_uint8_t ((double) x) GB_CAST_FUNCTION (uint8_t , float ) GB_CAST_FUNCTION (uint8_t , double ) + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_uint8_t ((double) GB_crealf (x)) GB_CAST_FUNCTION (uint8_t , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_uint8_t (GB_creal (x)) GB_CAST_FUNCTION (uint8_t , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to uint16_t @@ -371,12 +395,16 @@ GB_CAST_FUNCTION (uint16_t , uint64_t ) #define GB_CAST(ztype,x) GB_cast_to_uint16_t ((double) x) GB_CAST_FUNCTION (uint16_t , float ) GB_CAST_FUNCTION (uint16_t , double ) + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_uint16_t ((double) GB_crealf (x)) GB_CAST_FUNCTION (uint16_t , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_uint16_t (GB_creal (x)) GB_CAST_FUNCTION (uint16_t , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to uint32_t @@ -397,12 +425,16 @@ GB_CAST_FUNCTION (uint32_t , uint64_t ) #define GB_CAST(ztype,x) GB_cast_to_uint32_t ((double) x) GB_CAST_FUNCTION (uint32_t , float ) GB_CAST_FUNCTION (uint32_t , double ) + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_uint32_t ((double) GB_crealf (x)) GB_CAST_FUNCTION (uint32_t , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_uint32_t (GB_creal (x)) GB_CAST_FUNCTION (uint32_t , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to uint64_t @@ -423,12 +455,16 @@ GB_CAST_FUNCTION (uint64_t , uint64_t ) #define GB_CAST(ztype,x) GB_cast_to_uint64_t ((double) x) GB_CAST_FUNCTION (uint64_t , float ) GB_CAST_FUNCTION (uint64_t , double ) + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_uint64_t ((double) GB_crealf (x)) GB_CAST_FUNCTION (uint64_t , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) GB_cast_to_uint64_t (GB_creal (x)) GB_CAST_FUNCTION (uint64_t , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to float @@ -447,12 +483,16 @@ GB_CAST_FUNCTION (float , uint32_t ) GB_CAST_FUNCTION (float , uint64_t ) GB_CAST_FUNCTION (float , float ) GB_CAST_FUNCTION (float , double ) + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #undef GB_CAST #define GB_CAST(ztype,x) GB_crealf (x) GB_CAST_FUNCTION (float , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) ((float) GB_creal (x)) GB_CAST_FUNCTION (float , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to double @@ -471,17 +511,24 @@ GB_CAST_FUNCTION (double , uint32_t ) GB_CAST_FUNCTION (double , uint64_t ) GB_CAST_FUNCTION (double , float ) GB_CAST_FUNCTION (double , double ) + +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA #undef GB_CAST #define GB_CAST(ztype,x) ((double) GB_crealf (x)) GB_CAST_FUNCTION (double , GxB_FC32_t) #undef GB_CAST #define GB_CAST(ztype,x) GB_creal (x) GB_CAST_FUNCTION (double , GxB_FC64_t) +#endif //------------------------------------------------------------------------------ // typecast to float complex //------------------------------------------------------------------------------ +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA + #undef GB_CAST #define GB_CAST(ztype,x) GB_CMPLX32 ((float) x, (float) 0) GB_CAST_FUNCTION (GxB_FC32_t, bool ) @@ -526,6 +573,8 @@ GB_CAST_FUNCTION (GxB_FC64_t, GxB_FC32_t) #define GB_CAST(ztype,x) x GB_CAST_FUNCTION (GxB_FC64_t, GxB_FC64_t) +#endif + #undef GB_CAST #undef GB_CAST_FUNCTION diff --git a/GraphBLAS/Source/GB_ops.h b/GraphBLAS/Source/GB_ops.h index d9eaee0a44..d938bda669 100644 --- a/GraphBLAS/Source/GB_ops.h +++ b/GraphBLAS/Source/GB_ops.h @@ -106,6 +106,9 @@ inline void GB_nonzombie_func (bool *z, const void *x, #define GB_DOUBLE #include "GB_ops_template.h" +#if !defined ( GBCUDA_CPLUSPLUS ) +// TODO: does not yet work in CUDA + #define GB_TYPE GxB_FC32_t #define GB_XTYPE FC32 #define GB_BITS 64 @@ -124,3 +127,5 @@ inline void GB_nonzombie_func (bool *z, const void *x, #endif +#endif + diff --git a/GraphBLAS/cmake_modules/GraphBLAS_compiler_options.cmake b/GraphBLAS/cmake_modules/GraphBLAS_compiler_options.cmake index 31f67c7491..460472e4f2 100644 --- a/GraphBLAS/cmake_modules/GraphBLAS_compiler_options.cmake +++ b/GraphBLAS/cmake_modules/GraphBLAS_compiler_options.cmake @@ -13,7 +13,7 @@ if ( "${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" ) # The -g option is useful for the Intel VTune tool, but it should be # removed in production. Comment this line out if not in use: # set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g" ) - # cmake 2.8 workaround: gcc needs to be told to do ANSI C11. + # cmake 2.8 workaround: gcc needs to be told to do C11. # cmake 3.0 doesn't have this problem. set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wundef " ) # uncomment this to check for all warnings: diff --git a/GraphBLAS/cmake_modules/SuiteSparseAtomic.cmake b/GraphBLAS/cmake_modules/SuiteSparseAtomic.cmake index 18e8af2eb4..9953854836 100644 --- a/GraphBLAS/cmake_modules/SuiteSparseAtomic.cmake +++ b/GraphBLAS/cmake_modules/SuiteSparseAtomic.cmake @@ -50,13 +50,13 @@ if ( NOT TEST_FOR_STDATOMIC ) check_c_source_compiles ( "${atomic_source}" TEST_FOR_STDATOMIC_WITH_LIBATOMIC ) if ( NOT TEST_FOR_STDATOMIC_WITH_LIBATOMIC ) # fails with -latomic - message ( FATAL_ERROR "ANSI C11 atomics: failed" ) + message ( FATAL_ERROR "C11 atomics: failed" ) endif ( ) # source compiles but -latomic is required set ( LIBATOMIC_REQUIRED true ) - message ( STATUS "ANSI C11 atomics: OK, but -latomic required" ) + message ( STATUS "C11 atomics: OK, but -latomic required" ) else ( ) set ( LIBATOMIC_REQUIRED false ) - message ( STATUS "ANSI C11 atomics: OK. -latomic not needed" ) + message ( STATUS "C11 atomics: OK. -latomic not needed" ) endif ( ) diff --git a/GraphBLAS/rmm_wrap/rmm_wrap.cpp b/GraphBLAS/rmm_wrap/rmm_wrap.cpp index 47e0f6082a..7246baca51 100644 --- a/GraphBLAS/rmm_wrap/rmm_wrap.cpp +++ b/GraphBLAS/rmm_wrap/rmm_wrap.cpp @@ -370,7 +370,7 @@ void* rmm_wrap_get_main_stream(void) { // rmm_wrap_malloc: malloc-equivalent method using RMM //------------------------------------------------------------------------------ -// rmm_wrap_malloc is identical to the ANSI C11 malloc function, except that +// rmm_wrap_malloc is identical to the C11 malloc function, except that // it uses RMM underneath to allocate the space. void *rmm_wrap_malloc (std::size_t size) @@ -382,7 +382,7 @@ void *rmm_wrap_malloc (std::size_t size) // rmm_wrap_calloc: calloc-equivalent method using RMM //------------------------------------------------------------------------------ -// rmm_wrap_calloc is identical to the ANSI C11 calloc function, except that +// rmm_wrap_calloc is identical to the C11 calloc function, except that // it uses RMM underneath to allocate the space. void *rmm_wrap_calloc (std::size_t n, std::size_t size) @@ -400,7 +400,7 @@ void *rmm_wrap_calloc (std::size_t n, std::size_t size) // rmm_wrap_realloc: realloc-equivalent method using RMM //------------------------------------------------------------------------------ -// rmm_wrap_realloc is identical to the ANSI C11 realloc function, except that +// rmm_wrap_realloc is identical to the C11 realloc function, except that // it uses RMM underneath to allocate the space. void *rmm_wrap_realloc (void *p, std::size_t newsize) @@ -463,7 +463,7 @@ void *rmm_wrap_realloc (void *p, std::size_t newsize) // rmm_wrap_free: free a block of memory, size not needed //------------------------------------------------------------------------------ -// rmm_wrap_free is identical to the ANSI C11 free function, except that +// rmm_wrap_free is identical to the C11 free function, except that // it uses RMM underneath to allocate the space. void rmm_wrap_free (void *p) diff --git a/TODO.txt b/TODO.txt deleted file mode 100644 index a08ddb9cbb..0000000000 --- a/TODO.txt +++ /dev/null @@ -1,4 +0,0 @@ - -FIXME: redo GraphBLAS/Demo/Output/*.out -FIXME: GraphBLAS/Demo: when running demos, create output in build folder -